From 0303c0fe036f5f39230d6d31da946b00c1126c64 Mon Sep 17 00:00:00 2001 From: Ahmed Maged Date: Sun, 1 Jun 2025 17:54:12 +0200 Subject: [PATCH 1/5] migrating Preferences and Messages to stand-alone version --- app/build.gradle.kts | 1 + .../app/{Messages.kt => AppMessages.kt} | 111 +-- app/src/processing/app/AppPreferences.java | 30 + app/src/processing/app/Base.java | 143 ++- app/src/processing/app/Console.java | 2 +- app/src/processing/app/Language.java | 7 +- app/src/processing/app/Library.java | 27 +- app/src/processing/app/Mode.java | 9 +- app/src/processing/app/Platform.java | 23 +- app/src/processing/app/Schema.kt | 5 +- app/src/processing/app/Settings.java | 8 +- app/src/processing/app/SingleInstance.java | 42 +- app/src/processing/app/Sketch.java | 67 +- app/src/processing/app/SketchCode.java | 2 + app/src/processing/app/SketchName.java | 16 +- app/src/processing/app/UpdateCheck.java | 10 +- app/src/processing/app/WebServer.java | 2 +- .../app/contrib/AvailableContribution.java | 1 + .../app/contrib/ContributionListing.java | 6 +- .../app/contrib/ContributionManager.java | 10 +- .../app/contrib/ContributionType.java | 6 +- app/src/processing/app/contrib/ListPanel.java | 2 +- .../app/contrib/LocalContribution.java | 19 +- .../app/contrib/ModeContribution.java | 18 +- .../processing/app/contrib/StatusDetail.java | 2 +- .../processing/app/contrib/StatusPanel.java | 2 +- .../app/contrib/ToolContribution.java | 4 +- app/src/processing/app/exec/StreamPump.java | 4 +- .../app/platform/DefaultPlatform.java | 31 +- .../app/platform/LinuxPlatform.java | 48 +- .../processing/app/platform/MacPlatform.java | 16 +- .../app/platform/WindowsPlatform.java | 60 +- .../processing/app/syntax/InputHandler.java | 12 +- .../processing/app/syntax/JEditTextArea.java | 6 +- .../app/syntax/PdeInputHandler.java | 10 +- .../app/syntax/PdeTextAreaDefaults.java | 6 +- .../app/syntax/TextAreaPainter.java | 10 +- .../app/syntax/im/CompositionTextManager.java | 8 +- .../app/syntax/im/InputMethodSupport.java | 14 +- app/src/processing/app/tools/Archiver.java | 3 +- .../app/tools/InstallCommander.java | 6 +- .../processing/app/tools/ThemeSelector.java | 9 +- app/src/processing/app/ui/ChangeDetector.java | 20 +- app/src/processing/app/ui/Editor.java | 43 +- app/src/processing/app/ui/EditorConsole.java | 10 +- app/src/processing/app/ui/EditorHeader.java | 4 +- app/src/processing/app/ui/EditorState.java | 6 +- app/src/processing/app/ui/EditorStatus.java | 4 +- app/src/processing/app/ui/ExamplesFrame.java | 15 +- app/src/processing/app/ui/ExportPrompt.java | 28 +- app/src/processing/app/ui/ModeSelector.java | 4 +- .../processing/app/ui/PreferencesFrame.java | 134 ++- app/src/processing/app/ui/Recent.java | 10 +- app/src/processing/app/ui/Theme.java | 18 +- app/src/processing/app/ui/Toolkit.java | 28 +- app/src/processing/app/ui/Welcome.java | 22 +- app/src/processing/app/ui/theme/Locale.kt | 4 +- app/test/processing/app/SchemaTest.kt | 6 +- app/utils/build.gradle.kts | 45 + .../java/main/processing/utils/Base.class | Bin 0 -> 2694 bytes .../java/main/processing/utils/Main.class | Bin 0 -> 1858 bytes .../main/processing/utils/Preferences.class | Bin 0 -> 9289 bytes .../processing/utils/SettingsResolver.class | Bin 0 -> 1226 bytes .../java/main/processing/utils/Util.class | Bin 0 -> 19200 bytes .../settingslocation/DefaultLocation.class | Bin 0 -> 762 bytes .../settingslocation/LinuxLocation.class | Bin 0 -> 2517 bytes .../utils/settingslocation/MacLocation.class | Bin 0 -> 1584 bytes .../settingslocation/WindowsLocation.class | Bin 0 -> 2687 bytes .../kotlin/main/META-INF/utils.kotlin_module | Bin 0 -> 56 bytes .../processing/utils/Messages$Companion.class | Bin 0 -> 5913 bytes .../main/processing/utils/Messages.class | Bin 0 -> 2677 bytes .../main/processing/utils/MessagesKt.class | Bin 0 -> 2689 bytes .../caches-jvm/inputs/source-to-output.tab | Bin 0 -> 4096 bytes .../inputs/source-to-output.tab.keystream | Bin 0 -> 4096 bytes .../inputs/source-to-output.tab.keystream.len | Bin 0 -> 8 bytes .../inputs/source-to-output.tab.len | Bin 0 -> 8 bytes .../inputs/source-to-output.tab.values.at | Bin 0 -> 939 bytes .../caches-jvm/inputs/source-to-output.tab_i | Bin 0 -> 32768 bytes .../inputs/source-to-output.tab_i.len | Bin 0 -> 8 bytes .../jvm/kotlin/class-attributes.tab | Bin 0 -> 4096 bytes .../jvm/kotlin/class-attributes.tab.keystream | Bin 0 -> 4096 bytes .../kotlin/class-attributes.tab.keystream.len | Bin 0 -> 8 bytes .../jvm/kotlin/class-attributes.tab.len | Bin 0 -> 8 bytes .../jvm/kotlin/class-attributes.tab.values.at | Bin 0 -> 61 bytes .../jvm/kotlin/class-attributes.tab_i | Bin 0 -> 32768 bytes .../jvm/kotlin/class-attributes.tab_i.len | Bin 0 -> 8 bytes .../jvm/kotlin/class-fq-name-to-source.tab | Bin 0 -> 4096 bytes .../class-fq-name-to-source.tab.keystream | Bin 0 -> 4096 bytes .../class-fq-name-to-source.tab.keystream.len | Bin 0 -> 8 bytes .../kotlin/class-fq-name-to-source.tab.len | Bin 0 -> 8 bytes .../class-fq-name-to-source.tab.values.at | Bin 0 -> 489 bytes .../jvm/kotlin/class-fq-name-to-source.tab_i | Bin 0 -> 32768 bytes .../kotlin/class-fq-name-to-source.tab_i.len | Bin 0 -> 8 bytes .../jvm/kotlin/internal-name-to-source.tab | Bin 0 -> 4096 bytes .../internal-name-to-source.tab.keystream | Bin 0 -> 4096 bytes .../internal-name-to-source.tab.keystream.len | Bin 0 -> 8 bytes .../kotlin/internal-name-to-source.tab.len | Bin 0 -> 8 bytes .../internal-name-to-source.tab.values.at | Bin 0 -> 709 bytes .../jvm/kotlin/internal-name-to-source.tab_i | Bin 0 -> 32768 bytes .../kotlin/internal-name-to-source.tab_i.len | Bin 0 -> 8 bytes .../caches-jvm/jvm/kotlin/package-parts.tab | Bin 0 -> 4096 bytes .../jvm/kotlin/package-parts.tab.keystream | Bin 0 -> 4096 bytes .../kotlin/package-parts.tab.keystream.len | Bin 0 -> 8 bytes .../jvm/kotlin/package-parts.tab.len | Bin 0 -> 8 bytes .../jvm/kotlin/package-parts.tab.values.at | Bin 0 -> 55 bytes .../caches-jvm/jvm/kotlin/package-parts.tab_i | Bin 0 -> 32768 bytes .../jvm/kotlin/package-parts.tab_i.len | Bin 0 -> 8 bytes .../cacheable/caches-jvm/jvm/kotlin/proto.tab | Bin 0 -> 4096 bytes .../caches-jvm/jvm/kotlin/proto.tab.keystream | Bin 0 -> 4096 bytes .../jvm/kotlin/proto.tab.keystream.len | Bin 0 -> 8 bytes .../caches-jvm/jvm/kotlin/proto.tab.len | Bin 0 -> 8 bytes .../caches-jvm/jvm/kotlin/proto.tab.values.at | Bin 0 -> 1609 bytes .../caches-jvm/jvm/kotlin/proto.tab_i | Bin 0 -> 32768 bytes .../caches-jvm/jvm/kotlin/proto.tab_i.len | Bin 0 -> 8 bytes .../jvm/kotlin/source-to-classes.tab | Bin 0 -> 4096 bytes .../kotlin/source-to-classes.tab.keystream | Bin 0 -> 4096 bytes .../source-to-classes.tab.keystream.len | Bin 0 -> 8 bytes .../jvm/kotlin/source-to-classes.tab.len | Bin 0 -> 8 bytes .../kotlin/source-to-classes.tab.values.at | Bin 0 -> 491 bytes .../jvm/kotlin/source-to-classes.tab_i | Bin 0 -> 32768 bytes .../jvm/kotlin/source-to-classes.tab_i.len | Bin 0 -> 8 bytes .../cacheable/caches-jvm/lookups/counters.tab | 2 + .../caches-jvm/lookups/file-to-id.tab | Bin 0 -> 4096 bytes .../lookups/file-to-id.tab.keystream | Bin 0 -> 4096 bytes .../lookups/file-to-id.tab.keystream.len | Bin 0 -> 8 bytes .../caches-jvm/lookups/file-to-id.tab.len | Bin 0 -> 8 bytes .../lookups/file-to-id.tab.values.at | Bin 0 -> 61 bytes .../caches-jvm/lookups/file-to-id.tab_i | Bin 0 -> 32768 bytes .../caches-jvm/lookups/file-to-id.tab_i.len | Bin 0 -> 8 bytes .../caches-jvm/lookups/id-to-file.tab | Bin 0 -> 4096 bytes .../lookups/id-to-file.tab.keystream | Bin 0 -> 4096 bytes .../lookups/id-to-file.tab.keystream.len | Bin 0 -> 8 bytes .../caches-jvm/lookups/id-to-file.tab.len | Bin 0 -> 8 bytes .../lookups/id-to-file.tab.values.at | Bin 0 -> 159 bytes .../caches-jvm/lookups/id-to-file.tab_i | Bin 0 -> 32768 bytes .../caches-jvm/lookups/id-to-file.tab_i.len | Bin 0 -> 8 bytes .../cacheable/caches-jvm/lookups/lookups.tab | Bin 0 -> 4096 bytes .../caches-jvm/lookups/lookups.tab.keystream | Bin 0 -> 4096 bytes .../lookups/lookups.tab.keystream.len | Bin 0 -> 8 bytes .../caches-jvm/lookups/lookups.tab.len | Bin 0 -> 8 bytes .../caches-jvm/lookups/lookups.tab.values.at | Bin 0 -> 1076 bytes .../caches-jvm/lookups/lookups.tab_i | Bin 0 -> 32768 bytes .../caches-jvm/lookups/lookups.tab_i.len | Bin 0 -> 8 bytes .../compileKotlin/cacheable/last-build.bin | Bin 0 -> 18 bytes .../shrunk-classpath-snapshot.bin | Bin 0 -> 15234 bytes .../local-state/build-history.bin | Bin 0 -> 500 bytes app/utils/build/libs/utils.jar | Bin 0 -> 796549 bytes .../build/resources/main/Alloys/agpalilik.txt | 347 +++++++ .../build/resources/main/Alloys/armanty.txt | 347 +++++++ .../resources/main/Alloys/bacubirito.txt | 347 +++++++ .../build/resources/main/Alloys/bondoc.txt | 347 +++++++ .../build/resources/main/Alloys/brahin.txt | 347 +++++++ .../build/resources/main/Alloys/esquel.txt | 347 +++++++ .../build/resources/main/Alloys/gancedo.txt | 347 +++++++ .../build/resources/main/Alloys/hoba.txt | 347 +++++++ .../build/resources/main/Alloys/imilac.txt | 347 +++++++ .../build/resources/main/Alloys/jepara.txt | 347 +++++++ .../build/resources/main/Alloys/mbozi.txt | 347 +++++++ .../build/resources/main/Alloys/morito.txt | 347 +++++++ .../build/resources/main/Alloys/omolon.txt | 347 +++++++ .../build/resources/main/Alloys/order.txt | 16 + .../build/resources/main/Alloys/seymchan.txt | 347 +++++++ .../build/resources/main/Alloys/tagish.txt | 347 +++++++ .../build/resources/main/Alloys/youxi.txt | 347 +++++++ .../resources/main/Minerals/antimony.txt | 347 +++++++ .../build/resources/main/Minerals/bauxite.txt | 347 +++++++ .../build/resources/main/Minerals/beryl.txt | 347 +++++++ .../build/resources/main/Minerals/calcite.txt | 347 +++++++ .../resources/main/Minerals/feldspar.txt | 347 +++++++ .../resources/main/Minerals/fluorite.txt | 347 +++++++ .../build/resources/main/Minerals/gabbro.txt | 347 +++++++ .../build/resources/main/Minerals/galena.txt | 347 +++++++ .../build/resources/main/Minerals/garnet.txt | 347 +++++++ .../build/resources/main/Minerals/jasper.txt | 347 +++++++ .../build/resources/main/Minerals/kyanite.txt | 347 +++++++ .../resources/main/Minerals/malachite.txt | 347 +++++++ .../build/resources/main/Minerals/olivine.txt | 347 +++++++ .../build/resources/main/Minerals/order.txt | 16 + .../resources/main/Minerals/orpiment.txt | 347 +++++++ .../build/resources/main/Minerals/pyrite.txt | 347 +++++++ .../resources/main/Minerals/serandite.txt | 347 +++++++ app/utils/build/resources/main/PDE.properties | 673 +++++++++++++ .../build/resources/main/PDE_ar.properties | 597 +++++++++++ .../build/resources/main/PDE_ca.properties | 657 +++++++++++++ .../build/resources/main/PDE_de.properties | 426 ++++++++ .../build/resources/main/PDE_el.properties | 497 ++++++++++ .../build/resources/main/PDE_en.properties | 1 + .../build/resources/main/PDE_es.properties | 658 +++++++++++++ .../build/resources/main/PDE_fr.properties | 547 +++++++++++ .../build/resources/main/PDE_it.properties | 592 +++++++++++ .../build/resources/main/PDE_ja.properties | 597 +++++++++++ .../build/resources/main/PDE_ko.properties | 324 ++++++ .../build/resources/main/PDE_nl.properties | 327 ++++++ .../build/resources/main/PDE_pt.properties | 265 +++++ .../build/resources/main/PDE_ru.properties | 607 ++++++++++++ .../build/resources/main/PDE_tr.properties | 244 +++++ .../build/resources/main/PDE_uk.properties | 654 ++++++++++++ .../build/resources/main/PDE_zh-CN.properties | 316 ++++++ .../build/resources/main/PDE_zh-TW.properties | 636 ++++++++++++ .../resources/main/ProcessingSans-Bold.ttf | Bin 0 -> 336072 bytes .../resources/main/ProcessingSans-LICENSE.md | 8 + .../resources/main/ProcessingSans-Regular.ttf | Bin 0 -> 337024 bytes .../resources/main/SourceCodePro-Bold.ttf | Bin 0 -> 197004 bytes .../resources/main/SourceCodePro-LICENSE.txt | 93 ++ .../resources/main/SourceCodePro-Regular.ttf | Bin 0 -> 197644 bytes app/utils/build/resources/main/defaults.txt | 309 ++++++ app/utils/build/resources/main/mini.svg | 20 + app/utils/build/resources/main/theme.txt | 347 +++++++ .../stash-dir/Base.class.uniqueId1 | Bin 0 -> 2418 bytes .../stash-dir/Main.class.uniqueId0 | Bin 0 -> 1858 bytes .../stash-dir/Preferences.class.uniqueId2 | Bin 0 -> 9289 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 8800 bytes app/utils/build/tmp/jar/MANIFEST.MF | 2 + .../src/main/java/processing/utils/Base.java | 72 ++ .../src/main/java/processing/utils/Main.java | 27 + .../main/java/processing/utils/Messages.kt | 144 +++ .../java/processing/utils}/Preferences.java | 22 +- .../processing/utils/SettingsResolver.java | 35 + .../src/main/java/processing/utils}/Util.java | 8 +- .../settingslocation/DefaultLocation.java | 17 + .../utils/settingslocation/LinuxLocation.java | 60 ++ .../utils/settingslocation/MacLocation.java | 25 + .../settingslocation/WindowsLocation.java | 69 ++ app/utils/src/main/resources/defaults.txt | 309 ++++++ build/shared/lib/languages/PDE.properties | 2 +- build/shared/lib/languages/PDE_ar.properties | 876 ++++++++--------- build/shared/lib/languages/PDE_ca.properties | 2 +- build/shared/lib/languages/PDE_de.properties | 2 +- build/shared/lib/languages/PDE_el.properties | 2 +- build/shared/lib/languages/PDE_es.properties | 2 +- build/shared/lib/languages/PDE_fr.properties | 2 +- build/shared/lib/languages/PDE_it.properties | 2 +- build/shared/lib/languages/PDE_ja.properties | 2 +- build/shared/lib/languages/PDE_ko.properties | 2 +- build/shared/lib/languages/PDE_nl.properties | 2 +- build/shared/lib/languages/PDE_pt.properties | 2 +- build/shared/lib/languages/PDE_ru.properties | 902 ++++++++--------- build/shared/lib/languages/PDE_tr.properties | 2 +- build/shared/lib/languages/PDE_uk.properties | 928 +++++++++--------- .../shared/lib/languages/PDE_zh-CN.properties | 388 ++++---- .../shared/lib/languages/PDE_zh-TW.properties | 538 +++++----- java/build.gradle.kts | 1 + java/src/processing/mode/java/ASTUtils.java | 14 +- java/src/processing/mode/java/ASTViewer.java | 4 +- java/src/processing/mode/java/Commander.java | 5 +- .../java/CompileErrorMessageSimplifier.java | 16 +- java/src/processing/mode/java/Compiler.java | 2 +- .../mode/java/CompletionGenerator.java | 18 +- .../processing/mode/java/CompletionPanel.java | 11 +- .../src/processing/mode/java/InspectMode.java | 12 +- java/src/processing/mode/java/JavaBuild.java | 5 +- java/src/processing/mode/java/JavaEditor.java | 40 +- java/src/processing/mode/java/JavaMode.java | 6 +- .../processing/mode/java/JavaTextArea.java | 32 +- .../processing/mode/java/PreprocService.java | 22 +- .../mode/java/RuntimePathBuilder.java | 3 +- .../mode/java/debug/ArrayFieldNode.java | 4 +- .../processing/mode/java/debug/Debugger.java | 20 +- .../processing/mode/java/debug/FieldNode.java | 6 +- .../mode/java/debug/LineBreakpoint.java | 10 +- .../processing/mode/java/debug/LineID.java | 4 +- .../mode/java/debug/LocalVariableNode.java | 4 +- .../mode/java/debug/VariableInspector.java | 6 +- .../processing/mode/java/lsp/PdeAdapter.java | 3 +- .../processing/mode/java/runner/Runner.java | 18 +- settings.gradle.kts | 1 + 266 files changed, 23802 insertions(+), 2663 deletions(-) rename app/src/processing/app/{Messages.kt => AppMessages.kt} (63%) create mode 100644 app/src/processing/app/AppPreferences.java create mode 100644 app/utils/build.gradle.kts create mode 100644 app/utils/build/classes/java/main/processing/utils/Base.class create mode 100644 app/utils/build/classes/java/main/processing/utils/Main.class create mode 100644 app/utils/build/classes/java/main/processing/utils/Preferences.class create mode 100644 app/utils/build/classes/java/main/processing/utils/SettingsResolver.class create mode 100644 app/utils/build/classes/java/main/processing/utils/Util.class create mode 100644 app/utils/build/classes/java/main/processing/utils/settingslocation/DefaultLocation.class create mode 100644 app/utils/build/classes/java/main/processing/utils/settingslocation/LinuxLocation.class create mode 100644 app/utils/build/classes/java/main/processing/utils/settingslocation/MacLocation.class create mode 100644 app/utils/build/classes/java/main/processing/utils/settingslocation/WindowsLocation.class create mode 100644 app/utils/build/classes/kotlin/main/META-INF/utils.kotlin_module create mode 100644 app/utils/build/classes/kotlin/main/processing/utils/Messages$Companion.class create mode 100644 app/utils/build/classes/kotlin/main/processing/utils/Messages.class create mode 100644 app/utils/build/classes/kotlin/main/processing/utils/MessagesKt.class create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len create mode 100644 app/utils/build/kotlin/compileKotlin/cacheable/last-build.bin create mode 100644 app/utils/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin create mode 100644 app/utils/build/kotlin/compileKotlin/local-state/build-history.bin create mode 100644 app/utils/build/libs/utils.jar create mode 100644 app/utils/build/resources/main/Alloys/agpalilik.txt create mode 100644 app/utils/build/resources/main/Alloys/armanty.txt create mode 100644 app/utils/build/resources/main/Alloys/bacubirito.txt create mode 100644 app/utils/build/resources/main/Alloys/bondoc.txt create mode 100644 app/utils/build/resources/main/Alloys/brahin.txt create mode 100644 app/utils/build/resources/main/Alloys/esquel.txt create mode 100644 app/utils/build/resources/main/Alloys/gancedo.txt create mode 100644 app/utils/build/resources/main/Alloys/hoba.txt create mode 100644 app/utils/build/resources/main/Alloys/imilac.txt create mode 100644 app/utils/build/resources/main/Alloys/jepara.txt create mode 100644 app/utils/build/resources/main/Alloys/mbozi.txt create mode 100644 app/utils/build/resources/main/Alloys/morito.txt create mode 100644 app/utils/build/resources/main/Alloys/omolon.txt create mode 100644 app/utils/build/resources/main/Alloys/order.txt create mode 100644 app/utils/build/resources/main/Alloys/seymchan.txt create mode 100644 app/utils/build/resources/main/Alloys/tagish.txt create mode 100644 app/utils/build/resources/main/Alloys/youxi.txt create mode 100644 app/utils/build/resources/main/Minerals/antimony.txt create mode 100644 app/utils/build/resources/main/Minerals/bauxite.txt create mode 100644 app/utils/build/resources/main/Minerals/beryl.txt create mode 100644 app/utils/build/resources/main/Minerals/calcite.txt create mode 100644 app/utils/build/resources/main/Minerals/feldspar.txt create mode 100644 app/utils/build/resources/main/Minerals/fluorite.txt create mode 100644 app/utils/build/resources/main/Minerals/gabbro.txt create mode 100644 app/utils/build/resources/main/Minerals/galena.txt create mode 100644 app/utils/build/resources/main/Minerals/garnet.txt create mode 100644 app/utils/build/resources/main/Minerals/jasper.txt create mode 100644 app/utils/build/resources/main/Minerals/kyanite.txt create mode 100644 app/utils/build/resources/main/Minerals/malachite.txt create mode 100644 app/utils/build/resources/main/Minerals/olivine.txt create mode 100644 app/utils/build/resources/main/Minerals/order.txt create mode 100644 app/utils/build/resources/main/Minerals/orpiment.txt create mode 100644 app/utils/build/resources/main/Minerals/pyrite.txt create mode 100644 app/utils/build/resources/main/Minerals/serandite.txt create mode 100644 app/utils/build/resources/main/PDE.properties create mode 100644 app/utils/build/resources/main/PDE_ar.properties create mode 100644 app/utils/build/resources/main/PDE_ca.properties create mode 100644 app/utils/build/resources/main/PDE_de.properties create mode 100644 app/utils/build/resources/main/PDE_el.properties create mode 100644 app/utils/build/resources/main/PDE_en.properties create mode 100644 app/utils/build/resources/main/PDE_es.properties create mode 100644 app/utils/build/resources/main/PDE_fr.properties create mode 100644 app/utils/build/resources/main/PDE_it.properties create mode 100644 app/utils/build/resources/main/PDE_ja.properties create mode 100644 app/utils/build/resources/main/PDE_ko.properties create mode 100644 app/utils/build/resources/main/PDE_nl.properties create mode 100644 app/utils/build/resources/main/PDE_pt.properties create mode 100644 app/utils/build/resources/main/PDE_ru.properties create mode 100644 app/utils/build/resources/main/PDE_tr.properties create mode 100644 app/utils/build/resources/main/PDE_uk.properties create mode 100644 app/utils/build/resources/main/PDE_zh-CN.properties create mode 100644 app/utils/build/resources/main/PDE_zh-TW.properties create mode 100644 app/utils/build/resources/main/ProcessingSans-Bold.ttf create mode 100644 app/utils/build/resources/main/ProcessingSans-LICENSE.md create mode 100644 app/utils/build/resources/main/ProcessingSans-Regular.ttf create mode 100644 app/utils/build/resources/main/SourceCodePro-Bold.ttf create mode 100644 app/utils/build/resources/main/SourceCodePro-LICENSE.txt create mode 100644 app/utils/build/resources/main/SourceCodePro-Regular.ttf create mode 100644 app/utils/build/resources/main/defaults.txt create mode 100644 app/utils/build/resources/main/mini.svg create mode 100644 app/utils/build/resources/main/theme.txt create mode 100644 app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Base.class.uniqueId1 create mode 100644 app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Main.class.uniqueId0 create mode 100644 app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Preferences.class.uniqueId2 create mode 100644 app/utils/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 app/utils/build/tmp/jar/MANIFEST.MF create mode 100644 app/utils/src/main/java/processing/utils/Base.java create mode 100644 app/utils/src/main/java/processing/utils/Main.java create mode 100644 app/utils/src/main/java/processing/utils/Messages.kt rename app/{src/processing/app => utils/src/main/java/processing/utils}/Preferences.java (95%) create mode 100644 app/utils/src/main/java/processing/utils/SettingsResolver.java rename app/{src/processing/app => utils/src/main/java/processing/utils}/Util.java (99%) create mode 100644 app/utils/src/main/java/processing/utils/settingslocation/DefaultLocation.java create mode 100644 app/utils/src/main/java/processing/utils/settingslocation/LinuxLocation.java create mode 100644 app/utils/src/main/java/processing/utils/settingslocation/MacLocation.java create mode 100644 app/utils/src/main/java/processing/utils/settingslocation/WindowsLocation.java create mode 100644 app/utils/src/main/resources/defaults.txt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c40365758d..d03763751e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -97,6 +97,7 @@ compose.desktop { dependencies { implementation(project(":core")) + implementation(project(":app:utils")) runtimeOnly(project(":java")) implementation(libs.flatlaf) diff --git a/app/src/processing/app/Messages.kt b/app/src/processing/app/AppMessages.kt similarity index 63% rename from app/src/processing/app/Messages.kt rename to app/src/processing/app/AppMessages.kt index cae54e6e97..589967cfa6 100644 --- a/app/src/processing/app/Messages.kt +++ b/app/src/processing/app/AppMessages.kt @@ -19,6 +19,8 @@ package processing.app import processing.app.ui.Toolkit +import processing.utils.Messages + import java.awt.EventQueue import java.awt.Frame import java.io.PrintWriter @@ -26,45 +28,8 @@ import java.io.StringWriter import javax.swing.JFrame import javax.swing.JOptionPane -class Messages { +class AppMessages : Messages() { companion object { - /** - * "No cookie for you" type messages. Nothing fatal or all that - * much of a bummer, but something to notify the user about. - */ - @JvmStatic - fun showMessage(title: String = "Message", message: String) { - if (Base.isCommandLine()) { - println("$title: $message") - } else { - JOptionPane.showMessageDialog( - Frame(), message, title, - JOptionPane.INFORMATION_MESSAGE - ) - } - } - - - /** - * Non-fatal error message with optional stack trace side dish. - */ - /** - * Non-fatal error message. - */ - @JvmStatic - @JvmOverloads - fun showWarning(title: String = "Warning", message: String, e: Throwable? = null) { - if (Base.isCommandLine()) { - println("$title: $message") - } else { - JOptionPane.showMessageDialog( - Frame(), message, title, - JOptionPane.WARNING_MESSAGE - ) - } - e?.printStackTrace() - } - /** * Non-fatal error message with two levels of formatting. * Unlike the others, this is non-blocking and will run later on the EDT. @@ -92,26 +57,6 @@ class Messages { } - /** - * Show an error message that's actually fatal to the program. - * This is an error that can't be recovered. Use showWarning() - * for errors that allow P5 to continue running. - */ - @JvmStatic - fun showError(title: String = "Error", message: String, e: Throwable?) { - if (Base.isCommandLine()) { - System.err.println("$title: $message") - } else { - JOptionPane.showMessageDialog( - Frame(), message, title, - JOptionPane.ERROR_MESSAGE - ) - } - e?.printStackTrace() - System.exit(1) - } - - /** * Warning window that includes the stack trace. */ @@ -218,56 +163,6 @@ class Messages { return -1 } - - // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - @JvmStatic - @Deprecated("Use log() instead") - fun log(from: Any, message: String) { - if (Base.DEBUG) { - val callingClass = Throwable() - .stackTrace[2] - .className - .formatClassName() - println("$callingClass: $message") - } - } - - @JvmStatic - fun log(message: String?) { - if (Base.DEBUG) { - val callingClass = Throwable() - .stackTrace[2] - .className - .formatClassName() - println("$callingClass$message") - } - } - - @JvmStatic - fun logf(message: String?, vararg args: Any?) { - if (Base.DEBUG) { - val callingClass = Throwable() - .stackTrace[2] - .className - .formatClassName() - System.out.printf("$callingClass$message", *args) - } - } - - @JvmStatic - @JvmOverloads - fun err(message: String?, e: Throwable? = null) { - if (Base.DEBUG) { - if (message != null) { - val callingClass = Throwable() - .stackTrace[4] - .className - .formatClassName() - System.err.println("$callingClass$message") - } - e?.printStackTrace() - } - } } } diff --git a/app/src/processing/app/AppPreferences.java b/app/src/processing/app/AppPreferences.java new file mode 100644 index 0000000000..7307178d5e --- /dev/null +++ b/app/src/processing/app/AppPreferences.java @@ -0,0 +1,30 @@ +package processing.app; + +import processing.utils.Preferences; +import processing.app.ui.Toolkit; + +import java.awt.*; + +public class AppPreferences extends Preferences { + + static public void init() { + Preferences.init(); + + // For CJK users, enable IM support by default + if (Language.useInputMethod() && !getBoolean("editor.input_method_support")) { + setBoolean("editor.input_method_support", true); + } + } + + + static public Font getFont(String familyAttr, String sizeAttr, int style) { + int fontSize = getInteger(sizeAttr); + + String fontFamily = get(familyAttr); + if ("processing.mono".equals(fontFamily) || + Toolkit.getMonoFontName().equals(fontFamily)) { + return Toolkit.getMonoFont(fontSize, style); + } + return new Font(fontFamily, style, fontSize); + } +} diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index b5aa599b98..96b0615396 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -43,6 +43,7 @@ import processing.app.ui.Toolkit; import processing.core.*; import processing.data.StringList; +import processing.utils.Util; /** * The base class for the main processing application. @@ -67,8 +68,6 @@ public class Base { */ static public boolean DEBUG = System.getenv().containsKey("DEBUG"); - /** True if running via Commander. */ - static private boolean commandLine; /** * If settings.txt is present inside lib, it will be used to override @@ -124,7 +123,7 @@ public class Base { static public void main(final String[] args) { - Messages.log("Starting Processing version" + VERSION_NAME + " revision "+ REVISION); + AppMessages.log("Starting Processing version" + VERSION_NAME + " revision "+ REVISION); EventQueue.invokeLater(() -> { try { createAndShowGUI(args); @@ -146,7 +145,7 @@ static public void main(final String[] args) { missing = "core.jar"; } if (missing != null) { - Messages.showError("Necessary files are missing", + AppMessages.showError("Necessary files are missing", "A file required by Processing (" + missing + ") is missing.\n\n" + "Make sure that you're not trying to run Processing from inside\n" + "the .zip file you downloaded, and check that Windows Defender\n" + @@ -155,7 +154,7 @@ static public void main(final String[] args) { "It is not, but Microsoft has ignored our pleas for help.)", t); } } - Messages.showTrace("Unknown Problem", + AppMessages.showTrace("Unknown Problem", "A serious error happened during startup. Please report:\n" + "http://github.com/processing/processing4/issues/new", t, true); } @@ -202,20 +201,20 @@ static private void createAndShowGUI(String[] args) { if (!folder.exists()) { success = folder.mkdirs(); if (!success) { - Messages.err("Could not create " + folder + " to store settings."); + AppMessages.err("Could not create " + folder + " to store settings."); } } if (success) { if (!folder.canRead()) { - Messages.err("Cannot read from " + folder); + AppMessages.err("Cannot read from " + folder); } else if (!folder.canWrite()) { - Messages.err("Cannot write to " + folder); + AppMessages.err("Cannot write to " + folder); } else { settingsOverride = folder.getAbsoluteFile(); } } } catch (IOException e) { - Messages.err("Error while reading the settings.txt file", e); + AppMessages.err("Error while reading the settings.txt file", e); } } @@ -247,7 +246,7 @@ static private void createAndShowGUI(String[] args) { Language.init(); // run static initialization that grabs all the prefs - Preferences.init(); + AppPreferences.init(); // long t2 = System.currentTimeMillis(); @@ -257,7 +256,7 @@ static private void createAndShowGUI(String[] args) { Platform.setLookAndFeel(); Platform.setInterfaceZoom(); } catch (Exception e) { - Messages.err("Error while setting up the interface", e); //$NON-NLS-1$ + AppMessages.err("Error while setting up the interface", e); //$NON-NLS-1$ } // long t3 = System.currentTimeMillis(); @@ -267,7 +266,7 @@ static private void createAndShowGUI(String[] args) { // long t4 = System.currentTimeMillis(); - // Load colors for UI elements. This must happen after Preferences.init() + // Load colors for UI elements. This must happen after AppPreferences.init() // (so that fonts are set) and locateSketchbookFolder() so that a // theme.txt file in the user's sketchbook folder is picked up. Theme.init(); @@ -287,7 +286,7 @@ static private void createAndShowGUI(String[] args) { untitledFolder = new File(Util.getProcessingTemp(), uuid); } catch (IOException e) { - Messages.showError("Trouble without a name", + AppMessages.showError("Trouble without a name", "Could not create a place to store untitled sketches.\n" + "That's gonna prevent us from continuing.", e); } @@ -295,11 +294,11 @@ static private void createAndShowGUI(String[] args) { // long t5 = System.currentTimeMillis(); // long t6 = 0; // replaced below, just needs decl outside try { } - Messages.log("About to create Base..."); //$NON-NLS-1$ + AppMessages.log("About to create Base..."); //$NON-NLS-1$ try { final Base base = new Base(args); base.updateTheme(); - Messages.log("Base() constructor succeeded"); + AppMessages.log("Base() constructor succeeded"); // t6 = System.currentTimeMillis(); // Prevent more than one copy of the PDE from running. @@ -317,10 +316,10 @@ static private void createAndShowGUI(String[] args) { // show this one so that it's not truncated in the error window. err = t.getCause(); } - Messages.showTrace("We're off on the wrong foot", + AppMessages.showTrace("We're off on the wrong foot", "An error occurred during startup.", err, true); } - Messages.log("Done creating Base..."); //$NON-NLS-1$ + AppMessages.log("Done creating Base..."); //$NON-NLS-1$ // long t10 = System.currentTimeMillis(); // System.out.println("startup took " + (t2-t1) + " " + (t3-t2) + " " + (t4-t3) + " " + (t5-t4) + " " + (t6-t5) + " " + (t10-t6) + " ms"); @@ -374,11 +373,11 @@ public void updateTheme() { static private void handleWelcomeScreen(Base base) { // Needs to be shown after the first editor window opens, so that it // shows up on top, and doesn't prevent an editor window from opening. - if (Preferences.getBoolean("welcome.four.show")) { + if (AppPreferences.getBoolean("welcome.four.show")) { try { new Welcome(base); } catch (IOException e) { - Messages.showTrace("Unwelcoming", + AppMessages.showTrace("Unwelcoming", "Please report this error to\n" + "https://github.com/processing/processing4/issues", e, false); } @@ -404,7 +403,7 @@ static private void handleCrustyDisplay() { if (res % 96 != 0) { // fractional dpi scaling on a low-res screen System.out.println("If the editor cursor is in the wrong place or the interface is blocky or fuzzy,"); - System.out.println("open Preferences and select the “Disable HiDPI Scaling” option to fix it."); + System.out.println("open AppPreferences and select the “Disable HiDPI Scaling” option to fix it."); } } } @@ -426,7 +425,7 @@ static private void handleTempCleaning() { static public void cleanTempFolders() { try { final File tempDir = Util.getProcessingTemp(); - final int days = Preferences.getInteger("temp.days"); + final int days = AppPreferences.getInteger("temp.days"); if (days > 0) { final long now = new Date().getTime(); @@ -472,12 +471,12 @@ static public String getVersionName() { public static void setCommandLine() { - commandLine = true; + System.setProperty("processing.cli", "true"); } static public boolean isCommandLine() { - return commandLine; + return Boolean.getBoolean("processing.cli"); } @@ -502,20 +501,20 @@ public Base(String[] args) throws Exception { Recent.init(this); long t4 = System.currentTimeMillis(); - String lastModeIdentifier = Preferences.get("mode.last"); //$NON-NLS-1$ + String lastModeIdentifier = AppPreferences.get("mode.last"); //$NON-NLS-1$ if (lastModeIdentifier == null) { nextMode = getDefaultMode(); - Messages.log("Nothing set for last.sketch.mode, using default."); //$NON-NLS-1$ + AppMessages.log("Nothing set for last.sketch.mode, using default."); //$NON-NLS-1$ } else { for (Mode m : getModeList()) { if (m.getIdentifier().equals(lastModeIdentifier)) { - Messages.logf("Setting next mode to %s.", lastModeIdentifier); //$NON-NLS-1$ + AppMessages.logf("Setting next mode to %s.", lastModeIdentifier); //$NON-NLS-1$ nextMode = m; } } if (nextMode == null) { nextMode = getDefaultMode(); - Messages.logf("Could not find mode %s, using default.", lastModeIdentifier); //$NON-NLS-1$ + AppMessages.logf("Could not find mode %s, using default.", lastModeIdentifier); //$NON-NLS-1$ } } @@ -538,7 +537,7 @@ public Base(String[] args) throws Exception { // Check if any files were passed in on the command line for (int i = 0; i < args.length; i++) { - Messages.logf("Parsing command line... args[%d] = '%s'", i, args[i]); + AppMessages.logf("Parsing command line... args[%d] = '%s'", i, args[i]); String path = args[i]; // Fix a problem with systems that use a non-ASCII languages. Paths are @@ -549,7 +548,7 @@ public Base(String[] args) throws Exception { try { File file = new File(args[i]); path = file.getCanonicalPath(); - Messages.logf("Changing %s to canonical %s", i, args[i], path); + AppMessages.logf("Changing %s to canonical %s", i, args[i], path); } catch (IOException e) { e.printStackTrace(); } @@ -563,10 +562,10 @@ public Base(String[] args) throws Exception { // Create a new empty window (will be replaced with any files to be opened) if (!opened) { - Messages.log("Calling handleNew() to open a new window"); + AppMessages.log("Calling handleNew() to open a new window"); handleNew(); } else { - Messages.log("No handleNew(), something passed on the command line"); + AppMessages.log("No handleNew(), something passed on the command line"); } long t8 = System.currentTimeMillis(); @@ -578,10 +577,10 @@ public Base(String[] args) throws Exception { cl.downloadAvailableList(this, new ContribProgress(null)); long t9 = System.currentTimeMillis(); - Messages.log("core modes: " + (t2b-t2) + + AppMessages.log("core modes: " + (t2b-t2) + ", contrib modes: " + (t2c-t2b) + ", contrib ex: " + (t2c-t2b)); - Messages.log("base took " + (t2-t1) + " " + (t3-t2) + " " + (t4-t3) + + AppMessages.log("base took " + (t2-t1) + " " + (t3-t2) + " " + (t4-t3) + " " + (t5-t4) + " t6-t5=" + (t6-t5) + " " + (t7-t6) + " handleNew=" + (t8-t7) + " " + (t9-t8) + " ms"); } @@ -660,7 +659,7 @@ public void handleActivated(Editor whichEditor) { // make this the next mode to be loaded nextMode = whichEditor.getMode(); - Preferences.set("mode.last", nextMode.getIdentifier()); //$NON-NLS-1$ + AppPreferences.set("mode.last", nextMode.getIdentifier()); //$NON-NLS-1$ } @@ -760,7 +759,7 @@ void buildCoreModes() { ModeContribution.load(this, Platform.getContentFile("modes/java"), getDefaultModeIdentifier()); if (javaModeContrib == null) { - Messages.showError("Startup Error", + AppMessages.showError("Startup Error", "Could not load Java Mode, please reinstall Processing.", new Exception("ModeContribution.load() was null")); @@ -806,7 +805,7 @@ void rebuildContribModes() { System.err.println(folder.getName() + " could not be loaded and may not compatible with this version of Processing"); if (DEBUG) ite.printStackTrace(); } catch (IgnorableException ig) { - Messages.log(ig.getMessage()); + AppMessages.log(ig.getMessage()); if (DEBUG) ig.printStackTrace(); } catch (Throwable e) { System.err.println("Could not load Mode from " + folder); @@ -902,19 +901,19 @@ public void rebuildToolList() { } catch (VerifyError | AbstractMethodError ve) { System.err.println("\"" + tool.getMenuTitle() + "\" is not " + "compatible with this version of Processing"); - Messages.err("Incompatible Tool found during tool.init()", ve); + AppMessages.err("Incompatible Tool found during tool.init()", ve); } catch (NoSuchMethodError nsme) { System.err.println("\"" + tool.getMenuTitle() + "\" is not " + "compatible with this version of Processing"); System.err.println("The " + nsme.getMessage() + " method no longer exists."); - Messages.err("Incompatible Tool found during tool.init()", nsme); + AppMessages.err("Incompatible Tool found during tool.init()", nsme); } catch (NoClassDefFoundError ncdfe) { System.err.println("\"" + tool.getMenuTitle() + "\" is not " + "compatible with this version of Processing"); System.err.println("The " + ncdfe.getMessage() + " class is no longer available."); - Messages.err("Incompatible Tool found during tool.init()", ncdfe); + AppMessages.err("Incompatible Tool found during tool.init()", ncdfe); } catch (Error | Exception e) { System.err.println("An error occurred inside \"" + tool.getMenuTitle() + "\""); @@ -986,10 +985,10 @@ JMenuItem createToolItem(final Tool tool) { //, Map toolItems tool.run(); } catch (NoSuchMethodError | NoClassDefFoundError ne) { - Messages.showWarning("Tool out of date", + AppMessages.showWarning("Tool out of date", tool.getMenuTitle() + " is not compatible with this version of Processing.\n" + "Try updating the Mode or contact its author for a new version.", ne); - Messages.err("Incompatible tool found during tool.run()", ne); + AppMessages.err("Incompatible tool found during tool.run()", ne); item.setEnabled(false); } catch (Exception ex) { @@ -1141,7 +1140,7 @@ public void handleNew() { handleOpenUntitled(path); } catch (IOException e) { - Messages.showTrace("That's new to me", + AppMessages.showTrace("That's new to me", "A strange and unexplainable error occurred\n" + "while trying to create a new sketch.", e, false); } @@ -1165,7 +1164,7 @@ public void handleOpenPrompt() { final String prompt = Language.text("open"); - if (Preferences.getBoolean("chooser.files.native")) { //$NON-NLS-1$ + if (AppPreferences.getBoolean("chooser.files.native")) { //$NON-NLS-1$ // use the front-most window frame for placing file dialog FileDialog openDialog = new FileDialog(activeEditor, prompt, FileDialog.LOAD); @@ -1260,14 +1259,14 @@ private void openContribBundle(String path) { Editor editor = getActiveEditor(); if (editor == null) { // Shouldn't really happen, but if it's still null, it's a no-go - Messages.showWarning("Failure is the only option", + AppMessages.showWarning("Failure is the only option", "Please open an Editor window before installing an extension."); } else { File contribFile = new File(path); String baseName = contribFile.getName(); baseName = baseName.substring(0, baseName.length() - CONTRIB_BUNDLE_EXT.length()); int result = - Messages.showYesNoQuestion(editor, "How to Handle " + CONTRIB_BUNDLE_EXT, + AppMessages.showYesNoQuestion(editor, "How to Handle " + CONTRIB_BUNDLE_EXT, "Install " + baseName + "?", "Libraries, Modes, and Tools should
" + "only be installed from trusted sources."); @@ -1293,7 +1292,7 @@ private void openContribBundle(String path) { }); } catch (IOException e) { EventQueue.invokeLater(() -> - Messages.showWarning("Exception During Installation", + AppMessages.showWarning("Exception During Installation", "Could not install contrib from " + path, e)); } }).start(); @@ -1362,7 +1361,7 @@ private File moveLikeSketchFolder(File pdeFile, String baseName) throws IOExcept // remove the original file, so user doesn't get confused if (!pdeFile.delete()) { - Messages.err("Could not delete " + pdeFile); + AppMessages.err("Could not delete " + pdeFile); } // update with the new path @@ -1482,7 +1481,7 @@ public Editor handleOpen(String path) { nextMode = mode; } else { ContributionManager.openModes(); - Messages.showWarning("Missing Mode", + AppMessages.showWarning("Missing Mode", "You must first install " + props.get("mode") + " Mode to use this sketch."); return null; } @@ -1511,7 +1510,7 @@ public Editor handleOpen(String path) { // Mode that it's using. (In 4.0b8, this became the fall-through case.) if (!Sketch.isSanitaryName(pdeFile.getName())) { - Messages.showWarning("You're tricky, but not tricky enough", + AppMessages.showWarning("You're tricky, but not tricky enough", pdeFile.getName() + " is not a valid name for sketch code.\n" + "Better to stick to ASCII, no spaces, and make sure\n" + "it doesn't start with a number.", null); @@ -1590,7 +1589,7 @@ public Editor handleOpen(String path) { return handleOpenInternal(pdeFile.getAbsolutePath(), false); } catch (IOException e) { - Messages.showWarning("sketch.properties", + AppMessages.showWarning("sketch.properties", "Error while reading sketch.properties from\n" + parentFolder, e); return null; } @@ -1644,19 +1643,19 @@ protected Editor handleOpenInternal(String path, boolean untitled) { } catch (EditorException ee) { if (ee.getMessage() != null) { // null if the user canceled - Messages.showWarning("Error opening sketch", ee.getMessage(), ee); + AppMessages.showWarning("Error opening sketch", ee.getMessage(), ee); } } catch (NoSuchMethodError me) { - Messages.showWarning("Mode out of date", + AppMessages.showWarning("Mode out of date", nextMode.getTitle() + " is not compatible with this version of Processing.\n" + "Try updating the Mode or contact its author for a new version.", me); } catch (Throwable t) { if (nextMode.equals(getDefaultMode())) { - Messages.showTrace("Serious Problem", + AppMessages.showTrace("Serious Problem", "An unexpected, unknown, and unrecoverable error occurred\n" + "while opening a new editor window. Please report this.", t, true); } else { - Messages.showTrace("Mode Problems", + AppMessages.showTrace("Mode Problems", "A nasty error occurred while trying to use “" + nextMode.getTitle() + "”.\n" + "It may not be compatible with this version of Processing.\n" + "Try updating the Mode or contact its author for a new version.", t, false); @@ -1666,7 +1665,7 @@ protected Editor handleOpenInternal(String path, boolean untitled) { Mode defaultMode = getDefaultMode(); if (nextMode == defaultMode) { // unreachable? hopefully? - Messages.showError("Editor Problems", """ + AppMessages.showError("Editor Problems", """ An error occurred while trying to change modes. We'll have to quit for now because it's an unfortunate bit of indigestion with the default Mode. @@ -1687,7 +1686,7 @@ protected Editor handleOpenInternal(String path, boolean untitled) { } } } catch (Throwable t) { - Messages.showTrace("Terrible News", + AppMessages.showTrace("Terrible News", "A serious error occurred while " + "trying to create a new editor window.", t, nextMode == getDefaultMode()); // quit if default @@ -1787,7 +1786,7 @@ public boolean handleQuit() { editor.internalCloseRunner(); } // Save out the current prefs state - Preferences.save(); + AppPreferences.save(); // Finished with this guy Console.shutdown(); @@ -1866,7 +1865,7 @@ public void handleRestart() { } } } else { - Messages.showWarning("Cannot Restart", + AppMessages.showWarning("Cannot Restart", "Cannot automatically restart because the Processing\n" + "application has been renamed. Please quit and then restart manually."); } @@ -1961,7 +1960,7 @@ public void populateSketchbookMenu(JMenu menu) { try { found = addSketches(menu, sketchbookFolder); } catch (Exception e) { - Messages.showWarning("Sketchbook Menu Error", + AppMessages.showWarning("Sketchbook Menu Error", "An error occurred while trying to list the sketchbook.", e); } if (!found) { @@ -1980,7 +1979,7 @@ public void populateSketchbookMenu(JMenu menu) { * sketch should open in a new window. */ protected boolean addSketches(JMenu menu, File folder) { - Messages.log("scanning " + folder.getAbsolutePath()); + AppMessages.log("scanning " + folder.getAbsolutePath()); // skip .DS_Store files, etc. (this shouldn't actually be necessary) if (!folder.isDirectory()) { return false; @@ -2018,7 +2017,7 @@ protected boolean addSketches(JMenu menu, File folder) { if (new File(path).exists()) { handleOpen(path); } else { - Messages.showWarning("Sketch Disappeared",""" + AppMessages.showWarning("Sketch Disappeared",""" The selected sketch no longer exists. You may need to restart Processing to update the sketchbook menu.""", null); @@ -2076,7 +2075,7 @@ protected boolean addSketches(JMenu menu, File folder) { */ public boolean addSketches(DefaultMutableTreeNode node, File folder, boolean examples) throws IOException { - Messages.log("scanning " + folder.getAbsolutePath()); + AppMessages.log("scanning " + folder.getAbsolutePath()); // skip .DS_Store files, etc. (this shouldn't actually be necessary) if (!folder.isDirectory()) { return false; @@ -2188,7 +2187,7 @@ static private Mode findSketchMode(File folder, List modeList) { /** - * Show the Preferences window. + * Show the AppPreferences window. */ public void handlePrefs() { if (preferencesFrame == null) { @@ -2233,14 +2232,14 @@ static public File getSettingsFolder() { // create the folder if it doesn't exist already if (!settingsFolder.exists()) { if (!settingsFolder.mkdirs()) { - Messages.showError("Settings issues", + AppMessages.showError("Settings issues", "Processing cannot run because it could not\n" + "create a folder to store your settings at\n" + settingsFolder, null); } } } catch (Exception e) { - Messages.showTrace("An rare and unknowable thing happened", + AppMessages.showTrace("An rare and unknowable thing happened", "Could not get the settings folder. Please report:\n" + "http://github.com/processing/processing/issues/new", e, true); @@ -2273,11 +2272,11 @@ static public File getToolsFolder() { static public void locateSketchbookFolder() { // If a value is at least set, first check to see if the folder exists. // If it doesn't, warn the user that the sketchbook folder is being reset. - String sketchbookPath = Preferences.getSketchbookPath(); + String sketchbookPath = AppPreferences.getSketchbookPath(); if (sketchbookPath != null) { sketchbookFolder = new File(sketchbookPath); if (!sketchbookFolder.exists()) { - Messages.showWarning("Sketchbook folder disappeared",""" + AppMessages.showWarning("Sketchbook folder disappeared",""" The sketchbook folder no longer exists. Processing will switch to the default sketchbook location, and create a new sketchbook folder if @@ -2290,10 +2289,10 @@ static public void locateSketchbookFolder() { // If no path is set, get the default sketchbook folder for this platform if (sketchbookFolder == null) { sketchbookFolder = getDefaultSketchbookFolder(); - Preferences.setSketchbookPath(sketchbookFolder.getAbsolutePath()); + AppPreferences.setSketchbookPath(sketchbookFolder.getAbsolutePath()); if (!sketchbookFolder.exists()) { if (!sketchbookFolder.mkdirs()) { - Messages.showError("Could not create sketchbook", + AppMessages.showError("Could not create sketchbook", "Unable to create a sketchbook folder at\n" + sketchbookFolder + "\n" + "Try creating a folder at that path and restart Processing.", null); @@ -2308,7 +2307,7 @@ static public void locateSketchbookFolder() { public void setSketchbookFolder(File folder) { sketchbookFolder = folder; - Preferences.setSketchbookPath(folder.getAbsolutePath()); + AppPreferences.setSketchbookPath(folder.getAbsolutePath()); rebuildSketchbook(); makeSketchbookSubfolders(); } @@ -2372,7 +2371,7 @@ static protected File getDefaultSketchbookFolder() { } catch (Exception ignored) { } if (sketchbookFolder == null) { - Messages.showError("No sketchbook", + AppMessages.showError("No sketchbook", "Problem while trying to get the sketchbook", null); } else { @@ -2383,7 +2382,7 @@ static protected File getDefaultSketchbookFolder() { } if (!result) { - Messages.showError("You forgot your sketchbook", + AppMessages.showError("You forgot your sketchbook", "Processing cannot run because it could not\n" + "create a folder to store your sketchbook.", null); } diff --git a/app/src/processing/app/Console.java b/app/src/processing/app/Console.java index badc4bb6d7..4eb9968835 100644 --- a/app/src/processing/app/Console.java +++ b/app/src/processing/app/Console.java @@ -123,7 +123,7 @@ static public void startup() { static public void cleanTempFiles() { final File consoleDir = Base.getSettingsFile("console"); - final int days = Preferences.getInteger("console.temp.days"); + final int days = AppPreferences.getInteger("console.temp.days"); if (days > 0) { final long now = new Date().getTime(); diff --git a/app/src/processing/app/Language.java b/app/src/processing/app/Language.java index d55c8b710c..9c1dfd69bd 100644 --- a/app/src/processing/app/Language.java +++ b/app/src/processing/app/Language.java @@ -26,6 +26,7 @@ import processing.core.PApplet; import processing.data.StringList; +import processing.utils.Util; /** @@ -125,7 +126,7 @@ static private String[] listSupported() { throw new IOException("Could not read list of files inside " + baseFolder); } } catch (IOException e) { - Messages.showError("Translation Trouble", + AppMessages.showError("Translation Trouble", "There was a problem reading the language translations folder.\n" + "You may need to reinstall, or report if the problem persists.", e); } @@ -294,7 +295,7 @@ static public void addModeStrings(Mode mode) { } -// /** Set new language (called by Preferences) */ +// /** Set new language (called by AppPreferences) */ // static public void setLanguage(String language) { // this.language = language; // @@ -352,7 +353,7 @@ static class LanguageBundle { table = new HashMap<>(); // Disabling load from sketchbook in 4.2.1, because the path - // is not yet loaded from Preferences when languages are loaded. + // is not yet loaded from AppPreferences when languages are loaded. // Fixing that (i.e. reloading languages) makes the code a lot // more complicated for dubious benefit over simply editing the // language files in the download (i.e. still would not help diff --git a/app/src/processing/app/Library.java b/app/src/processing/app/Library.java index f23354284b..9a1e06512c 100644 --- a/app/src/processing/app/Library.java +++ b/app/src/processing/app/Library.java @@ -8,6 +8,7 @@ import processing.core.*; import processing.data.StringDict; import processing.data.StringList; +import processing.utils.Util; public class Library extends LocalContribution { @@ -197,7 +198,7 @@ private void handleExports() { if (oldName != null) { variantFolder = new File(libraryFolder, variant); if (variantFolder.exists()) { - Messages.log("Please update " + getName() + " for Processing 4. " + + AppMessages.log("Please update " + getName() + " for Processing 4. " + variantFolder + " is the older naming scheme."); } } @@ -344,18 +345,18 @@ public void addPackageList(Map> importToLibraryTable) { } else { if(!instructed) { instructed = true; - Messages.err("The library found in"); - Messages.err(getPath()); - Messages.err("conflicts with"); + AppMessages.err("The library found in"); + AppMessages.err(getPath()); + AppMessages.err("conflicts with"); for (Library library : libraries) { - Messages.err(library.getPath()); + AppMessages.err(library.getPath()); } - Messages.err("which already define(s) the package " + pkg); - Messages.err("If you have a line in your sketch that reads"); - Messages.err("import " + pkg + ".*;"); - Messages.err("Then you'll need to first remove one of those libraries."); + AppMessages.err("which already define(s) the package " + pkg); + AppMessages.err("If you have a line in your sketch that reads"); + AppMessages.err("import " + pkg + ".*;"); + AppMessages.err("Then you'll need to first remove one of those libraries."); }else{ - Messages.err("\tPackage ("+pkg+")\t conflict found in [" + name + "] with libraries: " + libraries.stream().map(Library::getName).reduce((a, b) -> a + ", " + b).orElse("")); + AppMessages.err("\tPackage ("+pkg+")\t conflict found in [" + name + "] with libraries: " + libraries.stream().map(Library::getName).reduce((a, b) -> a + ", " + b).orElse("")); } } libraries.add(this); @@ -584,7 +585,7 @@ static public List discover(File folder) { "The library \"" + potentialName + "\" cannot be used.\n" + "Library names must contain only basic letters and numbers.\n" + "(ASCII only and no spaces, and it cannot start with a number)"; - Messages.showMessage("Ignoring bad library name", mess); + AppMessages.showMessage("Ignoring bad library name", mess); } else { String pkg = findCollision(libraryFolder); @@ -593,7 +594,7 @@ static public List discover(File folder) { "The library \"" + potentialName + "\" cannot be used\n" + "because it contains the " + pkg + " libraries.\n" + "Please contact the library author for an update."; - Messages.showMessage("Ignoring bad library", mess); + AppMessages.showMessage("Ignoring bad library", mess); // Move the folder out of the way File badFolder = new File(baseFolder.getParentFile(), "disabled"); @@ -636,7 +637,7 @@ static public List list(File folder) { if (foundEarlier != null) { // Warn the user about this duplication (later, on the EDT) if (!duplicateLibraries.contains(name)) { - Messages.showWarningTiered("Duplicate Library Found", + AppMessages.showWarningTiered("Duplicate Library Found", "There are multiple libraries named “" + name + "”", "Please remove either “" + foundEarlier.getName() + " or “" + lib.getName() + "”\n" + diff --git a/app/src/processing/app/Mode.java b/app/src/processing/app/Mode.java index 29e9ad6d3a..69a532d469 100644 --- a/app/src/processing/app/Mode.java +++ b/app/src/processing/app/Mode.java @@ -40,6 +40,7 @@ import processing.app.ui.Recent; import processing.app.ui.Toolkit; import processing.core.PApplet; +import processing.utils.Util; public abstract class Mode { @@ -106,7 +107,7 @@ public Mode(Base base, File folder) { loadKeywords(file); } } catch (IOException e) { - Messages.showWarning("Problem loading keywords", + AppMessages.showWarning("Problem loading keywords", "Could not load keywords file for " + getTitle() + " mode.", e); } } @@ -370,7 +371,7 @@ public Library getLibrary(String pkgName) throws SketchException { secondary += "" + library.getName() + " (" + location + ")
"; } secondary += "Extra libraries need to be removed before this sketch can be used."; - Messages.showWarningTiered("Duplicate Library Problem", primary, secondary, null); + AppMessages.showWarningTiered("Duplicate Library Problem", primary, secondary, null); throw new SketchException("Duplicate libraries found for " + pkgName + "."); } else { @@ -819,7 +820,7 @@ public Library findLibraryByName(String libName) { public void prepareExportFolder(File targetFolder) { if (targetFolder != null) { // Nuke the old application folder because it can cause trouble - if (Preferences.getBoolean("export.delete_target_folder")) { + if (AppPreferences.getBoolean("export.delete_target_folder")) { if (targetFolder.exists()) { try { Platform.deleteFile(targetFolder); @@ -832,7 +833,7 @@ public void prepareExportFolder(File targetFolder) { // Create a fresh output folder (needed before preproc is run next) if (!targetFolder.exists()) { if (!targetFolder.mkdirs()) { - Messages.err("Could not create " + targetFolder); + AppMessages.err("Could not create " + targetFolder); } } } diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java index b911d7e0ae..08db6dbbcf 100644 --- a/app/src/processing/app/Platform.java +++ b/app/src/processing/app/Platform.java @@ -36,6 +36,8 @@ import processing.core.PApplet; import processing.core.PConstants; import processing.data.StringDict; +import processing.utils.SettingsResolver; +import processing.utils.Util; public class Platform { @@ -101,7 +103,7 @@ static public void init() { inst = (DefaultPlatform) platformClass.getDeclaredConstructor().newInstance(); } catch (Exception e) { - Messages.showError("Problem Setting the Platform", + AppMessages.showError("Problem Setting the Platform", "An unknown error occurred while trying to load\n" + "platform-specific code for your machine.", e); } @@ -129,7 +131,12 @@ static public float getSystemZoom() { static public File getSettingsFolder() throws Exception { - return inst.getSettingsFolder(); + File override = Base.getSettingsOverride(); + if (override != null) { + return override; + } + + return SettingsResolver.getSettingsFolder(); } @@ -156,7 +163,7 @@ static public void openURL(String url) { inst.openURL(url); } catch (Exception e) { - Messages.showWarning("Problem Opening URL", + AppMessages.showWarning("Problem Opening URL", "Could not open the URL\n" + url, e); } } @@ -180,7 +187,7 @@ static public void openFolder(File file) { inst.openFolder(file); } catch (Exception e) { - Messages.showWarning("Problem Opening Folder", + AppMessages.showWarning("Problem Opening Folder", "Could not open the folder\n" + file.getAbsolutePath(), e); } } @@ -348,7 +355,7 @@ static public File getContentFile(String name) { try { decodedPath = pathURL.toURI().getSchemeSpecificPart(); } catch (URISyntaxException e) { - Messages.showError("Missing File", + AppMessages.showError("Missing File", "Could not access a required file:\n" + "" + name + "\n" + "You may need to reinstall Processing.", e); @@ -575,7 +582,7 @@ static public boolean deleteFile(File file) throws IOException { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /** - * These methods were refactored to use the Preferences system instead of + * These methods were refactored to use the AppPreferences system instead of * actual environment variables, since modifying environment variables at runtime * proved problematic. This approach provides similar functionality * while being compatible with various platforms and execution environments. @@ -585,11 +592,11 @@ static public boolean deleteFile(File file) throws IOException { */ static public void setenv(String variable, String value) { - Preferences.set(variable, value); + AppPreferences.set(variable, value); } static public String getenv(String variable) { - return Preferences.get(variable); + return AppPreferences.get(variable); } static public int unsetenv(String variable) { diff --git a/app/src/processing/app/Schema.kt b/app/src/processing/app/Schema.kt index a02bf1da76..91791ae1f9 100644 --- a/app/src/processing/app/Schema.kt +++ b/app/src/processing/app/Schema.kt @@ -5,6 +5,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch import processing.app.ui.Editor +import processing.utils.Messages import java.io.File import java.io.FileOutputStream import java.net.URI @@ -161,9 +162,9 @@ class Schema { } ?: emptyMap() for ((key, value) in options){ - Preferences.set(key, value) + AppPreferences.set(key, value) } - Preferences.save() + AppPreferences.save() return null } diff --git a/app/src/processing/app/Settings.java b/app/src/processing/app/Settings.java index 020c20d386..12141926ea 100644 --- a/app/src/processing/app/Settings.java +++ b/app/src/processing/app/Settings.java @@ -32,7 +32,7 @@ /** - * Storage class for theme settings. This was separated from the Preferences + * Storage class for theme settings. This was separated from the AppPreferences * class for 1.0 so that the coloring wouldn't conflict with previous releases * and to make way for future ability to customize. */ @@ -88,7 +88,7 @@ public void load(File additions) { } } } else { - Messages.err(additions + " could not be read"); + AppMessages.err(additions + " could not be read"); } // check for platform-specific properties in the defaults @@ -201,7 +201,7 @@ public void setColor(String attr, Color what) { } - // identical version found in Preferences.java + // identical version found in AppPreferences.java public Font getFont(String attr) { try { boolean replace = false; @@ -250,7 +250,7 @@ public Font getFont(String attr) { } catch (Exception e) { // Adding try/catch block because this may be where // a lot of startup crashes are happening. - Messages.log("Error with font " + get(attr) + " for attribute " + attr); + AppMessages.log("Error with font " + get(attr) + " for attribute " + attr); } return new Font("Dialog", Font.PLAIN, 12); } diff --git a/app/src/processing/app/SingleInstance.java b/app/src/processing/app/SingleInstance.java index f900d9e8f0..cba9af51e0 100644 --- a/app/src/processing/app/SingleInstance.java +++ b/app/src/processing/app/SingleInstance.java @@ -50,7 +50,7 @@ public class SingleInstance { * @return true if successfully launched on the other instance */ static boolean alreadyRunning(String[] args) { - return Preferences.get(SERVER_PORT) != null && sendArguments(args); + return AppPreferences.get(SERVER_PORT) != null && sendArguments(args); } @@ -58,22 +58,22 @@ static boolean alreadyRunning(String[] args) { * Disable briefly for Processing to restart itself. */ static public void clearRunning() { - Preferences.unset(SERVER_PORT); - Preferences.save(); + AppPreferences.unset(SERVER_PORT); + AppPreferences.save(); } static void startServer(final Base base) { try { - Messages.log("Opening SingleInstance socket"); + AppMessages.log("Opening SingleInstance socket"); final ServerSocket ss = new ServerSocket(0, 0, InetAddress.getLoopbackAddress()); - Preferences.set(SERVER_PORT, "" + ss.getLocalPort()); + AppPreferences.set(SERVER_PORT, "" + ss.getLocalPort()); final String key = "" + Math.random(); - Preferences.set(SERVER_KEY, key); - Preferences.save(); + AppPreferences.set(SERVER_KEY, key); + AppPreferences.save(); - Messages.log("Starting SingleInstance thread"); + AppMessages.log("Starting SingleInstance thread"); new Thread(new Runnable() { public void run() { while (true) { @@ -81,26 +81,26 @@ public void run() { Socket s = ss.accept(); // blocks (sleeps) until connection final BufferedReader reader = PApplet.createReader(s.getInputStream()); String receivedKey = reader.readLine(); - Messages.log(this, "key is " + key + ", received is " + receivedKey); + AppMessages.log(this, "key is " + key + ", received is " + receivedKey); if (key.equals(receivedKey)) { EventQueue.invokeLater(new Runnable() { public void run() { try { - Messages.log(this, "about to read line"); + AppMessages.log(this, "about to read line"); String path = reader.readLine(); if (path == null) { // Because an attempt was made to launch the PDE again, // throw the user a bone by at least opening a new // Untitled window for them. - Messages.log(this, "opening new empty sketch"); + AppMessages.log(this, "opening new empty sketch"); // platform.base.handleNew(); base.handleNew(); } else { // loop through the sketches that were passed in do { - Messages.log(this, "calling open with " + path); + AppMessages.log(this, "calling open with " + path); // platform.base.handleOpen(filename); base.handleOpen(path); path = reader.readLine(); @@ -112,27 +112,27 @@ public void run() { } }); } else { - Messages.log(this, "keys do not match"); + AppMessages.log(this, "keys do not match"); } // } } catch (IOException e) { - Messages.err("SingleInstance error while listening", e); + AppMessages.err("SingleInstance error while listening", e); } } } }, "SingleInstance Server").start(); } catch (IOException e) { - Messages.err("Could not create single instance server.", e); + AppMessages.err("Could not create single instance server.", e); } } static boolean sendArguments(String[] args) { //, long timeout) { try { - Messages.log("Checking to see if Processing is already running"); - int port = Preferences.getInteger(SERVER_PORT); - String key = Preferences.get(SERVER_KEY); + AppMessages.log("Checking to see if Processing is already running"); + int port = AppPreferences.getInteger(SERVER_PORT); + String key = AppPreferences.get(SERVER_KEY); Socket socket = null; try { @@ -140,7 +140,7 @@ static boolean sendArguments(String[] args) { //, long timeout) { } catch (Exception ignored) { } if (socket != null) { - Messages.log("Processing is already running, sending command line"); + AppMessages.log("Processing is already running, sending command line"); PrintWriter writer = PApplet.createWriter(socket.getOutputStream()); writer.println(key); for (String arg : args) { @@ -151,9 +151,9 @@ static boolean sendArguments(String[] args) { //, long timeout) { return true; } } catch (IOException e) { - Messages.err("Error sending commands to other instance", e); + AppMessages.err("Error sending commands to other instance", e); } - Messages.log("Processing is not already running (or could not connect)"); + AppMessages.log("Processing is not already running (or could not connect)"); return false; } } diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index 8bb50352b0..2f03f32878 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -28,6 +28,7 @@ import processing.app.ui.Recent; import processing.app.ui.Toolkit; import processing.core.*; +import processing.utils.Util; import java.awt.Color; import java.awt.Component; @@ -310,7 +311,7 @@ public void handleNewCode() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - Messages.showMessage(Language.text("new.messages.is_read_only"), + AppMessages.showMessage(Language.text("new.messages.is_read_only"), Language.text("new.messages.is_read_only.description")); return; } @@ -329,13 +330,13 @@ public void handleRenameCode() { ensureExistence(); if (currentIndex == 0 && isUntitled()) { - Messages.showMessage(Language.text("rename.messages.is_untitled"), + AppMessages.showMessage(Language.text("rename.messages.is_untitled"), Language.text("rename.messages.is_untitled.description")); return; } if (isModified()) { - Messages.showMessage(Language.text("menu.file.save"), + AppMessages.showMessage(Language.text("menu.file.save"), Language.text("rename.messages.is_modified")); return; } @@ -343,7 +344,7 @@ public void handleRenameCode() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - Messages.showMessage(Language.text("rename.messages.is_read_only"), + AppMessages.showMessage(Language.text("rename.messages.is_read_only"), Language.text("rename.messages.is_read_only.description")); return; } @@ -351,7 +352,7 @@ public void handleRenameCode() { // ask for new name of file (internal to window) // TODO maybe just pop up a text area? renamingCode = true; - String prompt = (currentIndex == 0 && Preferences.getBoolean("editor.sync_folder_and_filename")) ? + String prompt = (currentIndex == 0 && AppPreferences.getBoolean("editor.sync_folder_and_filename")) ? Language.text("editor.sketch.rename.description") : Language.text("editor.tab.rename.description"); String oldName = (current.isExtension(mode.getDefaultExtension())) ? @@ -478,7 +479,7 @@ protected void nameCode(String newName) { } if (newName.startsWith(".")) { - Messages.showWarning(Language.text("name.messages.problem_renaming"), + AppMessages.showWarning(Language.text("name.messages.problem_renaming"), Language.text("name.messages.starts_with_dot.description")); return; } @@ -486,7 +487,7 @@ protected void nameCode(String newName) { int dot = newName.lastIndexOf('.'); String newExtension = newName.substring(dot+1).toLowerCase(); if (!mode.validExtension(newExtension)) { - Messages.showWarning(Language.text("name.messages.problem_renaming"), + AppMessages.showWarning(Language.text("name.messages.problem_renaming"), Language.interpolate("name.messages.invalid_extension.description", newExtension)); return; @@ -496,7 +497,7 @@ protected void nameCode(String newName) { if (!mode.isDefaultExtension(newExtension)) { if (renamingCode) { // If creating a new tab, don't show this error if (current == code[0]) { // If this is the main tab, disallow - Messages.showWarning(Language.text("name.messages.problem_renaming"), + AppMessages.showWarning(Language.text("name.messages.problem_renaming"), Language.interpolate("name.messages.main_java_extension.description", newExtension)); return; @@ -522,7 +523,7 @@ protected void nameCode(String newName) { // http://processing.org/bugs/bugzilla/543.html for (SketchCode c : code) { if (c != current && sanitaryName.equalsIgnoreCase(c.getPrettyName())) { - Messages.showMessage(Language.text("name.messages.new_sketch_exists"), + AppMessages.showMessage(Language.text("name.messages.new_sketch_exists"), Language.interpolate("name.messages.new_sketch_exists.description", c.getFileName(), folder.getAbsolutePath())); return; @@ -534,12 +535,12 @@ protected void nameCode(String newName) { if (renamingCode) { if (currentIndex == 0 && - Preferences.getBoolean("editor.sync_folder_and_filename")) { + AppPreferences.getBoolean("editor.sync_folder_and_filename")) { if (!renameSketch(newName, newExtension)) return; } else { // else if something besides code[0], or ok to decouple name if (!current.renameTo(newFile, newExtension)) { - Messages.showWarning(Language.text("name.messages.error"), + AppMessages.showWarning(Language.text("name.messages.error"), Language.interpolate("name.messages.no_rename_file.description", current.getFileName(), newFile.getName())); return; @@ -558,7 +559,7 @@ protected void nameCode(String newName) { throw new IOException("createNewFile() returned false"); } } catch (IOException e) { - Messages.showWarning(Language.text("name.messages.error"), + AppMessages.showWarning(Language.text("name.messages.error"), Language.interpolate("name.messages.no_create_file.description", newFile, folder.getAbsolutePath()), e); return; @@ -587,7 +588,7 @@ protected boolean renameSketch(String newName, String newExtension) { String folderName = newName.substring(0, newName.indexOf('.')); File newFolder = new File(folder.getParentFile(), folderName); if (newFolder.exists()) { - Messages.showWarning(Language.text("name.messages.new_folder_exists"), + AppMessages.showWarning(Language.text("name.messages.new_folder_exists"), Language.interpolate("name.messages.new_folder_exists.description", newName)); return false; } @@ -595,7 +596,7 @@ protected boolean renameSketch(String newName, String newExtension) { // renaming the containing sketch folder boolean success = folder.renameTo(newFolder); if (!success) { - Messages.showWarning(Language.text("name.messages.error"), + AppMessages.showWarning(Language.text("name.messages.error"), Language.text("name.messages.no_rename_folder.description")); return false; } @@ -610,7 +611,7 @@ protected boolean renameSketch(String newName, String newExtension) { // This isn't changing folders, just changes the name File newFile = new File(newFolder, newName); if (!current.renameTo(newFile, newExtension)) { - Messages.showWarning(Language.text("name.messages.error"), + AppMessages.showWarning(Language.text("name.messages.error"), Language.interpolate("name.messages.no_rename_file.description", current.getFileName(), newFile.getName())); return false; @@ -647,14 +648,14 @@ public void handleDeleteCode() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - Messages.showMessage(Language.text("delete.messages.is_read_only"), + AppMessages.showMessage(Language.text("delete.messages.is_read_only"), Language.text("delete.messages.is_read_only.description")); return; } // don't allow if untitled if (currentIndex == 0 && isUntitled()) { - Messages.showMessage(Language.text("delete.messages.cannot_delete"), + AppMessages.showMessage(Language.text("delete.messages.cannot_delete"), Language.text("delete.messages.cannot_delete.description")); return; } @@ -705,7 +706,7 @@ public void handleDeleteCode() { } else { // delete a single tab if (!current.deleteFile()) { - Messages.showMessage(Language.text("delete.messages.cannot_delete.file"), + AppMessages.showMessage(Language.text("delete.messages.cannot_delete.file"), Language.text("delete.messages.cannot_delete.file.description")+" \"" + current.getFileName() + "\"."); return; @@ -828,7 +829,7 @@ public boolean save() throws IOException { if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - Messages.showMessage(Language.text("save_file.messages.is_read_only"), + AppMessages.showMessage(Language.text("save_file.messages.is_read_only"), Language.text("save_file.messages.is_read_only.description")); // if the user cancels, give up on the save() if (!saveAs()) return false; @@ -862,13 +863,13 @@ public boolean saveAs() throws IOException { final String PROMPT = Language.text("save"); // https://github.com/processing/processing4/issues/77 - boolean useNative = Preferences.getBoolean("chooser.files.native"); + boolean useNative = AppPreferences.getBoolean("chooser.files.native"); if (useNative) { // get new name for folder FileDialog fd = new FileDialog(editor, PROMPT, FileDialog.SAVE); if (isReadOnly() || isUntitled()) { // default to the sketchbook folder - fd.setDirectory(Preferences.getSketchbookPath()); + fd.setDirectory(AppPreferences.getSketchbookPath()); } else { // default to the parent folder of where this was fd.setDirectory(folder.getParent()); @@ -883,7 +884,7 @@ public boolean saveAs() throws IOException { fc.setDialogTitle(PROMPT); if (isReadOnly() || isUntitled()) { // default to the sketchbook folder - fc.setCurrentDirectory(new File(Preferences.getSketchbookPath())); + fc.setCurrentDirectory(new File(AppPreferences.getSketchbookPath())); } else { // default to the parent folder of where this was fc.setCurrentDirectory(folder.getParentFile()); @@ -901,7 +902,7 @@ public boolean saveAs() throws IOException { // user canceled selection if (newSketchName == null) return false; - boolean sync = Preferences.getBoolean("editor.sync_folder_and_filename"); + boolean sync = AppPreferences.getBoolean("editor.sync_folder_and_filename"); String newMainFileName = null; // only set with !sync File newFolder; if (sync) { @@ -910,7 +911,7 @@ public boolean saveAs() throws IOException { String newMainName = sanitizeName(newSketchName); newFolder = new File(newParentDir, newMainName); if (!newMainName.equals(newSketchName) && newFolder.exists()) { - Messages.showMessage(Language.text("save_file.messages.sketch_exists"), + AppMessages.showMessage(Language.text("save_file.messages.sketch_exists"), Language.interpolate("save_file.messages.sketch_exists.description", newMainName)); return false; @@ -927,7 +928,7 @@ public boolean saveAs() throws IOException { // re-saved (with the same name) to another location/folder. for (int i = 1; i < codeCount; i++) { if (newSketchName.equalsIgnoreCase(code[i].getPrettyName())) { - Messages.showMessage(Language.text("save_file.messages.tab_exists"), + AppMessages.showMessage(Language.text("save_file.messages.tab_exists"), Language.interpolate("save_file.messages.tab_exists.description", newSketchName)); return false; @@ -949,7 +950,7 @@ public boolean saveAs() throws IOException { String oldPath = folder.getCanonicalPath() + File.separator; if (newPath.indexOf(oldPath) == 0) { - Messages.showWarning(Language.text("save_file.messages.recursive_save"), + AppMessages.showWarning(Language.text("save_file.messages.recursive_save"), Language.text("save_file.messages.recursive_save.description")); return false; } @@ -1378,7 +1379,7 @@ public void handleAddFile() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - Messages.showMessage(Language.text("add_file.messages.is_read_only"), + AppMessages.showMessage(Language.text("add_file.messages.is_read_only"), Language.text("add_file.messages.is_read_only.description")); return; } @@ -1491,7 +1492,7 @@ public boolean addFile(File sourceFile) { if (replacement) { boolean muchSuccess = destFile.delete(); if (!muchSuccess) { - Messages.showWarning(Language.text("add_file.messages.error_adding"), + AppMessages.showWarning(Language.text("add_file.messages.error_adding"), Language.interpolate("add_file.messages.cannot_delete.description", filename)); return false; } @@ -1499,7 +1500,7 @@ public boolean addFile(File sourceFile) { // make sure they aren't the same file if ((codeExtension == null) && sourceFile.equals(destFile)) { - Messages.showWarning(Language.text("add_file.messages.same_file"), + AppMessages.showWarning(Language.text("add_file.messages.same_file"), Language.text("add_file.messages.same_file.description")); return false; } @@ -1514,7 +1515,7 @@ public boolean addFile(File sourceFile) { Util.copyFile(sourceFile, destFile); } catch (IOException e) { - Messages.showWarning(Language.text("add_file.messages.error_adding"), + AppMessages.showWarning(Language.text("add_file.messages.error_adding"), Language.interpolate("add_file.messages.cannot_add.description", filename), e); return false; } @@ -1607,7 +1608,7 @@ public File makeTempFolder() { return Util.createTempFolder(name, "temp", null); } catch (IOException e) { - Messages.showWarning(Language.text("temp_dir.messages.bad_build_folder"), + AppMessages.showWarning(Language.text("temp_dir.messages.bad_build_folder"), Language.text("temp_dir.messages.bad_build_folder.description"), e); } return null; @@ -1627,7 +1628,7 @@ public void ensureExistence() { disappearedWarning = true; // Disaster recovery, try to salvage what's there already. - Messages.showWarning(Language.text("ensure_exist.messages.missing_sketch"), + AppMessages.showWarning(Language.text("ensure_exist.messages.missing_sketch"), Language.text("ensure_exist.messages.missing_sketch.description")); try { folder.mkdirs(); @@ -1640,7 +1641,7 @@ public void ensureExistence() { } catch (Exception e) { // disappearedWarning prevents infinite loop in this scenario - Messages.showWarning(Language.text("ensure_exist.messages.unrecoverable"), + AppMessages.showWarning(Language.text("ensure_exist.messages.unrecoverable"), Language.text("ensure_exist.messages.unrecoverable.description"), e); } } diff --git a/app/src/processing/app/SketchCode.java b/app/src/processing/app/SketchCode.java index 299b9373ae..797172ad90 100644 --- a/app/src/processing/app/SketchCode.java +++ b/app/src/processing/app/SketchCode.java @@ -24,6 +24,8 @@ package processing.app; +import processing.utils.Util; + import java.io.*; import java.util.Stack; diff --git a/app/src/processing/app/SketchName.java b/app/src/processing/app/SketchName.java index 7a4b1d3382..88da10a54c 100644 --- a/app/src/processing/app/SketchName.java +++ b/app/src/processing/app/SketchName.java @@ -30,13 +30,13 @@ public class SketchName { * @return File object for safe new path, or null if there were problems */ static File nextFolder(File parentDir) { - String approach = Preferences.get("sketch.name.approach"); + String approach = AppPreferences.get("sketch.name.approach"); if ((approach != null) && !CLASSIC.equals(approach)) { WordList wl = getWordLists().get(approach); if (wl != null) { // just in case the naming scheme no longer available File folder = wl.wordsFolder(parentDir); if (folder == null) { - Messages.showWarning("Out of Options", """ + AppMessages.showWarning("Out of Options", """ All possible naming combinations have been used. Use “Preferences” to choose a different naming system, or restart Processing."""); @@ -57,8 +57,8 @@ static File classicFolder(File parentDir) { String newbieName; int index = 0; - String prefix = Preferences.get("editor.untitled.prefix"); - String format = Preferences.get("editor.untitled.suffix"); + String prefix = AppPreferences.get("editor.untitled.prefix"); + String format = AppPreferences.get("editor.untitled.suffix"); String suffix; if (format == null) { // If no format is specified, uses this ancient format @@ -78,12 +78,12 @@ static File classicFolder(File parentDir) { if (index == 26) { // In 0159, avoid running past z by sending people outdoors. if (!breakTime) { - Messages.showWarning("Time for a Break", + AppMessages.showWarning("Time for a Break", "You've reached the limit for auto naming of new sketches\n" + "for the day. How about going for a walk instead?", null); breakTime = true; } else { - Messages.showWarning("Sunshine", + AppMessages.showWarning("Sunshine", "No really, time for some fresh air for you.\n" + "(At a minimum, you'll need to restart Processing.)", null); } @@ -203,7 +203,7 @@ static Map getWordLists() { File namingFile = Base.getLibFile(FILENAME); load(namingFile); } catch (Exception e) { - Messages.showWarning("Naming Error", + AppMessages.showWarning("Naming Error", "Could not load word lists from " + FILENAME, e); } File sketchbookFile = new File(Base.getSketchbookFolder(), FILENAME); @@ -211,7 +211,7 @@ static Map getWordLists() { try { load(sketchbookFile); } catch (Exception e) { - Messages.showWarning("Naming Error", + AppMessages.showWarning("Naming Error", "Error while reading " + FILENAME + " from sketchbook folder", e); } } diff --git a/app/src/processing/app/UpdateCheck.java b/app/src/processing/app/UpdateCheck.java index 1bfa296882..eee9242911 100644 --- a/app/src/processing/app/UpdateCheck.java +++ b/app/src/processing/app/UpdateCheck.java @@ -92,11 +92,11 @@ static public long getUpdateID() { Random r = new Random(); long id = r.nextLong(); - String idString = Preferences.get("update.id"); + String idString = AppPreferences.get("update.id"); if (idString != null) { id = Long.parseLong(idString); } else { - Preferences.set("update.id", String.valueOf(id)); + AppPreferences.set("update.id", String.valueOf(id)); } return id; } @@ -113,7 +113,7 @@ public void updateCheck() throws IOException { int latest = readInt(LATEST_URL + "?" + info); - String lastString = Preferences.get("update.last"); + String lastString = AppPreferences.get("update.last"); long now = System.currentTimeMillis(); if (lastString != null) { long when = Long.parseLong(lastString); @@ -122,7 +122,7 @@ public void updateCheck() throws IOException { return; } } - Preferences.set("update.last", String.valueOf(now)); + AppPreferences.set("update.last", String.valueOf(now)); if (base.activeEditor != null) { // boolean offerToUpdateContributions = true; @@ -209,6 +209,6 @@ protected int readInt(String filename) throws IOException { static public boolean isAllowed() { // Disable update checks for the paranoid - return Preferences.getBoolean("update.check"); + return AppPreferences.getBoolean("update.check"); } } diff --git a/app/src/processing/app/WebServer.java b/app/src/processing/app/WebServer.java index bd13f59b40..d69cd39e70 100644 --- a/app/src/processing/app/WebServer.java +++ b/app/src/processing/app/WebServer.java @@ -222,7 +222,7 @@ boolean printHeaders(PrintStream ps, String path, ZipEntry entry) throws IOExcep ps.print("HTTP/1.0 " + HTTP_OK + " OK"); } ps.write(EOL); - Messages.log("From " + socket.getInetAddress().getHostAddress() + ": GET " + path + " --> " + status); + AppMessages.log("From " + socket.getInetAddress().getHostAddress() + ": GET " + path + " --> " + status); ps.print("Server: Processing Reference Server"); ps.write(EOL); diff --git a/app/src/processing/app/contrib/AvailableContribution.java b/app/src/processing/app/contrib/AvailableContribution.java index a190c0bf10..0a682f3905 100644 --- a/app/src/processing/app/contrib/AvailableContribution.java +++ b/app/src/processing/app/contrib/AvailableContribution.java @@ -31,6 +31,7 @@ import processing.core.PApplet; import processing.data.StringDict; import processing.data.StringList; +import processing.utils.Util; /** diff --git a/app/src/processing/app/contrib/ContributionListing.java b/app/src/processing/app/contrib/ContributionListing.java index 08b8d307c7..99cd221fa3 100644 --- a/app/src/processing/app/contrib/ContributionListing.java +++ b/app/src/processing/app/contrib/ContributionListing.java @@ -30,9 +30,9 @@ import java.util.concurrent.locks.ReentrantLock; import processing.app.Base; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.UpdateCheck; -import processing.app.Util; +import processing.utils.Util; import processing.core.PApplet; import processing.data.StringDict; import processing.data.StringList; @@ -229,7 +229,7 @@ protected void addListPanel(ListPanel listener) { public void downloadAvailableList(final Base base, final ContribProgress progress) { // TODO: replace with SwingWorker [jv] - Messages.log("Downloading contributions list from " + LISTING_URL); + AppMessages.log("Downloading contributions list from " + LISTING_URL); new Thread(() -> { downloadingLock.lock(); diff --git a/app/src/processing/app/contrib/ContributionManager.java b/app/src/processing/app/contrib/ContributionManager.java index c4d45f7d7d..118bd1752a 100644 --- a/app/src/processing/app/contrib/ContributionManager.java +++ b/app/src/processing/app/contrib/ContributionManager.java @@ -29,9 +29,9 @@ import processing.app.Base; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Platform; -import processing.app.Util; +import processing.utils.Util; import processing.app.ui.Editor; import processing.core.PApplet; import processing.data.StringDict; @@ -588,7 +588,7 @@ static private void updateFlagged(Base base, File root) throws Exception { // where it's triggered most consistently, so it's here for now. if (Platform.isMacOS()) { // we're on the EDT here, so it's safe to show the error - Messages.showError("Cannot access sketchbook", + AppMessages.showError("Cannot access sketchbook", """ There is a problem with the “permissions” for the sketchbook folder. Processing needs access to the Documents folder to save your work. @@ -663,7 +663,7 @@ else if (contribType.equalsIgnoreCase("modes")) static private void installOnStartUp(final Base base, final AvailableContribution availableContrib) { if (availableContrib.link == null) { - Messages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), + AppMessages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), Language.text("contrib.missing_link")); } else { try { @@ -671,7 +671,7 @@ static private void installOnStartUp(final Base base, final AvailableContributio ContributionManager.downloadAndInstallOnStartup(base, downloadUrl, availableContrib); } catch (MalformedURLException e) { - Messages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), + AppMessages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), Language.text("contrib.errors.malformed_url"), e); } } diff --git a/app/src/processing/app/contrib/ContributionType.java b/app/src/processing/app/contrib/ContributionType.java index 83ed9eb687..c9a50d2bb5 100644 --- a/app/src/processing/app/contrib/ContributionType.java +++ b/app/src/processing/app/contrib/ContributionType.java @@ -28,8 +28,8 @@ import processing.app.Base; import processing.app.Library; -import processing.app.Messages; -import processing.app.Util; +import processing.app.AppMessages; +import processing.utils.Util; import processing.app.ui.Editor; import processing.core.PApplet; import processing.data.StringDict; @@ -191,7 +191,7 @@ File findCandidate(File folder) { return null; } else if (folders.length > 1) { - Messages.log("More than one " + this + " found inside " + folder.getAbsolutePath()); + AppMessages.log("More than one " + this + " found inside " + folder.getAbsolutePath()); } return folders[0]; } diff --git a/app/src/processing/app/contrib/ListPanel.java b/app/src/processing/app/contrib/ListPanel.java index 21062d2f82..89133cd631 100644 --- a/app/src/processing/app/contrib/ListPanel.java +++ b/app/src/processing/app/contrib/ListPanel.java @@ -34,7 +34,7 @@ import javax.swing.RowSorter.SortKey; import javax.swing.table.*; -import processing.app.Util; +import processing.utils.Util; import processing.app.ui.Theme; import processing.app.laf.PdeScrollBarUI; import processing.app.ui.Toolkit; diff --git a/app/src/processing/app/contrib/LocalContribution.java b/app/src/processing/app/contrib/LocalContribution.java index df0e8cbfdd..119662518d 100644 --- a/app/src/processing/app/contrib/LocalContribution.java +++ b/app/src/processing/app/contrib/LocalContribution.java @@ -30,13 +30,12 @@ import java.util.*; import java.util.zip.*; -import javax.swing.JOptionPane; - import processing.app.*; import processing.app.ui.Editor; import processing.core.PApplet; import processing.data.StringDict; import processing.data.StringList; +import processing.utils.Util; /** @@ -105,10 +104,10 @@ public LocalContribution(File folder) { maxRevision = PApplet.parseInt(maxRev, 0); } } else { - Messages.log("Could not read " + propertiesFile.getAbsolutePath()); + AppMessages.log("Could not read " + propertiesFile.getAbsolutePath()); } } else { - Messages.log("No properties file at " + propertiesFile.getAbsolutePath()); + AppMessages.log("No properties file at " + propertiesFile.getAbsolutePath()); } if (name == null) { // fall-through case // We'll need this to be set at a minimum. @@ -121,7 +120,7 @@ public LocalContribution(File folder) { public String initLoader(String className) throws Exception { File modeDirectory = new File(folder, getTypeName()); if (modeDirectory.exists()) { - Messages.log("checking mode folder regarding " + className); + AppMessages.log("checking mode folder regarding " + className); // If no class name specified, search the main .jar for the // full name package and mode name. if (className == null) { @@ -144,12 +143,12 @@ public String initLoader(String className) throws Exception { if (archives != null && archives.length > 0) { URL[] urlList = new URL[archives.length]; for (int j = 0; j < urlList.length; j++) { - Messages.log("Found archive " + archives[j] + " for " + getName()); + AppMessages.log("Found archive " + archives[j] + " for " + getName()); urlList[j] = archives[j].toURI().toURL(); } // loader = new URLClassLoader(urlList, Thread.currentThread().getContextClassLoader()); loader = new URLClassLoader(urlList); - Messages.log("loading above JARs with loader " + loader); + AppMessages.log("loading above JARs with loader " + loader); // System.out.println("listing classes for loader " + loader); // listClasses(loader); } @@ -196,7 +195,7 @@ LocalContribution copyAndLoad(Base base, } } else { int result; - boolean doBackup = Preferences.getBoolean("contribution.backup.on_install"); + boolean doBackup = AppPreferences.getBoolean("contribution.backup.on_install"); if ((doBackup && !oldContrib.backup(true, status)) || (!doBackup && !oldContrib.getFolder().delete())) { return null; @@ -303,7 +302,7 @@ protected void removeContribution(Base base, } boolean success; - boolean doBackup = Preferences.getBoolean("contribution.backup.on_remove"); + boolean doBackup = AppPreferences.getBoolean("contribution.backup.on_remove"); if (doBackup) { success = backup(true, status); } else { @@ -389,7 +388,7 @@ private boolean removeMode(Base base, boolean updating) { Sketch sketch = editor.getSketch(); if (sketch.isModified()) { editor.toFront(); - Messages.showMessage("Save Sketch", + AppMessages.showMessage("Save Sketch", "Please first save “" + sketch.getName() + "”."); return false; } else { diff --git a/app/src/processing/app/contrib/ModeContribution.java b/app/src/processing/app/contrib/ModeContribution.java index b794d12b3c..0cfb36581b 100644 --- a/app/src/processing/app/contrib/ModeContribution.java +++ b/app/src/processing/app/contrib/ModeContribution.java @@ -32,9 +32,9 @@ import java.util.Map; import processing.app.Base; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Mode; -import processing.app.Util; +import processing.utils.Util; public class ModeContribution extends LocalContribution { @@ -52,7 +52,7 @@ static public ModeContribution load(Base base, File folder, return new ModeContribution(base, folder, searchName); } catch (IgnorableException ig) { - Messages.log(ig.getMessage()); + AppMessages.log(ig.getMessage()); } catch (Throwable err) { // Throwable to catch Exceptions or UnsupportedClassVersionError et al. @@ -65,7 +65,7 @@ static public ModeContribution load(Base base, File folder, // For the built-in modes, don't print the exception, just log it // for debugging. This should be impossible for most users to reach, // but it helps us load experimental mode when it's available. - Messages.err("ModeContribution.load() failed for " + searchName, err); + AppMessages.err("ModeContribution.load() failed for " + searchName, err); } } return null; @@ -83,7 +83,7 @@ public ModeContribution(Base base, File folder, className = initLoader(base, className); if (className != null) { Class modeClass = loader.loadClass(className); - Messages.log("Got mode class " + modeClass); + AppMessages.log("Got mode class " + modeClass); Constructor con = modeClass.getConstructor(Base.class, File.class); mode = (Mode) con.newInstance(base, folder); mode.setClassLoader(loader); @@ -123,7 +123,7 @@ public ContributionType getType() { private String initLoader(Base base, String className) throws Exception { File modeDirectory = new File(folder, getTypeName()); if (modeDirectory.exists()) { - Messages.log("checking mode folder regarding class name " + className); + AppMessages.log("checking mode folder regarding class name " + className); // If no class name specified, search the main .jar for the // full name package and mode name. if (className == null) { @@ -154,7 +154,7 @@ private String initLoader(Base base, String className) throws Exception { for (String modeImport : imports) { if (installedModes.containsKey(modeImport)) { - Messages.log("Found mode dependency " + modeImport); + AppMessages.log("Found mode dependency " + modeImport); File modeFolder = installedModes.get(modeImport).getFolder(); File[] archives = Util.listJarFiles(new File(modeFolder, "mode")); if (archives != null) { @@ -184,12 +184,12 @@ private String initLoader(Base base, String className) throws Exception { } for (int k = 0; k < archives.length; k++,j++) { - Messages.log("Found archive " + archives[k] + " for " + getName()); + AppMessages.log("Found archive " + archives[k] + " for " + getName()); urlList[j] = archives[k].toURI().toURL(); } loader = new URLClassLoader(urlList); - Messages.log("loading above JARs with loader " + loader); + AppMessages.log("loading above JARs with loader " + loader); } } diff --git a/app/src/processing/app/contrib/StatusDetail.java b/app/src/processing/app/contrib/StatusDetail.java index 078352cf95..053ff61c94 100644 --- a/app/src/processing/app/contrib/StatusDetail.java +++ b/app/src/processing/app/contrib/StatusDetail.java @@ -168,7 +168,7 @@ public void cancelAction() { statusPanel); } catch (MalformedURLException e) { - Messages.showWarning(Language.text("contrib.errors.install_failed"), + AppMessages.showWarning(Language.text("contrib.errors.install_failed"), Language.text("contrib.errors.malformed_url"), e); } } diff --git a/app/src/processing/app/contrib/StatusPanel.java b/app/src/processing/app/contrib/StatusPanel.java index ff2511b5a3..3847595d85 100644 --- a/app/src/processing/app/contrib/StatusPanel.java +++ b/app/src/processing/app/contrib/StatusPanel.java @@ -40,7 +40,7 @@ import javax.swing.text.html.HTMLDocument; import processing.app.Language; -import processing.app.Util; +import processing.utils.Util; import processing.app.laf.PdeButtonUI; import processing.app.laf.PdeProgressBarUI; import processing.app.ui.Theme; diff --git a/app/src/processing/app/contrib/ToolContribution.java b/app/src/processing/app/contrib/ToolContribution.java index 660d76bbb4..78819c7cb5 100644 --- a/app/src/processing/app/contrib/ToolContribution.java +++ b/app/src/processing/app/contrib/ToolContribution.java @@ -26,7 +26,7 @@ import java.util.*; import processing.app.Base; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.tools.Tool; @@ -39,7 +39,7 @@ static public ToolContribution load(File folder) { try { return new ToolContribution(folder); } catch (IgnorableException ig) { - Messages.log(ig.getMessage()); + AppMessages.log(ig.getMessage()); } catch (VerifyError ve) { // incompatible // avoid the excessive error spew that happens here diff --git a/app/src/processing/app/exec/StreamPump.java b/app/src/processing/app/exec/StreamPump.java index 29786102cc..1d55a35ae1 100644 --- a/app/src/processing/app/exec/StreamPump.java +++ b/app/src/processing/app/exec/StreamPump.java @@ -13,7 +13,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import processing.app.Base; -import processing.app.Messages; +import processing.app.AppMessages; /** @@ -80,7 +80,7 @@ public void run() { } } catch (final IOException e) { if (Base.DEBUG) { - Messages.err("StreamPump: " + name, e); + AppMessages.err("StreamPump: " + name, e); // removing for 0190, but need a better way to handle these throw new RuntimeException("Inside " + this + " for " + name, e); } diff --git a/app/src/processing/app/platform/DefaultPlatform.java b/app/src/processing/app/platform/DefaultPlatform.java index 18997755b7..5fae182d0e 100644 --- a/app/src/processing/app/platform/DefaultPlatform.java +++ b/app/src/processing/app/platform/DefaultPlatform.java @@ -32,11 +32,9 @@ import com.formdev.flatlaf.FlatLaf; import com.formdev.flatlaf.FlatLightLaf; -import com.sun.jna.Library; -import com.sun.jna.Native; import processing.app.Base; -import processing.app.Preferences; +import processing.app.AppPreferences; import processing.app.ui.Toolkit; import processing.awt.ShimAWT; import processing.core.PApplet; @@ -137,8 +135,8 @@ public void setLookAndFeel() throws Exception { /* // If the default has been overridden in the preferences, set the font - String fontName = Preferences.get("ui.font.family"); - int fontSize = Preferences.getInteger("ui.font.size"); + String fontName = AppPreferences.get("ui.font.family"); + int fontSize = AppPreferences.getInteger("ui.font.size"); // fontName = "Processing Sans Pro"; // fontSize = 13; if (!"Dialog".equals(fontName) || fontSize != 12) { @@ -180,7 +178,7 @@ static private void setUIFont(FontUIResource f) { public void setInterfaceZoom() throws Exception { // Specify font when scaling is active. - if (!Preferences.getBoolean("editor.zoom.auto")) { + if (!AppPreferences.getBoolean("editor.zoom.auto")) { for (String widgetName : FONT_SCALING_WIDGETS) { scaleDefaultFont(widgetName); } @@ -188,8 +186,8 @@ public void setInterfaceZoom() throws Exception { // Font defaultFont = Toolkit.getSansFont(14, Font.PLAIN); // UIManager.put("defaultFont", defaultFont); -// String fontName = Preferences.get("ui.font.family"); -// int fontSize = Preferences.getInteger("ui.font.size"); +// String fontName = AppPreferences.get("ui.font.family"); +// int fontSize = AppPreferences.getInteger("ui.font.size"); // FontUIResource uiFont = new FontUIResource(fontName, Font.PLAIN, Toolkit.zoom(fontSize)); // UIManager.put("Label.font", uiFont); // UIManager.put("TextField.font", uiFont); @@ -206,23 +204,6 @@ public void setInterfaceZoom() throws Exception { public void saveLanguage(String languageCode) { } - /** - * This function should throw an exception or return a value. - * Do not return null. - */ - public File getSettingsFolder() throws Exception { - File override = Base.getSettingsOverride(); - if (override != null) { - return override; - } - - // If no subclass has a behavior, default to making a - // ".processing" directory in the user's home directory. - File home = new File(System.getProperty("user.home")); - return new File(home, ".processing"); - } - - /** * @return if not overridden, a folder named "sketchbook" in user.home. * @throws Exception so that subclasses can throw a fit diff --git a/app/src/processing/app/platform/LinuxPlatform.java b/app/src/processing/app/platform/LinuxPlatform.java index 3426144cae..0a690c5aca 100644 --- a/app/src/processing/app/platform/LinuxPlatform.java +++ b/app/src/processing/app/platform/LinuxPlatform.java @@ -26,9 +26,8 @@ import java.awt.Desktop; import java.awt.Toolkit; +import processing.app.AppPreferences; import processing.app.Base; -import processing.app.Messages; -import processing.app.Preferences; import processing.core.PApplet; import javax.swing.*; @@ -90,39 +89,6 @@ static public String getHomeDir(String user) throws Exception { } - @Override - public File getSettingsFolder() throws Exception { - File override = Base.getSettingsOverride(); - if (override != null) { - return override; - } - - // https://github.com/processing/processing4/issues/203 - // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html - - File configHome = null; - - // Check to see if the user has set a different location for their config - String configHomeEnv = System.getenv("XDG_CONFIG_HOME"); - if (configHomeEnv != null && !configHomeEnv.isBlank()) { - configHome = new File(configHomeEnv); - if (!configHome.exists()) { - Messages.err("XDG_CONFIG_HOME is set to " + configHomeEnv + " but does not exist."); - configHome = null; // don't use non-existent folder - } - } - String snapUserCommon = System.getenv("SNAP_USER_COMMON"); - if (snapUserCommon != null && !snapUserCommon.isBlank()) { - configHome = new File(snapUserCommon); - } - // If not set properly, use the default - if (configHome == null) { - configHome = new File(getHomeDir(), ".config"); - } - return new File(configHome, "processing"); - } - - @Override public File getDefaultSketchbookFolder() throws Exception { return new File(getHomeDir(), "sketchbook"); @@ -135,7 +101,7 @@ public void openURL(String url) throws Exception { super.openURL(url); } else if (openFolderAvailable()) { - String launcher = Preferences.get("launcher"); // guaranteed non-null + String launcher = AppPreferences.get("launcher"); // guaranteed non-null Runtime.getRuntime().exec(new String[] { launcher, url }); } else { @@ -146,7 +112,7 @@ public void openURL(String url) throws Exception { @Override public boolean openFolderAvailable() { - if (Preferences.get("launcher") != null) { + if (AppPreferences.get("launcher") != null) { return true; } @@ -154,7 +120,7 @@ public boolean openFolderAvailable() { try { Process p = Runtime.getRuntime().exec(new String[] { "xdg-open" }); p.waitFor(); - Preferences.set("launcher", "xdg-open"); + AppPreferences.set("launcher", "xdg-open"); return true; } catch (Exception ignored) { } @@ -163,7 +129,7 @@ public boolean openFolderAvailable() { Process p = Runtime.getRuntime().exec(new String[] { "gnome-open" }); p.waitFor(); // Not installed will throw an IOException (JDK 1.4.2, Ubuntu 7.04) - Preferences.set("launcher", "gnome-open"); + AppPreferences.set("launcher", "gnome-open"); return true; } catch (Exception ignored) { } @@ -171,7 +137,7 @@ public boolean openFolderAvailable() { try { Process p = Runtime.getRuntime().exec(new String[] { "kde-open" }); p.waitFor(); - Preferences.set("launcher", "kde-open"); + AppPreferences.set("launcher", "kde-open"); return true; } catch (Exception ignored) { } @@ -185,7 +151,7 @@ public void openFolder(File file) throws Exception { super.openFolder(file); } else if (openFolderAvailable()) { - String launcher = Preferences.get("launcher"); + String launcher = AppPreferences.get("launcher"); String[] params = new String[] { launcher, file.getAbsolutePath() }; Runtime.getRuntime().exec(params); diff --git a/app/src/processing/app/platform/MacPlatform.java b/app/src/processing/app/platform/MacPlatform.java index f26c8f2c66..4d75497b34 100644 --- a/app/src/processing/app/platform/MacPlatform.java +++ b/app/src/processing/app/platform/MacPlatform.java @@ -23,7 +23,6 @@ package processing.app.platform; import java.awt.*; -import java.awt.desktop.AppReopenedEvent; import java.awt.desktop.AppReopenedListener; import java.io.File; import java.io.FileNotFoundException; @@ -34,7 +33,7 @@ import javax.swing.JMenuBar; import processing.app.Base; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.ui.About; import processing.core.PApplet; import processing.data.StringList; @@ -48,13 +47,13 @@ public class MacPlatform extends DefaultPlatform { public void saveLanguage(String language) { String[] cmdarray = new String[]{ "defaults", "write", - System.getProperty("user.home") + "/Library/Preferences/org.processing.app", + System.getProperty("user.home") + "/Library/AppPreferences/org.processing.app", "AppleLanguages", "-array", language }; try { Runtime.getRuntime().exec(cmdarray); } catch (IOException e) { - Messages.log("Error saving platform language: " + e.getMessage()); + AppMessages.log("Error saving platform language: " + e.getMessage()); } } @@ -112,15 +111,6 @@ public void initBase(Base base) { } - public File getSettingsFolder() throws Exception { - File override = Base.getSettingsOverride(); - if (override != null) { - return override; - } - return new File(getLibraryFolder(), "Processing"); - } - - public File getDefaultSketchbookFolder() throws Exception { return new File(getDocumentsFolder(), "Processing"); } diff --git a/app/src/processing/app/platform/WindowsPlatform.java b/app/src/processing/app/platform/WindowsPlatform.java index b74a1674c3..a3a1164256 100644 --- a/app/src/processing/app/platform/WindowsPlatform.java +++ b/app/src/processing/app/platform/WindowsPlatform.java @@ -24,7 +24,6 @@ import java.awt.*; import java.io.File; -import java.io.IOException; import java.io.UnsupportedEncodingException; import com.sun.jna.Library; @@ -209,7 +208,7 @@ static public void findJDK() { */ protected void checkAssociations() { try { - if (Preferences.getBoolean(AUTO_ASSOCIATE_PREF)) { + if (AppPreferences.getBoolean(AUTO_ASSOCIATE_PREF)) { for (Association assoc : ASSOCIATIONS) { // Check the key that should be set by a previous run of the PDE String knownCommand = @@ -257,9 +256,9 @@ protected void checkSchemes() { protected void setAssociations() throws UnsupportedEncodingException { for (Association assoc : ASSOCIATIONS) { if (!assoc.register()) { - Messages.log("Could not associate " + assoc.extension + "files, " + + AppMessages.log("Could not associate " + assoc.extension + "files, " + "turning off auto-associate pref."); - Preferences.setBoolean("platform.auto_file_type_associations", false); + AppPreferences.setBoolean("platform.auto_file_type_associations", false); } } } @@ -268,7 +267,7 @@ protected void setAssociations() throws UnsupportedEncodingException { protected void setSchemes() throws UnsupportedEncodingException { for (String scheme : APP_SCHEMES) { if (!registerScheme(scheme)) { - Messages.log("Error while trying to associate " + scheme + ":// URLs."); + AppMessages.log("Error while trying to associate " + scheme + ":// URLs."); } } } @@ -351,55 +350,6 @@ protected void checkPath() { } - // looking for Documents and Settings/blah/Application Data/Processing - public File getSettingsFolder() throws Exception { - File override = Base.getSettingsOverride(); - if (override != null) { - return override; - } - - try { - String appDataRoaming = getAppDataPath(); - if (appDataRoaming != null) { - File settingsFolder = new File(appDataRoaming, APP_NAME); - if (settingsFolder.exists() || settingsFolder.mkdirs()) { - return settingsFolder; - } - } - - String appDataLocal = getLocalAppDataPath(); - if (appDataLocal != null) { - File settingsFolder = new File(appDataLocal, APP_NAME); - if (settingsFolder.exists() || settingsFolder.mkdirs()) { - return settingsFolder; - } - } - - if (appDataRoaming == null && appDataLocal == null) { - throw new IOException("Could not get the AppData folder"); - } - - // https://github.com/processing/processing/issues/3838 - throw new IOException("Permissions error: make sure that " + - appDataRoaming + " or " + appDataLocal + - " is writable."); - - } catch (UnsatisfiedLinkError ule) { - String path = new File("lib").getCanonicalPath(); - - String msg = Util.containsNonASCII(path) ? - """ - Please move Processing to a location with only - ASCII characters in the path and try again. - https://github.com/processing/processing/issues/3543 - """ : - "Could not find JNA support files, please reinstall Processing."; - Messages.showError("Windows JNA Problem", msg, ule); - return null; // unreachable - } - } - - /* What's happening internally with JNA https://github.com/java-native-access/jna/blob/master/contrib/platform/src/com/sun/jna/platform/win32/Shell32.java @@ -639,7 +589,7 @@ static WinLibC getLibC() { try { clib = Native.load("msvcrt", WinLibC.class); } catch (UnsatisfiedLinkError ule) { - Messages.showTrace("JNA Error", + AppMessages.showTrace("JNA Error", "JNA could not be loaded. Please report here:\n" + "http://github.com/processing/processing/issues/new", ule, true); diff --git a/app/src/processing/app/syntax/InputHandler.java b/app/src/processing/app/syntax/InputHandler.java index a695be1a09..f2189c8806 100644 --- a/app/src/processing/app/syntax/InputHandler.java +++ b/app/src/processing/app/syntax/InputHandler.java @@ -12,7 +12,7 @@ import javax.swing.text.*; import javax.swing.JPopupMenu; -import processing.app.Preferences; +import processing.app.AppPreferences; import processing.data.StringDict; import java.awt.event.*; @@ -579,11 +579,11 @@ public void actionPerformed(ActionEvent evt) { int lastDocument = textArea.getDocumentLength(); if (caret == lastDocument && - !Preferences.getBoolean(CONTEXT_AWARE_HOME_END)) { + !AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END)) { textArea.getToolkit().beep(); return; } else if (!Boolean.TRUE.equals(textArea.getClientProperty(SMART_HOME_END_PROPERTY))) { - if (!Preferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == lastNonWhiteSpaceOfLine) { + if (!AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == lastNonWhiteSpaceOfLine) { caret = lastOfLine; } else { caret = lastNonWhiteSpaceOfLine; @@ -644,11 +644,11 @@ public void actionPerformed(ActionEvent evt) { (firstLine == 0 ? 0 : firstLine + textArea.getElectricScroll()); int firstVisible = textArea.getLineStartOffset(firstVisibleLine); - if (caret == 0 && !Preferences.getBoolean(CONTEXT_AWARE_HOME_END)) { + if (caret == 0 && !AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END)) { textArea.getToolkit().beep(); return; } else if (!Boolean.TRUE.equals(textArea.getClientProperty(SMART_HOME_END_PROPERTY))) { - if (!Preferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == firstNonWhiteSpaceOfLine) { + if (!AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == firstNonWhiteSpaceOfLine) { caret = firstOfLine; } else { caret = firstNonWhiteSpaceOfLine; @@ -1090,7 +1090,7 @@ public void actionPerformed(ActionEvent evt) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < repeatCount; i++) sb.append(str); - if (Preferences.getBoolean("editor.completion.auto_close") && + if (AppPreferences.getBoolean("editor.completion.auto_close") && hasBracketsAndQuotes(str)) { matchBracketsAndQuotes(str, evt, textArea, sb); } else { diff --git a/app/src/processing/app/syntax/JEditTextArea.java b/app/src/processing/app/syntax/JEditTextArea.java index b3c4d18a81..5bec39d28c 100644 --- a/app/src/processing/app/syntax/JEditTextArea.java +++ b/app/src/processing/app/syntax/JEditTextArea.java @@ -226,7 +226,7 @@ protected TextAreaPainter createPainter(final TextAreaDefaults defaults) { * Inline Input Method Support for Japanese. */ public InputMethodRequests getInputMethodRequests() { - if (Preferences.getBoolean("editor.input_method_support")) { + if (AppPreferences.getBoolean("editor.input_method_support")) { if (inputMethodSupport == null) { inputMethodSupport = new InputMethodSupport(this); } @@ -1955,7 +1955,7 @@ public void paste() { // Remove tabs and replace with spaces // https://github.com/processing/processing/issues/108 if (selection.contains("\t")) { - int tabSize = Preferences.getInteger("editor.tabs.size"); + int tabSize = AppPreferences.getInteger("editor.tabs.size"); char[] c = new char[tabSize]; Arrays.fill(c, ' '); String tabString = new String(c); @@ -2434,7 +2434,7 @@ public void mouseDragged(MouseEvent evt) { try { select(getMarkPosition(), xyToOffset(evt.getX(), evt.getY())); } catch (ArrayIndexOutOfBoundsException e) { - Messages.err("xToOffset problem", e); + AppMessages.err("xToOffset problem", e); } } else { int line = yToLine(evt.getY()); diff --git a/app/src/processing/app/syntax/PdeInputHandler.java b/app/src/processing/app/syntax/PdeInputHandler.java index cc763bd3d7..14bd0cd910 100644 --- a/app/src/processing/app/syntax/PdeInputHandler.java +++ b/app/src/processing/app/syntax/PdeInputHandler.java @@ -27,15 +27,15 @@ import java.awt.event.KeyEvent; +import processing.app.AppPreferences; import processing.app.Platform; -import processing.app.Preferences; import processing.app.ui.Editor; /** * Sets key bindings used by the PDE, except for those that are Mode-specific. * Not part of the original jeditsyntax DefaultInputHandler because it makes - * use of Preferences and other PDE classes. + * use of AppPreferences and other PDE classes. */ public class PdeInputHandler extends DefaultInputHandler { @@ -73,7 +73,7 @@ public PdeInputHandler() { addKeyBinding("BACK_SPACE", InputHandler.BACKSPACE); // for 0122, shift-backspace is delete, for 0176, it's now a preference, // to prevent holy warriors from attacking me for it. - if (Preferences.getBoolean("editor.keys.shift_backspace_is_delete")) { + if (AppPreferences.getBoolean("editor.keys.shift_backspace_is_delete")) { addKeyBinding("S+BACK_SPACE", InputHandler.DELETE); } else { // Made the default for 0215, deemed better for our audience. @@ -97,7 +97,7 @@ public PdeInputHandler() { // https://processing.org/bugs/bugzilla/162.html // added for 0176, though the bindings do not appear relevant for osx - if (Preferences.getBoolean("editor.keys.alternative_cut_copy_paste")) { + if (AppPreferences.getBoolean("editor.keys.alternative_cut_copy_paste")) { addKeyBinding("C+INSERT", InputHandler.CLIPBOARD_COPY); addKeyBinding("S+INSERT", InputHandler.CLIPBOARD_PASTE); addKeyBinding("S+DELETE", InputHandler.CLIPBOARD_CUT); @@ -110,7 +110,7 @@ public PdeInputHandler() { // HOME and END now mean the beginning/end of the document // for 0176 changed this to a preference so that the Mac OS X people // can get the "normal" behavior as well if they prefer. - if (Preferences.getBoolean("editor.keys.home_and_end_travel_far")) { + if (AppPreferences.getBoolean("editor.keys.home_and_end_travel_far")) { addKeyBinding("HOME", InputHandler.DOCUMENT_HOME); addKeyBinding("END", InputHandler.DOCUMENT_END); addKeyBinding("S+HOME", InputHandler.SELECT_DOC_HOME); diff --git a/app/src/processing/app/syntax/PdeTextAreaDefaults.java b/app/src/processing/app/syntax/PdeTextAreaDefaults.java index bdffa82164..a6687335e4 100644 --- a/app/src/processing/app/syntax/PdeTextAreaDefaults.java +++ b/app/src/processing/app/syntax/PdeTextAreaDefaults.java @@ -31,7 +31,7 @@ /** * Defaults that are PDE (but not Mode) specific. PDE specific in this - * case means that it's using other PDE classes like Preferences. + * case means that it's using other PDE classes like AppPreferences. */ public class PdeTextAreaDefaults extends TextAreaDefaults { @@ -43,8 +43,8 @@ public PdeTextAreaDefaults() { electricScroll = 0; caretVisible = true; - caretBlinks = Preferences.getBoolean("editor.caret.blink"); - blockCaret = Preferences.getBoolean("editor.caret.block"); + caretBlinks = AppPreferences.getBoolean("editor.caret.blink"); + blockCaret = AppPreferences.getBoolean("editor.caret.block"); cols = 80; // Set the number of rows lower to avoid layout badness with large fonts // https://github.com/processing/processing/issues/1313 diff --git a/app/src/processing/app/syntax/TextAreaPainter.java b/app/src/processing/app/syntax/TextAreaPainter.java index 5824ef6b2c..e9e37f0d39 100644 --- a/app/src/processing/app/syntax/TextAreaPainter.java +++ b/app/src/processing/app/syntax/TextAreaPainter.java @@ -25,7 +25,7 @@ import javax.swing.text.*; import javax.swing.JComponent; -import processing.app.Preferences; +import processing.app.AppPreferences; import processing.app.syntax.im.CompositionTextPainter; @@ -88,13 +88,13 @@ protected void updateTheme() { // https://github.com/processing/processing/pull/4639 Toolkit.getMonoFontName(); */ - plainFont = Preferences.getFont("editor.font.family", "editor.font.size", Font.PLAIN); - boldFont = Preferences.getFont("editor.font.family", "editor.font.size", Font.BOLD); - antialias = Preferences.getBoolean("editor.smooth"); + plainFont = AppPreferences.getFont("editor.font.family", "editor.font.size", Font.PLAIN); + boldFont = AppPreferences.getFont("editor.font.family", "editor.font.size", Font.BOLD); + antialias = AppPreferences.getBoolean("editor.smooth"); // moved from setFont() override (never quite comfortable w/ that override) fontMetrics = super.getFontMetrics(plainFont); - tabSize = fontMetrics.charWidth(' ') * Preferences.getInteger("editor.tabs.size"); + tabSize = fontMetrics.charWidth(' ') * AppPreferences.getInteger("editor.tabs.size"); textArea.recalculateVisibleLines(); } diff --git a/app/src/processing/app/syntax/im/CompositionTextManager.java b/app/src/processing/app/syntax/im/CompositionTextManager.java index ee30609f4a..df47cf8be8 100644 --- a/app/src/processing/app/syntax/im/CompositionTextManager.java +++ b/app/src/processing/app/syntax/im/CompositionTextManager.java @@ -15,8 +15,8 @@ import javax.swing.text.BadLocationException; -import processing.app.Messages; -import processing.app.Preferences; +import processing.app.AppMessages; +import processing.app.AppPreferences; import processing.app.syntax.JEditTextArea; import processing.app.syntax.TextAreaPainter; @@ -158,7 +158,7 @@ private void removeNotCommittedText(AttributedCharacterIterator text){ } private TextLayout getTextLayout(AttributedCharacterIterator text, int committedCount) { - boolean antialias = Preferences.getBoolean("editor.smooth"); + boolean antialias = AppPreferences.getBoolean("editor.smooth"); TextAreaPainter painter = textArea.getPainter(); // create attributed string with font info. @@ -173,7 +173,7 @@ private TextLayout getTextLayout(AttributedCharacterIterator text, int committed RenderingHints.VALUE_TEXT_ANTIALIAS_ON : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); FontRenderContext frc = g2d.getFontRenderContext(); - Messages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); + AppMessages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); return new TextLayout(composed.getIterator(), frc); } diff --git a/app/src/processing/app/syntax/im/InputMethodSupport.java b/app/src/processing/app/syntax/im/InputMethodSupport.java index e3323fa110..79ee23ebb9 100644 --- a/app/src/processing/app/syntax/im/InputMethodSupport.java +++ b/app/src/processing/app/syntax/im/InputMethodSupport.java @@ -19,8 +19,8 @@ import java.text.AttributedString; import processing.app.Base; -import processing.app.Messages; -import processing.app.Preferences; +import processing.app.AppMessages; +import processing.app.AppPreferences; import processing.app.syntax.JEditTextArea; import processing.app.syntax.TextAreaDefaults; import processing.app.syntax.TextAreaPainter; @@ -79,7 +79,7 @@ public void setCallback(Callback callback) { @Override public Rectangle getTextLocation(TextHitInfo offset) { - Messages.log("#Called getTextLocation:" + offset); + AppMessages.log("#Called getTextLocation:" + offset); int line = textArea.getCaretLine(); int offsetX = textArea.getCaretPosition() - textArea.getLineStartOffset(line); // '+1' mean textArea.lineToY(line) + textArea.getPainter().getFontMetrics().getHeight(). @@ -153,7 +153,7 @@ public void inputMethodTextChanged(InputMethodEvent event) { sb.append("\t ID: " + event.getID()); sb.append("\t timestamp: " + new java.util.Date(event.getWhen())); sb.append("\t parmString: " + event.paramString()); - Messages.log(sb.toString()); + AppMessages.log(sb.toString()); } AttributedCharacterIterator text = event.getText(); // text = composedText + commitedText @@ -193,7 +193,7 @@ public void inputMethodTextChanged(InputMethodEvent event) { } CompositionTextPainter compositionPainter = textArea.getPainter().getCompositionTextPainter(); - Messages.log("textArea.getCaretPosition() + committed_count: " + (textArea.getCaretPosition() + committedCount)); + AppMessages.log("textArea.getCaretPosition() + committed_count: " + (textArea.getCaretPosition() + committedCount)); compositionPainter.setComposedTextLayout(getTextLayout(text, committedCount), textArea.getCaretPosition() + committedCount); compositionPainter.setCaret(event.getCaret()); @@ -208,7 +208,7 @@ public void inputMethodTextChanged(InputMethodEvent event) { private TextLayout getTextLayout(AttributedCharacterIterator text, int committedCount) { - boolean antialias = Preferences.getBoolean("editor.smooth"); + boolean antialias = AppPreferences.getBoolean("editor.smooth"); TextAreaPainter painter = textArea.getPainter(); // create attributed string with font info. @@ -236,7 +236,7 @@ private TextLayout getTextLayout(AttributedCharacterIterator text, int committed RenderingHints.VALUE_TEXT_ANTIALIAS_ON : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); FontRenderContext frc = g2d.getFontRenderContext(); - Messages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); + AppMessages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); return new TextLayout(composedTextString.getIterator(), frc); } diff --git a/app/src/processing/app/tools/Archiver.java b/app/src/processing/app/tools/Archiver.java index 98879d3085..f33cfcdb40 100644 --- a/app/src/processing/app/tools/Archiver.java +++ b/app/src/processing/app/tools/Archiver.java @@ -27,6 +27,7 @@ import processing.app.*; import processing.app.ui.Editor; import processing.awt.ShimAWT; +import processing.utils.Util; import java.io.*; import java.text.*; @@ -67,7 +68,7 @@ public void run() { Sketch sketch = editor.getSketch(); if (sketch.isModified()) { - Messages.showWarning("Save", "Please save the sketch before archiving."); + AppMessages.showWarning("Save", "Please save the sketch before archiving."); return; } diff --git a/app/src/processing/app/tools/InstallCommander.java b/app/src/processing/app/tools/InstallCommander.java index 33eabc6f68..677b12801e 100644 --- a/app/src/processing/app/tools/InstallCommander.java +++ b/app/src/processing/app/tools/InstallCommander.java @@ -30,7 +30,7 @@ import processing.app.Base; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Platform; import processing.app.ui.Editor; import processing.core.PApplet; @@ -145,7 +145,7 @@ public void run() { File targetFile = new File(System.getProperty("user.home"), "processing-java"); String targetPath = targetFile.getAbsolutePath(); if (targetFile.exists()) { - Messages.showWarning("File Already Exists", + AppMessages.showWarning("File Already Exists", "The processing-java program already exists at:\n" + targetPath + "\n" + "Please remove it and try again."); @@ -156,7 +156,7 @@ public void run() { editor.statusNotice("Finished."); } catch (IOException e) { - Messages.showWarning("Error while installing", + AppMessages.showWarning("Error while installing", "An error occurred and the tool was not installed.", e); } } diff --git a/app/src/processing/app/tools/ThemeSelector.java b/app/src/processing/app/tools/ThemeSelector.java index 1b146d02bb..2ba65af265 100644 --- a/app/src/processing/app/tools/ThemeSelector.java +++ b/app/src/processing/app/tools/ThemeSelector.java @@ -30,6 +30,7 @@ import processing.app.ui.Toolkit; import processing.core.PApplet; import processing.data.StringDict; +import processing.utils.Util; import javax.swing.*; import javax.swing.border.EmptyBorder; @@ -95,7 +96,7 @@ public void init(Base base) { return false; }); if (setFolders == null) { - Messages.showWarning("Could not load themes", + AppMessages.showWarning("Could not load themes", "The themes directory could not be read.\n" + "Please reinstall Processing."); return; @@ -326,7 +327,7 @@ private void setCurrentIndex(int index) { if (userModifiedTheme()) { boolean success = Theme.archiveCurrent(); if (!success) { - Messages.showWarning("Could not back up theme", + AppMessages.showWarning("Could not back up theme", "Could not save a backup of theme.txt in your sketchbook folder.\n" + "Rename it manually and try setting the theme again."); return; @@ -339,10 +340,10 @@ private void setCurrentIndex(int index) { // No longer saving a new theme.txt when making a selection, just setting a // preference so that subsequent Processing updates load new theme changes. //Util.saveFile(currentSet.get(index), sketchbookFile); - Preferences.set("theme", currentSet.getPath(index)); + AppPreferences.set("theme", currentSet.getPath(index)); // On some machines, the theme wasn't getting saved; try an explicit save // https://github.com/processing/processing4/issues/565 - Preferences.save(); + AppPreferences.save(); reloadTheme(); } diff --git a/app/src/processing/app/ui/ChangeDetector.java b/app/src/processing/app/ui/ChangeDetector.java index ce5be8bc4b..9000b9a5b4 100644 --- a/app/src/processing/app/ui/ChangeDetector.java +++ b/app/src/processing/app/ui/ChangeDetector.java @@ -35,8 +35,8 @@ import java.util.stream.Collectors; import processing.app.Language; -import processing.app.Messages; -import processing.app.Preferences; +import processing.app.AppMessages; +import processing.app.AppPreferences; import processing.app.Sketch; import processing.app.SketchCode; @@ -53,11 +53,11 @@ public class ChangeDetector implements WindowFocusListener { // Mac OS X has an (exactly) one-second difference. Not sure if it's a Java // bug or something else about how OS X is writing files. static private final int MODIFICATION_WINDOW_MILLIS = - Preferences.getInteger("editor.watcher.window"); + AppPreferences.getInteger("editor.watcher.window"); // Debugging this feature is particularly difficult, adding an option for it static private final boolean DEBUG = - Preferences.getBoolean("editor.watcher.debug"); + AppPreferences.getBoolean("editor.watcher.debug"); public ChangeDetector(Editor editor) { @@ -68,7 +68,7 @@ public ChangeDetector(Editor editor) { @Override public void windowGainedFocus(WindowEvent e) { - if (Preferences.getBoolean("editor.watcher")) { + if (AppPreferences.getBoolean("editor.watcher")) { if (sketch != null) { // make sure the sketch folder exists at all. // if it does not, it will be re-saved, and no changes will be detected @@ -196,7 +196,7 @@ private void checkFiles() { ".autosave", file.getParentFile()); scReload.copyTo(autosave); } catch (IOException e) { - Messages.showWarning("Could not autosave modified tab", + AppMessages.showWarning("Could not autosave modified tab", "Your changes to " + scReload.getPrettyName() + " have not been saved, so we won't load the new version.", e); scReload.setModified(true); // So we'll have another go at saving @@ -218,13 +218,13 @@ private void checkFiles() { if (sketch.getCode(0).equals(scResave)) { // Not a fatal error; the sketch has to stay open if // they're going to save the code that's in it. - Messages.showWarning( + AppMessages.showWarning( scResave.getFileName() + " deleted and not re-saved", "Your main tab was deleted, and Processing couldn't " + "resave it.\nYour sketch won't work without the " + "main tab.", e); } else { - Messages.showWarning("Could not re-save deleted tab", + AppMessages.showWarning("Could not re-save deleted tab", "Your copy of " + scResave.getPrettyName() + " will stay in the editor.", e); } @@ -252,7 +252,7 @@ private void showReloadPrompt( Consumer modifiedReload, Consumer modifiedKeep, Consumer delete, Consumer deletedResave) { for (SketchCode sc : mergeConflict) { - if (1 == Messages.showCustomQuestion(editor, + if (1 == AppMessages.showCustomQuestion(editor, Language.text("change_detect.reload.title"), Language.interpolate("change_detect.reload.question", sc.getFileName()), Language.text("change_detect.reload.comment"), @@ -267,7 +267,7 @@ private void showReloadPrompt( for (SketchCode sc : removed) { if (!sketch.getCode(0).equals(sc) && - 1 == Messages.showCustomQuestion(editor, + 1 == AppMessages.showCustomQuestion(editor, Language.text("change_detect.delete.title"), Language.interpolate("change_detect.delete.question", sc.getFileName()), Language.text("change_detect.delete.comment"), diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index a06cbe2383..44c7b3f42b 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -48,20 +48,9 @@ import javax.swing.text.html.*; import javax.swing.undo.*; -import com.formdev.flatlaf.FlatLaf; import com.formdev.flatlaf.util.SystemInfo; -import processing.app.Base; -import processing.app.Formatter; -import processing.app.Language; -import processing.app.Messages; -import processing.app.Mode; -import processing.app.Platform; -import processing.app.Preferences; -import processing.app.Problem; -import processing.app.RunnerListener; -import processing.app.Sketch; -import processing.app.SketchCode; -import processing.app.SketchException; +import processing.app.*; +import processing.app.AppPreferences; import processing.app.contrib.ContributionManager; import processing.app.laf.PdeMenuItemUI; import processing.app.syntax.*; @@ -319,9 +308,9 @@ public void caretUpdate(CaretEvent e) { // Set the minimum size for the editor window int minWidth = - Toolkit.zoom(Preferences.getInteger("editor.window.width.min")); + Toolkit.zoom(AppPreferences.getInteger("editor.window.width.min")); int minHeight = - Toolkit.zoom(Preferences.getInteger("editor.window.height.min")); + Toolkit.zoom(AppPreferences.getInteger("editor.window.height.min")); setMinimumSize(new Dimension(minWidth, minHeight)); // Bring back the general options for the editor @@ -459,7 +448,7 @@ public boolean importData(TransferHandler.TransferSupport support) { } } } catch (Exception e) { - Messages.showWarning("Drag & Drop Problem", + AppMessages.showWarning("Drag & Drop Problem", "An error occurred while trying to add files to the sketch.", e); return false; } @@ -585,7 +574,7 @@ protected int getDividerLocation() { /** * Read and apply new values from the preferences, either because * the app is just starting up, or the user just finished messing - * with things in the Preferences window. + * with things in the AppPreferences window. */ public void applyPreferences() { // Even though this is only updating the theme (colors, icons), @@ -883,14 +872,14 @@ public void menuSelected(MenuEvent e) { } protected void modifyFontSize(boolean increase){ - var fontSize = Preferences.getInteger("editor.font.size"); + var fontSize = AppPreferences.getInteger("editor.font.size"); fontSize += increase ? 1 : -1; fontSize = Math.max(5, Math.min(72, fontSize)); - Preferences.setInteger("editor.font.size", fontSize); + AppPreferences.setInteger("editor.font.size", fontSize); for (Editor editor : base.getEditors()) { editor.applyPreferences(); } - Preferences.save(); + AppPreferences.save(); } abstract public JMenu buildSketchMenu(); @@ -913,7 +902,7 @@ protected JMenu buildSketchMenu(JMenuItem[] runItems) { if (sketch.isUntitled() || sketch.isReadOnly()) { // Too weird to show the sketch folder when it's buried somewhere in an // OS-specific temp directory. TODO a better, and localized, message. - Messages.showMessage("Save First", "Please first save the sketch."); + AppMessages.showMessage("Save First", "Please first save the sketch."); } else { Platform.openFolder(sketch.getFolder()); @@ -928,7 +917,7 @@ protected JMenu buildSketchMenu(JMenuItem[] runItems) { // Technically, this sketch either doesn't exist (it's untitled and // lives in a temp folder) or it shouldn't be overwritten/modified // (it's an example). Just ask the user to save. TODO same as above. - Messages.showMessage("Save First", "Please first save the sketch."); + AppMessages.showMessage("Save First", "Please first save the sketch."); } else { sketch.handleAddFile(); @@ -1920,7 +1909,7 @@ public void handleOutdent() { public void handleIndentOutdent(boolean indent) { - int tabSize = Preferences.getInteger("editor.tabs.size"); + int tabSize = AppPreferences.getInteger("editor.tabs.size"); String tabString = Editor.EMPTY.substring(0, tabSize); startCompoundEdit(); @@ -2415,7 +2404,7 @@ protected SizeRequirements calculateMinorAxisRequirements( }; } }); - jtp.setFont(new Font(Preferences.get("editor.font.family"), Font.PLAIN, 10)); + jtp.setFont(new Font(AppPreferences.get("editor.font.family"), Font.PLAIN, 10)); jtp.setText(html.toString().replace("\n", "
") // Not in a
.
         .replaceAll("(? Preferences.setBoolean("export.application.stop", showStopButton.isSelected()));
-    showStopButton.setEnabled(Preferences.getBoolean("export.application.present"));
+    showStopButton.setSelected(AppPreferences.getBoolean("export.application.stop"));
+    showStopButton.addItemListener(e -> AppPreferences.setBoolean("export.application.stop", showStopButton.isSelected()));
+    showStopButton.setEnabled(AppPreferences.getBoolean("export.application.present"));
     showStopButton.setBorder(new EmptyBorder(3, 13, 6, 13));
 
     final JCheckBox presentButton = new JCheckBox(Language.text("export.options.present"));
-    presentButton.setSelected(Preferences.getBoolean("export.application.present"));
+    presentButton.setSelected(AppPreferences.getBoolean("export.application.present"));
     presentButton.addItemListener(e -> {
       boolean sal = presentButton.isSelected();
-      Preferences.setBoolean("export.application.present", sal);
+      AppPreferences.setBoolean("export.application.present", sal);
       showStopButton.setEnabled(sal);
     });
     presentButton.setBorder(new EmptyBorder(3, 13, 3, 13));
@@ -197,7 +197,7 @@ public void trigger() {
     }
 
     final boolean embed =
-      Preferences.getBoolean("export.application.embed_java");
+      AppPreferences.getBoolean("export.application.embed_java");
     final String warning1 =
       "
"; final String warning2a = @@ -229,7 +229,7 @@ public void mousePressed(MouseEvent event) { embedJavaButton.setSelected(embed); embedJavaButton.addItemListener(e -> { boolean selected = embedJavaButton.isSelected(); - Preferences.setBoolean("export.application.embed_java", selected); + AppPreferences.setBoolean("export.application.embed_java", selected); if (selected) { warningLabel.setText(embedWarning); } else { @@ -367,7 +367,7 @@ public ColorPreference(String pref) { addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { - Color color = Preferences.getColor(prefName); + Color color = AppPreferences.getColor(prefName); chooser = new ColorChooser(editor, true, color, Language.text("color_chooser.select"), ColorPreference.this); chooser.show(); } @@ -375,14 +375,14 @@ public void mouseReleased(MouseEvent e) { } public void paintComponent(Graphics g) { - g.setColor(Preferences.getColor(prefName)); + g.setColor(AppPreferences.getColor(prefName)); Dimension size = getSize(); g.fillRect(0, 0, size.width, size.height); } public void actionPerformed(ActionEvent e) { Color color = chooser.getColor(); - Preferences.setColor(prefName, color); + AppPreferences.setColor(prefName, color); //presentColorPanel.repaint(); repaint(); chooser.hide(); diff --git a/app/src/processing/app/ui/ModeSelector.java b/app/src/processing/app/ui/ModeSelector.java index 38d40ac991..cdd833bfb6 100644 --- a/app/src/processing/app/ui/ModeSelector.java +++ b/app/src/processing/app/ui/ModeSelector.java @@ -33,7 +33,7 @@ import java.awt.event.MouseEvent; import javax.swing.*; -import processing.app.Messages; +import processing.app.AppMessages; public class ModeSelector extends JPanel { @@ -131,7 +131,7 @@ public Dimension getPreferredSize() { if (g != null) { tempWidth = getFontMetrics(titleFont).stringWidth(title); } else { - Messages.err("null Graphics in EditorToolbar.getPreferredSize()"); + AppMessages.err("null Graphics in EditorToolbar.getPreferredSize()"); } } return new Dimension(MODE_GAP_WIDTH + tempWidth + diff --git a/app/src/processing/app/ui/PreferencesFrame.java b/app/src/processing/app/ui/PreferencesFrame.java index a8cf68c27d..57f2e702a3 100644 --- a/app/src/processing/app/ui/PreferencesFrame.java +++ b/app/src/processing/app/ui/PreferencesFrame.java @@ -33,12 +33,8 @@ import com.formdev.flatlaf.FlatClientProperties; -import processing.app.Base; -import processing.app.Language; -import processing.app.Messages; -import processing.app.Platform; -import processing.app.Preferences; -import processing.app.SketchName; +import processing.app.*; +import processing.app.AppPreferences; import processing.awt.ShimAWT; import processing.core.PApplet; @@ -205,11 +201,11 @@ public PreferencesFrame(Base base) { JLabel fontSizeLabel = new JLabel(Language.text("preferences.editor_font_size")); fontSizeField = new JComboBox<>(FONT_SIZES); - fontSizeField.setSelectedItem(Preferences.getInteger("editor.font.size")); + fontSizeField.setSelectedItem(AppPreferences.getInteger("editor.font.size")); JLabel consoleFontSizeLabel = new JLabel(Language.text("preferences.console_font_size")); consoleFontSizeField = new JComboBox<>(FONT_SIZES); - consoleFontSizeField.setSelectedItem(Preferences.getInteger("console.font.size")); + consoleFontSizeField.setSelectedItem(AppPreferences.getInteger("console.font.size")); // Sizing is screwed up on macOS, bug has been open since 2017 // https://github.com/processing/processing4/issues/232 @@ -270,11 +266,11 @@ public PreferencesFrame(Base base) { Border cb = new CompoundBorder(BorderFactory.createMatteBorder(1, 1, 0, 0, new Color(195, 195, 195)), BorderFactory.createMatteBorder(0, 0, 1, 1, new Color(54, 54, 54))); presentColor.setBorder(cb); - presentColor.setBackground(Preferences.getColor("run.present.bgcolor")); + presentColor.setBackground(AppPreferences.getColor("run.present.bgcolor")); /* presentColorHex = new JTextField(6); - presentColorHex.setText(Preferences.get("run.present.bgcolor").substring(1)); + presentColorHex.setText(AppPreferences.get("run.present.bgcolor").substring(1)); presentColorHex.getDocument().addDocumentListener(new DocumentListener() { @Override @@ -308,7 +304,7 @@ public void insertUpdate(DocumentEvent e) { */ selector = new ColorChooser(frame, false, - Preferences.getColor("run.present.bgcolor"), + AppPreferences.getColor("run.present.bgcolor"), Language.text("prompt.ok"), e -> { String colorValue = selector.getHexColor().substring(1); presentColor.setBackground(new Color(PApplet.unhex(colorValue))); @@ -367,8 +363,8 @@ public void mouseExited(MouseEvent e) { // inputRestartLabel.setVisible(false); */ -// inputMethodBox.addChangeListener(e -> inputRestartLabel.setVisible(inputMethodBox.isSelected() != Preferences.getBoolean("editor.input_method_support"))); - inputMethodBox.addChangeListener(e -> updateRestart("input_method", inputMethodBox.isSelected() != Preferences.getBoolean("editor.input_method_support"))); +// inputMethodBox.addChangeListener(e -> inputRestartLabel.setVisible(inputMethodBox.isSelected() != AppPreferences.getBoolean("editor.input_method_support"))); + inputMethodBox.addChangeListener(e -> updateRestart("input_method", inputMethodBox.isSelected() != AppPreferences.getBoolean("editor.input_method_support"))); // [ ] Continuously check for errors - PDE X @@ -456,7 +452,7 @@ public void mouseExited(MouseEvent e) { } }); - JLabel preferencePathLabel = new JLabel(Preferences.getPreferencesPath()); + JLabel preferencePathLabel = new JLabel(AppPreferences.getPreferencesPath()); final JLabel clickable = preferencePathLabel; preferencePathLabel.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { @@ -644,8 +640,8 @@ private void updateZoomRestartRequired() { // May cause window to resize but need the message. [fry 220502] //zoomRestartLabel.setVisible( updateRestart("zoom", - zoomAutoBox.isSelected() != Preferences.getBoolean("editor.zoom.auto") || - !Preferences.get("editor.zoom").equals(String.valueOf(zoomSelectionBox.getSelectedItem())) + zoomAutoBox.isSelected() != AppPreferences.getBoolean("editor.zoom.auto") || + !AppPreferences.get("editor.zoom").equals(String.valueOf(zoomSelectionBox.getSelectedItem())) ); } @@ -690,23 +686,23 @@ protected void disposeFrame() { * then send a message to the editor saying that it's time to do the same. */ protected void applyFrame() { -// Preferences.setBoolean("editor.smooth", //$NON-NLS-1$ +// AppPreferences.setBoolean("editor.smooth", //$NON-NLS-1$ // editorAntialiasBox.isSelected()); -// Preferences.setBoolean("export.delete_target_folder", //$NON-NLS-1$ +// AppPreferences.setBoolean("export.delete_target_folder", //$NON-NLS-1$ // deletePreviousBox.isSelected()); // if the sketchbook path has changed, rebuild the menus - String oldPath = Preferences.getSketchbookPath(); + String oldPath = AppPreferences.getSketchbookPath(); String newPath = sketchbookLocationField.getText(); if (!newPath.equals(oldPath)) { base.setSketchbookFolder(new File(newPath)); } - Preferences.set("sketch.name.approach", (String) namingSelectionBox.getSelectedItem()); + AppPreferences.set("sketch.name.approach", (String) namingSelectionBox.getSelectedItem()); // setBoolean("editor.external", externalEditorBox.isSelected()); - Preferences.setBoolean("update.check", checkUpdatesBox.isSelected()); //$NON-NLS-1$ + AppPreferences.setBoolean("update.check", checkUpdatesBox.isSelected()); //$NON-NLS-1$ // Save Language /* @@ -733,7 +729,7 @@ protected void applyFrame() { // The preference will have already been reset when the window was created if (displaySelectionBox.isEnabled()) { - int oldDisplayNum = Preferences.getInteger("run.display"); + int oldDisplayNum = AppPreferences.getInteger("run.display"); int displayNum = -1; // use the default display for (int d = 0; d < displaySelectionBox.getItemCount(); d++) { if (displaySelectionBox.getSelectedIndex() == d) { @@ -747,7 +743,7 @@ protected void applyFrame() { } } if (displayNum != oldDisplayNum) { - Preferences.setInteger("run.display", displayNum); //$NON-NLS-1$ + AppPreferences.setInteger("run.display", displayNum); //$NON-NLS-1$ // Reset the location of the sketch, the window has changed for (Editor editor : base.getEditors()) { editor.setSketchLocation(null); @@ -755,16 +751,16 @@ protected void applyFrame() { } } - Preferences.setBoolean("run.options.memory", memoryOverrideBox.isSelected()); //$NON-NLS-1$ - int memoryMin = Preferences.getInteger("run.options.memory.initial"); //$NON-NLS-1$ - int memoryMax = Preferences.getInteger("run.options.memory.maximum"); //$NON-NLS-1$ + AppPreferences.setBoolean("run.options.memory", memoryOverrideBox.isSelected()); //$NON-NLS-1$ + int memoryMin = AppPreferences.getInteger("run.options.memory.initial"); //$NON-NLS-1$ + int memoryMax = AppPreferences.getInteger("run.options.memory.maximum"); //$NON-NLS-1$ try { memoryMax = Integer.parseInt(memoryField.getText().trim()); // make sure memory setting isn't too small if (memoryMax < memoryMin) { memoryMax = memoryMin; } - Preferences.setInteger("run.options.memory.maximum", memoryMax); //$NON-NLS-1$ + AppPreferences.setInteger("run.options.memory.maximum", memoryMax); //$NON-NLS-1$ } catch (NumberFormatException e) { System.err.println("Ignoring bad memory setting"); } @@ -775,7 +771,7 @@ protected void applyFrame() { if (Toolkit.getMonoFontName().equals(fontFamily)) { fontFamily = "processing.mono"; } - Preferences.set("editor.font.family", fontFamily); + AppPreferences.set("editor.font.family", fontFamily); } try { @@ -784,11 +780,11 @@ protected void applyFrame() { // Replace with Integer version selection = Integer.parseInt((String) selection); } - Preferences.set("editor.font.size", String.valueOf(selection)); + AppPreferences.set("editor.font.size", String.valueOf(selection)); } catch (NumberFormatException e) { - Messages.log("Ignoring invalid font size " + fontSizeField); //$NON-NLS-1$ - fontSizeField.setSelectedItem(Preferences.getInteger("editor.font.size")); + AppMessages.log("Ignoring invalid font size " + fontSizeField); //$NON-NLS-1$ + fontSizeField.setSelectedItem(AppPreferences.getInteger("editor.font.size")); } try { @@ -797,71 +793,71 @@ protected void applyFrame() { // Replace with Integer version selection = Integer.parseInt((String) selection); } - Preferences.set("console.font.size", String.valueOf(selection)); + AppPreferences.set("console.font.size", String.valueOf(selection)); } catch (NumberFormatException e) { - Messages.log("Ignoring invalid font size " + consoleFontSizeField); //$NON-NLS-1$ - consoleFontSizeField.setSelectedItem(Preferences.getInteger("console.font.size")); + AppMessages.log("Ignoring invalid font size " + consoleFontSizeField); //$NON-NLS-1$ + consoleFontSizeField.setSelectedItem(AppPreferences.getInteger("console.font.size")); } - Preferences.setBoolean("editor.zoom.auto", zoomAutoBox.isSelected()); - Preferences.set("editor.zoom", + AppPreferences.setBoolean("editor.zoom.auto", zoomAutoBox.isSelected()); + AppPreferences.set("editor.zoom", String.valueOf(zoomSelectionBox.getSelectedItem())); if (Platform.isWindows()) { Splash.setDisableHiDPI(hidpiDisableBox.isSelected()); } - Preferences.setBoolean("editor.sync_folder_and_filename", syncSketchNameBox.isSelected()); + AppPreferences.setBoolean("editor.sync_folder_and_filename", syncSketchNameBox.isSelected()); - Preferences.setColor("run.present.bgcolor", presentColor.getBackground()); + AppPreferences.setColor("run.present.bgcolor", presentColor.getBackground()); - Preferences.setBoolean("editor.input_method_support", inputMethodBox.isSelected()); //$NON-NLS-1$ + AppPreferences.setBoolean("editor.input_method_support", inputMethodBox.isSelected()); //$NON-NLS-1$ if (autoAssociateBox != null) { - Preferences.setBoolean("platform.auto_file_type_associations", //$NON-NLS-1$ + AppPreferences.setBoolean("platform.auto_file_type_associations", //$NON-NLS-1$ autoAssociateBox.isSelected()); } - Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected()); - Preferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected()); - Preferences.setBoolean("pdex.completion", codeCompletionBox.isSelected()); - Preferences.setBoolean("pdex.suggest.imports", importSuggestionsBox.isSelected()); + AppPreferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected()); + AppPreferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected()); + AppPreferences.setBoolean("pdex.completion", codeCompletionBox.isSelected()); + AppPreferences.setBoolean("pdex.suggest.imports", importSuggestionsBox.isSelected()); for (Editor editor : base.getEditors()) { editor.applyPreferences(); } // https://github.com/processing/processing4/issues/608 - Preferences.save(); + AppPreferences.save(); } public void showFrame() { - //editorAntialiasBox.setSelected(Preferences.getBoolean("editor.smooth")); //$NON-NLS-1$ - inputMethodBox.setSelected(Preferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$ - errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled")); - warningsCheckerBox.setSelected(Preferences.getBoolean("pdex.warningsEnabled")); + //editorAntialiasBox.setSelected(AppPreferences.getBoolean("editor.smooth")); //$NON-NLS-1$ + inputMethodBox.setSelected(AppPreferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$ + errorCheckerBox.setSelected(AppPreferences.getBoolean("pdex.errorCheckEnabled")); + warningsCheckerBox.setSelected(AppPreferences.getBoolean("pdex.warningsEnabled")); warningsCheckerBox.setEnabled(errorCheckerBox.isSelected()); - codeCompletionBox.setSelected(Preferences.getBoolean("pdex.completion")); - importSuggestionsBox.setSelected(Preferences.getBoolean("pdex.suggest.imports")); -// deletePreviousBox.setSelected(Preferences.getBoolean("export.delete_target_folder")); //$NON-NLS-1$ + codeCompletionBox.setSelected(AppPreferences.getBoolean("pdex.completion")); + importSuggestionsBox.setSelected(AppPreferences.getBoolean("pdex.suggest.imports")); +// deletePreviousBox.setSelected(AppPreferences.getBoolean("export.delete_target_folder")); //$NON-NLS-1$ - sketchbookLocationField.setText(Preferences.getSketchbookPath()); + sketchbookLocationField.setText(AppPreferences.getSketchbookPath()); - namingSelectionBox.setSelectedItem(Preferences.get("sketch.name.approach")); + namingSelectionBox.setSelectedItem(AppPreferences.get("sketch.name.approach")); if (namingSelectionBox.getSelectedIndex() < 0) { // If no selection, revert to the classic style, and set the pref as well namingSelectionBox.setSelectedItem(SketchName.CLASSIC); - Preferences.set("sketch.name.approach", SketchName.CLASSIC); + AppPreferences.set("sketch.name.approach", SketchName.CLASSIC); } - checkUpdatesBox.setSelected(Preferences.getBoolean("update.check")); //$NON-NLS-1$ + checkUpdatesBox.setSelected(AppPreferences.getBoolean("update.check")); //$NON-NLS-1$ defaultDisplayNum = updateDisplayList(); - int displayNum = Preferences.getInteger("run.display"); //$NON-NLS-1$ + int displayNum = AppPreferences.getInteger("run.display"); //$NON-NLS-1$ if (displayNum < 1 || displayNum > displayCount) { // set the display on close instead; too much weird logic here - //Preferences.setInteger("run.display", displayNum); + //AppPreferences.setInteger("run.display", displayNum); displayNum = defaultDisplayNum; } displaySelectionBox.setSelectedIndex(displayNum-1); @@ -870,15 +866,15 @@ public void showFrame() { //EventQueue.invokeLater(new Runnable() { new Thread(this::initFontList).start(); - fontSizeField.setSelectedItem(Preferences.getInteger("editor.font.size")); - consoleFontSizeField.setSelectedItem(Preferences.getInteger("console.font.size")); + fontSizeField.setSelectedItem(AppPreferences.getInteger("editor.font.size")); + consoleFontSizeField.setSelectedItem(AppPreferences.getInteger("console.font.size")); - boolean zoomAuto = Preferences.getBoolean("editor.zoom.auto"); + boolean zoomAuto = AppPreferences.getBoolean("editor.zoom.auto"); if (zoomAuto) { zoomAutoBox.setSelected(true); zoomSelectionBox.setEnabled(false); } - String zoomSel = Preferences.get("editor.zoom"); + String zoomSel = AppPreferences.get("editor.zoom"); int zoomIndex = Toolkit.zoomOptions.index(zoomSel); if (zoomIndex != -1) { zoomSelectionBox.setSelectedIndex(zoomIndex); @@ -888,19 +884,19 @@ public void showFrame() { if (Platform.isWindows()) { hidpiDisableBox.setSelected(Splash.getDisableHiDPI()); } - syncSketchNameBox.setSelected(Preferences.getBoolean("editor.sync_folder_and_filename")); + syncSketchNameBox.setSelected(AppPreferences.getBoolean("editor.sync_folder_and_filename")); - presentColor.setBackground(Preferences.getColor("run.present.bgcolor")); - //presentColorHex.setText(Preferences.get("run.present.bgcolor").substring(1)); + presentColor.setBackground(AppPreferences.getColor("run.present.bgcolor")); + //presentColorHex.setText(AppPreferences.get("run.present.bgcolor").substring(1)); memoryOverrideBox. - setSelected(Preferences.getBoolean("run.options.memory")); //$NON-NLS-1$ + setSelected(AppPreferences.getBoolean("run.options.memory")); //$NON-NLS-1$ memoryField. - setText(Preferences.get("run.options.memory.maximum")); //$NON-NLS-1$ + setText(AppPreferences.get("run.options.memory.maximum")); //$NON-NLS-1$ memoryField.setEnabled(memoryOverrideBox.isSelected()); if (autoAssociateBox != null) { - autoAssociateBox.setSelected(Preferences.getBoolean("platform.auto_file_type_associations")); //$NON-NLS-1$ + autoAssociateBox.setSelected(AppPreferences.getBoolean("platform.auto_file_type_associations")); //$NON-NLS-1$ } // The OK Button has to be set as the default button every time the // PrefWindow is to be displayed @@ -950,7 +946,7 @@ void initFontList() { EventQueue.invokeLater(() -> { fontSelectionBox.setModel(new DefaultComboBoxModel<>(monoFontFamilies)); - String family = Preferences.get("editor.font.family"); + String family = AppPreferences.get("editor.font.family"); String defaultName = Toolkit.getMonoFontName(); if ("processing.mono".equals(family)) { family = defaultName; diff --git a/app/src/processing/app/ui/Recent.java b/app/src/processing/app/ui/Recent.java index 8dea79dcd5..ed3e508668 100644 --- a/app/src/processing/app/ui/Recent.java +++ b/app/src/processing/app/ui/Recent.java @@ -35,9 +35,9 @@ import processing.app.Base; import processing.app.Language; import processing.app.Library; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Mode; -import processing.app.Preferences; +import processing.app.AppPreferences; import processing.core.PApplet; @@ -86,7 +86,7 @@ static protected void load() throws IOException { if (new File(line).exists()) { // don't add ghost entries records.add(new Record(line)); } else { - Messages.log("Ghost file found in recent: " + line); + AppMessages.log("Ghost file found in recent: " + line); } } } @@ -241,7 +241,7 @@ synchronized static public void append(Editor editor) { remove(editor); // If the list is full, remove the first entry - if (records.size() == Preferences.getInteger("recent.count")) { + if (records.size() == AppPreferences.getInteger("recent.count")) { records.remove(0); // remove the first entry } @@ -252,7 +252,7 @@ synchronized static public void append(Editor editor) { synchronized static public void rename(Editor editor, String oldPath) { - if (records.size() == Preferences.getInteger("recent.count")) { + if (records.size() == AppPreferences.getInteger("recent.count")) { records.remove(0); // remove the first entry } int index = findRecord(oldPath); diff --git a/app/src/processing/app/ui/Theme.java b/app/src/processing/app/ui/Theme.java index edc14bf584..aa28a69500 100644 --- a/app/src/processing/app/ui/Theme.java +++ b/app/src/processing/app/ui/Theme.java @@ -22,9 +22,9 @@ package processing.app.ui; +import processing.app.AppPreferences; import processing.app.Base; -import processing.app.Messages; -import processing.app.Preferences; +import processing.app.AppMessages; import processing.app.Settings; import processing.app.syntax.SyntaxStyle; import processing.core.PApplet; @@ -55,7 +55,7 @@ static public void init() { // other things that have to be set explicitly for the defaults theme.setColor("run.window.bgcolor", SystemColor.control); - if (Preferences.get("theme") == null) { + if (AppPreferences.get("theme") == null) { // This is not being set in defaults.txt so that we have a way // to reset the theme after the major changes in 4.0 beta 9. // This does a one-time archival of the theme.txt file in the @@ -65,7 +65,7 @@ static public void init() { // renaming the file from theme.001 to theme.txt. // If they were using a built-in theme, they will need to // re-select it using the Theme Selector. - Preferences.set("theme", DEFAULT_PATH); + AppPreferences.set("theme", DEFAULT_PATH); if (getSketchbookFile().exists()) { archiveCurrent(); @@ -76,7 +76,7 @@ static public void init() { reload(); } catch (IOException e) { - Messages.showError("Problem loading theme.txt", + AppMessages.showError("Problem loading theme.txt", "Could not load theme.txt, please re-install Processing", e); } } @@ -88,14 +88,14 @@ static public void init() { */ static public void reload() { if (!loadSketchbookFile()) { - String prefTheme = Preferences.get("theme"); + String prefTheme = AppPreferences.get("theme"); try { File prefFile = new File(getThemeFolder(), prefTheme); if (prefFile.exists()) { theme.load(prefFile); } } catch (IOException e) { - Messages.showWarning("Theme Reload Problem", + AppMessages.showWarning("Theme Reload Problem", "Error while reloading the theme. Please report.", e); } } @@ -192,7 +192,7 @@ static public Font getFont(String attribute) { static public SyntaxStyle getStyle(String attribute) { - //String str = Preferences.get("editor.token." + attribute + ".style"); + //String str = AppPreferences.get("editor.token." + attribute + ".style"); String str = theme.get("editor.token." + attribute + ".style"); if (str == null) { throw new IllegalArgumentException("No style found for " + attribute); @@ -202,7 +202,7 @@ static public SyntaxStyle getStyle(String attribute) { static public Image makeGradient(String attribute, int wide, int high) { - if ("lab".equals(Preferences.get("theme.gradient.method"))) { + if ("lab".equals(AppPreferences.get("theme.gradient.method"))) { return makeGradientLab(attribute, wide, high); } else { // otherwise go with the default return makeGradientRGB(attribute, wide, high); diff --git a/app/src/processing/app/ui/Toolkit.java b/app/src/processing/app/ui/Toolkit.java index 8a5ae418bb..b26f4e91a0 100644 --- a/app/src/processing/app/ui/Toolkit.java +++ b/app/src/processing/app/ui/Toolkit.java @@ -69,10 +69,10 @@ import javax.swing.text.html.StyleSheet; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Platform; -import processing.app.Preferences; -import processing.app.Util; +import processing.app.AppPreferences; +import processing.utils.Util; import processing.awt.PGraphicsJava2D; import processing.awt.PShapeJava2D; import processing.core.PApplet; @@ -133,7 +133,7 @@ static public KeyStroke getKeyStrokeExt(String base) { String key = base + ".keystroke"; // see if there's an override in preferences.txt - String sequence = Preferences.get(key); + String sequence = AppPreferences.get(key); if (sequence != null) { KeyStroke ks = KeyStroke.getKeyStroke(sequence); if (ks != null) { @@ -585,7 +585,7 @@ static public Image getLibImage(String filename) { static public ImageIcon getLibIcon(String filename) { File file = Platform.getContentFile("lib/" + filename); if (file == null || !file.exists()) { - Messages.err("does not exist: " + file); + AppMessages.err("does not exist: " + file); return null; } return new ImageIcon(file.getAbsolutePath()); @@ -1091,21 +1091,21 @@ static public void setBorder(JComponent comp, static private float parseZoom() { - if (Preferences.getBoolean("editor.zoom.auto")) { + if (AppPreferences.getBoolean("editor.zoom.auto")) { float newZoom = Platform.getSystemZoom(); String percentSel = ((int) (newZoom*100)) + "%"; - Preferences.set("editor.zoom", percentSel); + AppPreferences.set("editor.zoom", percentSel); return newZoom; } else { - String zoomSel = Preferences.get("editor.zoom"); + String zoomSel = AppPreferences.get("editor.zoom"); if (zoomOptions.hasValue(zoomSel)) { // shave off the % symbol at the end zoomSel = zoomSel.substring(0, zoomSel.length() - 1); return PApplet.parseInt(zoomSel, 100) / 100f; } else { - Preferences.set("editor.zoom", "100%"); + AppPreferences.set("editor.zoom", "100%"); return 1; } } @@ -1181,7 +1181,7 @@ static private List getMonoFontList() { // Using AffineTransform.getScaleInstance(100, 100) doesn't change sizes FontRenderContext frc = new FontRenderContext(new AffineTransform(), - Preferences.getBoolean("editor.antialias"), + AppPreferences.getBoolean("editor.antialias"), true); // use fractional metrics for (Font font : fonts) { if (font.getStyle() == Font.PLAIN && @@ -1262,7 +1262,7 @@ static public Font getMonoFont(int size, int style) { monoBoldFont = initFont("SourceCodePro-Bold.ttf", size); } } catch (Exception e) { - Messages.err("Could not load mono font", e); + AppMessages.err("Could not load mono font", e); } } @@ -1308,7 +1308,7 @@ static public Font getSansFont(int size, int style) { sansBoldFont = initFont("ProcessingSans-Bold.ttf", size); } } catch (Exception e) { - Messages.err("Could not load sans font", e); + AppMessages.err("Could not load sans font", e); } } @@ -1338,7 +1338,7 @@ static public Font getSansFont(int size, int style) { * Load a built-in font from the Processing lib/fonts folder and register * it with the GraphicsEnvironment so that it's broadly available. * (i.e. shows up in getFontList() works, so it appears in the list of fonts - * in the Preferences window, and can be used by HTMLEditorKit for WebFrame.) + * in the AppPreferences window, and can be used by HTMLEditorKit for WebFrame.) */ static private Font initFont(String filename, int size) throws IOException, FontFormatException { File fontFile = Platform.getContentFile("lib/fonts/" + filename); @@ -1354,7 +1354,7 @@ static private Font initFont(String filename, int size) throws IOException, Font } else { msg += "Please reinstall Processing."; } - Messages.showError("Font Sadness", msg, null); + AppMessages.showError("Font Sadness", msg, null); } BufferedInputStream input = new BufferedInputStream(new FileInputStream(fontFile)); diff --git a/app/src/processing/app/ui/Welcome.java b/app/src/processing/app/ui/Welcome.java index 5e4c4cf715..6bb1f7cf85 100644 --- a/app/src/processing/app/ui/Welcome.java +++ b/app/src/processing/app/ui/Welcome.java @@ -36,7 +36,7 @@ import processing.app.Base; import processing.app.Platform; -import processing.app.Preferences; +import processing.app.AppPreferences; public class Welcome { @@ -55,12 +55,12 @@ public Welcome(Base base) throws IOException { JCheckBox checkbox = new JCheckBox("Show this message on startup"); // handles the Help menu invocation, and also the pref not existing - checkbox.setSelected("true".equals(Preferences.get("welcome.four.show"))); + checkbox.setSelected("true".equals(AppPreferences.get("welcome.four.show"))); checkbox.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { - Preferences.setBoolean("welcome.four.show", true); + AppPreferences.setBoolean("welcome.four.show", true); } else if (e.getStateChange() == ItemEvent.DESELECTED) { - Preferences.setBoolean("welcome.four.show", false); + AppPreferences.setBoolean("welcome.four.show", false); } }); panel.add(checkbox); @@ -81,7 +81,7 @@ public Welcome(Base base) throws IOException { public void handleSubmit(StringDict dict) { String sketchbookAction = dict.get("sketchbook", null); if ("create_new".equals(sketchbookAction)) { - File folder = new File(Preferences.getSketchbookPath()).getParentFile(); + File folder = new File(AppPreferences.getSketchbookPath()).getParentFile(); PApplet.selectFolder(Language.text("preferences.sketchbook_location.popup"), "sketchbookCallback", folder, this, this); @@ -89,8 +89,8 @@ public void handleSubmit(StringDict dict) { // // If un-checked, the key won't be in the dict, so null will be passed // boolean keepShowing = "on".equals(dict.get("show_each_time", null)); -// Preferences.setBoolean("welcome.show", keepShowing); -// Preferences.save(); +// AppPreferences.setBoolean("welcome.show", keepShowing); +// AppPreferences.save(); handleClose(); } */ @@ -100,7 +100,7 @@ public void handleLink(String link) { // The link will already have the full URL prefix /* if (link.endsWith("#sketchbook")) { - File folder = new File(Preferences.getSketchbookPath()).getParentFile(); + File folder = new File(AppPreferences.getSketchbookPath()).getParentFile(); ShimAWT.selectFolder(Language.text("preferences.sketchbook_location.popup"), "sketchbookCallback", folder, this); */ @@ -134,8 +134,8 @@ private void openExample(String examplePath) { @Override public void handleClose() { - Preferences.setBoolean("welcome.four.seen", true); - Preferences.save(); + AppPreferences.setBoolean("welcome.four.seen", true); + AppPreferences.save(); super.handleClose(); } }; @@ -187,7 +187,7 @@ static public void main(String[] args) { } catch (Exception e) { e.printStackTrace(); } - Preferences.init(); + AppPreferences.init(); EventQueue.invokeLater(() -> { try { diff --git a/app/src/processing/app/ui/theme/Locale.kt b/app/src/processing/app/ui/theme/Locale.kt index 254c0946c1..4b8217b30f 100644 --- a/app/src/processing/app/ui/theme/Locale.kt +++ b/app/src/processing/app/ui/theme/Locale.kt @@ -3,11 +3,11 @@ package processing.app.ui.theme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.compositionLocalOf -import processing.app.LocalPreferences -import processing.app.Messages +import processing.app.AppMessages import processing.app.Platform import processing.app.PlatformStart import processing.app.watchFile +import processing.utils.Messages import java.io.File import java.io.InputStream import java.util.* diff --git a/app/test/processing/app/SchemaTest.kt b/app/test/processing/app/SchemaTest.kt index 73f7f9c9c8..7c81365d32 100644 --- a/app/test/processing/app/SchemaTest.kt +++ b/app/test/processing/app/SchemaTest.kt @@ -20,7 +20,7 @@ class SchemaTest { } companion object { - val preferences: MockedStatic = mockStatic(Preferences::class.java) + val preferences: MockedStatic = mockStatic(AppPreferences::class.java) } @@ -126,8 +126,8 @@ class SchemaTest { fun testPreferences() { Schema.handleSchema("pde://preferences?test=value", base) preferences.verify { - Preferences.set("test", "value") - Preferences.save() + AppPreferences.set("test", "value") + AppPreferences.save() } } diff --git a/app/utils/build.gradle.kts b/app/utils/build.gradle.kts new file mode 100644 index 0000000000..a1a9c97a53 --- /dev/null +++ b/app/utils/build.gradle.kts @@ -0,0 +1,45 @@ +plugins { + id("java") + kotlin("jvm") version libs.versions.kotlin +} + +group = "processing.utils" + +repositories { + mavenCentral() + google() + maven { url = uri("https://jogamp.org/deployment/maven") } +} + +sourceSets{ + main{ + java{ + srcDirs("src") + } + kotlin{ + srcDirs("src") + } + resources{ + srcDirs("resources", listOf("languages", "fonts", "theme").map { "../../build/shared/lib/$it" }) + } + } + test{ + kotlin{ + srcDirs("src/test") + } + } +} + +dependencies { + implementation(project(":core")) + + implementation(libs.jna) + implementation(libs.jnaplatform) + + testImplementation(platform("org.junit:junit-bom:5.10.0")) + testImplementation("org.junit.jupiter:junit-jupiter") +} + +tasks.test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/app/utils/build/classes/java/main/processing/utils/Base.class b/app/utils/build/classes/java/main/processing/utils/Base.class new file mode 100644 index 0000000000000000000000000000000000000000..74778811a30af9a7cb7385161eb0b3a8e44b544e GIT binary patch literal 2694 zcma)8TT>KA6#g2JS%v|16cD303UW29<|eop11l)9NFs<46HT+*EaT43Y-VOra=+j2 z$wT5F$V(nfQl&(zlDDKPzsXAF^y~~f1j@=wPxtB5r@wQ)b576S|J?f>z)5_kq6W1J z>NIRaJ;RRce1#`1Zs(ITi`PZgXQ&@BZPS06p|-bgK7j;7bIEnG!t+c!KbW;l6)GAP zXd0T(%&@a+V$5+Y!EFXLFZ}gIOK+yCGV8l!Ce^o~Vh46A&^7GBZia)^JCbGJw7lf3 z@O@JCE(p)DR)kA8k<~~#;aE8-+tJ%sv2Hra3DXiO6|HDfut!5X_A+R})!`;NCvKXa z?*+~ggjVd+uwUxc7YjMl^%6M1usyoOFg>p>rm)M;!s2Dn~ldLbIY!CgD+B$`{orKW7t*Yb^K;l zlzh{%6L_5A@ThIL+!Y45b4J-N*p+jJzf6o8%e+()w#X&$B*US!Q?_!3?f3@KOB%xP zLgtO7faF2R({Y)wLkyiE=!otZyeL5PlCKjQQj%B2^u~)Ne^tRrx~qzJ(y~OJTcd8i zTokq+gMW(P%bY8_Sz*|`D2yz(CA>vimMzP0Tti5cDn>9WVU00tnd4MFrx{pM;+fEJ zMplbT+`7IeiPpi;lfXGj#;eHzsg%($jq{}Biju{%V$`x2hW-~#TjZF6X9?J*WEkU~ zP;mjX3g$Fi#5^T@H7;q3dz2@;h>Iu)qaH<8@FGLs7Er3?H))s3enmBu%50F_6n7DRK~LQlheGEO5hs9w$tNd7tb_;V^Kj?Lk@zWDL@-3 zGBjo#+vle3O^Mb2FcB5tLIY-y*KiHXM92a|UE0Z!sqGol7U#>wMd8lL#AeVlPL^Bq z+%@Go6xLDRQc&75TLv>lkW4S_6pNJY(jeK5cPi>ilzI;hUC_A*87a2JGI~8L>59Y> z*^%ieF;@8slb)J%R5ej&Y_4cUg+d@_eV#2)Y(uX!0+}%vBXTu2O#1V|CG}oNdI*T@ z#0ggLdQ|@#cL?bSJrb2CM4b)FNV-S8M`qrjgig6YuY*rF@Y1yKmz|uqy&mtXcn|L@ z_(1l>4;i|uUYhobQxM6Dvz1mk!Lz>O65-#+BO5AKjGiSvEa7!!9H&q&r8Y+`CfRUs zZnY$~P`?t>k1{JJ3QeTBWzCwtpbY+)VPCbqWvPgK5p=jpV`B+?%21P}@8?8(RBu5q zTyn~G?u5bU1)H>O;RbanJOy7-d)gG3t^8H+4MWGnRjC3i!J+0eLnRApNe!|}Xts^! z^p8NJNvkA%nUwb51^byMHMmZr+?Hd3My;X%3q@Krz{XyZ$ip4M4(aL28XA5g35%U> zBwYukQ1=(qp_Vj;S!RvubKnkIZlRq%kKBT;cMPn-xQA}Cu!jC0p-tz^WJrSSrVD^JlI|s_`{}o(1G{m6bb4s7i^jv`UvJ=qL1%i9z{_xh zcnrgXPp4~e9A&JK?HjaeLhS=|Drg;3a5O>YZ(@EOe{FCu)Bh*b{yP}{0ZsQYa#?@+ zE}r?LUr*n`_$@T`-@{p8iahAoC#7&|N}nP1=Q0C-VW&Jm8kYchXy7(o8Fys}jTlA? zy+0lFPuGi6IEFC{Ax)CgIERVAmDUOltOgDYk;|{()zATYwi+As!~^V6@EW=M#yZj6 z!6~454bSUWf5S^P_!Uc%@i=D+;dwI%%UgJxzPoAt4rzQ8jGqMKXZV74RFZy)ukkI~ F{{``MxX=Iq literal 0 HcmV?d00001 diff --git a/app/utils/build/classes/java/main/processing/utils/Main.class b/app/utils/build/classes/java/main/processing/utils/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..f7771be06e0568fded26eca1c2bc625825b6a275 GIT binary patch literal 1858 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 C*f*R2 literal 0 HcmV?d00001 diff --git a/app/utils/build/classes/java/main/processing/utils/Util.class b/app/utils/build/classes/java/main/processing/utils/Util.class new file mode 100644 index 0000000000000000000000000000000000000000..0ae06f47b04c38a80b693e7bbd783ba715102cd4 GIT binary patch literal 19200 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 N;CiF6$=FQ6{|84>c`E<_ literal 0 HcmV?d00001 diff --git a/app/utils/build/classes/java/main/processing/utils/settingslocation/DefaultLocation.class b/app/utils/build/classes/java/main/processing/utils/settingslocation/DefaultLocation.class new file mode 100644 index 0000000000000000000000000000000000000000..ff81bca885bc7c974d106ed705642bea19f41c3f GIT binary patch literal 762 zcmb7C%Wl&^6g@X}>(p`5Hhoauk3vaWDHdWGU;}hzL8YKbEFE`9r*b^e%ox$XqN`LO z@d11k;*Mj8plq<^dwn10+{euKA78!!c#dv>8kT%`A(pX1SU*cXCQ+8;obWHzpBg7;FL2*O${bMdB_jD&udj57AL zT~0Pkv~+gm^z5lLgs1U;SLzcscz1)Up(B-@2+b?*RQvih9CzeSg3y|ex$p4Q(%rA{-?vvU(U@T)cE(|QYlfZAoL__EbC(uq^4lso bcjh?EIh$zU0rr^tA!m84AMy9NM0b7y0?4&t literal 0 HcmV?d00001 diff --git a/app/utils/build/classes/java/main/processing/utils/settingslocation/LinuxLocation.class b/app/utils/build/classes/java/main/processing/utils/settingslocation/LinuxLocation.class new file mode 100644 index 0000000000000000000000000000000000000000..c914ac567ffbf7917383a2013b39032139ba0d3f GIT binary patch literal 2517 zcmaJ@TUT2}7~PXlPDoF=qy>sqOzjN0NCt9BI47PnLGXUp zpP+s7$=AA;QdV91*skUO@x|qBPZCTp(TB{Onc4Hr_w8@bH~Hnyhd%?jh%dtkAZVb; z#6C0&3>Q2%BYod?Rue^K=lz5)mEy?HyBSN_u9Fy-D^@YDl9jPQ^99?n)g^&oU;jb~ zA%V7=<5!o)W@jd+uP#l^rY6D&W4{5@!~wJlwBNNhtVG`88R;!w$#vRTl}b7r0w?>D zHLJ?w(Ifr!Q(?5D!$8EuK^)p^v9w3Pu>DaUu~u^HmVqt-vt-$J6O(pchS7<`I_e&Q z&PInWXv7f{PwE4j<)-Z`KSI)aO+2lm=w7$h+A;u!j7rDkWs=tIAOn27-l3MA@`)TJe9JH^dv zQoCSJgc^dq|1v75bD|ww;8Z z3n3*C7|KK-&>O}aUNvydL>kvAf@=7QjO)q7+?7HhFO@)(+>{xCzP{V_0o7)M-s=lD z62<~<7`SO-5w`?7s$NwP0<8>o+9?!OT6xmqt?Ay)D`~D-pshK)X5w|+q3AQjDtS#> zSxG4*s)?!HQSpd&MvE&e(v#Wp2AX;UmVspx87;)F-7B;gCJ^E&S!z%+@-a8du1$|- zitEeLyKXJ#ITO+H%r97;t;dzgCY7^!6^4^FO#VmZ*(320azsATmGU&{=1cLl*HEIb zIbq?l#Pw|;hvjVS>Qdl9b#+1)pjO|p3iH(3n7h92Is~MZm03$!g^I)Be^f%ZLw+&q zYBa;v0u>MiN~$L1yZNObX}9QQr1na4QF~wGnpT#9QP)+z@~lEis+^nk+nTWz#@l$u zz`MHayeDwHDh%7%aMxslYG9RQ{b41Vv@*)|wgkSay~Gt@+31wzWb@KLo^;){Vxhs! ztZ{zN#_L-J*#KUv@7d+MGNbks?23soE1yr>N{)o^0af^~2O?_wQC765a-$-;TvXAl zEB&bBs%WY1#zXjs_fckYZuEUYO;0-x6O^}nU-||<6*y7HN~2&6e9kNU|4HWi0}9jfMlzefe=>Mnq>f1k>g0f#$BTH=3i;7 ziMuKM*(2X`uag z^swzff%BThDgOAfvDIXJ!@WWFXJX&u{A2XTA|pGv_yf*IUShb(fk)^f6{BCHEjF-& zNiKYgrj!QXr-h^Fr=_V%guO6mDaLk?aSk!II1#6b8RqD0DUvRp*Tsn6q^~+zXDTsi zuR9U=i(3N*`sgu)fvMj(-J;(MZqx4GVF+3nC!2pl`(iNia(b~Tl1wk|i#@~)klw+p zPTl+tZf|2rlV4Vb{;#E_bcDxhLbV&T0*_;Gc0YV5I#eYoh$2@4*uY!t_4%7zf4|gz Qh>tlJ=J*qQhA+_bH-SEHKmY&$ literal 0 HcmV?d00001 diff --git a/app/utils/build/classes/java/main/processing/utils/settingslocation/MacLocation.class b/app/utils/build/classes/java/main/processing/utils/settingslocation/MacLocation.class new file mode 100644 index 0000000000000000000000000000000000000000..da150eabe22fb591aceb40d7080e05bd64756b6e GIT binary patch literal 1584 zcmb7ESyK~15dMa1VOa=#2kiT9c$andjP-equqa@zB$mNM>l6b$wUgXJ{N9TeZ;2;Jo9TJmJbj+VzAD8|@Yx z2Oa2SnEZE!MV>#3-nA}t#?1vh*iK8YAOeP-(XmV=gU1PGRtJPH*@`X(d*u+m4GVEo zRX4-P=yCt!nz7YZ^fI)CN(56ySt8^oamqr!gVQ*}&{dOjTWL{ZXeV%#vMd6<&2YI+ znz~2_7_6u!1M|FtL0q6liY-@ZRcYiK3l|v%Y8$yEby|jg;n7xJl+7q?T*74wBMwF} z_B*~xPbkYK_d>C}_6N4*+&hui$vW8L#EJnuKOJOM|f|oq!ktS}Y?yd5` zHFBhE(nXhAlF0lQZ;}irC~-C-?*VhV4ww^hlicjXb}9?A4BbalKD5wi)*|k8R(W&u zz9Xx7eq)iBBfNH2hCyB!=F>=Os61r?lWJZ{t#rW4i$WJ=LB(3IVB-ht`_t!KBN9un?6`_E9>O$Afv_b)b~Y@^0-oh+P%nd=~$`tDzLE3aPIG} zG^A>|xIi1Hfrtz=f|VR9gO%lTl?vR&x zJcFi+t#cpN>+vsWi^q0w;uBeFqqNmT>5QV>B_H!PNhhtqDBgRL49F`cUc6@)eetst zFf;K5=RTrmA49Jvb}_t%abO3N-$;MeWNWNoj?-(P8!_~t54{+nRb}w^Rbxh(V;G$PD|o)?R0Q-@5Gl`Sy&da!4&vnchX=S>MM=7cUW^bHNCSH)wIbOgDT(?0n#VWE>D z79QIwIb%CAf^LTB+%AA9IuJLwdKu0RHCkvqG46NZKnw?Qh;Yd#cA$e0*OC$R$8aPR zl-CNj9~h{|VtCi!>?NNK0;kS#3&%;Y({_tX)LU<;IvlwDHR2FM8rCbWqeOs4k6=>la@2@nu+XQ;! zk%e;%1AD~Za|6nNV8xb&wC%1<`@ZrcNDx1cy=?e7X@+DB?-@qA2~|qC%C(6V6UQhn zV$8y&7{+m#AT?y#J<2z_mshS9wi{%XJDE$(&i)7br3kJte9!ruBSj#2Sv{6~FZf(5 zF8EH;@^#{bE7#eGavoac`I7KOUQ0jVwj0v#k&|4w1+M)KE{f#CC~23p_JXU)WRWaX zmPhldoUHS_ZfOTWMFz>S@k?XT2(B{R*o*KAkr$v4(BfJo+g-7JwUWr!;q%OMKs{#wlJ6$Ynzq=CB%BhNi-%?5k+816%>XIr1UHedsq6FK*s_9*845#)Su-(UMP1bsRwVlmSl`4OO;fMMJ zt|?ZH-lnRhdODR>YOUf;)Ui;@h`N*4E-q|%vWfb`I(^D&nb#BbX;?FnqJquYT24ez zW*DE7ewlgz_4j~F(;KgH)03&>eM$XAXwJCuX|Myn?%UcV+$cqL)^(+yazqeFBHLp) z-9Se(lotHgy7OzeYJ|`mR;2`k^j5XdbHQ*JA0th3hITFJLL05=>8CMECrO$a&F$y5 zz2A-c?dB4cfI_T4tD^vE9=c!7=wBk`^+^kfph zqVGpUX*&E2?TO889L*$ZDv3}fd%mhdlTkUpIr0)ciI?bjfq@5czJ(LNo7G6-IZgv+ zn>P02BU_*=qnX4uE<8gd{{GKskAIMjPn;jw#&x!dR&wbCiWtU8Oo#Ifjb`5p18yFD zG{(vGUSg?_#skFHLDD`#`FRv0IEKsg%umsSJVTbUB>9viMUs?|Kn0`tnwa|rm++Jx zw{J8c5~K-By;qm>Ex zar(IVv$~J8ZDV?qmMmnY8uII;Oh0fMl#ex2PLb1jGSGqoB+cXnR_Nb>OS>qo6uv@$ G{(k{IG0h49 literal 0 HcmV?d00001 diff --git a/app/utils/build/classes/kotlin/main/META-INF/utils.kotlin_module b/app/utils/build/classes/kotlin/main/META-INF/utils.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..e82246f1535a9c1fb25df044a24bd72489978f04 GIT binary patch literal 56 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 L0MR5*AsL48t3q-{7j~a4DB~Lol40 zEO&OUD4!e_rg}{bC(E9{X>JL%?sMCfCU;#=abpZ%W(<}sSB!R%S#z#7>?CF z<=C#dwcRjnR|((cj#+Yp7}B<68XCi4t0t^^bp9sy2@`E(I30%-UZBv6YHBTuEcR>I zhXV}zI-H!%KxaS(28D=VDDgm<;SJj)9U?k>(R8>aa#gXxTaIG58;={&(Hpnda;Frt zMR@zrn8gts)o>UuGcW=>P7*n}AYZv2Ss1bFL^LoQ=_sXGIkJ$2ARCah>64`2F^1mSLbt-+BfM44E32wW3$0YM-2(DrK>VB@KDpU>F*! zum&5e%rr9ih#}V_&oE@sb1kms_XN5^aT~lYLi24~k#|=r?kdUfW1QM9S^aNfjd-ZU z^3sQ`Ug6!snub-}CgFV?w3s;Ek46>0s9+?jR8ppQA88sr3H^YU$RtKJefQC5Vut1Ep-EzI{Kroz>d}enIflV@ zQ>Q|(*VfP0sXGmXSsX6gu2^a{)`h*G(q;(1CcpEtwOBr!{+Zy+EANsM3+DSF#9 z<20h?jMI5zXa~c2@N8j)iu#BwTWnKn)(f-=ck=5odQR yNS5$<3HRs+PD8AhV4+$8lMvXbU_fF}!jPDd*hG^K8|3Ca!gY?^yp2!D)$%{zjqr>B literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab new file mode 100644 index 0000000000000000000000000000000000000000..75245d87e27c7d861c9f4958daf5a730195c676c GIT binary patch literal 4096 zcmbR3vzw2Rfq?;p;XnYw>Hty=K>QyFKqAO$(Di`$EFeWdfUFK8f}a%p2QeSNs!`d| p5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4FPgP004$+3Ecny literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..f81bca33785db841ad750e501583584177e70930 GIT binary patch literal 4096 zcmeIuO$vY@0EE%+M78M}9YP|+{?Y3E4bq|;v>8Pl9Ch)4j=-VWa&eMaD9VM*pnX-F z*pw!vTdURG%&vCSty0^l)9>s4?EE&t&_?{%3fntpH2#S8qKM=6H+q(5lh11LngUH||9 literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i new file mode 100644 index 0000000000000000000000000000000000000000..10ffa2f6a4aeb92de12f084b930cb3ad833ec65e GIT binary patch literal 32768 zcmeIu0Sy2k5X7(}2tx;MaDq3KfD4jO=U`1sj|dPTK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0tE!td)VX50xK2> c5FkK+009C72oNAZfB*pk1PBlyK;VPG1*|Xvo&W#< literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab new file mode 100644 index 0000000000000000000000000000000000000000..b1950da94e520bdd56ea6b27849bbac698923f7b GIT binary patch literal 4096 zcmbR3vzw2Jfq?;p;XnYwngFC4fcQTUfJBhhFar4?3 literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..a51544fd5c394d41ddd9d6b0feab04c69df44922 GIT binary patch literal 4096 zcmeIuK?;LF3`XI14cG4H60SYOAf*U8iq`x47kYw%yEoZ{WRk!KbnF~#OuRS~GmSTe zi%;?;mBRSz)pWkUp#Nj4Fyzjf$(kE;@|I0L1r$&~0ROmjFH#6dEh^3|E=kQR@klJr@J%cTOUx-v4KB$qN=#2> IWMF_J0DvbF2mk;8 literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i new file mode 100644 index 0000000000000000000000000000000000000000..89cbed56f48dda4ef283b0bbe62287ab8778748a GIT binary patch literal 32768 zcmeIuu?>JQ3`IdJG}($KJ!>!qW#(d*%z=_6To9cH_}059afBm4fB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk$pU@tzgHc}Z_E=QK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ ufB*pk1PBlyK!5-N0viZCtD$}8y+Miu0t5&UAV7cs0RjXF5FkL{X95%dD+Kfa literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab new file mode 100644 index 0000000000000000000000000000000000000000..f4c9c75aae5f363fd8ba2ad2a273ef6aa6253bd4 GIT binary patch literal 4096 zcmbR3vzw2Jfq?;p;XnYwngFC4fcQTUfJBhhFar4?30$h x79fpJ-KgAX2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1Jh5&gX004&>4ut>! literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..a51544fd5c394d41ddd9d6b0feab04c69df44922 GIT binary patch literal 4096 zcmeIuK?;LF3`XI14cG4H60SYOAf*U8iq`x47kYw%yEoZ{WRk!KbnF~#OuRS~GmSTe zi%;?;mBRSz)pWkUp#Nj4Fyzjf$(kE;@|I0L1r$&~0RJQ3`IdJG}($KJ!>!qW#(d*%z=_6To9cH_}059afBm4fB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk$pU@tzgHc}Z_E=QK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ ufB*pk1PBlyK!5-N0viZCtD$}8y+Miu0t5&UAV7cs0RjXF5FkL{X95%dD+Kfa literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab new file mode 100644 index 0000000000000000000000000000000000000000..f17d401a99a4f1116ee9dcf895397ee42513e188 GIT binary patch literal 4096 zcmbR3vzw2Zfq?;p;XnYwngOI5fcQTUfJBhhFar4?3h$12dt>S0@KEVY@$FH4)q)EyFDs~PwMkY?(L}n&% zb17bw2@GE?s`9>qrl6~()1FnGQ9F|2tVwmjq+WmXv490EU;ztQzycPqfCVgI0Sj2* Gr@#a9c_Qlo literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len new file mode 100644 index 0000000000000000000000000000000000000000..f5fef2f566102905cf39deac050a0328afcbb232 GIT binary patch literal 8 LcmZQz0E1ls0Kx#f literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len new file mode 100644 index 0000000000000000000000000000000000000000..a9f80ae0249093f1db8b14f71053acce35747e3d GIT binary patch literal 8 LcmZQz0D~C-0H6Sw literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at new file mode 100644 index 0000000000000000000000000000000000000000..d98363f081c9cc2170bac6a83a2a1d402d4cf903 GIT binary patch literal 709 zcmeH_K?=e^3`PG@<^;~hGe|duqToKXVVpX4N;38Qeu@isUZ4pfkNku{NJOVHsfDYK z)uwQ%76vuX-gIf5_@kHgE@jhOt0qYcXlDpkdc=l?i~=V+3?uW4YQ{pENpD7Euc1;^ acKNO*R)44auO>)4o$y3EwjG!J|0N&d8I7_4 literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i new file mode 100644 index 0000000000000000000000000000000000000000..8ad50bfeefd37d8827cd1d74e4e4e08aa2029adf GIT binary patch literal 32768 zcmeIuu?c`M5Czac+`(yF!P3@Mti(>iF(O{=N!w_P*ov7 JfB=CX34Bg^2J8R; literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab new file mode 100644 index 0000000000000000000000000000000000000000..ad7b64ba0d24861979a8b4021ca368542540c226 GIT binary patch literal 4096 zcmbR3vzw2Rfq?;p;XnYw>Hty=K>QyFKqAO$(Di`$+#p3jfUFK8f}cDMH6OpKQQ6TD o7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC70dhkC07RV%p8x;= literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..fca14efe917df0acc291bba607b343c863d81496 GIT binary patch literal 4096 zcmeIu!3lss3`Ei2hed25Vi6)D3!OmjFH#6dEh^3|E=kQR@klJr@J%cTOUx-v4KB$qN=#2> IWMBj$02BWb2mk;8 literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i new file mode 100644 index 0000000000000000000000000000000000000000..0dcd0bed01899b03f14dfc97df9905bed3ff3e55 GIT binary patch literal 32768 zcmeIu0TBQo48*YK5P=%J;Q(96Vm_8SXfiS*0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 a2oNAZfIwq`Q}1`Z-I%~S0RjXFl)wj^eF885 literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab new file mode 100644 index 0000000000000000000000000000000000000000..c91ae1efa0d4fb152a32b02f7536ed1e24565e3f GIT binary patch literal 4096 zcmbR3vzw2Ffq?;p;XnYwS^%UPfcQTU04WqTj6gmJ!vILXD3pUN4wJ`6ANuqEzZp5QO3X1omR7wI0G!Jc9%k5ufq(j=$!>-Zh}k*VXz4k%M^*+3 zZZ6fcP73PpF6icc1?i8jj8gwB>J0j0RK03a@?%n^Y!Hz%Y09OPZ|X*~H##MsmD0-s Y7O;Q?EMNf(Sik}nuz&?DV1ZBI0gL1)od5s; literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len new file mode 100644 index 0000000000000000000000000000000000000000..f4902b46ac9a6b7d5c33bd14c12130ed905cd5e1 GIT binary patch literal 8 LcmZQz0E1fq0OA1K literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len new file mode 100644 index 0000000000000000000000000000000000000000..93a595bd1bbabaf1bd4ee4909ac49e65e67fa3f4 GIT binary patch literal 8 LcmZQz0D}bp0H^?= literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at new file mode 100644 index 0000000000000000000000000000000000000000..0131099ecd001b9ad876aa34a6241d4f2c26a7e3 GIT binary patch literal 1609 zcmeHGUvCmY5TDySj%ABwL2U>o4QUjSq=np*5o2N-4Z&84P3l8^S?L1T+})DhttNf| zKZs9!Mc_v+9LBGU7odBJhyBS z-q<)X-7|b)EYo*@=W!O>7vQ&_TtMkWrE`(RDuY4}{ZVvu-eG5h&qrRukeTlyyL;iK z1(a3yrr-QJxMYq?lq_=@Hh9n=y+TAWvkRxXr$CY!O zvxd2K9VMb0xH`X+<3hfR(%WFFEq^F-yQq%6%PY6+D_gY3d81sT)T=p+*Q*}na)5;; zyf)nDcmHtsEzL!E4=Z*b9{s=U57$-xs{uP^roJrOgJB9bwuwZgnBKMwa=-_nGwddK z?yKZnUTLi~_=%cAFwrW70M!WuLQf51+U?V8@mX{efirM!H9Ge%H%#w7UCXiU;{^Cp z>t*jhf`_gxwr(|PFb=My9lWTMmA(jlLk_cnoiqvIS9jip?_^TWVI~xgY z%`*B+`~-N4*ZDf862RjMN?`kp|C-sOd=P7FHMDQ+0dyP;w!4sT$aWXDy8u4{aZV}Y literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i new file mode 100644 index 0000000000000000000000000000000000000000..69cfd6fadd95c3a2dc679a9557753c85dc0c09f1 GIT binary patch literal 32768 zcmeIup$&jA6a>&FumjVu0uswAD1w6o!wxKhBPd3}AgHRwARw>mr{Z$=LLRc<5gHty=K>QyFKqAO$(Di`$tRO`|fUFK8f}i~O4`M!kRim<_ pAut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8Uo~o001L!3cdgU literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..f81bca33785db841ad750e501583584177e70930 GIT binary patch literal 4096 zcmeIuO$vY@0EE%+M78M}9YP|+{?Y3E4bq|;v>8Pl9Ch)4j=-VWa&eMaD9VM*pnX-F z*pw!vTdURG%&vCSty0^l)9>s4?E1tK!w% zRr_q-owB)$S_!3Us;!h~C*xh>q_>()2K}tS+F*nsqlcof0}=)_m{5r$Ck?vaPPmz` rfZYPt9!L7T$rO47;zXtG0;Myv0c#xaqDp1TIrW3u8J@`_{` c5FkK+009C72oNAZfB*pk1PBlyK;VPG1*|Xvo&W#< literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab new file mode 100644 index 0000000000..2ceb12b8de --- /dev/null +++ b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/counters.tab @@ -0,0 +1,2 @@ +2 +0 \ No newline at end of file diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab new file mode 100644 index 0000000000000000000000000000000000000000..5966749409c01e227a9616485a039433807a407d GIT binary patch literal 4096 zcmbR3vzw2Rfq?;p;XnYw>Hty=K>QyFKqAO$(Di`$EFeWdfUFK8f}cDAH6OpKQQ6TD o7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC70dhkC0H`hsl>h($ literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..f81bca33785db841ad750e501583584177e70930 GIT binary patch literal 4096 zcmeIuO$vY@0EE%+M78M}9YP|+{?Y3E4bq|;v>8Pl9Ch)4j=-VWa&eMaD9VM*pnX-F z*pw!vTdURG%&vCSty0^l)9>s4?EOmjFH#6dEh^3|E=kQR@klJr@J%cTOUx-v4KB$qN=#2> KVE_Rz$p`>|QW6aS literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i new file mode 100644 index 0000000000000000000000000000000000000000..10ffa2f6a4aeb92de12f084b930cb3ad833ec65e GIT binary patch literal 32768 zcmeIu0Sy2k5X7(}2tx;MaDq3KfD4jO=U`1sj|dPTK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0tE!td)VX50xK2> c5FkK+009C72oNAZfB*pk1PBlyK;VPG1*|Xvo&W#< literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab new file mode 100644 index 0000000000000000000000000000000000000000..bc10b8266e54a71d85604f7b2077ad10f8180ce6 GIT binary patch literal 4096 zcmbR3vzw2Rfq?;p;XnYwngFC4fcQTUfJB%;1QY<(|3}t?Yz9oc0j8J$4Kg33XFAj# u0?J3FM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0s3;_T_G_!l9(%=|qUM;Ra<%o>fC!zTLg`5-oT8$sQE_I?w*5ET6GM$qvZXyHzTkwKrYsO9BK45FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk U1PBlyK!5-N0t5&UAaFt81N(dcjsO4v literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab new file mode 100644 index 0000000000000000000000000000000000000000..553fbd0b2bbeb6c26e63cbafa0345d465696e7de GIT binary patch literal 4096 zcmeIwUu0Er00;12t?h29wCQ1)L@M?$+rwosQezLxD4R4zvxkw19@69z{nVxuLBtHrX2rmv{!m9-(9H%uhG^7o!K=IN0pHC@Xal>eUNpR@EMNowr=!Y0l$z27X)@-46O6$^aH zr<`Dkk6G^7W6bg)dw7pSyv-XNVUgGPf>&7LAiwe)Gv0ZCbv(rep5Q+AvXe)7hF#3F zgAdroN$%x)HglOx+*%ewJ@;@2yI98oZs9F%WRVq|X0nn!9+C``O21 zJkA`C@D3008Qb}ht=y0ap@ogivYQRO$lWY(JEvI7MOL%6GKBSPV;TFo`aMa8xy%VJ t@EbpIXH^Ivc$n`v#2NZ+Vqycaf!IK7AT|&ihz-OBVgs>(*ua0)z)u}8MFju= literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream new file mode 100644 index 0000000000000000000000000000000000000000..89eb0a0542f0d6c54872ec918610ff2d7007968b GIT binary patch literal 4096 zcmeHJ+in^$5FLq2LK2juQ598v?E6an1VTtelmG&%K33Dk0TZviwau+xU$b~`U{ z!y9wX%+8*3YyhY|Nel>_&vA(!t~5YBl$7gtxQj|uc!TZtk(LAlfU^i?{0Q9e87kG= zj{F++Gvrfmq|yHvOY}*Hk$`aXlnRj&ZZedO(!|WKk~P&XpduE|`sGVM)Ku^Rasrpz zfoo5#D4zl}JHugr`0K4R8nvD~aGwFaY!}>hdr$r0TWj3y_e#*Of3}9bZtuAS^;XTq z>WwIcQ}RfWiD|(awU(5)f%=EgjBG@s8<&Dvr@;9~a}uf;dUjw#V_6<4A)pn`mou)15*sv%pbe5oRhYw@Uv zbn6QyB>hVUsAmI|T0zqeHX(|PNtf71uI7UBv9QE_v>xK5W0u;lpGgujldc1xrb1@o zw9mheLY$@&ZtQ}oU~r+5(7NF2D^(gk**^2ij70J)V_WVWN>J_(r+Cr$^t3fBg$gtO zWf}CBL^6Ss)Q$PloSue(%xh`tC!R$0{7UiLDjO}cbFA#8eU2t;<9DKKzHC*^7c1Kw z-Goy3Chf*$Z=oqOldBJ?hzrQZ*wJS%CI^x`@eVw%kAsj=$$_5RG*=GPabO&*>vtgo)a~Scb#V4@F-mUk=QM!G%0_9)3K-=lwOj zC=t-4sx5-RTr#iJT;0cLQLerm%t%bK0V`r;lUBsDkt?F)vR6dRhp>p5Nn;T$PF^u* z7r`PR literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.len new file mode 100644 index 0000000000000000000000000000000000000000..bba171db487d160ff9338111738a1e7f42f3e1ca GIT binary patch literal 8 McmZQz00E{S009I5`v3p{ literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at new file mode 100644 index 0000000000000000000000000000000000000000..e932cbe650d26fed85994438b40fb606aa198f75 GIT binary patch literal 1076 zcmeIvNlpS$0EA&kNZ=TK18!m1kQhzezsL)a5ZkN&< zp0(PFP=Yd4pb9mpLj#)7f;M!Z3q5#&KD@#J-e3qL7{dgn@D4NhfKQmi0+#Rv-|zz~ z_=P{XbnKS6f*^$88gAeg?jQ^ixQ8gjAPxyg!ULor4Ug~y8OTBo^6(4=C_)L!P=PAc RpbiaaLJQi^fiCoRtN|M%Tr2

GOe(pLMsa^2`eZq!bcBh1WH&* z2GgFVJ?ya>i7~9i{xC)nX_zgI(myl_slNU(h}m_UyW8&F{R(pLIp_EMoO6EXULRA% zsk~God@UcTQZ2f$b(;vLJi>$qJetppDX=w}G6+8Hyt_VIstHPc!M270#@*(z@-w;29D^{9_o_Ond_Bp^Kk%SWhG2dCWo zEWOB-9Z?15rP@Dom$E6iKl^CRgO~16u=^un1SDXcK-xe(kACNCDH)IFvfk97WXpcG zdj1 z1pEe`kNP+LG275!Jv=c?OEtH7B>@s}9)ZQ!Z-zCc@15s?mPtT91blEFX?6R~%O_$+ zDh2@!jC@*mx?{MujHshKpWm7^Tz%>(gFpq+oKdrKl`^umo}~%(HgW0Na_f?mAb}wW zU>$j%etT*N2@WZcKsL_hMs3Gs1*XoFT}U7t>ul}VEUgP&(iI7ifJg*Nuz&08%dd!J z&So=7@Y@!)r^RLkg$U}wr6Iq)#9isu!oNEB+je*Pr(b0eh{t*>$e+`%tgOY)wh8Zn z3)i1>`0qEPVP~{=OjN?-X~Gg5ApsH~0TOV8KpN`of!6Wqj@TH`t-^QD@rQz+N8qS^ z>dT8j9>T3P#7;FwosFB57iVoWw|ON25+DH*Ac21gl;L@#d1r@gJ{L+o@N?FWQMv!- zzP4Fi*lVpj8YG%M z8X^G_5S>6C&huBA{8)Pp=V5Svl1sqkkUBtQZr z;4A`7IG@T__(nR*KJ7}AKo`!rnyV)+nWHn{rn5NH-`uu#H9?@@{>wYobm3gnwiZ1SlIg>E=!NZq<3f7&_Uln+yCaNW?A4>ZeFQSV`Au(* zmmlW!V9M&7_GwdEYyy)pA2$xAhg#arM!(Lx;k#u&+ay2&g9((N%O_>!j=>}H==lp= C`pLln literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/app/utils/build/kotlin/compileKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len new file mode 100644 index 0000000000000000000000000000000000000000..131e265740f37d77b7c4a3676d2a7704ca3e4a29 GIT binary patch literal 8 McmZQz0D%Su009U9fdBvi literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/cacheable/last-build.bin b/app/utils/build/kotlin/compileKotlin/cacheable/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..21189f6e7aab8d0bff1f949163573ed546217d0d GIT binary patch literal 18 YcmZ4UmVvdLhk=1{y1MN18U`Q$05XCEVE_OC literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/app/utils/build/kotlin/compileKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin new file mode 100644 index 0000000000000000000000000000000000000000..fe5406b9c316e2135badf6a4eec9c205235a21a1 GIT binary patch literal 15234 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 T%VBk}qZu|`AHg#nn&0|w#)U}` literal 0 HcmV?d00001 diff --git a/app/utils/build/kotlin/compileKotlin/local-state/build-history.bin b/app/utils/build/kotlin/compileKotlin/local-state/build-history.bin new file mode 100644 index 0000000000000000000000000000000000000000..a4eadb86ec98d79bbeda76fb442cba72c9af3fde GIT binary patch literal 500 zcmZ4UmVvd3fr0Tg0|c-E+0)fUCB8uUAPOiTdEzJ|kj2EnlAD;B#~@lzl%JehT%4Jg zu2));nNzIi3le4llLF|H5Tih*d}W}5DN-fRsA0++J1UqW`@9BZ3M&JPQ(|!{1E$w` zGmD+`b8{2(QhYM=Qn3UaSRa3SYDsWvNeM7Ki`_DFaH?ZpdH?_b literal 0 HcmV?d00001 diff --git a/app/utils/build/libs/utils.jar b/app/utils/build/libs/utils.jar new file mode 100644 index 0000000000000000000000000000000000000000..190112f2e9c14af76354b837466ed303e1fbcbe9 GIT binary patch literal 796549 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

rhJbB*ljQ5%gHYBJQ4s+50ej2BZ@pOs%x#X3^& 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 z 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
SGWX-UW+u%bBR>i%> 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%0D(^x~5ppN2Vk(;Xs|gLV#TI?W6>%g3$-MTO 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∾̳x$e0)&s-3*kG8 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

TLBWz6*0>wxeK@MAp&HLX0 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�c>5yX6BYUbY8CJBH`DFXhBlB2 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

I;^eVgPJGkyx#bQ{k+m85t#13);0Kix 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

AAk(?paYWSH@ZF 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 z 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 monospaced (fixed-width) fonts may be used,
though the list may be imperfect. +preferences.editor_font_size = Editor font size: +preferences.console_font_size = Console font size: +preferences.interface_scale = Interface scale: +preferences.interface_scale.auto = Automatic +preferences.background_color = Background color when Presenting: +preferences.background_color.tip = Select the background color used when using Present.
Present is used to present a sketch in full-screen,
accessible from the Sketch menu. +preferences.use_smooth_text = Use smooth text in editor window +preferences.enable_complex_text = Enable complex text input +preferences.enable_complex_text.tip = Using languages such as Chinese, Japanese, and Arabic
in the Editor window require additional features to be enabled. +preferences.continuously_check = Continuously check for errors +preferences.show_warnings = Show warnings +preferences.code_completion = Code completion with +preferences.trigger_with = Trigger with +preferences.cmd_space = space +preferences.suggest_imports = Suggest import statements +preferences.increase_max_memory = Increase maximum available memory to +# preferences.delete_previous_folder_on_export = Delete previous folder on export +preferences.check_for_updates_on_startup = Allow update checking (see FAQ for information shared) +preferences.run_sketches_on_display = Run sketches on display +preferences.run_sketches_on_display.tip = Sets the display where sketches are initially placed.
As usual, if the sketch window is moved, it will re-open
at the same location, however when running in present
(full screen) mode, this display will always be used. +preferences.automatically_associate_pde_files = Automatically associate .pde files with Processing +preferences.launch_programs_in = Launch programs in +preferences.launch_programs_in.mode = mode +preferences.file = More preferences can be edited directly in the file: +preferences.file.hint = (Edit only when Processing is not running.) + +# Sketchbook Location (Frame) +sketchbook_location = Select new sketchbook folder + +# Sketchbook (Frame) +sketchbook = Sketchbook +sketchbook.tree = Sketchbook + +# Examples (Frame) +examples.title = %s Examples +examples.add_examples = Add Examples... +examples.libraries = Contributed Libraries +examples.core_libraries = Libraries +examples.contributed = Contributed Examples + +# Export (Frame) +export = Export Options +export.platforms = Platforms +export.options = Options +export.options.present = Presentation Mode +export.options.show_stop_button = Show a Stop button +export.description = Create a double-clickable application for the selected platforms: +export.unsaved_changes = Save changes before export? +export.notice.cancel.unsaved_changes = Export canceled, changes must first be saved. +export.notice.exporting = Exporting application... +export.notice.exporting.done = Done exporting. +export.notice.exporting.error = Error during export. +export.notice.exporting.cancel = Export to Application canceled. +export.tooltip.macos = macOS export is only available on macOS +export.full_screen = Full Screen +export.embed_java = Embed Java +export.include_java = Include Java in the %s application +export.code_signing = Code Signing +export.messages.is_read_only = Sketch is Read-Only +export.messages.is_read_only.description = Some files are marked “read-only,” so you will\nneed to re-save the sketch in another location,\nand try again. +export.messages.cannot_export = Cannot Export +export.messages.cannot_export.description = You cannot export a sketch that has not been saved. + +# Find (Frame) +find = Find +find.find = Find: +find.replace_with = Replace with: +find.ignore_case = Ignore Case +find.all_tabs = All Tabs +find.wrap_around = Wrap Around +find.btn.replace_all = Replace All +find.btn.replace = Replace +find.btn.replace_and_find = Replace & Find +find.btn.previous = Previous +find.btn.find = Find + +# Find in reference (Frame) +find_in_reference = Find in Reference + +# File (Frame) +file = Select an image or other data file to copy to your sketch + +# Create Font (Frame) +create_font = Create Font +create_font.label = Use this tool to create bitmap fonts for your program.\nSelect a font and size, and click ‘OK’ to generate the font.\nIt will be added to the data folder of the current sketch. +create_font.size = Size +create_font.smooth = Smooth +create_font.characters = Characters... +create_font.character_selector = Character Selector +create_font.character_selector.label = Default characters will include most bitmaps for Mac OS\nand Windows Latin scripts. Including all characters may\nrequire large amounts of memory for all of the bitmaps.\nFor greater control, you can select specific Unicode blocks. +create_font.default_characters = Default Characters +create_font.all_characters = All Characters +create_font.specific_unicode = Specific Unicode Blocks +create_font.filename = Filename + +# Color Selector (Frame) +color_selector = Color Selector + +# Archive Sketch (Frame) +archive_sketch = Archive sketch as... + +# Tweak Mode +tweak_mode = Tweak Mode +tweak_mode.save_before_tweak = Please save the sketch before running in Tweak Mode. +tweak_mode.keep_changes.line1 = Keep the changes? +tweak_mode.keep_changes.line2 = You changed some values in your sketch. Would you like to keep the changes? + +# DebugTray +debugger.name = Name +debugger.value = Value +debugger.type = Type + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Run +toolbar.present = Present +toolbar.stop = Stop +toolbar.debug = Debug +# --- +toolbar.new = New +toolbar.open = Open +toolbar.save = Save +# toolbar.export_application = Export Application +# toolbar.add_mode = Add Mode... +toolbar.manage_modes = Manage Modes… + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Continue +#toolbar.debug.step = Step +#toolbar.debug.step_into = Step Into +#toolbar.debug.stop = Stop +#toolbar.debug.toggle_breakpoints = Toggle Breakpoint +#toolbar.debug.variable_inspector = Variable Inspector + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = New Tab +editor.header.rename = Rename +editor.header.delete = Delete +editor.header.previous_tab = Previous Tab +editor.header.previous_tab.keystroke.macos = meta alt pressed LEFT +editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP +editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP +editor.header.next_tab = Next Tab +editor.header.next_tab.keystroke.macos = meta alt pressed RIGHT +editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN +editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN +editor.header.delete.warning.title = Yeah, no. +editor.header.delete.warning.text = You cannot delete the main tab of the only open sketch. + +# PopUp menu +editor.popup.jump_to_declaration = Jump to Declaration +editor.popup.show_usage = Show Usage... +editor.popup.rename = Rename... + +# Tabs +editor.tab.new = New Name +editor.tab.new.description = Name for new file +editor.tab.rename = New Name +editor.tab.rename.description = New name for file + +# Sketch +editor.sketch.rename.description = New name for sketch + +editor.status.autoformat.no_changes = No changes necessary for Auto Format. +editor.status.autoformat.finished = Auto Format finished. +editor.status.find_reference.select_word_first = First select a word to find in the reference. +editor.status.find_reference.not_available = No reference available for “%s”. +editor.status.drag_and_drop.files_added.0 = No files were added to the sketch. +editor.status.drag_and_drop.files_added.1 = One file added to the sketch. +editor.status.drag_and_drop.files_added.n = %d files added to the sketch. +editor.status.saving = Saving... +editor.status.saving.done = Done saving. +editor.status.saving.canceled = Save canceled. +editor.status.printing = Printing... +editor.status.printing.done = Done printing. +editor.status.printing.error = Error while printing. +editor.status.printing.canceled = Printing canceled. +editor.status.copy_as_html = Code formatted as HTML has been copied to the clipboard. +editor.status.debug.busy = Debugger busy... +editor.status.debug.halt = Debugger halted. +editor.status.archiver.create = Created archive “%s”. +editor.status.archiver.cancel = Archive sketch canceled. + +# Errors +editor.status.warning = Warning +editor.status.error = Error +editor.status.error.syntax = Syntax Error - %s +editor.status.error_on = Error on “%s” +editor.status.missing.default = Missing “%c” +editor.status.missing.semicolon = Missing a semicolon “;” +editor.status.missing.left_sq_bracket = Missing left square bracket “[” +editor.status.missing.right_sq_bracket = Missing right square bracket “]” +editor.status.missing.left_paren = Missing left parenthesis “(” +editor.status.missing.right_paren = Missing right parenthesis “)” +editor.status.missing.left_curly_bracket = Missing left curly bracket “{” +editor.status.missing.right_curly_bracket = Missing right curly bracket “}” +editor.status.missing.add = Consider adding “%s” +editor.status.bad_curly_quote = Curly quotes like %s don’t work. Use straight quotes. Ctrl-T to autocorrect. +editor.status.reserved_words = “color” and “int” are reserved words & cannot be used as variable names +editor.status.undefined_method = The function “%s(%s)” does not exist +editor.status.undefined_constructor = The constructor “%s(%s)” does not exist +editor.status.empty_param = The function “%s()” does not expect any parameters +editor.status.wrong_param = The function “%s()” expects parameters like: “%s(%s)” +editor.status.undef_global_var = The global variable “%s” does not exist +editor.status.undef_class = The class “%s” does not exist +editor.status.undef_var = The variable “%s” does not exist +editor.status.undef_name = The name “%s” cannot be recognized +editor.status.unterm_string_curly = String literal is not closed by a straight double quote. Curly quotes like %s won’t help. +editor.status.type_mismatch = Type mismatch, “%s” does not match with “%s” +editor.status.unused_variable = The value of the local variable “%s” is not used +editor.status.uninitialized_variable = The local variable “%s” may not have been initialized +editor.status.no_effect_assignment = The assignment to variable “%s” has no effect +editor.status.hiding_enclosing_type = The class “%s” cannot have the same name as your sketch or its enclosing class + +editor.status.bad.assignment = Possible error on variable assignment near ‘%s’? +editor.status.bad.generic = Possibly missing type in generic near ‘%s’? +editor.status.bad.identifier = Bad identifier? Did you forget a variable or start an identifier with digits near ‘%s’? +editor.status.bad.parameter = Error on parameter or method declaration near ‘%s’? +editor.status.bad.import = Import not allowed here. +editor.status.bad.mixed_mode = You may be mixing active and static modes. +editor.status.extraneous = Incomplete statement or extra code near ‘%s’? +editor.status.mismatched = Missing operator, semicolon, or ‘}’ near ‘%s’? +editor.status.missing.name = Missing name or ; near ‘%s’? +editor.status.missing.type = Missing name or ; or type near ‘%s’? + + +# Footer buttons +editor.footer.errors = Errors +editor.footer.errors.problem = Problem +editor.footer.errors.tab = Tab +editor.footer.errors.line = Line +editor.footer.console = Console + +# New handler +new.messages.is_read_only = Sketch is Read-Only +new.messages.is_read_only.description = Some files are marked “read-only”, so you will\nneed to re-save the sketch in another location,\nand try again. + +# Rename handler +rename.messages.is_untitled = Sketch is Untitled +rename.messages.is_untitled.description = How about saving the sketch first\nbefore trying to rename it? +rename.messages.is_modified = Please save the sketch before renaming. +rename.messages.is_read_only = Sketch is Read-Only +rename.messages.is_read_only.description = Some files are marked “read-only”, so you will\nneed to re-save the sketch in another location,\nand try again. + +# Naming handler +name.messages.problem_renaming = Problem with rename +name.messages.starts_with_dot.description = The name cannot start with a period. +name.messages.invalid_extension.description = “.%s” is not a valid extension. +name.messages.main_java_extension.description = The first tab cannot be a .%s file.\n(It may be time for you to graduate to a\n”real” programming environment, hotshot.) +name.messages.new_sketch_exists = Nope +name.messages.new_sketch_exists.description = A file named “%s” already exists at\n”%s” +name.messages.new_folder_exists = Cannot Rename +name.messages.new_folder_exists.description = Sorry, a sketch (or folder) named “%s” already exists. +name.messages.error = Error +name.messages.no_rename_folder.description = Could not rename the sketch folder. +name.messages.no_rename_file.description = Could not rename “%s” to “%s” +name.messages.no_create_file.description = Could not create the file “%s”\nin “%s” + +# Delete handler +delete.messages.cannot_delete = Cannot Delete +delete.messages.cannot_delete.description = You cannot delete a sketch that has not been saved. +delete.messages.cannot_delete.file = Could not do it +delete.messages.cannot_delete.file.description = Could not delete +delete.messages.is_read_only = Sketch is Read-Only +delete.messages.is_read_only.description = Some files are marked “read-only”, so you will\nneed to re-save the sketch in another location,\nand try again. + +# Save handler +save_file.messages.is_read_only = Sketch is read-only +save_file.messages.is_read_only.description = Some files are marked “read-only”, so you will\nneed to re-save this sketch to another location. +save_file.messages.sketch_exists = Cannot Save +save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. +save_file.messages.tab_exists = Nope +save_file.messages.tab_exists.description = You cannot save the sketch as “%s”\nbecause the sketch already has a tab with that name. +save_file.messages.recursive_save = How very Borges of you +save_file.messages.recursive_save.description = You cannot save the sketch into a folder\ninside itself. This would go on forever. + +# Add handler +add_file.messages.is_read_only = Sketch is Read-Only +add_file.messages.is_read_only.description = Some files are marked “read-only”, so you will\nneed to re-save the sketch in another location,\nand try again. +add_file.messages.confirm_replace = Replace the existing version of %s? +add_file.messages.error_adding = Error adding file +add_file.messages.cannot_delete.description = Could not delete the existing ‘%s’ file. +add_file.messages.cannot_add.description = Could not add ‘%s’ to the sketch. +add_file.messages.same_file = You can’t fool me +add_file.messages.same_file.description = This file has already been copied to the\nlocation from which where you’re trying to add it.\nI ain’t not doin nuthin’. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Build folder bad +temp_dir.messages.bad_build_folder.description = Could not find a place to build the sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Sketch Disappeared +ensure_exist.messages.missing_sketch.description = The sketch folder has disappeared.\nWill attempt to re-save in the same location,\nbut anything besides the code will be lost. +ensure_exist.messages.unrecoverable = Could not re-save sketch +ensure_exist.messages.unrecoverable.description = Could not properly re-save the sketch. You may be in trouble at this point,\nand it might be time to copy and paste your code to another text editor. + +# Check name +check_name.messages.is_name_modified = The sketch name had to be modified. Sketch names can only consist\nof ASCII characters and numbers (but cannot start with a number).\nThey should also be less than 64 characters long. + +# External changes detector +change_detect.reload.title=Tab modified externally +change_detect.reload.question=”%s” was modified by another program. +change_detect.reload.comment=Would you like to keep this version or load the new changes?\nEither way, the version you discard will be saved to your sketch folder. +change_detect.button.keep=Keep +change_detect.button.load_new=Load changes +change_detect.delete.title=Tab deleted externally +change_detect.delete.question=”%s” has disappeared from the sketch folder. +change_detect.delete.comment=Would you like to re-save it or remove it from your sketch? +change_detect.button.discard=Remove permanently +change_detect.button.resave=Re-save + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Contribution Manager +contrib.manager_title.update = Update Manager +contrib.manager_title.mode = Mode Manager +contrib.manager_title.tool = Tool Manager +contrib.manager_title.library = Library Manager +contrib.manager_title.examples = Examples Manager +contrib.category = Category: +contrib.filter_your_search = Filter your search... +contrib.show_only_compatible.mode = Show Only Compatible Modes +contrib.show_only_compatible.tool = Show Only Compatible Tools +contrib.show_only_compatible.library = Show Only Compatible Libraries +contrib.show_only_compatible.examples = Show Only Compatible Examples +contrib.show_only_compatible.update = Show Only Compatible Updates +contrib.restart = Restart Processing +contrib.unsaved_changes = Unsaved changes have been found +contrib.unsaved_changes.prompt = Are you sure you want to restart Processing without saving first? +contrib.messages.remove_restart = Please restart Processing to finish removing this item. +contrib.messages.install_restart = Please restart Processing to finish installing this item. +contrib.messages.update_restart = Please restart Processing to finish updating this item. +contrib.errors.list_download = Could not download the list of available contributions. +contrib.errors.list_download.timeout = Connection timed out while downloading the contribution list. +contrib.errors.download_and_install = Error during download and install of %s. +contrib.errors.description_unavailable = Description unavailable. +contrib.errors.malformed_url = The link fetched from Processing.org is not valid.\nYou can still install this library manually by visiting\nthe library\’s website. +contrib.errors.needs_repackage = %s needs to be repackaged according to the %s guidelines. +contrib.errors.no_contribution_found = Could not find %s in the downloaded file. +contrib.errors.overwriting_properties = Error overwriting .properties file. +contrib.errors.install_failed = Install failed. +contrib.errors.update_on_restart_failed = Update on restart of %s failed. +contrib.errors.temporary_directory = Could not write to temporary directory. +contrib.errors.contrib_download.timeout = Connection timed out while downloading %s. +contrib.errors.no_internet_connection = You do not seem to be connected to the Internet. +contrib.status.downloading_list = Downloading contribution list... +contrib.status.connecting = Connecting... +contrib.status.done = Done. +contrib.all = All +contrib.undo = Undo +contrib.remove = Remove +contrib.install = Install +contrib.progress.installing = Installing +contrib.progress.starting = Starting +contrib.progress.downloading = Downloading +contrib.download_error = An error occured while downloading the contribution. +contrib.missing_link = The download link for this %s is missing, please contact the author. +contrib.category.3d = 3D +contrib.category.animation = Animation +contrib.category.data = Data +contrib.category.geometry = Geometry +contrib.category.gui = GUI +contrib.category.hardware = Hardware +contrib.category.i_o = I/O +contrib.category.math = Math +contrib.category.renderer = Renderer +contrib.category.simulation = Simulation +contrib.category.sound = Sound +contrib.category.typography = Typography +contrib.category.utilities = Utilities +contrib.category.video_vision = Video & Vision +contrib.category.other = Other + +# Install on Startup +contrib.startup.errors.download_install = Error during download and install of %s +contrib.startup.errors.temp_dir = Could not write to temporary directory during download and install of %s +contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update... + +# Install on Import +contrib.import.dialog.title = Missing Libraries Available +contrib.import.dialog.primary_text = The following imported libraries are available for download, but have not been installed. +contrib.import.dialog.secondary_text = Would you like to install them now? +contrib.import.progress.download = Downloading %s... +contrib.import.progress.install = Installing %s... +contrib.import.progress.done = %s has been installed. +contrib.import.progress.final_list = The following libraries have been installed: +contrib.import.errors.link = Error: The library %s has a strange looking download link. + +# --------------------------------------- +# Warnings + +warn.delete = Delete +warn.delete.sketch_folder = Are you sure you want to delete this sketch?\nThis will remove the entire “%s” folder. +warn.delete.sketch_last = To keep your files safe, deleting the whole sketch folder is not supported in Processing. \nPlease open the sketch folder in your file explorer to delete it. +warn.delete.sketch_file = Are you sure you want to delete “%s”? +warn.cannot_change_mode.title = Cannot change mode +warn.cannot_change_mode.body = Cannot change mode,\nbecause “%s” mode is not compatible with current mode. + + +# --------------------------------------- +# Update Check + +update_check = Update +update_check.updates_available.core = A new version of Processing is available,\nwould you like to visit the Processing download page? +update_check.updates_available.contributions = There are updates available for some of the installed contributions,\nwould you like to open the the Contribution Manager now? + +# --------------------------------------- +# Beta +beta.window.title = Welcome to Beta +beta.title = Thanks for testing this Processing Beta! +beta.message = This preview release lets us gather feedback and fix issues before the final version. **Some features may not work as expected.** If you encounter problems, [please post on the forum](https://discourse.processing.org) or [open a GitHub issue](https://github.com/processing/processing4/issues). +beta.button = Ok + +# --------------------------------------- +# Color Chooser + +color_chooser = Color Selector +color_chooser.select = Select + +# --------------------------------------- +# Movie Maker + +movie_maker = Movie Maker +movie_maker.two.title = Movie Maker II: The Revenge +movie_maker.two.blurb = Create an MPEG movie or Animated GIF from a sequence of images

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA, or PNG images as the source.

TIFF and TGA will save more quickly in a sketch, but require more disk:
saveFrame(“frames/####.tif”);
saveFrame(“frames/####.tga”);

PNG images are smaller, but your sketch will run more slowly:
saveFrame(“frames/####.png”);

Lossless 4:2:0 is still imperfect because of how MPEG-4 works.
4:4:4 should be ideal, but less compatible with other software.

Formerly QuickTime Movie Maker by Werner Randelshofer,
this was mostly rewritten to use FFmpeg for Processing 4.
+movie_maker.image_folder_help_label = Drag a folder with image files into the field below: +movie_maker.choose_button = Choose... +movie_maker.select_image_folder = Select image folder... +movie_maker.sound_file_help_label = Drag a sound file into the field below (.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = Select sound file... + +movie_maker.create_movie_button = Create movie... +movie_maker.save_dialog_prompt = Save movie as... +movie_maker.width = Width: +movie_maker.height = Height: +movie_maker.compression = Compression: +movie_maker.framerate = Framerate: +movie_maker.orig_size_button = Same size as originals +movie_maker.orig_size_tooltip = Check this box if the folder contains already encoded video frames in the desired size. + +movie_maker.error.avoid_tiff = Try TGA or PNG images instead of TIFF. +movie_maker.error.badnumbers = Width and height must be whole numbers greater than zero; framerate must be a number greater than zero. +movie_maker.error.cannot_read = Could not read %s. +movie_maker.error.cannot_read_maybe_bad = Could not read %s; it may be bad. +movie_maker.error.movie_failed = Creating the QuickTime movie failed. +movie_maker.error.need_input = You need to specify the folder with image files, the sound file, or both. +movie_maker.error.no_images_found = No image files found. +movie_maker.error.sorry = Sorry +movie_maker.error.unknown_tga_format = Unknown .tga file format for %s. + +movie_maker.progress.creating_file_name = Combining images into movie file %s. +movie_maker.progress.creating_output_file = Creating output file +movie_maker.progress.initializing = Initializing... +movie_maker.progress.processing = Processing %s. + +movie_maker.progress.handling_frame = Converting frame %s of %s... diff --git a/app/utils/build/resources/main/PDE_ar.properties b/app/utils/build/resources/main/PDE_ar.properties new file mode 100644 index 0000000000..3e66aafa18 --- /dev/null +++ b/app/utils/build/resources/main/PDE_ar.properties @@ -0,0 +1,597 @@ + + +# --------------------------------------- +# Language: Arabic (ar) | العربية +# --------------------------------------- + + +# Use the built-in fonts because they have full character support +font.family.sans = SansSerif +font.family.mono = Monospaced + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = ملف +menu.file.new = جديد +menu.file.open = افتح... +menu.file.recent = فتح من الملفات الأخيرة +menu.file.sketchbook = دفتر المخطوطات... +menu.file.sketchbook.empty = دفتر مخطوطات فارغ +menu.file.examples = أمثلة... +menu.file.close = إغلاق +menu.file.save = حفظ +menu.file.save_as = حفظ ك... +menu.file.export_application = تصدير التطبيق... +menu.file.page_setup = إعدادات الصفحة +menu.file.print = طباعة +menu.file.preferences = إعدادات... +menu.file.quit = خروج + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = تعديل +menu.edit.undo = تراجع +menu.edit.redo = إعادة +menu.edit.action.addition = إضافة +menu.edit.action.deletion = حذف +menu.edit.cut = قص +menu.edit.copy = نسخ +menu.edit.copy_as_html = نسخ ك HTML +menu.edit.paste = لصق +menu.edit.select_all = تحديد الكل +menu.edit.auto_format = فرمتة تلقائية +menu.edit.comment_uncomment = تعليق/إلغاء التعليق +menu.edit.increase_indent = زيادة المسافة البادئة → +menu.edit.decrease_indent = انقاص المسافة البادئة ← +menu.edit.find = بحث... +menu.edit.find_next = النتيجة التالية +menu.edit.find_previous = النتيجة السابقة +menu.edit.use_selection_for_find = ابحث عن المحدد + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = تشغيل +menu.sketch.present = تقديم +menu.sketch.tweak = تعديل +menu.sketch.stop = إيقاف +# --- +menu.library = استيراد مكتبة... +menu.library.add_library = إضافة مكتبة... +menu.library.contributed = مساهمات +menu.library.no_core_libraries = لا يوجد مكتبات أساسية لهذا الوضع +# --- +menu.sketch = المخطوط +menu.sketch.show_sketch_folder = إظهار ملف المخطوطات +menu.sketch.add_file = إضافة ملف.. + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = تنقيح +menu.debug.enable = تفعيل أداة التنقيح +menu.debug.disable = تعطيل أداة التنقيح +#menu.debug.show_debug_toolbar = إظهار شريط أدواة التنقيح +#menu.debug.debug = تنقيح +#menu.debug.stop = توقف +# --- +menu.debug.toggle_breakpoint = تبديل حالة نقطة الوقوف +#menu.debug.list_breakpoints = قائمة نقاط الوقوف +# --- +# used for both menus and toolbars +menu.debug.step = تقدم +menu.debug.step_into = تقدم إلى الأمام +menu.debug.step_out = تقدم إلى الخلف +menu.debug.continue = استمر +# --- +#menu.debug.print_stack_trace = طباعة أثر المكدس +#menu.debug.print_locals = طباعة المتغيرات المحلية +#menu.debug.print_fields = طباعة الحقول +#menu.debug.print_source_location = طباعة مكان المصدر +#menu.debug.print_threads = طباعة شرط التعليمات +# --- +#menu.debug.variable_inspector = مظهر المتغيرات +menu.debug.show_variables = إظهار المتغيرات +menu.debug.hide_variables = إخفاء المتغيرات +#menu.debug.show_sketch_outline = إظهار موجز المخطوط +#menu.debug.show_tabs_list = إظهار قائمة علامات التبويب + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = أدوات +menu.tools.color_selector = أداة اختيار الألوان... +menu.tools.create_font = أداة صناعة الخطوط +menu.tools.archive_sketch = أرشفة المخطوط +menu.tools.fix_the_serial_lbrary = إصلاح مكتبة الاتصالات التسلسلية +menu.tools.install_processing_java = تثبيت"processing-java" +menu.tools.add_tool = أضف أداة + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = مساعدة +menu.help.welcome = مرحباً بكم في Processing +menu.help.about = عن Processing +menu.help.environment = البيئة +menu.help.reference = مراجع +menu.help.find_in_reference = إبحث في مرجع +menu.help.libraries_reference = مرجع المكتبات +menu.help.tools_reference = مرجع الأدوات +menu.help.empty = (فارغ) +menu.help.online = متصل +menu.help.getting_started = البدء +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = اكتشاف الأخطاء وإصلاحها +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = الأسئلة الشائعة +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = Processing مؤسسة +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Processing.org زيارة +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = نعم +prompt.no = لا +prompt.cancel = إلغاء +prompt.ok = موافق +prompt.browse = تصفح +prompt.export = تصدير + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = فتح مخطوط بروسسنج... + +# Save (Frame) +save = حفظ ملف المخطوطات ك... +save.title = هل تريد حفظ التغييرات على %s قبل الإغلاق؟ +save.hint = في حال عدم الحفظ, ستفقد كل التغييرات على الملف +save.btn.save = حفظ +save.btn.dont_save = عدم الحفظ + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = ؟%s هل تريد حفظ التغييرات على + +# AppPreferences (Frame) +preferences = الإعدادات +preferences.button.width = 80 +preferences.requires_restart = تلزم إعادة تشغيل Processing +preferences.sketchbook_location = موقع دفتر المخطوطات +preferences.sketchbook_location.popup = موقع دفتر المخطوطات +preferences.language = اللغة +preferences.editor_and_console_font = خط المحرر ووحدة الأوامر +preferences.editor_and_console_font.tip = .اختر خطاً لاستخدامه في المحرر ووحدة الأوامر.
يمكن استخدام الخطوط ذات الفراغات الموحدة فقط +preferences.editor_font_size = حجم خط المحرر +preferences.console_font_size = حجم خط وحدة الأوامر +preferences.zoom = حجم الواجهة +preferences.zoom.auto = تلقائي +preferences.background_color = لون الخلفية خلال وضعية التقديم +preferences.background_color.tip = اختر لون خلفية لاستخدامها في وضعية التقديم.
وضعية التقديم تقوم بعرض المخطوطة على ملء الشاشة.
يمكن تشغيل وضعية التقديم من نافذة المخطوط. +preferences.use_smooth_text = استخدام خط سلس في نافذة المحرر +preferences.enable_complex_text_input = تفعيل وضعية الإدخال المعقدة +preferences.enable_complex_text_input_example = يقصد هنا اللغة اليابانية +preferences.continuously_check = تحقق من الأخطاء بشكل دائم +preferences.show_warnings = أظهر التحذيرات +preferences.code_completion = إكمال شفرة المصدر باستخدام +preferences.trigger_with = تفعيل باستخدام +preferences.cmd_space = فراغ +preferences.suggest_imports = اقتراح أوامر استيراد المكتبات +preferences.increase_max_memory = زيادة الذاكرة المتاحة إلى +preferences.delete_previous_folder_on_export = حذف الملف السابق بعد التصدير +preferences.check_for_updates_on_startup = السماح بالبحث التلقائي عن التحديثات (راجع الأسئلة الشائعة لتفاصيل عن المعلومات المشاركة) +preferences.run_sketches_on_display = تشغيل المخطوط على الشاشة. +preferences.run_sketches_on_display.tip = لتحديد الشاشة التي ستستخدم لعرض المخطوط.
كالعادة, إذا تم تحريك النافذة, سيعاد فتحها في المرة القادمة
في نفس هذا المكان. لكن في حال تشغيل المخطوط في وضعية
العرض (الشاشة الملئة), سيتم استخدام هذه الشاشة المحددة للعرض. +preferences.automatically_associate_pde_files = تلقائياً مع بروسسنج .pde ربط الملفات بلاحقة +preferences.launch_programs_in = بدء البرنامج في +preferences.launch_programs_in.mode = الوضع +preferences.file = يمكن تعديل المزيد من الإعدادات في الملف +preferences.file.hint = قم بالتعديل عندما يكون Processing غير مفعل + +# Sketchbook Location (Frame) +sketchbook_location = اختر مكان جديد لكتاب المخطوطات + +# Sketchbook (Frame) +sketchbook = كتاب مخطوطات +sketchbook.tree = كتاب مخطوطات + +# Examples (Frame) +examples.title = أمثلة %s +examples.add_examples = أضف أمثلة... +examples.libraries = المكتبات المشاركة +examples.core_libraries = المكتبات +examples.contributed = الأمثلة المشاركة + +# Export (Frame) +export = خيارات التصدير +export.platforms = المنصات +export.options = الخيارات +export.options.present = وضعية التقديم +export.options.show_stop_button = إظهار زر التوقف +export.description.line1 = خيار "التصدير إلى تطبيق" ينتج برامج قابلة للتنفيذ, +export.description.line2 = برنامج منفصل لمنصات محددة. +export.unsaved_changes = حفظ التغييرات قبل التصدير؟ +export.notice.cancel.unsaved_changes = تم إلغاء التصدير. يجب حفظ التغييرات أولاً. +export.notice.exporting = يتم تصدير التطبيق +export.notice.exporting.done = تم التصدير. +export.notice.exporting.error = حصل خطأ خلال التصدير. +export.notice.exporting.cancel = تم إلغاء عملية التصدير. +export.tooltip.macos = macOS متاح فقط على macOS التصدير ل +export.full_screen = ملء الشاشة +export.embed_java = تضمين جافا +export.code_signing = توقيع الشفرة المصدرية +export.messages.is_read_only = هذا المخطوط للقراءة فقط +export.messages.is_read_only.description = بعض الملفات محددة ك "للقراءة فقط", \nستحتاج لإعادة حفظ المخطوطات في مكان آخر, \nوالمحاولة لاحقاً. +export.messages.cannot_export = لا يمكن التصدير +export.messages.cannot_export.description = لا يمكنك تصدير مخطوط لم يحفظ بعد. + +# Find (Frame) +find = البحث +find.find = ابحث عن: +find.replace_with = استبدل ب: +find.ignore_case = تجاهل الحالة (لا يلزم للغة العربية) +find.all_tabs = جميع علامات التبويب +find.wrap_around = طي النص حول +find.btn.replace_all = استبدال الكل +find.btn.replace = استبدال +find.btn.replace_and_find = استبدال وبحث +find.btn.previous = سابق +find.btn.find = ابحث + +# Find in reference (Frame) +find_in_reference = البحث في المرجع + +# File (Frame) +file = اختر صورة أو ملفات بيانات أخرى ليتم نسخها إلى مخطوطتك + +# Create Font (Frame) +create_font = اصنع خط جديد +create_font.label = استخدم هذه الأداة لتوليد خطوط لبرنامحك. \nاختر الخط والحجم المطلوب, وانقر على موافق لتوليد الخط. \nستتم إضافة الخط إلى ملف البيانات الخاص بالمخطوط الحالي. +create_font.size = الحجم +create_font.smooth = سلس +create_font.characters = الأحرف... +create_font.character_selector = أداة اختيار الأحرف +create_font.character_selector.label = الرموز الافتراضية ستتضمن أغلب الأشكال اللاتينية اللازمة لنظم تشغيل وينودوز وماك. \nتضمين جميع الرموز سيتطلب مساحة ذاكرة أكبر. \nلمزيد من التحكم, يمكنك اختيار أقسام معينة من تشفير يونيكود. +create_font.default_characters = الأحرف الافتراضية +create_font.all_characters = كل الأحرف +create_font.specific_unicode = مجموعات يونيكود محددة +create_font.filename = اسم الملف + +# Color Selector (Frame) +color_selector = أداة اختيار الألوان + +# Archive Sketch (Frame) +archive_sketch = أرشف المخطوط بإسم... + +# Tweak Mode +tweak_mode = وضع التعديل +tweak_mode.save_before_tweak = يرجى حفظ التغييرات قبل تفعيل وضع التعديل. +tweak_mode.keep_changes.line1 = هل تريد اللإبقاء على التغييرات؟ +tweak_mode.keep_changes.line2 = لقد تم تغيير بعض القيم في مخطوطتك. هل تريد حفظ التغييرات؟ + +# DebugTray +debugger.name = الإسم +debugger.value = القيمة +debugger.type = النوع + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = تشغيل +toolbar.present = عرض +toolbar.stop = توقف +toolbar.debug = تنقيح +# --- +toolbar.new = جديد +toolbar.open = فتح +toolbar.save = حفظ +# toolbar.export_application = تصدير التطبيق +toolbar.add_mode = إضافة وضع جديد... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = الاستمرار +#toolbar.debug.step = خطوة +#toolbar.debug.step_into = تقدم نحو +#toolbar.debug.stop = توقف +#toolbar.debug.toggle_breakpoints = تبديل حالة نقطة التوقف +#toolbar.debug.variable_inspector = مظهر المتغيرات + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = علامة تبويب حديدة +editor.header.rename = إعادة تسمية +editor.header.delete = حذف +editor.header.previous_tab = علامة التبويب السابقة +editor.header.next_tab = علامة التبويب اللاحقة +editor.header.delete.warning.title = هممم, لا. +editor.header.delete.warning.text = لا يمكنك حذف علامة التبويت الخاصة بالمخطوط الوحيد المفتوح. + +# PopUp menu +editor.popup.jump_to_declaration = القفز إلى التعريف. +editor.popup.show_usage = أظهر الاستخدام +editor.popup.rename = إعادة تسمية + +# Tabs +editor.tab.new = إسم جديد +editor.tab.new.description = إسم الملف الجديد +editor.tab.rename = إسم جديد +editor.tab.rename.description = إسم الملف الجديد + +# Sketch +editor.sketch.rename.description = إسم المخطوط الجديد + +editor.status.autoformat.no_changes = لم تلزم أية تغييرات من الفرمتة التلقائية +editor.status.autoformat.finished = إنتهت الفرمتة التلقائية. +editor.status.find_reference.select_word_first = اختر كلمة ليتم البحث عنها. +editor.status.find_reference.not_available = تعذر العثور على "%s" في المراجع. +editor.status.drag_and_drop.files_added.0 = لم تتم إضافة أية مخطوطات إلى الملف. +editor.status.drag_and_drop.files_added.1 = تم إضافة ملف واحد إلى المخطوط +editor.status.drag_and_drop.files_added.n = تم إضافة %d ملف إلى المخطوط. +editor.status.saving = يتم الحفظ... +editor.status.saving.done = تم الحفظ... +editor.status.saving.canceled = تم إلغاء الحفظ. +editor.status.printing = تتم الطباعة... +editor.status.printing.done = تمت الطباعة. +editor.status.printing.error = حدث خطأ خلال الطباعة. +editor.status.printing.canceled = تم إلغاء الطباعة. +editor.status.copy_as_html = تم نسخ شفرة مصدرية بتشفير HTML إلى لوح المقصوصات. +editor.status.debug.busy = أداة التنقيح مشغولة. +editor.status.debug.halt = أداة التنقيح متوقفة. +editor.status.archiver.create = ."%s" تم إنشاء الأرشيف +editor.status.archiver.cancel = تم إلغاء أرشفة المخطوط. + +# Errors +editor.status.warning = تحذير +editor.status.error = خطأ +editor.status.error_on = "%s" خطأ في +editor.status.missing.default = "%c" ينقص +editor.status.missing.semicolon = ";" تنقص فاصلة منقوطة +editor.status.missing.left_sq_bracket = يوجد قوص مربع يساري ناقص "[" +editor.status.missing.right_sq_bracket = يوجد قوص مربع يميني ناقص "]" +editor.status.missing.left_paren = يوجد قوص يساري ناقص "(" +editor.status.missing.right_paren = يوجد قوص يميني ناقص ")" +editor.status.missing.left_curly_bracket = يوجد قوص مجعد يساري ناقص "{" +editor.status.missing.right_curly_bracket = يوجد قوص مجعد يميني ناقص "}" +editor.status.missing.add = قد تحتاج لإضافة "%s" +editor.status.reserved_words = "color" و "int" من الكلمات المحجوزة ولا يمكن استخدامهما كأسماء متغيرات +editor.status.undefined_method = الدالة "%s(%s)" غير معرفة +editor.status.undefined_constructor = الباني "%s(%s)" غير معرف +editor.status.empty_param = الدالة "%s()" لا تحتاج لأية معطيات +editor.status.wrong_param = "%s(%s)" الدالة "%s()" تحتاج معطيات بشكل +editor.status.undef_global_var = المتغير العالمي "%s" غير موجود +editor.status.undef_class = الصنف "%s" غير موجود +editor.status.undef_var = المتغير "%s" غير موجود +editor.status.undef_name = تعذر العثور على الإسم "%s" +editor.status.type_mismatch = الأنواع غير متطابقة. "%s" لا يطابق "%s". +editor.status.unused_variable = قيمة المتغير المحلي "%s" غير مستخدمة +editor.status.uninitialized_variable = لم يتم تعريف المتغير المحلي "%s" +editor.status.no_effect_assignment = الإسناد للمتغير "%s" ليس لديه أي مفعول +editor.status.hiding_enclosing_type = لا يمكن أن يكون إسم الصنف "%s" كإسم المخطوط أو إسم الصنف المحتوي + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error.syntax = خطأ قواعدي - %s + +# Footer buttons +editor.footer.errors = أخطاء +editor.footer.errors.problem = مشاكل +editor.footer.errors.tab = علامات تبويب +editor.footer.errors.line = سطر +editor.footer.console = لوحة أوامر + +# New handler +new.messages.is_read_only = المخطوط للقراءة فقط. +new.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. + +# Rename handler +rename.messages.is_untitled = المخطوط غير مسمى +rename.messages.is_untitled.description = ألا تريد حفظ المخطوط قبل إعادة التسمية؟ +rename.messages.is_modified = يرجى حفظ المخطوط قبل إعادة التسمية. +rename.messages.is_read_only = المخطوط للقراءة فقط. +rename.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. + +# Naming handler +name.messages.problem_renaming = حدثت مشكلة خلال إعادة التسمية +name.messages.starts_with_dot.description = لا يمكن أن يبدأ الإسم بنقطة. +name.messages.invalid_extension.description = اللاحقة ".%s" غير صالحة +name.messages.main_java_extension.description = .%s علامة التبويب الأولى لا يمكن أن تكون لملف من نوع +name.messages.new_sketch_exists = لا +name.messages.new_sketch_exists.description = يوجد ملف بإسم "%s" في المكان المستهدف "%s" نفسه +name.messages.new_folder_exists = لا يمكن إعادة التسمية +name.messages.new_folder_exists.description = عفواً, يوجد ملف (أو مجلد) بنفس الإسم "%s" من قبل. +name.messages.error = خطأ +name.messages.no_rename_folder.description = تعذرت إعادة تسمية ملف المخطوطات +name.messages.no_rename_file.description = تعذرت إعادة تسمية "%s" إلى "%s". +name.messages.no_create_file.description = تعذر استحداث الملف "%s"\nفي "%s" + +# Delete handler +delete.messages.cannot_delete = لا يمكن الحذف +delete.messages.cannot_delete.description = لا يمكنك حذف مخطوط قبل حفظه +delete.messages.cannot_delete.file = لم أستطع فعل هذا +delete.messages.cannot_delete.file.description = تعذر الحذف +delete.messages.is_read_only = المخطوط للقراءة فقط. +delete.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. + +# Save handler +save_file.messages.is_read_only = المخطوط للقراءة فقط. +save_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر. +save_file.messages.sketch_exists = تعذر الحفظ +save_file.messages.sketch_exists.description = يوجد ملف بإسم “%s” سلفاُ. +save_file.messages.tab_exists = نوب +save_file.messages.tab_exists.description = تعذر حفظ المخطوط بإسم "%s" ,لأن المخطوط فيه علامة تبويب بهذا الإسم حالياً. +save_file.messages.recursive_save = نوب نوب نوب +save_file.messages.recursive_save.description = لا يمكنك حفظ مخطوط في ملف داخل نفسه, هذا سيحدث العديد من المشاكل. + +# Add handler +add_file.messages.is_read_only = المخطوط للقراءة فقط. +add_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +add_file.messages.confirm_replace = هل تريد استبدال النسخة الحالية من %s؟ +add_file.messages.error_adding = حدث خطأ خلال إضافة الملف +add_file.messages.cannot_delete.description = تعذر حذف ملف '%s' +add_file.messages.cannot_add.description = فشلت إضافة '%s' إلى المخطوط +add_file.messages.same_file = لا يمكنك خداعي +add_file.messages.same_file.description = تم سابقاُ نسخ هذا الملف إلى نفس المكان المستهدف. + +# Temp folder creator +temp_dir.messages.bad_build_folder = ملف بناء المخطوط غير صالح +temp_dir.messages.bad_build_folder.description = تعذر العثور على مكان لبناء المخطوط. + +# Ensure Existance +ensure_exist.messages.missing_sketch = اختفى المخطوط +ensure_exist.messages.missing_sketch.description = تعذر العثور على ملف المخطوط. \nسيتم إعادة حفظ المخطوط في نفس المكان المحدد, \nلكن كل شيء عدا الشفرة المصدرية سيضيع. +ensure_exist.messages.unrecoverable = تعذرت إعادة الحفظ +ensure_exist.messages.unrecoverable.description = تعذرت إعادة حفظ المخطوط. لتجنب خسارة كل جهد حياتك على هذا الملف, \nقم بنسخ الشفرة المصدرية ولصقها في محرر نصوص آخر, إحتياطاً. + +# Check name +check_name.messages.is_name_modified = يجب تعديل اسم المخطوط. يمكن أن تحتوي الأسماء على \nرموز وأرقام بتشفير ASCII (بشرط أن لا تبدأ برقم). \nيجب أن يكون طول الإسم أقل من 64 رمزاً. + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = مدير المشاركات +contrib.manager_title.update = مدير التحديثات +contrib.manager_title.mode = مدير الأوضاع +contrib.manager_title.tool = مدير الأدوات +contrib.manager_title.library = مدير المكتبات +contrib.manager_title.examples = مدير الأمثلة +contrib.category = الفئة: +contrib.filter_your_search = فلترة نتائج البحث.. +contrib.show_only_compatible.mode = إظهار الأوضاع المتوافقة فقط. +contrib.show_only_compatible.tool = إظهار الأدوات المتوافقة فقط. +contrib.show_only_compatible.library = إظهار المكتبات المتوافقة فقط. +contrib.show_only_compatible.examples = إظهار الأمثلة المتوافقة فقط. +contrib.show_only_compatible.update = إظهار التحديثات المتوافقة فقط. +contrib.restart = إعادة تشغيل Processing +contrib.unsaved_changes = يوجد تغييرات غير محفوظة +contrib.unsaved_changes.prompt = هل انت متأكد انك تريد إعادة تشغيل البرنامج قبل حفظ التغييرات أولاً؟ +contrib.messages.remove_restart = يرجى إعادة تشغيل البرنامح لإنهاء حذف هذا العنصر. +contrib.messages.install_restart = يرجى إعادة تشغيل البرنامح لإنهاء تثبيت هذا العنصر. +contrib.messages.update_restart = يرجى إعادة تشغيل البرنامح لإنهاء تحديث هذا العنصر. +contrib.errors.list_download = فشل تحميل قائمة المشاركات المتوفرة. +contrib.errors.list_download.timeout = حدث خطأ خلال تحميل قائمة المشاركات. +contrib.errors.download_and_install = . %s حدث خطأ خلال تحميل وتنزيل +contrib.errors.description_unavailable = لا يوجد وصف. +contrib.errors.malformed_url = الرابط الذي تم تحميله من Processing.org لا يعمل. \nبإمكانك تثبيت المكتبة بشكل يدوي عن طريق زيارة موقع المكتبة الإلكتروني. +contrib.errors.needs_repackage = يجب إعادة حزم %s وفقاً لشروط %s. +contrib.errors.no_contribution_found = تعذر العثور على %s في الملف المحمل. +contrib.errors.overwriting_properties = .properties حصل خلل خلال استبدال محتوى ملف +contrib.errors.install_failed = فشل التثبيت. +contrib.errors.update_on_restart_failed = فشل تحديث %s بعد إعادة التشغيل. +contrib.errors.temporary_directory = فشلت الكتابة في الملف المؤقت. +contrib.errors.contrib_download.timeout = حصلت مشكلة في اتصال الانترنت خلال تحميل %s. +contrib.errors.no_internet_connection = يبدو أنك غير متصل بالإنترنت... +contrib.status.downloading_list = يتم تحميل قائمة المشاركات... +contrib.status.connecting = يتم الاتصال... +contrib.status.done = تم الانتهاء +contrib.all = الكل +contrib.undo = تراجع +contrib.remove = إزالة +contrib.install = تثبيت +contrib.progress.installing = يتم تثبيت +contrib.progress.starting = يتم بدأ +contrib.progress.downloading = يتم تنزيل +contrib.download_error = حدث خطأ خلال تنزيل المشاركات +contrib.unsupported_operating_system = يبدو أن نظام التشغيل الخاص بك غير مدعوم. يرجى زيارة %s\ المكتبة للمزيد من المعلومات. +contrib.category.3d = 3D +contrib.category.animation = رسوم متحركة +contrib.category.data = بيانات ومعطيات +contrib.category.geometry = هندسيات +contrib.category.gui = واجهات مستخدم رسومية +contrib.category.hardware = عتاد مادي +contrib.category.i_o = مدخلات ومخرجات +contrib.category.math = رياضيات +contrib.category.simulation = محاكاة +contrib.category.sound = صوتيات +contrib.category.typography = تخطيط +contrib.category.utilities = خدمات +contrib.category.video_vision = فيديو ورؤية رقمية +contrib.category.other = آخر + +# Install on Startup +contrib.startup.errors.download_install = %s حدث خطأ خلال تحميل وتثبيت +contrib.startup.errors.temp_dir = فشل النسخ إلى ملف مؤقت خلال عملية تحميل وتنزيل %s +contrib.startup.errors.new_marker = يبدو أن هنالك مشكلة بين مؤشر المشاركات الغير محدثة و %s. قد تحتاج إلى تحديث المشاركة بشكل يدوي. + +# Install on Import +contrib.import.dialog.title = المكتبات المفقودة المتوفرة +contrib.import.dialog.primary_text = المكتبات المستوردة التالية متوفرة للتحميل, لكن لم يتم تثبيتها بعد. +contrib.import.dialog.secondary_text = هل تود تثبيتهم الآن؟ +contrib.import.progress.download = ...%s يتم تحميل +contrib.import.progress.install = ...%s يتم تثبيت +contrib.import.progress.done = .%s تم تثبيت +contrib.import.progress.final_list = تم تثبيت المكتبات التالية: +contrib.import.errors.link = يبدو أن رابط التحميل للمكتبة %s لا يعمل. + +# --------------------------------------- +# Warnings + +warn.delete = حذف +warn.delete.sketch = هل أنت متأكد انك تريد حذف هذا المخطوط؟ +warn.delete.file = هل انت متأكد أنك تود حذف "%s"؟ +warn.cannot_change_mode.title = لا يمكن تغيير الوضع +warn.cannot_change_mode.body = لا يمكنك تغيير الوضع, لأن وضع "%s" غير متوافق مع الوضع الحالي. + + +# --------------------------------------- +# Update Check + +update_check = تحديث +update_check.updates_available.core = يوجد نسخة جديدة من بروسسنج جاهزة للتحميل. \nهل تود زيارة الموقع الرسمي لتحميلها؟ +update_check.updates_available.contributions = يوجد تحديثات متوفرة لبعض المشاركات المثبتة. \nهل تريد الذهاب إلى مدير المشاركات الآن؟ + + +# --------------------------------------- +# Color Chooser + +color_chooser = أداة اختيار الألوان +color_chooser.select = تحديد + +# --------------------------------------- +# Movie Maker + +movie_maker = صانع الأفلام +movie_maker.title = QuickTime صانع أفلام +movie_maker.blurb = This tool creates a QuickTime movie from a sequence of images.

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA (from Processing), or PNG images as the source.

TIFF and TGA images will write more quickly, but require more disk:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = اسحب ملف يحتوي على الصور إلى الحقل السفلي: +movie_maker.choose_button = اختر... +movie_maker.select_image_folder = اختر ملف الصور... +movie_maker.sound_file_help_label = إلى الحقل السفلي: (.au, .aiff, .wav, .mp3) اسحب ملف يحتوي على ملفات صوت بصيغة +movie_maker.select_sound_file = اختر ملف الصوت... + +movie_maker.create_movie_button = فلم جديد... +movie_maker.save_dialog_prompt = حفظ الفلم ك... +movie_maker.width = العرض +movie_maker.height = الارتفاع +movie_maker.compression = الضغط +movie_maker.compression.animation = رسوم متحركة +movie_maker.compression.jpeg = JPEG +movie_maker.compression.png = PNG +movie_maker.framerate = تردد الأطر: +movie_maker.orig_size_button = نفس الحجم الأصلي +movie_maker.orig_size_tooltip = قم باختيار هذا المربع إذا كان الملف يحتوي على أطر فيديو بالتشفير والحجم المطلوب. + +movie_maker.error.avoid_tiff = حاول باستخدام صور بلاحقة TGA أو PNG بدل TIFF. +movie_maker.error.badnumbers = يجب أن تكون قيم الطول والعرض أعداد حقيقية أكبر من الصفر, ويحب أن يكون تردد الأطر أكبر من الصفر. +movie_maker.error.cannot_read = .%s تعذرت قراءة +movie_maker.error.cannot_read_maybe_bad = تعذرت قراءة %s, قد يكون الملف سيئاً. +movie_maker.error.movie_failed = .QuickTime فشل انتاج فلم من نوع +movie_maker.error.need_input = يجب عليك تحديد ملف يحتوي على ملفات صوتية, ملفات صور, أو كلاهما. +movie_maker.error.no_images_found = لم يتم العثور على ملفات صور هنا. +movie_maker.error.sorry = عذراً +movie_maker.error.unknown_tga_format = لاحقة الملف %s من نوع .tga غير معروفة. + +movie_maker.progress.creating_file_name = .%s يتم الآن إنتاج +movie_maker.progress.creating_output_file = يتم الآن إنتاج الملف +movie_maker.progress.initializing = بدء العملية... +movie_maker.progress.processing = .%s يتم معالجة diff --git a/app/utils/build/resources/main/PDE_ca.properties b/app/utils/build/resources/main/PDE_ca.properties new file mode 100644 index 0000000000..db2de1e039 --- /dev/null +++ b/app/utils/build/resources/main/PDE_ca.properties @@ -0,0 +1,657 @@ + + +# --------------------------------------- +# Language: Catalan (ca) +# --------------------------------------- + + +font.family.sans = Processing Sans +font.family.mono = Source Code Pro + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Fitxer +menu.file.new = Nou +menu.file.open = Obre... +menu.file.recent = Obre'n un de recent +menu.file.sketchbook = Sketchbook... +menu.file.sketchbook.empty = Sketchbook buit +menu.file.examples = Exemples... +menu.file.close = Tanca +menu.file.save = Desa +menu.file.save_as = Anomena i desa... +menu.file.export_application = Exporta com a aplicació... +menu.file.page_setup = Configuració d'impressió +menu.file.print = Imprimeix... +menu.file.preferences = Preferències... +menu.file.quit = Surt + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Edita +menu.edit.undo = Desfés +menu.edit.redo = Refés +menu.edit.redo.keystroke.macos = shift meta pressed Z +menu.edit.redo.keystroke.windows = ctrl pressed Y +menu.edit.redo.keystroke.linux = shift ctrl pressed Z +menu.edit.action.addition = addició +menu.edit.action.deletion = supressió +menu.edit.cut = Talla +menu.edit.copy = Copia +menu.edit.copy_as_html = Copia com a HTML +menu.edit.paste = Enganxa +menu.edit.select_all = Selecciona-ho tot +menu.edit.auto_format = Formatació automàtica +menu.edit.comment_uncomment = Comenta/descomenta +menu.edit.comment_uncomment.keystroke.macos = meta pressed SLASH +menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH +menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH +menu.edit.increase_indent = → Augmenta el sagnat +menu.edit.increase_indent.keystroke.macos = meta pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET +menu.edit.decrease_indent = ← Disminueix el sagnat +menu.edit.decrease_indent.keystroke.macos = meta pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET +menu.edit.find = Cerca... +menu.edit.find_next = Cerca el següent +menu.edit.find_previous = Cerca l'anterior +menu.edit.use_selection_for_find = Cerca el text seleccionat + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Executa +menu.sketch.present = Presentació +menu.sketch.tweak = Retocs en viu +menu.sketch.stop = Atura +# --- +menu.library = Importa una biblioteca... +# menu.library.add_library = Afegeix una biblioteca... +menu.library.manage_libraries = Gestiona les biblioteques... +menu.library.contributed = Contribuïdes +menu.library.no_core_libraries = aquest mode no inclou cap biblioteca +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Obre la carpeta de l'sketch +menu.sketch.add_file = Afegeix un fitxer... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Depuració +menu.debug.enable = Activa el depurador +menu.debug.disable = Desactiva el depurador +#menu.debug.show_debug_toolbar = Mostra la barra d'eines del depurador +#menu.debug.debug = Depura +#menu.debug.stop = Atura +# --- +menu.debug.toggle_breakpoint = Commuta un punt de ruptura +#menu.debug.list_breakpoints = Llista els punts de ruptura +# --- +# used for both menus and toolbars +menu.debug.step = Pas +menu.debug.step.keystroke.macos = meta pressed J +menu.debug.step.keystroke.windows = ctrl pressed J +menu.debug.step.keystroke.linux = ctrl pressed J +menu.debug.step_into = Entra +menu.debug.step_into.keystroke.macos = shift meta pressed J +menu.debug.step_into.keystroke.windows = shift ctrl pressed J +menu.debug.step_into.keystroke.linux = shift ctrl pressed J +menu.debug.step_out = Surt +menu.debug.step_out.keystroke.macos = meta alt pressed J +menu.debug.step_out.keystroke.windows = ctrl alt pressed J +menu.debug.step_out.keystroke.linux = ctrl alt pressed J +menu.debug.continue = Continua +# --- +#menu.debug.print_stack_trace = Imprimeix la traça de la pila +#menu.debug.print_locals = Imprimeix variables locals +#menu.debug.print_fields = Imprimeix variables d'instància +#menu.debug.print_source_location = Imprimeix ubicació del codi font +#menu.debug.print_threads = Imprimeix els fils d'execució +# --- +#menu.debug.variable_inspector = Inspector de variables +menu.debug.show_variables = Mostra les variables +menu.debug.hide_variables = Amaga les variables +#menu.debug.show_sketch_outline = Mostra l'esquema de l'sketch +#menu.debug.show_tabs_list = Llista les pestanyes + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Eines +menu.tools.color_selector = Selector de color... +menu.tools.create_font = Creació de fonts tipogràfiques... +menu.tools.archive_sketch = Arxiva l'sketch +menu.tools.fix_the_serial_lbrary = Arregla la «Serial Library» +menu.tools.install_processing_java = Instal·la «processing-java» +# menu.tools.add_tool = Afegeix una eina... +menu.tools.manage_tools = Gestiona les eines... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Ajuda +menu.help.welcome = Benvinguda al Processing +menu.help.about = Quant al Processing +menu.help.environment = Entorn de desenvolupament +menu.help.reference = Referència +menu.help.find_in_reference = Cerca en la referència +menu.help.reference.download = Descarrega la referència +menu.help.libraries_reference = Referències de les biblioteques +menu.help.tools_reference = Referències de les eines +menu.help.empty = (buit) +menu.help.online = En línia + +# Only include the .url lines in the translation file if there +# is an official translated version of the link that can be used. +# Otherwise any change here will have to be copied to all languages. +# https://github.com/processing/processing4/issues/250 +menu.help.getting_started = Primers passos +menu.help.getting_started.url = https://processing.org/tutorials/gettingstarted/ +menu.help.troubleshooting = Resolució de problemes +menu.help.troubleshooting.url = https://github.com/processing/processing4/wiki/Troubleshooting +menu.help.faq = Preguntes freqüents +menu.help.faq.url = https://github.com/processing/processing4/wiki/FAQ +menu.help.foundation = Fundació «Processing Foundation» +menu.help.foundation.url = https://processing.foundation/ +menu.help.visit = Visiteu Processing.org +menu.help.visit.url = https://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Sí +prompt.no = No +prompt.cancel = Cancel·la +prompt.ok = D'acord +prompt.browse = Navega +prompt.export = Exporta + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Obre un sketch del Processing... + +# Save (Frame) +save = Anomena i desa la carpeta de l'sketch... +save.title = Voleu desar els canvis de «%s» abans de tancar? +save.hint = Els canvis es perdran si no els deseu. +save.btn.save = Desa'ls +save.btn.dont_save = No els desis + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = Voleu desar els canvis de l'sketch «%s»? + +# AppPreferences (Frame) +preferences = Preferències +preferences.button.width = 80 +preferences.restart_required = Reinicieu el Processing per a aplicar els canvis +preferences.sketchbook_location = Sketchbook +preferences.sketchbook_location.popup = Sketchbook +preferences.sketch_naming = Noms per als nous sketch +preferences.language = Llengua: +preferences.editor_and_console_font = Font de l'editor i la consola: +preferences.editor_and_console_font.tip = Trieu la font tipogràfica de l'editor i la consola.
Només les fonts d'amplada fixa estan permeses.
És possible que la llista sigui incompleta. +preferences.editor_font_size = Mida de lletra en l'editor: +preferences.console_font_size = Mida de lletra en consola: +preferences.interface_scale = Escala de la interfície: +preferences.interface_scale.auto = Automàtica +preferences.background_color = Color de fons en el mode presentació +preferences.background_color.tip = Estableix el color de fons del mode de presentació.
En aquest mode l'sketch es mostra en pantalla completa.
Trobareu aquest mode en el menú Sketch. +preferences.use_smooth_text = Fes servir text suavitzat en l'editor +preferences.enable_complex_text = Habilita l'entrada de caràcters especials +preferences.enable_complex_text.tip = Per a escriure en l'editor en algunes llengües, com ara el xinès,
el japonès o l'àrab, cal tenir habilitades característiques especials. +preferences.continuously_check = Comprovació contínua d'errors +preferences.show_warnings = Mostra advertències +preferences.code_completion = Autocompletar codi amb +preferences.trigger_with = Activa amb +preferences.cmd_space = espai +preferences.suggest_imports = Suggereix declaracions d'importació +preferences.increase_max_memory = Augmenta el màxim de memòria disponible a +# preferences.delete_previous_folder_on_export = Elimina la carpeta anterior en exportar +preferences.check_for_updates_on_startup = Comprovar actualitzacions (consulteu les dades enviades en les PMF) +preferences.run_sketches_on_display = Mostra els sketch a la pantalla +preferences.run_sketches_on_display.tip = Defineix la pantalla per defecte en què es mostrarà la finestra dels sketch.
Si desplaceu la finestra, el Processing en recordarà la ubicació
per a obrir-n'hi les següents. En el mode de presentació (pantalla completa)
sempre es farà servir aquesta pantalla. +preferences.automatically_associate_pde_files = Associa automàticament els fitxers «.pde» amb Processing +preferences.launch_programs_in = Executa els programes en +preferences.launch_programs_in.mode = mode +preferences.file = Podeu editar més paràmetres en el fitxer: +preferences.file.hint = (Editeu-lo només quan el Processing no estigui obert.) + +# Sketchbook Location (Frame) +sketchbook_location = Nova ubicació de l'Sketchbook + +# Sketchbook (Frame) +sketchbook = Sketchbook +sketchbook.tree = Sketchbook + +# Examples (Frame) +examples.title = Exemples en %s +examples.add_examples = Afegiu exemples... +examples.libraries = Biblioteques contribuïdes +examples.core_libraries = Biblioteques +examples.contributed = Exemples contribuïts + +# Export (Frame) +export = Opcions d'exportació +export.platforms = Sistemes operatius +export.options = Opcions +export.options.present = Mode de presentació +export.options.show_stop_button = Mostra un botó d'aturada +export.description = Convertiu l'sketch en una aplicació per a diferents sistemes operatius +export.unsaved_changes = Voleu desar els canvis abans d'exportar? +export.notice.cancel.unsaved_changes = Heu de desar els canvis abans d'exportar. +export.notice.exporting = S'està exportant a una aplicació... +export.notice.exporting.done = Exportació completada. +export.notice.exporting.error = S'ha produït algun error durant l'exportació. +export.notice.exporting.cancel = S'ha cancel·lat l'exportació a una aplicació. +export.tooltip.macos = L'exportació als sistemes macOS sols és possible des de sistemes macOS +export.full_screen = Pantalla completa +export.embed_java = Incloure Java +export.include_java = Inclou Java en l'aplicació per a %s +export.code_signing = Signatura de l'aplicació +export.messages.is_read_only = Sketch només de lectura +export.messages.is_read_only.description = Alguns fitxers son només de lectura;\ndeseu l'sketch en un altre lloc i torneu a intentar-ho. +export.messages.cannot_export = No es pot exportar +export.messages.cannot_export.description = Heu de desar l'sketch abans de poder exportar-lo. + +# Find (Frame) +find = Cerca +find.find = Cerca: +find.replace_with = Reemplaça amb: +find.ignore_case = No distingir majúscules de minúscules +find.all_tabs = Totes les pestanyes +find.wrap_around = Torna a començar +find.btn.replace_all = Reemplaça-ho tot +find.btn.replace = Reemplaça +find.btn.replace_and_find = Reemplaça i cerca +find.btn.previous = Anterior +find.btn.find = Cerca + +# Find in reference (Frame) +find_in_reference = Cerca en la referència + +# File (Frame) +file = Copieu fitxers al vostre sketch + +# Create Font (Frame) +create_font = Creació de fonts tipogràfiques +create_font.label = Amb aquesta eina podeu crear fonts de mapes de bits.\nTrieu una font i una mida, i feu clic en «D'acord» per a crear-la.\nEs desarà en la carpeta de dades de l'sketch actual. +create_font.size = Mida +create_font.smooth = Suavitza +create_font.characters = Caràcters... +create_font.character_selector = Selector de caràcters +create_font.character_selector.label = L'opció «Caràcters predeterminats» inclou la majoria de mapes de bits\nde les grafies llatines per a MacOs i Windows. L'opció «Tots els\ncaràcters» requereix més mapes de bits, i per tant més memòria.\nPer a una selecció més precisa, escolliu «Blocs específics de Unicode». +create_font.default_characters = Caràcters predeterminats +create_font.all_characters = Tots els caràcters +create_font.specific_unicode = Blocs específics de Unicode +create_font.filename = Nom del fitxer + +# Color Selector (Frame) +color_selector = Selector de color + +# Archive Sketch (Frame) +archive_sketch = Arxiva l'sketch... + +# Tweak Mode +tweak_mode = Retocs en viu +tweak_mode.save_before_tweak = Heu de desar l'sketch abans d'entrar en el mode de Retocs en viu +tweak_mode.keep_changes.line1 = Voleu mantenir els canvis? +tweak_mode.keep_changes.line2 = Heu modificat alguns valors de l'sketch, voleu desar aquests canvis? + +# DebugTray +debugger.name = Nom +debugger.value = Valor +debugger.type = Tipus + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Executa +toolbar.present = Presentació +toolbar.stop = Atura +toolbar.debug = Depura +# --- +toolbar.new = Nou +toolbar.open = Obre +toolbar.save = Desa +# toolbar.export_application = Exporta com a aplicació +# toolbar.add_mode = Afegeix un mode... +toolbar.manage_modes = Gestiona els modes... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Continua +#toolbar.debug.step = Pas +#toolbar.debug.step_into = Entra +#toolbar.debug.stop = Atura +#toolbar.debug.toggle_breakpoints = Commuta un punt de ruptura +#toolbar.debug.variable_inspector = Mostra l'inspector de variables + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Nova pestanya +editor.header.rename = Reanomena +editor.header.delete = Elimina +editor.header.previous_tab = Pestanya anterior +editor.header.previous_tab.keystroke.macos = meta alt pressed LEFT +editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP +editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP +editor.header.next_tab = Pestanya següent +editor.header.next_tab.keystroke.macos = meta alt pressed RIGHT +editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN +editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN +editor.header.delete.warning.title = Acció no permesa +editor.header.delete.warning.text = No es pot eliminar la pestanya principal de l'únic sketch obert. + +# PopUp menu +editor.popup.jump_to_declaration = Vés a la declaració +editor.popup.show_usage = Mostra'n l'ús... +editor.popup.rename = Reanomena... + +# Tabs +editor.tab.new = Nou fitxer +editor.tab.new.description = Nom del nou fitxer +editor.tab.rename = Reanomena fitxer +editor.tab.rename.description = Nom per al fitxer + +# Sketch +editor.sketch.rename.description = Nou nom de l'sketch + +editor.status.autoformat.no_changes = Formatació automàtica sense canvis. +editor.status.autoformat.finished = Formatació automàtica completada. +editor.status.find_reference.select_word_first = Seleccioneu una paraula per a cercar en la referència. +editor.status.find_reference.not_available = No s'ha trobat «%s» en la referènia. +editor.status.drag_and_drop.files_added.0 = No s'ha afegit cap fitxer a l'sketch. +editor.status.drag_and_drop.files_added.1 = S'ha afegit un fitxer a l'sketch. +editor.status.drag_and_drop.files_added.n = S'han afegit %d fitxers a l'sketch. +editor.status.saving = S'està desant... +editor.status.saving.done = S'ha desat l'sketch. +editor.status.saving.canceled = No s'ha desat. +editor.status.printing = S'està imprimint... +editor.status.printing.done = Impressió completada. +editor.status.printing.error = S'ha produït un error durant la impressió. +editor.status.printing.canceled = S'ha cancel·lat la impressió. +editor.status.copy_as_html = S'ha copiat el codi com a HTML al portaretalls. +editor.status.debug.busy = Depurador en funcionament... +editor.status.debug.halt = Depurador en pausa. +editor.status.archiver.create = S'ha creat l'arxiu «%s». +editor.status.archiver.cancel = S'ha cancel·lat la creació de l'arxiu. + +# Errors +editor.status.warning = Avís +editor.status.error = Error +editor.status.error.syntax = Error de sintaxi - %s +editor.status.error_on = Error en «%s» +editor.status.missing.default = Falta «%c» +editor.status.missing.semicolon = Falta un punt i coma «;» +editor.status.missing.left_sq_bracket = Falta un claudàtor esquerre «[» +editor.status.missing.right_sq_bracket = Falta un claudàtor dret «]» +editor.status.missing.left_paren = Falta un parèntesi esquerre «(» +editor.status.missing.right_paren = Falta un parèntesi dret «)» +editor.status.missing.left_curly_bracket = Falta una clau esquerra «{» +editor.status.missing.right_curly_bracket = Falta una clau dreta «}» +editor.status.missing.add = Potser falta afegir «%s» +editor.status.bad_curly_quote = Les cometes ondulades no estan permeses: «%s». Feu servir cometes rectes. Premeu Ctrl+T per a autocorrecció. +editor.status.reserved_words = «color» i «int» son paraules reservades i no es poden fer servir com a noms de variables +editor.status.undefined_method = La funció «%s(%s)» no existeix +editor.status.undefined_constructor = El constructor «%s(%s)» no existeix +editor.status.empty_param = La funció «%s()» no rep cap argument +editor.status.wrong_param = La funció «%s()» rep arguments així: «%s(%s)» +editor.status.undef_global_var = La variable global «%s» no existeix +editor.status.undef_class = La classe «%s» no existeix +editor.status.undef_var = La variable «%s» no existeix +editor.status.undef_name = No s'ha reconegut el nom «%s» +editor.status.unterm_string_curly = Literal de tipus String sense tancar amb cometes rectes: les ondulades «%s» no serveixen. +editor.status.type_mismatch = Tipus no concordants: «%s» no és compatible amb «%s» +editor.status.unused_variable = El valor de la variable local «%s» no s'utilitza +editor.status.uninitialized_variable = Potser no s'ha inicialitzat la variable local «%s» +editor.status.no_effect_assignment = L'assignació de la variable «%s» no té cap efecte +editor.status.hiding_enclosing_type = El nom de la classe «%s» no pot coincidir amb el de l'sketch o el de la classe que la conté + +editor.status.bad.assignment = Possible error d'assignació a una variable prop de «%s» +editor.status.bad.generic = Potser falta el tipus en un genèric prop de «%s». +editor.status.bad.identifier = Possible identificador invàlid prop de «%s». Potser heu oblidat declarar una variable. +editor.status.bad.parameter = Potser s'ha declarat malament un mètode/argument prop de «%s» +editor.status.bad.import = No es poden declarar importacions aquí +editor.status.bad.mixed_mode = És possible que estigueu barrejant els modes actiu i estàtic del Processing +editor.status.extraneous = Possible instrucció incompleta o codi de més, prop de «%s» +editor.status.mismatched = Potser falta un operador, un «;» o una clau «}» prop de «%s» +editor.status.missing.name = Potser falta un nom o «;» prop de «%s» +editor.status.missing.type = Potser falta un nom, un tipus o «;» prop de «%s» + + +# Footer buttons +editor.footer.errors = Errors +editor.footer.errors.problem = Problema +editor.footer.errors.tab = Pestanya +editor.footer.errors.line = Línia +editor.footer.console = Consola + +# New handler +new.messages.is_read_only = Sketch només de lectura +new.messages.is_read_only.description = Alguns fitxers son només de lectura;\ndeseu l'sketch en un altre lloc i torneu a intentar-ho. + +# Rename handler +rename.messages.is_untitled = Sketch sense nom +rename.messages.is_untitled.description = Heu de desar l'sketch per a poder reanomenar-lo +rename.messages.is_modified = Heu de desar els canvis\nde l'sketch abans de reanomenar-lo. +rename.messages.is_read_only = Sketch només de lectura +rename.messages.is_read_only.description = Alguns fitxers son només de lectura;\ndeseu l'sketch en un altre lloc i torneu a intentar-ho. + +# Naming handler +name.messages.problem_renaming = Error reanomenant +name.messages.starts_with_dot.description = El nom no pot començar amb un punt. +name.messages.invalid_extension.description = «.%s» no és una extensió vàlida. +name.messages.main_java_extension.description = La primera pestanya no pot ésser un fitxer «.%s». +name.messages.new_sketch_exists = L'sketch/fitxer ja existeix +name.messages.new_sketch_exists.description = Ja existeix un fitxer anomenat «%s» en\n«%s» +name.messages.new_folder_exists = La carpeta ja existeix +name.messages.new_folder_exists.description = Ja existeix un sketch (o una carpeta) anomenada «%s». +name.messages.error = Error +name.messages.no_rename_folder.description = No s'ha pogut reanomenar la carpeta de l'sketch. +name.messages.no_rename_file.description = No s'ha pogut reanomenar «%s» a «%s» +name.messages.no_create_file.description = No s'ha pogut crear el fitxer «%s» en «%s» + +# Delete handler +delete.messages.cannot_delete = Error eliminant +delete.messages.cannot_delete.description = No es pot eliminar un sketch que no s'ha desat. +delete.messages.cannot_delete.file = Error eliminant +delete.messages.cannot_delete.file.description = No s'ha pogut eliminar el fitxer +delete.messages.is_read_only = Sketch només de lectura +delete.messages.is_read_only.description = Alguns fitxers son només de lectura;\ndeseu l'sketch en un altre lloc i torneu a intentar-ho. + +# Save handler +save_file.messages.is_read_only = Sketch només de lectura +save_file.messages.is_read_only.description = Alguns fitxers son només de lectura;\ndeseu l'sketch en un altre lloc i torneu a intentar-ho. +save_file.messages.sketch_exists = L'sketch ja existeix +save_file.messages.sketch_exists.description = Ja existeix un sketch\namb el nom «%s» +save_file.messages.tab_exists = La pestanya ja existeix +save_file.messages.tab_exists.description = No es pot desar l'sketch com «%s»\nperquè ja conté un fitxer amb aquest nom. +save_file.messages.recursive_save = Desat recursiu +save_file.messages.recursive_save.description = No es pot desar un sketch\nen una carpeta dins del propi sketch. + +# Add handler +add_file.messages.is_read_only = Sketch només de lectura +add_file.messages.is_read_only.description = Alguns fitxers son només de lectura;\ndeseu l'sketch en un altre lloc i torneu a intentar-ho. +add_file.messages.confirm_replace = Voleu substituir el fitxer «%s» ja existent? +add_file.messages.error_adding = Error afegint fitxer +add_file.messages.cannot_delete.description = No s'ha pogut eliminar el fitxer «%s». +add_file.messages.cannot_add.description = No s'ha pogut afegir el fitxer «%s» a l'sketch. +add_file.messages.same_file = Mateix fitxer +add_file.messages.same_file.description = Aquest fitxer ja s'ha copiat. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Error muntatge sketch +temp_dir.messages.bad_build_folder.description = No s'ha trobat lloc per a muntar l'sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Sketch desaparegut +ensure_exist.messages.missing_sketch.description = La carpeta de l'sketch ha desaparegut.\nS'intentarà tornar a desar en la mateixa ubicació,\nperò es perdrà tot llevat el codi. +ensure_exist.messages.unrecoverable = No es pot desar +ensure_exist.messages.unrecoverable.description = No s'ha pogut tornar a desar l'sketch. És recomanable\nque copieu el codi en un altre editor de text. + +# Check name +check_name.messages.is_name_modified = El nom de l'sketch ha estat modificat. El nom d'un sketch només pot tenir\ncaràcters ASCII i números (el primer caràcter no pot ésser un número).\nA més, ha de tenir menys de 64 caràcters. + +# External changes detector +change_detect.reload.title=Fitxer modificat externament +change_detect.reload.question=«%s» ha estat modificat per un altre programa. +change_detect.reload.comment=Voleu mantenir aquesta versió o carregar els canvis?\nEn ambdós casos, la versió que descarteu es desarà\nen la carpeta de l'sketch. +change_detect.button.keep=Mantén +change_detect.button.load_new=Carrega canvis +change_detect.delete.title=Pestanya eliminada externament +change_detect.delete.question=«%s» ha desaparegut de la carpeta de l'sketch. +change_detect.delete.comment=Voleu tornar-lo a desar o eliminar-lo de l'sketch? +change_detect.button.discard=Elimina +change_detect.button.resave=Desa + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Gestor de contribucions +contrib.manager_title.update = Gestor d'actualitzacions +contrib.manager_title.mode = Gestor de modes +contrib.manager_title.tool = Gestor d'eines +contrib.manager_title.library = Gestor de biblioteques +contrib.manager_title.examples = Gestor d'exemples +contrib.category = Categoria: +contrib.filter_your_search = Filtra la cerca... +contrib.show_only_compatible.mode = Només modes compatibles +contrib.show_only_compatible.tool = Només eines compatibles +contrib.show_only_compatible.library = Només biblioteques compatibles +contrib.show_only_compatible.examples = Només exemples compatibles +contrib.show_only_compatible.update = Només actualitzacions compatibles +contrib.restart = Reinicia el Processing +contrib.unsaved_changes = Hi ha canvis sense desar +contrib.unsaved_changes.prompt = Esteu segur que voleu reiniciar el Processing sense desar els canvis? +contrib.messages.remove_restart = Reinicieu el Processing per a acabar d'eliminar aquest element. +contrib.messages.install_restart = Reinicieu el Processing per a acabar d'instal·lar aquest element. +contrib.messages.update_restart = Reinicieu el Processing per a acabar d'actualitzar aquest element. +contrib.errors.list_download = No s'ha pogut descarregar la llista de contribucions. +contrib.errors.list_download.timeout = S'ha exhaurit el temps d'espera en la descàrrega de la llista de contribucions. +contrib.errors.download_and_install = S'ha produït un error durant la descàrrega i instal·lació de «%s». +contrib.errors.description_unavailable = Descripció no disponible. +contrib.errors.malformed_url = L'enllaç obtingut des de Processing.org no és vàlid. Podeu visitar\nel lloc web de la biblioteca per veure com instal·lar-la manualment. +contrib.errors.needs_repackage = «%s» s'ha de tornar a empaquetar d'acord amb les directrius de «%s». +contrib.errors.no_contribution_found = El fitxer descarregat no conté «%s». +contrib.errors.overwriting_properties = S'ha produït un error en sobreescriure el fitxer «.properties». +contrib.errors.install_failed = La instal·lació ha fallat. +contrib.errors.update_on_restart_failed = No s'ha pogut actualitzar «%s» durant el reinici. +contrib.errors.temporary_directory = No s'ha pogut escriure en la carpeta temporal. +contrib.errors.contrib_download.timeout = La descàrrega de «%s» ha esgotat el temps d'espera. +contrib.errors.no_internet_connection = Sembla que no teniu connexió a Internet. +contrib.status.downloading_list = Descarregant llista... +contrib.status.connecting = Connectant... +contrib.status.done = Fet. +contrib.all = Totes +contrib.undo = Desfés +contrib.remove = Elimina +contrib.install = Instal·la +contrib.progress.installing = S'està instal·lant +contrib.progress.starting = Començant instal·lació +contrib.progress.downloading = Descarregant +contrib.download_error = S'ha produït un error durant la descàrrega de la contribució. +contrib.missing_link = No s'ha trobat l'enllaç de descàrrega per a %s, contacteu amb l'autor. +contrib.category.3d = 3D +contrib.category.animation = Animació +contrib.category.data = Dades +contrib.category.geometry = Geometria +contrib.category.gui = Interfície gràfica +contrib.category.hardware = Maquinari +contrib.category.i_o = Entrada/Sortida +contrib.category.math = Matemàtiques +contrib.category.renderer = Renderització +contrib.category.simulation = Simulació +contrib.category.sound = So +contrib.category.typography = Tipografia +contrib.category.utilities = Utilitats +contrib.category.video_vision = Vídeo i visió +contrib.category.other = Altres + +# Install on Startup +contrib.startup.errors.download_install = S'ha produït un error en la descàrrega i instal·lació de «%s» +contrib.startup.errors.temp_dir = No ha estat possible escriure en la carpeta temporal durant la descàrrega i instal·lació de «%s» +contrib.startup.errors.new_marker = No es pot instal·lar «%s» mentre hi hagi contribucions desactualitzades. Potser haureu de fer una instal·lació manual. + +# Install on Import +contrib.import.dialog.title = Biblioteques necessàries +contrib.import.dialog.primary_text = Aquestes biblioteques importades no estan instal·lades i estan disponibles per a descarregar. +contrib.import.dialog.secondary_text = Voleu instal·lar-les ara? +contrib.import.progress.download = S'està descarregant «%s»... +contrib.import.progress.install = S'està instal·lant «%s»... +contrib.import.progress.done = S'ha instal·lat «%s». +contrib.import.progress.final_list = S'han instal·lat les següents biblioteques: +contrib.import.errors.link = L'enllaç de descàrrega de la biblioteca «%s» sembla sospitós. + +# --------------------------------------- +# Warnings + +warn.delete = Eliminar fitxer +warn.delete.sketch_folder = Esteu segur que voleu eliminar l'sketch?\nAixò eliminarà la carpeta «%s» i el seu contingut. +warn.delete.sketch_file = Esteu segur que voleu eliminar el fitxer «%s»? +warn.cannot_change_mode.title = Error canvi mode +warn.cannot_change_mode.body = No es pot canviar al mode «%s»\nperquè no és compatible amb l'actual. + + +# --------------------------------------- +# Update Check + +update_check = Actualitzar +update_check.updates_available.core = Hi ha una nova versió del Processing.\nVoleu anar a la seva pàgina de descàrregues? +update_check.updates_available.contributions = Hi ha actualitzacions per a algunes de les contribucions instal·lades.\nVoleu obrir el gestor de contribucions? + + +# --------------------------------------- +# Color Chooser + +color_chooser = Selector de color +color_chooser.select = Selecciona + +# --------------------------------------- +# Movie Maker + +movie_maker = Creador de pel·lícules/animacions +movie_maker.two.title = Movie Maker II: ara millorat +movie_maker.two.blurb = Creeu un vídeo en format MPEG o un GIF animat a partir d'una seqüència d'imatges

Per a evitar artefactes a causa de la recompressió d'imatges a vídeo,
feu servir imatges en format TIFF, TGA o PNG.

Els formats TIFF i TGA es desen més ràpid durant l'execució de l'sketch,
però ocupen més espai d'emmagatzematge:
saveFrame(“fotogrames/####.tif”);
saveFrame(“fotogrames/####.tga”);

El format PNG ocupa menys espai, però farà que l'sketch vagi més lent:
saveFrame(“fotogrames/####.png”);

L'opció de compressió «Lossless 4:2:0» encara és imperfecta a causa de
com funciona MPEG-4. La 4:4:4 seria la ideal, però és menys compatible
amb altres programaris.

Anteriorment QuickTime Movie Maker, creat per en Werner Randelshofer.
Se n'ha reescrit una gran part per a fer servir FFmpeg per al Processing 4.
+movie_maker.image_folder_help_label = Arrossegueu en aquest camp una carpeta amb imatges: +movie_maker.choose_button = Trieu... +movie_maker.select_image_folder = Trieu una carpeta d'imatges... +movie_maker.sound_file_help_label = Arrossegueu en aquest camp un fitxer d'àudio (.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = Trieu un fitxer d'àudio... + +movie_maker.create_movie_button = Crea un vídeo... +movie_maker.save_dialog_prompt = Anomena i desa el vídeo... +movie_maker.width = Amplada: +movie_maker.height = Alçada: +movie_maker.compression = Compressió: +movie_maker.framerate = Fotogrames per segon: +movie_maker.orig_size_button = Mida dels originals +movie_maker.orig_size_tooltip = Marqueu-la si les imatges\nja tenen totes la mida que voleu. + +movie_maker.error.avoid_tiff = Feu servir imatges PNG o TGA en comptes de TIFF. +movie_maker.error.badnumbers = L'amplada i l'alçada del llenç han d'ésser nombres enters majors que zero.\nEls fotogrames per segon també ha d'ésser un nombre major que zero. +movie_maker.error.cannot_read = No s'ha pogut llegir %s. +movie_maker.error.cannot_read_maybe_bad = No s'ha pogut llegir %s; potser està malmès. +movie_maker.error.movie_failed = S'ha produït un error durant la creació del vídeo. +movie_maker.error.need_input = Especifiqueu la carpeta amb les imatges, el fitxer d'àudio, o ambdós. +movie_maker.error.no_images_found = No s'ha trobat cap imatge. +movie_maker.error.sorry = Error +movie_maker.error.unknown_tga_format = El format «.tga» del fitxer «%s» és desconegut. + +movie_maker.progress.creating_file_name = S'estan combinant les imatges en un fitxer de vídeo %s. +movie_maker.progress.creating_output_file = S'està creant el fitxer de vídeo +movie_maker.progress.initializing = S'està inicialitzant... +movie_maker.progress.processing = Processing %s. + +movie_maker.progress.handling_frame = S'està convertint la imatge %s de %s... diff --git a/app/utils/build/resources/main/PDE_de.properties b/app/utils/build/resources/main/PDE_de.properties new file mode 100644 index 0000000000..25c27ea5f9 --- /dev/null +++ b/app/utils/build/resources/main/PDE_de.properties @@ -0,0 +1,426 @@ + + +# --------------------------------------- +# Language: German (Deutsch) (de) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Datei +menu.file.new = Neu +menu.file.open = Öffnen ... +menu.file.recent = Letzte Dateien öffnen +menu.file.sketchbook = Sketchbook ... +menu.file.sketchbook.empty = Leeres Sketchbook +menu.file.examples = Beispiele ... +menu.file.close = Schließen +menu.file.save = Speichern +menu.file.save_as = Speichern unter ... +menu.file.export_application = Exportieren ... +menu.file.page_setup = Eine Kopie drucken +menu.file.print = Drucken ... +menu.file.preferences = Einstellungen ... +menu.file.quit = Beenden + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Bearbeiten +menu.edit.undo = Rückgängig +menu.edit.redo = Wiederholen +menu.edit.action.addition = Hinzufügen +menu.edit.action.deletion = Löschen +menu.edit.cut = Ausschneiden +menu.edit.copy = Kopieren +menu.edit.copy_as_html = Kopieren als HTML +menu.edit.paste = Einfügen +menu.edit.select_all = Alle auswählen +menu.edit.auto_format = Autoformatierung +menu.edit.comment_uncomment = Ein- und Auskommentieren +menu.edit.increase_indent = → Ausrücken +menu.edit.decrease_indent = ← Einrücken +menu.edit.find = Suchen ... +menu.edit.find_next = Weiter suchen +menu.edit.find_previous = Vorher suchen +menu.edit.use_selection_for_find = Suche in Auswahl + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Starten +menu.sketch.present = Starten im Vollbild +menu.sketch.tweak = Optimieren +menu.sketch.stop = Stoppen +# --- +menu.library = Library importieren ... +menu.library.add_library = Library hinzufügen ... +menu.library.contributed = Contributed +menu.library.no_core_libraries = Mode weist keine Kern-Libraries auf +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Zeige Sketch Verzeichnis +menu.sketch.add_file = Datei hinzufügen ... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Debugger +menu.debug.enable = Debugger einschalten +menu.debug.disable = Debugger ausschalten +#menu.debug.show_debug_toolbar = Zeige Debug Leiste +#menu.debug.debug = Debuggen +#menu.debug.stop = Stoppen +# --- +menu.debug.toggle_breakpoint = Breakpoints umschalten +menu.debug.list_breakpoints = Breakpoints auflisten +# --- +# used for both menus and toolbars +menu.debug.step = Schritt +menu.debug.step_into = Schritt vor +menu.debug.step_out = Schritt zurück +menu.debug.continue = Weiter +# --- +#menu.debug.print_stack_trace = Stack-Trace ausgeben +#menu.debug.print_locals = Locals ausgeben +#menu.debug.print_fields = Fields ausgeben +#menu.debug.print_source_location = Source-Location ausgeben +#menu.debug.print_threads = Threads ausgeben +# --- +#menu.debug.variable_inspector = Variable Inspector +menu.debug.show_variables = Variablen einblenden +menu.debug.hide_variables = Variablen ausblenden +#menu.debug.show_sketch_outline = Sketch-Outline anzeigen +#menu.debug.show_tabs_list = Tabs Liste anzeigen + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Tools +menu.tools.color_selector = Farbauswahl ... +menu.tools.create_font = Schrift erstellen ... +menu.tools.archive_sketch = Sketch archivieren ... +menu.tools.fix_the_serial_lbrary = "Serial Library" beheben ... +menu.tools.install_processing_java = "processing-java" installieren ... +#menu.tools.add_tool = Tool hinzufügen ... +menu.tools.manage_tools = Tools verwalten... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Hilfe +menu.help.welcome = Willkommen bei Processing +menu.help.about = Über Processing +menu.help.environment = Entwicklungsumgebung +menu.help.reference = Referenz +menu.help.find_in_reference = Suche in Referenz +menu.help.libraries_reference = Bibliotheken Referenz +menu.help.tools_reference = Tools Referenz +menu.help.empty = (leer) +menu.help.online = Online +menu.help.getting_started = Erste Schritte +menu.help.troubleshooting = Fehlerbehandlung +menu.help.faq = Häufig gestellte Fragen (FAQ) +menu.help.foundation = "The Processing Foundation" +menu.help.visit = Processing.org besuchen + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Ja +prompt.no = Nein +prompt.cancel = Abbrechen +prompt.ok = Ok +prompt.browse = Durchsuchen +prompt.export = Exportieren + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Processing Sketch öffnen ... + +# Save (Frame) +save = Sketch speichern unter ... +save.title = Änderungen speichern? +save.hint = Wenn nicht, gehen alle Änderungen verloren. +save.btn.save = Speichern +save.btn.dont_save = Nicht speichern + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = Änderungen an %s speichern? + +# AppPreferences (Frame) +preferences = Einstellungen +preferences.button.width = 110 +preferences.requires_restart = nach Neustart von Processing aktiv +preferences.sketchbook_location = Sketchbook Pfad +preferences.sketchbook_location.popup = Sketchbook +preferences.language = Sprache +preferences.editor_and_console_font = Editor und Konsolen Schriftart +preferences.editor_and_console_font.tip = \ +Wähle die Schrift für die Konsole und den Editor.
\ +Es sollte eine dicktengleiche (monospace) Schrift ausgewählt werden,
\ +da die Liste vorgeschlagener Schriftarten mangelhaft sein kann. +preferences.editor_font_size = Editor Schriftgröße +preferences.console_font_size = Konsolen Schriftgröße +preferences.zoom = Interface Skalierung +preferences.zoom.auto = automatisch +preferences.background_color = Hintergrundfarbe im Present Modus +preferences.background_color.tip = \ +Wähle die Hintergrundfarbe im Present Modus.
\ +Im Present Modus erhält ein Sketch eine vollflächige Hintergrundfarbe,
\ +welches man im Sketch Menü auswählen kann. +preferences.use_smooth_text = Editor Textglättung +preferences.enable_complex_text_input = Komplexe Sprachen erlauben +preferences.enable_complex_text_input_example = z.B. Japanisch +preferences.continuously_check = Kontinuierliche Fehlererkennung +preferences.show_warnings = Zeige Warnungen +preferences.code_completion = Codevervollständigung +preferences.trigger_with = Trigger mit +preferences.cmd_space = Leerzeichen +preferences.suggest_imports = Hinweise bei fehlerhaften Imports +preferences.increase_max_memory = Maximalen Speicher erhöhen auf +preferences.delete_previous_folder_on_export = Leere Verzeichnis beim Exportieren +preferences.hide_toolbar_background_image = Hintergrundgrafik der Toolbar ausblenden +preferences.check_for_updates_on_startup = Prüfung auf Updates bei Programmstart +preferences.run_sketches_on_display = Starte Sketch auf Bildschirm +preferences.run_sketches_on_display.tip = \ +Bestimme den Bildschirm auf dem der Sketch dargestellt werden soll.\ +Wenn das Fenster des Sketches auf einen anderen Bildschirm geschoben
\ +wird, so wird der Sketch an selber Stelle wieder geöffnet. Dabei ist es
\ +egal, ob der Sketch im Present-Modus (Fullscreen) geöffnet wird. +preferences.automatically_associate_pde_files = Öffne .pde Dateien automatisch mit Processing +preferences.launch_programs_in = Anwendungen starten im +preferences.launch_programs_in.mode = Modus +preferences.file = Weitere Einstellungen können in der folgenden Datei bearbeitet werden +preferences.file.hint = Processing darf während der Bearbeitung nicht laufen + +# Sketchbook Location (Frame) +sketchbook_location = Neuen Sketchbook Pfad auswählen + +# Examples (Frame) +examples.title = %s Beispiele +examples.add_examples = Beispiele hinzufügen ... + +# Export (Frame) +export = Export Optionen +export.platforms = Plattformen +export.options = Optionen +export.options.fullscreen = Bildschirmfüllend (Present Mode) +export.options.show_stop_button = Sichtbarer Stopp Button +export.description.line1 = Exportierte Sketches sind ausführbare An- +export.description.line2 = wendungen für die ausgewählten Plattformen. +export.unsaved_changes = Änderungen vor dem Exportieren speichern? +export.notice.cancel_unsaved_changes = Exportieren abgebrochen, weil Änderungen abgespeichert werden müssen. +export.notice.exporting = Exportiere Anwendung ... +export.notice.exporting.done = Exportieren abgeschlossen. +export.notice.exporting.error = Fehler während des Exportierens. +export.notice.exporting.cancel = Exportieren abgebrochen. +export.tooltip.macos = Der macOS Export ist nur auf macOS Systemen möglich. +export.full_screen = Fullscreen +export.embed_java = Java Einbettung +export.include_java = Java in der %s Applikation einbetten +export.code_signing = Code Signing +export.messages.is_read_only = Sketch ist Read-Only +export.messages.is_read_only.description = Einige Dateien sind schreibgeschützt.\nDer Sketch muss an einem anderen Ort gespeichert werden.\nDanach neu versuchen. +export.messages.cannot_export = Kann nicht exportieren +export.messages.cannot_export.description = Ein ungespeicherter Sketch kann nicht exportiert werden. + +# Find (Frame) +find = Suchen +find.find = Suche: +find.replace_with = Ersetzen durch: +find.ignore_case = Groß-/Kleinschreibung ignorieren +find.all_tabs = Alle Tabs +find.wrap_around = Nächsten Zeilen +find.btn.replace_all = Alle ersetzen +find.btn.replace = Ersetzen +find.btn.replace_and_find = Suchen & Ersetzen +find.btn.previous = Vorherige +find.btn.find = Suchen + +# Find in reference (Frame) +find_in_reference = Suche in Referenz + +# File (Frame) +file = Grafik oder andere Datei zum Sketch kopieren + +# Create Font (Frame) +create_font = Schrift erstellen + +# Color Selector (Frame) +color_selector = Farbauswahl + +# Archive Sketch (Frame) +archive_sketch = Sketch archivieren unter ... + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Starten +toolbar.present = Starten im Vollbild +toolbar.stop = Stoppen +# --- +toolbar.new = Neu +toolbar.open = Öffnen +toolbar.save = Speichern +# toolbar.export_application = Exportieren +# toolbar.add_mode = Modus hinzufügen ... +toolbar.manage_modes = Modes verwalten... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +toolbar.debug.debug = Debuggen +toolbar.debug.continue = Fortsetzen +toolbar.debug.step = Schritt vor +toolbar.debug.step_into = Schritt vor +toolbar.debug.stop = Stoppen +toolbar.debug.toggle_breakpoints = Breakpoints setzen/entfernen +toolbar.debug.variable_inspector = Variable-Inspector anzeigen/ausblenden + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Neuer Tab +editor.header.rename = Umbenennen +editor.header.delete = Löschen +editor.header.previous_tab = Nächster Tab +editor.header.next_tab = Vorheriger Tab +editor.header.delete.warning.title = Yeah, nein. +editor.header.delete.warning.text = Du kannst nicht den letzten Tab des letzten Sketches löschen. + +# PopUp menu +editor.popup.jump_to_declaration = Springe zur Deklaration +editor.popup.show_usage = Zeige Verwendung... +editor.popup.rename = Umbenennen... + +# Tabs +editor.tab.new = Neuer Name +editor.tab.new.description = Name der neuen Datei +editor.tab.rename = Neuer Name +editor.tab.rename.description = Name der neuen Datei + +# Sketch +editor.sketch.rename.description = Name des neuen Sketches + +editor.status.autoformat.no_changes = Keine Änderungen für die Auto-Formatierung notwendig. +editor.status.autoformat.finished = Auto-Formatierung beendet. +editor.status.find_reference.select_word_first = Selektiere zuerst ein Wort um dieses in der Referenz zu finden. +editor.status.find_reference.not_available = "%s" ist nicht in der Referenz verfügbar. +editor.status.drag_and_drop.files_added.0 = Es sind keine Daten zum Sketch hinzugefügt worden. +editor.status.drag_and_drop.files_added.1 = Eine Datei wurde dem Sketch hinzugefügt. +editor.status.drag_and_drop.files_added.n = %d Dateien wurden dem Sketch hinzugefügt. +editor.status.saving = Speichern ... +editor.status.saving.done = Speichern beendet. +editor.status.saving.canceled = Speichern abgebrochen. +editor.status.printing = Drucken ... +editor.status.printing.done = Drucken beendet. +editor.status.printing.error = Fehler während des Druckens. +editor.status.printing.canceled = Drucken abgebrochen. +editor.status.copy_as_html = Code wurde als HTML formatiert in die Zwischenablage gespeichert. +editor.status.debug.busy = Debugger beschäftigt... +editor.status.debug.halt = Debugger angehalten. +editor.status.archiver.create = Archiv “%s” erstellt. +editor.status.archiver.cancel = Archiverstellung abgebrochen. + +# Footer buttons +editor.footer.errors = Fehler +editor.footer.errors.problem = Problem +editor.footer.errors.tab = Tab +editor.footer.errors.line = Zeile +editor.footer.console = Konsole + +# New handler +new.messages.is_read_only = Sketch ist Read-Only +new.messages.is_read_only.description = Einige Dateien sind als "read-only" markiert,\naus dem Grund musst du das Sketch an einer neuer\nStelle abspeichern, und es noch mal ausprobieren. + +# Rename handler +rename.messages.is_untitled = Umbenennen abgebrochen +rename.messages.is_untitled.description = Sketch muss zuvor abgespeichert werden\nbevor es unbenannt werden kann. +rename.messages.is_modified = Speichere Sketch vor dem Umbenennen. +rename.messages.is_read_only = Sketch ist Read-Only +rename.messages.is_read_only.description = Einige Dateien sind als "read-only" markiert,\naus dem Grund musst du das Sketch an einer neuer\nStelle abspeichern, und es noch mal ausprobieren. + +# Delete handler +delete.messages.cannot_delete = Löschen abgebrochen +delete.messages.cannot_delete.description = Ein Sketch muss zuvor abgespeichert werden\nbevor es gelöscht werden kann. +delete.messages.cannot_delete.file = Löschen nicht möglich +delete.messages.cannot_delete.file.description = Konnte nicht gelöscht werden. +delete.messages.is_read_only = Sketch ist Read-Only +delete.messages.is_read_only.description = Einige Dateien sind als "read-only" markiert,\naus dem Grund musst du das Sketch an einer neuen\nStelle abspeichern, und es noch mal ausprobieren. + + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib.category = Kategorie: +contrib.filter_your_search = Suche filtern ... +contrib.show_only_compatible.mode = Zeige nur kompatible Modes an +contrib.show_only_compatible.tool = Zeige nur kompatible Tools an +contrib.show_only_compatible.library = Zeige nur kompatible Libraries an +contrib.show_only_compatible.examples = Zeige nur kompatible Beispiele an +contrib.show_only_compatible.update = Zeige nur kompatible Updates an +contrib.restart = Neustart von Processing +contrib.unsaved_changes = Unsaved changes have been found +contrib.unsaved_changes.prompt = Ohne Speichern von Änderungen Processing neu starten? +contrib.messages.remove_restart = Bitte Processing neu starten um die Deinstallation zu beenden. +contrib.messages.install_restart = Bitte Processing neu starten um die Installation zu beenden. +contrib.messages.update_restart = Bitte Processing neu starten um die Aktualisierung zu beenden. +contrib.errors.list_download = Die Liste mit verfügbaren Paketen konnte nicht geladen werden. +contrib.errors.list_download.timeout = Verbindungs-Wartezeit beim Laden der Liste mit verfügbaren Paketen überschritten. +contrib.errors.download_and_install = Fehler beim Laden und Installieren von %s. +contrib.errors.description_unavailable = Keine Beschreibung verfügbar. +contrib.errors.malformed_url = Der angeforderte Link von Processing.org ist nicht verfügbar.\nDu kannst die Library über die Website manuell herunterladen\nund installieren. +contrib.errors.needs_repackage = %s muss neu erstellt werden um die Richtline %s zu erfüllen. +contrib.errors.no_contribution_found = Es wurde kein %s in der Download-Datei gefunden. +contrib.errors.overwriting_properties = Fehler beim Überschreiben der .properties Datei. +contrib.errors.install_failed = Installation fehlgeschlagen. +contrib.errors.update_on_restart_failed = Update beim Neustart von %s fehlgeschlagen. +contrib.errors.temporary_directory = Es konnte nicht im temporären Verzeichnis geschrieben werden. +contrib.errors.contrib_download.timeout = Verbindungs-Wartezeit beim Download von %s überschritten. +contrib.errors.no_internet_connection = Es besteht keine Internetverbindung. +contrib.status.downloading_list = Herunterladen der Liste mit verfügbaren Paketen ... +contrib.status.connecting = Verbinde... +contrib.status.done = Beendet. +contrib.all = Alle +contrib.undo = Rückgängig +contrib.remove = Entfernen +contrib.install = Installieren +contrib.progress.installing = Installiere ... +contrib.progress.starting = Starte ... +contrib.progress.downloading = Herunterladen ... +contrib.download_error = Es trat ein Fehler beim Download auf. +contrib.unsupported_operating_system = Dein Betriebssystem wird nicht unterstützt. Rufe %s für weitere Informationen auf. + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = Fehler +editor.status.error.syntax = Syntaxfehler - %s + +# --------------------------------------- +# Warnings + +warn.delete = Löschen +warn.delete.sketch = Den Sketch endgültig löschen? +warn.delete.sketch_last = Um deine Dateien sicher zu halten, wird das Löschen des gesamten Sketch-Ordners in Processing nicht unterstützt. \nBitte öffne den Sketch-Ordner in deinem Datei-Explorer, um ihn zu löschen. +warn.delete.file = Die Datei "%s" entgültig löschen? + + +# --------------------------------------- +# Update Check + +update_check = Update +update_check.updates_available.core = Eine neue Version von Processing ist verfügbar,\nsoll der Download-Bereich aufgerufen werden? +update_check.updates_available.contributions = Es sind neue Updates von installierten Paketen verfügbar,\nsoll der Contribution Manager geöffnet werden? + + +# --------------------------------------- +# Color Chooser + +color_chooser = Color Selector +color_chooser.select = Auswählen diff --git a/app/utils/build/resources/main/PDE_el.properties b/app/utils/build/resources/main/PDE_el.properties new file mode 100644 index 0000000000..8704bce4f5 --- /dev/null +++ b/app/utils/build/resources/main/PDE_el.properties @@ -0,0 +1,497 @@ + + +# --------------------------------------- +# Language: Greek (Ελληνικά) (el) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Αρχείο +menu.file.new = Νέο +menu.file.open = Άνοιγμα... +menu.file.recent = Πρόσφατα +menu.file.sketchbook = Σχεδιοθήκη... +menu.file.sketchbook.empty = Άδεια Σχεδιοθήκη +menu.file.examples = Παραδείγματα... +menu.file.close = Κλείσιμο +menu.file.save = Αποθήκευση +menu.file.save_as = Αποθήκευση ως... +menu.file.export_application = Εξαγωγή Εφαρμογής... +menu.file.page_setup = Διαμόρφωση Σελίδας +menu.file.print = Εκτύπωση... +menu.file.preferences = Προτιμήσεις... +menu.file.quit = Έξοδος + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Επεξεργασία +menu.edit.undo = Αναίρεση +menu.edit.redo = Επανάληψη +menu.edit.action.addition = πρόσθεση +menu.edit.action.deletion = διαγραφή +menu.edit.cut = Αποκοπή +menu.edit.copy = Αντιγραφή +menu.edit.copy_as_html = Αντιγραφή ως HTML +menu.edit.paste = Επικόλληση +menu.edit.select_all = Επιλογή Όλων +menu.edit.auto_format = Αυτόματη Μορφοποίηση +menu.edit.comment_uncomment = Σχολιασμός/Αποσχολιασμός +menu.edit.increase_indent = → Αύξηση Εσοχής +menu.edit.decrease_indent = ← Μείωση Εσοχής +menu.edit.find = Αναζήτηση... +menu.edit.find_next = Αναζήτηση Επόμενου +menu.edit.find_previous = Αναζήτηση Προηγούμενου +menu.edit.use_selection_for_find = Χρήση Επιλογής για Αναζήτηση + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Εκτέλεση +menu.sketch.present = Παρουσίαση +menu.sketch.tweak = Τροποποίηση +menu.sketch.stop = Τερματισμός +# --- +menu.library = Εισαγωγή Βιβλιοθήκης... +menu.library.add_library = Προσθήκη Βιβλιοθήκης... +menu.library.contributed = Συνεισφερόμενα +menu.library.no_core_libraries = Αυτή η λειτουργία δεν έχει βασικές βιβλιοθήκες +# --- +menu.sketch = Σχέδιο +menu.sketch.show_sketch_folder = Προβολή Φακέλου του Σχεδίου +menu.sketch.add_file = Προσθήκη Αρχείου... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Αποσφαλμάτωση +menu.debug.enable = Ενεργοποίηση Αποσφαλμάτωσης +menu.debug.disable = Απενεργοποίηση Αποσφαλμάτωσης +# menu.debug.show_debug_toolbar = Εμφάνιση Εργαλειοθήκης Αποσφαλμάτωσης +# menu.debug.debug = Εκκίνηση Αποσφαλμάτωσης +# menu.debug.stop = Τερματισμός +# --- +menu.debug.toggle_breakpoint = Ενεργοποίηση Σημείου Διακοπής +# menu.debug.list_breakpoints = Λίστα σημείων διακοπής +# --- +# used for both menus and toolbars +menu.debug.step = Βήμα +menu.debug.step_into = Βήμα Εντός +menu.debug.step_out = Βήμα Εκτός +menu.debug.continue = Συνέχεια +# --- +# menu.debug.print_stack_trace = Εκτύπωση Ακολουθίας Στοίβας +# menu.debug.print_locals = Εκτύπωση Τοπικών Μεταβλητών +# menu.debug.print_fields = Εκτύπωση Πεδίων +# menu.debug.print_source_location = Εκτύπωση Θέσης Πηγαίου Κώδικα +# menu.debug.print_threads = Εκτύπωση Νημάτων +# --- +# menu.debug.variable_inspector = Παρατηρητής Μεταβλητώ +menu.debug.show_variables = Εμφάνιση Μεταβλητών +menu.debug.hide_variables = Απόκρυψη Μεταβλητών +# menu.debug.show_sketch_outline = Εμφάνιση Περιγράμματος Σχεδίου +# menu.debug.show_tabs_list = Εμφάνιση Λίστας Καρτελών + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Εργαλεία +menu.tools.color_selector = Επιλογή Χρώματος... +menu.tools.create_font = Δημιουργία Γραμματοσειράς... +menu.tools.archive_sketch = Αρχειοθέτηση Σχεδίου +menu.tools.fix_the_serial_lbrary = Διόρθωση Σειριακής Βιβλιοθήκης +menu.tools.install_processing_java = Εγκατάσταση της "processing-java" +menu.tools.add_tool = Προσθήκη Εργαλείου... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Βοήθεια +menu.help.about = Σχετικά με την Processing +menu.help.environment = Περιβάλλον +menu.help.reference = Αναφορά +menu.help.find_in_reference = Αναζήτηση στην Αναφορά +menu.help.libraries_reference = Αναφορά Βιβλιοθηκών +menu.help.tools_reference = Αναφορά Εργαλείων +menu.help.empty = (άδεια) +menu.help.online = Online +menu.help.getting_started = Ξεκινώντας +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Αντιμετώπιση Προβλημάτων +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Συχνές Ερωτήσεις +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = Το Ίδρυμα Processing +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Επισκευθείτε την Processing.org +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Ναι +prompt.no = Όχι +prompt.cancel = Ακύρωση +prompt.ok = Εντάξει +prompt.browse = Εξερεύνηση +prompt.export = Εξαγωγή + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Άνοιγμα Σχεδίου Processing... + +# Save (Frame) +save = Αποθήκευση φακέλου Σχεδίου ως... +save.title = Θέλετε να αποθηκεύσετε τις αλλαγές σε
αυτό το Σχέδιο πριν το κλείσιμο; +save.hint = Αν δεν αποθηκεύσετε, οι αλλαγές σας θα χαθούν. +save.btn.save = Αποθήκευση +save.btn.dont_save = Χωρίς αποθήκευση + +# AppPreferences (Frame) +preferences = Προτιμήσεις +preferences.button.width = 80 +preferences.requires_restart = χρειάζεται επανεκκίνηση της Processing +preferences.sketchbook_location = Τοποθεσία Σχεδιοθήκης +preferences.sketchbook_location.popup = Τοποθεσία Σχεδιοθήκης +preferences.language = Γλώσσα +preferences.editor_and_console_font = Γραμματοσειρά Επεξεργαστή και Κονσόλας +preferences.editor_and_console_font.tip = Επέλεξε τη γραμματοσειρά που χρησιμοποιείται στον Επεξεργαστή και στην Κονσόλα.
Μόνο σταθερού πλάτους γραμματοσειρές μπορούν να χρησιμοποιηθούν,
όμως η λίστα μπορεί να μην είναι ολοκληρωμένη. +preferences.editor_font_size = Μέγεθος γραμματοσειράς Επεξεργαστή +preferences.console_font_size = Μέγεθος γραμματοσειράς Κονσόλας +preferences.background_color = Χρώμα φόντου κατά την Παρουσίαση +preferences.background_color.tip = Επέλεξε το χρώμα φόντου που χρησιμοποιείται κατά την Παρουσίαση.
Η Παρουσίαση χρησιμοποιείται για την προβολή ενός σχεδίου σε πλήρη οθόνη,
και είναι προσβάσιμη από το μενού Σχέδιο. +preferences.use_smooth_text = Χρήση ομαλού κειμένου στο παράθυρο επεξεργασίας +preferences.enable_complex_text_input = Ενεργοποίηση εισαγωγής σύνθετου κειμένου +preferences.enable_complex_text_input_example = π.χ. Ιαπωνικά +preferences.continuously_check = Συνεχής έλεγχος σφαλμάτων +preferences.show_warnings = Προβολή προειδοποιήσεων +preferences.code_completion = Συμπλήρωση κώδικα με +preferences.trigger_with = Αυτόματη εκτέλεση με +preferences.cmd_space = κενό +preferences.suggest_imports = Πρόταση δήλωσης εισαγωγών +preferences.increase_max_memory = Άυξηση μέγιστης διαθέσιμης μνήμης σε +preferences.delete_previous_folder_on_export = Διαγραφή προηγούμενου φακέλου κατά την Εξαγωγή +preferences.check_for_updates_on_startup = Έλεγχος ενημερώσεων κατά την εκκίνηση +preferences.run_sketches_on_display = Εκτέλεση Σχεδίων στην οθόνη +preferences.run_sketches_on_display.tip = Επιλέγει την οθόνη στην οποία τα Σχέδια τοποθετούνται
αρχικά. Συνήθως, αν το παράθυρο του Σχεδίου μετακινηθεί,
θα ανοίξει στην ίδια θέση, όμως κατά την Παρουσίαση
(πλήρης οθόνη), θα χρησιμοποιείται αυτή η οθόνη. +preferences.automatically_associate_pde_files = Αυτόματη συσχέτιση αρχείων .pde με την Processing +preferences.launch_programs_in = Εκτέλεση προγραμμάτων σε +preferences.launch_programs_in.mode = κατάσταση +preferences.file = Μπορείτε να επεξεργαστείτε περισσότερες ρυθμίσεις απευθείας στο αρχείο +preferences.file.hint = επεξεργαστείτε μόνο όταν είναι κλειστή η Processing + +# Sketchbook Location (Frame) +sketchbook_location = Επιλογή νέας τοποθεσίας Σχεδιοθήκης + +# Sketchbook (Frame) +sketchbook = Σχεδιοθήκη +sketchbook.tree = Σχεδιοθήκη + +# Examples (Frame) +examples = Παραδείγματα +examples.add_examples = Πρόσθεσε Παραδείγματα... +examples.libraries = Βιβλιοθήκες +examples.core_libraries = Κύριες Βιβλιοθήκες + +# Export (Frame) +export = Επιλογές Εξαγωγής +export.platforms = Πλατφόρμες +export.options = Επιλογές +export.options.fullscreen = Πλήρης οθόνη (Παρουσίαση) +export.options.show_stop_button = Προβολή κουμπιού τερματισμού +export.description.line1 = Η Εξαγωγή Εφαρμογής δημιουργεί αυτόνομα αρχεία που +export.description.line2 = ανοίγουν με διπλό-κλικ στις επιλεγμένες πλατφόρμες. +export.unsaved_changes = Αποθήκευση αλλαγών πριν την εξαγωγή; +export.notice.cancel.unsaved_changes = Η εξαγωγή ακυρώθηκε, οι αλλαγές πρέπει πρώτα να αποθηκευθούν. +export.notice.exporting = Εξαγωγή εφαρμογής... +export.notice.exporting.done = Η εξαγωγή ολοκληρώθηκε. +export.notice.exporting.error = Σφάλμα κατά την εξαγωγή. +export.notice.exporting.cancel = Η Εξαγωγή ακυρώθηκε. +export.tooltip.macos = Η εξαγωγή macOS είναι διαθέσιμη μόνο σε macOS +export.full_screen = Πλήρης Οθόνη +export.embed_java = Ενσωματωμένη Java +export.code_signing = Υπογραφή Κώδικα + +# Find (Frame) +find = Αναζήτηση +find.find = Αναζήτηση: +find.replace_with = Αντικατάσταση με: +find.ignore_case = Αγνόησε μικρά ή κεφαλαία +find.all_tabs = Όλες οι καρτέλες +find.wrap_around = Περιτύλιξη +find.btn.replace_all = Αντικατάσταση όλων +find.btn.replace = Αντικατάσταση +find.btn.replace_and_find = Αναζήτηση και Αντικατάσταση +find.btn.previous = Προηγούμενο +find.btn.find = Αναζήτηση + +# Find in reference (Frame) +find_in_reference = Αναζήτηση στην Αναφορά + +# File (Frame) +file = Επιλέξτε μια εικόνα ή άλλο αρχείο δεδομένων για να αντιγράψετε στο Σχέδιό σας + +# Create Font (Frame) +create_font = Δημιουργία Γραμματοσειράς +create_font.label = Χρησιμοποιήστε αυτό το εργαλείο για να δημιουργήσετε γραμματοσειρές bitmap για το πρόγραμμά σας.\nΕπιλέξτε γραμματοσειρά και μέγεθος και πατήστε "Εντάξει" για δημιουργηθεί η γραμματοσειρά.\nΘα προστεθεί στο φάκελο "data" του Σχεδίου. +create_font.size = Μέγεθος +create_font.smooth = Εξομάλυνση +create_font.characters = Χαρακτήρες +create_font.character_selector = Επιλογή Χαρακτήρων +create_font.character_selector.label = Οι προεπιλεγμένοι χαρακτήρες θα περιλαμβάνουν τα περισσότερα bitmaps για Mac OS\nκαι Windows Latin scripts. Αν συμπεριληφθούν όλοι οι χαρακτήρες μπορεί να χρειαστεί\nμεγάλη ποσότητα μνήμης για όλα τα bitmaps.\nΓια μεγαλύτερο έλεγχο, μπορείτε να επιλέξετε συγκεκριμένα μπλοκ Unicode. +create_font.default_characters = Προεπιλεγμένοι Χαρακτήρες +create_font.all_characters = Όλοι οι Χαρακτήρες +create_font.specific_unicode = Συγκεκριμένα Μπλοκ Unicode +create_font.filename = Όνομα Αρχείου + + +# Color Selector (Frame) +color_selector = Επιλογή Χρώματος... + +# Archive Sketch (Frame) +archive_sketch = Αρχειοθέτηση Σχεδίου ως... + +# Close (Frame) +close.unsaved_changes = Αποθήκευση αλλαγών στο + +# Tweak Mode +tweak_mode = Κατάσταση Τροποποίησης +tweak_mode.save_before_tweak = Παρακαλώ αποθηκεύστε το Σχέδιο πριν το τρέξετε σε Κατάσταση Τροποποίησης. +tweak_mode.keep_changes.line1 = Να διατηρηθούν οι αλλαγές; +tweak_mode.keep_changes.line2 = Έχετε αλλάξει κάποιες τιμές στο Σχέδιο. Θέλετε να κρατήσετε τις αλλαγές; + +# DebugTray +debugger.name = Όνομα +debugger.value = Τιμή +debugger.type = Τύπος + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Εκτέλεση +toolbar.present = Παρουσίαση +toolbar.stop = Τερματισμός +toolbar.debug = Αποσφαλμάτωση + +# --- +toolbar.new = Νέο +toolbar.open = Άνοιγμα +toolbar.save = Αποθήκευση +# toolbar.export_application = Εξαγωγή Εφαρμογής +toolbar.add_mode = Προσθήκη κατάστασης... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +# toolbar.debug.debug = Αποσφαλμάτωση +# toolbar.debug.continue = Συνέχεια +# toolbar.debug.step = Βήμα +# toolbar.debug.step_into = Βήμα Εντός +# toolbar.debug.stop = Τερματισμός +# toolbar.debug.toggle_breakpoints = Ενεργοποίηση σημείων Διακοπής +# toolbar.debug.variable_inspector = Παρατηρητής Μεταβλητών + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Νέα Καρτέλα +editor.header.rename = Μετονομασία +editor.header.delete = Διαγραφή +editor.header.previous_tab = Προηγούμενη Καρτέλα +editor.header.next_tab = Επόμενη Καρτέλα +editor.header.delete.warning.title = Ναι, όχι. +editor.header.delete.warning.text = Δεν μπορείτε να διαγράψετε την κύρια καρτέλα του μοναδικού ανοιχτού σχεδίου. + +# Tabs +editor.tab.new = Νέο Όνομα +editor.tab.new.description = Όνομα για το νέο αρχείο +editor.tab.rename = Νέο Όνομα +editor.tab.rename.description = Νέο όνομα για το αρχείο + +# Sketch +editor.sketch.rename.description = Νέο όνομα για το Σχέδιο + +editor.status.autoformat.no_changes = Δεν χρειάζονται αλλαγές από την Αυτόματη Μορφοποίηση. +editor.status.autoformat.finished = Ολοκληρώθηκε η Αυτόματη Μορφοποίηση. +editor.status.find_reference.select_word_first = Επιλέξτε πρώτα μια λέξη προς αναζήτηση στην Αναφορά. +editor.status.find_reference.not_available = Δεν υπάρχει καταχώρηση για το "%s" στην Αναφορά. +editor.status.drag_and_drop.files_added.0 = Δεν προστέθηκαν αρχεία στο Σχέδιο. +editor.status.drag_and_drop.files_added.1 = Ένα αρχείο προστέθηκε στο Σχέδιο. +editor.status.drag_and_drop.files_added.n = %d αρχεία προστέθηκαν στο Σχέδιο. +editor.status.saving = Αποθήκευση... +editor.status.saving.done = Ολοκλήρωση αποθήκευσης. +editor.status.saving.canceled = Ακύρωση αποθήκευσης. +editor.status.printing = Εκτύπωση... +editor.status.printing.done = Ολοκλήρωση εκτύπωσης. +editor.status.printing.error = Σφάλμα κατά την εκτύπωση. +editor.status.printing.canceled = Ακύρωση εκτύπωσης. +editor.status.copy_as_html = Ο κώδικας μορφοποιημένος ως HTML έχει αντιγραφεί στο πρόχειρο. +editor.status.debug.busy = Αποσφαλμάτωση σε εξέλιξη... +editor.status.debug.halt = H αποσφαλμάτωση τερματίστηκε. + +# Errors +editor.status.warning = Προειδοποίηση +editor.status.error = Σφάλμα +editor.status.error_on = Σφάλμα στο "%s" +editor.status.missing.default = Λείπει το "%c" +editor.status.missing.semicolon = Λείπει το ερωτηματικό ";" +editor.status.missing.left_sq_bracket = Λείπει η αριστερή αγκύλη "[" +editor.status.missing.right_sq_bracket = Λείπει η δεξιά αγκύλη "]" +editor.status.missing.left_paren = Λείπει η αριστερή παρένθεση "(" +editor.status.missing.right_paren = Λείπει η δεξιά παρένθεση ")" +editor.status.missing.left_curly_bracket = Λείπει το αριστερό άγκιστρο "{" +editor.status.missing.right_curly_bracket = Λείπει το δεξιό άγκιστρο "}" +editor.status.missing.add = Δοκίμασε να προσθέσεις ένα "%s" +editor.status.reserved_words = Τα "color" και "int" δεν είναι έγκυρα ονόματα μεταβλητών, είναι δεσμευμένες λέξεις +editor.status.undefined_method = Η συνάρτηση "%s(%s)" δεν υπάρχει +editor.status.empty_param = Η συνάρτηση "%s()" δεν παίρνει παραμέτρους +editor.status.wrong_param = Οι παράμετροι της συνάρτησης "%s()" πρέπει να είναι κάπως έτσι: "%s(%s)" +editor.status.undef_global_var = Η καθολική μεταβλητή "%s" δεν υπάρχει +editor.status.undef_class = Η κλάση "%s" δεν υπάρχει +editor.status.undef_var = Η μεταβλητή "%s" δεν υπάρχει +editor.status.undef_name = Το όνομα "%s" δεν μπορεί να αναγνωριστεί +editor.status.type_mismatch = Δεν υπάρχει αντιστοιχία τύπων, ο "%s" δεν συνδυάζεται με τον "%s" +editor.status.unused_variable = Η τιμή της τοπικής μεταβλητής "%s" δεν χρησιμοποιείται +editor.status.uninitialized_variable = Η τοπική μεταβλητή "%s" ίσως να μην έχει αρχικοποιηθεί +editor.status.no_effect_assignment = Η ανάθεση στη μεταβλητή "%s" δεν έχει αποτέλεσμα +editor.status.archiver.create = Δημιουργήθηκε το αρχείο "%s". +editor.status.archiver.cancel = H αρχειοθέτηση σχεδίου ακυρώθηκε. + +# Limited syntax error support +editor.status.error.syntax = Σφάλμα - %s + +# Footer buttons +editor.footer.errors = Σφάλματα +editor.footer.errors.problem = Πρόβλημα +editor.footer.errors.tab = Καρτέλα +editor.footer.errors.line = Γραμμή +editor.footer.console = Κονσόλα + +# New handler +new.messages.is_read_only = Το Σχέδιο είναι Μόνο για Ανάγνωση +new.messages.is_read_only.description = Μερικά αρχεία είναι σημειωμένα "Μόνο για Ανάγνωση", οπότε θα χρειαστεί να ξανα-αποθηκεύσεις το Σχέδιο σε διαφορετική θέση,\nκαι να προσπαθήσεις ξανά. + +# Rename handler +rename.messages.is_untitled = Το Σχέδιο Δεν έχει Τίτλο +rename.messages.is_untitled.description = Τι θα έλεγες να αποθηκεύσεις το Σχέδιο\nπριν προσπαθήσεις να το μετονομάσεις; +rename.messages.is_modified = Παρακαλώ αποθήκευσε το Σχέδιο πριν το μετονομάσεις. +rename.messages.is_read_only = Το Σχέδιο είναι Μόνο για Ανάγνωση +rename.messages.is_read_only.description = Μερικά αρχεία είναι σημειωμένα "Μόνο για Ανάγνωση", οπότε θα χρειαστεί να ξανα-αποθηκεύσεις το Σχέδιο σε διαφορετική θέση,\nκαι να προσπαθήσεις ξανά. + +# Delete handler +delete.messages.cannot_delete = Αποτυχία Διαγραφής +delete.messages.cannot_delete.description = Δε μπορείς να διαγράψεις ένα Σχέδιο που δεν έχει αποθηκευτεί. +delete.messages.cannot_delete.file = Δεν τα κατάφερα +delete.messages.cannot_delete.file.description = Η διαγραφή δεν έγινε +delete.messages.is_read_only = Το Σχέδιο είναι Μόνο για Ανάγνωση +delete.messages.is_read_only.description = Μερικά αρχεία είναι σημειωμένα "Μόνο για Ανάγνωση", οπότε θα χρειαστεί να ξανα-αποθηκεύσεις το Σχέδιο σε διαφορετική θέση,\nκαι να προσπαθήσεις ξανά. + + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Διαχειριστής Συνεισφορών +contrib.manager_title.update = Διαχειριστής Ενημερώσεων +contrib.manager_title.mode = Διαχειριστής Λειτουργιών +contrib.manager_title.tool = Διαχειριστής Εργαλείων +contrib.manager_title.library = Διαχειριστής Βιβλιοθηκών +contrib.manager_title.examples = Διαχειριστής Παραδειγμάτων +contrib.category = Κατηγορία: +contrib.filter_your_search = Φιλτράρισμα αναζήτησης... +contrib.show_only_compatible.mode = Εμφάνιση Μόνο Συμβατών Λειτουργιών +contrib.show_only_compatible.tool = Εμφάνιση Μόνο Συμβατών Εργαλείων +contrib.show_only_compatible.library = Εμφάνιση Μόνο Συμβατών Βιβλιοθηκών +contrib.show_only_compatible.examples = Εμφάνιση Μόνο Συμβατών Παραδειγμάτων +contrib.show_only_compatible.update = Εμφάνιση Μόνο Συμβατών Ενημερώσεων +contrib.restart = Επανεκκίνηση Processing +contrib.unsaved_changes = Βρέθηκαν μη αποθηκευμένες ενημερώσεις +contrib.unsaved_changes.prompt = Είσαι σίγουρος ότι θέλεις να κάνεις επανεκκίνηση της Processing χωρίς να αποθηκεύσεις τις αλλαγές; +contrib.messages.remove_restart = Παρακαλώ κάνε επανεκκίνηση της Processing για να ολοκληρωθεί η αφαίρεση αυτού του αντικειμένου. +contrib.messages.install_restart = Παρακαλώ κάνε επανεκκίνηση της Processing για να ολοκληρωθεί η εγκατάσταση αυτού του αντικειμένου. +contrib.messages.update_restart = Παρακαλώ κάνε επανεκκίνηση της Processing για να ολοκληρωθεί η ενημέρωση αυτού του αντικειμένου. +contrib.errors.list_download = Δεν ήταν δυνατή η λήψη των διαθέσιμων ενημερώσεων. +contrib.errors.list_download.timeout = Η σύνδεση εξάντλησε το όριο χρόνου κατά τη λήψη αυτής της λίστας συνεισφορών. +contrib.errors.download_and_install = Σφάλμα κατά τη λήψη και εγκατάσταση του %s. +contrib.errors.description_unavailable = Μη διαθέσιμη περιγραφή. +contrib.errors.malformed_url = Ο σύνδεσμος που λήφθηκε από το Processing.org δεν είναι έγκυρος.\nΜπορείς ακόμα να εγκαταστήσεις αυτή τη βιβλιοθήκη χειροκίνητα αν επισκεφτείς\nτην ιστοσελίδα της βιβλιοθήκης. +contrib.errors.needs_repackage = Το %s χρειάζεται να ξαναπακεταριστεί σύμφωνα με τις οδηγίες τoυ %s. +contrib.errors.no_contribution_found = Δεν ήταν δυνατή η εύρεση του %s στο αρχείο που λήφθηκε. +contrib.errors.overwriting_properties = Σφάλμα κατά την αντικατάσταση του αρχείου .properties. +contrib.errors.install_failed = Η εγκατάσταση απέτυχε. +contrib.errors.update_on_restart_failed = Η ενημέρωση κατά την επανεκκίνηση του %s απέτυχε. +contrib.errors.temporary_directory = Δεν ήταν δυνατή η εγγραφή στον προσωρινό κατάλογο. +contrib.errors.contrib_download.timeout = Η σύνδεση εξάντλησε το όριο χρόνου κατά τη λήψη του %s. +contrib.errors.no_internet_connection = Μάλλον δεν είσαι συνδεδεμένος στο Internet. +contrib.status.downloading_list = Λήψη λίστας συνεισφορών. +contrib.status.connecting = Σύνδεση... +contrib.status.done = Ολοκληρώθηκε. +contrib.all = Όλα +contrib.undo = Αναίρεση +contrib.remove = Διαγραφή +contrib.install = Εγκατάσταση +contrib.progress.installing = Γίνεται εγκατάσταση +contrib.progress.starting = Εκκίνηση +contrib.progress.downloading = Λήψη +contrib.download_error = Προέκυψε σφάλμα κατά την λήψη της συνεισφοράς. +contrib.unsupported_operating_system = Το λειτουργικό σας σύστημα μάλλον δεν υποστηρίζεται. Επισκευθείτε την βιβλιοθήκη των %s για περισσότερα. + +contrib.category.3d = 3D +contrib.category.animation = Animation +contrib.category.data = Δεδομένα +contrib.category.geometry = Γεωμετρία +contrib.category.gui = GUI +contrib.category.hardware = Υλικό +contrib.category.i_o = Ε/Ε +contrib.category.math = Μαθηματικά +contrib.category.simulation = Προσομοίωση +contrib.category.sound = Ήχος +contrib.category.special = Starred +contrib.category.typography = Τυπογραφία +contrib.category.utilities = Utilities +contrib.category.video_vision = Βίντεο & Όραση +contrib.category.other = Άλλα + +# Install on Startup +contrib.startup.errors.download_install = Σφάλμα κατά τη λήψη και εγκατάσταση του %s +contrib.startup.errors.temp_dir = Αδύνατη η εγγραφή στον προσωρινό κατάλογο κατά τη λήψη και εγκατάσταση του %s +contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update... + +# Install on Import +contrib.import.dialog.title = Missing Libraries Available +contrib.import.dialog.primary_text = The following imported libraries are available for download, but have not been installed. +contrib.import.dialog.secondary_text = Would you like to install them now? +contrib.import.progress.download = Downloading %s... +contrib.import.progress.install = Installing %s... +contrib.import.progress.done = %s has been installed. +contrib.import.progress.final_list = The following libraries have been installed: +contrib.import.errors.link = Error: The library %s has a strange looking download link. + +# --------------------------------------- +# Warnings + +warn.delete = Διαγραφή +warn.delete.sketch = Είσαι σίγουρος ότι θέλεις να διαγραφεί το Σχέδιο; +warn.delete.sketch_last = Για να διατηρήσετε τα αρχεία σας ασφαλή, η διαγραφή ολόκληρου του φακέλου Σχεδίου δεν υποστηρίζεται στο Processing.\nΠαρακαλούμε ανοίξτε το φάκελο Σχεδίου στον εξερευνητή αρχείων για να το διαγράψετε. +warn.delete.file = Είσαι σίγουρος ότι θέλεις να διαγράψεις το "%s"; + + +# --------------------------------------- +# Update Check + +update_check = Ενημέρωση +update_check.updates_available.core = Υπάρχει διαθέσιμη μία νέα έκδοση της Processing,\nθα ήθελες να επισκεφθείς την σελίδα λήψης; +update_check.updates_available.contributions = Υπάρχουν διαθέσιμες ενημερώσεις για κάποια από τις εγκατεστημένες συνεισφορές,\nθα ήθελες να ανοίξεις τον Διαχειριστή Συνεισφορών τώρα; + + +# --------------------------------------- +# Color Chooser + +color_chooser = Επιλογή Χρώματος +color_chooser.select = Επιλογή diff --git a/app/utils/build/resources/main/PDE_en.properties b/app/utils/build/resources/main/PDE_en.properties new file mode 100644 index 0000000000..a657df4942 --- /dev/null +++ b/app/utils/build/resources/main/PDE_en.properties @@ -0,0 +1 @@ +# -> PDE.properties \ No newline at end of file diff --git a/app/utils/build/resources/main/PDE_es.properties b/app/utils/build/resources/main/PDE_es.properties new file mode 100644 index 0000000000..7486f437cc --- /dev/null +++ b/app/utils/build/resources/main/PDE_es.properties @@ -0,0 +1,658 @@ + + +# --------------------------------------- +# Language: Spanish (es) +# --------------------------------------- + + +font.family.sans = Processing Sans +font.family.mono = Source Code Pro + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Archivo +menu.file.new = Nuevo +menu.file.open = Abrir... +menu.file.recent = Recientes +menu.file.sketchbook = Sketchbook... +menu.file.sketchbook.empty = Sketchbook vacío +menu.file.examples = Ejemplos... +menu.file.close = Cerrar +menu.file.save = Guardar +menu.file.save_as = Guardar como... +menu.file.export_application = Exportar como aplicación... +menu.file.page_setup = Configurar página +menu.file.print = Imprimir... +menu.file.preferences = Preferencias... +menu.file.quit = Salir + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Editar +menu.edit.undo = Deshacer +menu.edit.redo = Rehacer +menu.edit.redo.keystroke.macos = shift meta pressed Z +menu.edit.redo.keystroke.windows = ctrl pressed Y +menu.edit.redo.keystroke.linux = shift ctrl pressed Z +menu.edit.action.addition = adición +menu.edit.action.deletion = supresión +menu.edit.cut = Cortar +menu.edit.copy = Copiar +menu.edit.copy_as_html = Copiar como HTML +menu.edit.paste = Pegar +menu.edit.select_all = Seleccionar todo +menu.edit.auto_format = Autoformato +menu.edit.comment_uncomment = Comentar/Descomentar +menu.edit.comment_uncomment.keystroke.macos = meta pressed SLASH +menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH +menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH +menu.edit.increase_indent = → Aumentar sangría +menu.edit.increase_indent.keystroke.macos = meta pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET +menu.edit.decrease_indent = ← Reducir sangría +menu.edit.decrease_indent.keystroke.macos = meta pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET +menu.edit.find = Buscar... +menu.edit.find_next = Buscar siguiente +menu.edit.find_previous = Buscar anterior +menu.edit.use_selection_for_find = Usar selección para buscar + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Ejecutar +menu.sketch.present = Presentar +menu.sketch.tweak = Retocar en vivo +menu.sketch.stop = Detener +# --- +menu.library = Importar biblioteca... +# menu.library.add_library = Añadir biblioteca... +menu.library.manage_libraries = Gestionar bibliotecas... +menu.library.contributed = Contribuidas +menu.library.no_core_libraries = este modo no incluye ninguna biblioteca +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Mostrar carpeta del sketch +menu.sketch.add_file = Añadir archivo... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Depuración +menu.debug.enable = Activar depurador +menu.debug.disable = Desactivar depurador +#menu.debug.show_debug_toolbar = Mostrar barra de herramientas de depuración +#menu.debug.debug = Depurar +#menu.debug.stop = Detener +# --- +menu.debug.toggle_breakpoint = Conmutar punto de interrupción +#menu.debug.list_breakpoints = Listar puntos de interrupción +# --- +# used for both menus and toolbars +menu.debug.step = Saltar +menu.debug.step.keystroke.macos = meta pressed J +menu.debug.step.keystroke.windows = ctrl pressed J +menu.debug.step.keystroke.linux = ctrl pressed J +menu.debug.step_into = Ingresar +menu.debug.step_into.keystroke.macos = shift meta pressed J +menu.debug.step_into.keystroke.windows = shift ctrl pressed J +menu.debug.step_into.keystroke.linux = shift ctrl pressed J +menu.debug.step_out = Salir +menu.debug.step_out.keystroke.macos = meta alt pressed J +menu.debug.step_out.keystroke.windows = ctrl alt pressed J +menu.debug.step_out.keystroke.linux = ctrl alt pressed J +menu.debug.continue = Continuar +# --- +#menu.debug.print_stack_trace = Imprimir traza de la pila +#menu.debug.print_locals = Imprimir variables locales +#menu.debug.print_fields = Imprimir variables de instancia +#menu.debug.print_source_location = Imprimir ubicación del código fuente +#menu.debug.print_threads = Imprimir hilos de ejecución +# --- +#menu.debug.variable_inspector = Mostrar/ocultar inspector de variables +menu.debug.show_variables = Mostrar variables +menu.debug.hide_variables = Ocultar variables +#menu.debug.show_sketch_outline = Mostrar esquema del sketch +#menu.debug.show_tabs_list = Mostrar lista de pestañas + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Herramientas +menu.tools.color_selector = Selector de colores... +menu.tools.create_font = Crear fuente... +menu.tools.archive_sketch = Archivar sketch +menu.tools.fix_the_serial_lbrary = Corregir «Serial library» +menu.tools.install_processing_java = Instalar «processing-java» +# menu.tools.add_tool = Añadir herramienta... +menu.tools.manage_tools = Gestionar herramientas... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Ayuda +menu.help.welcome = Bienvenida a Processing +menu.help.about = Acerca de Processing +menu.help.environment = Entorno de desarrollo +menu.help.reference = Referencia +menu.help.find_in_reference = Buscar en la referencia +menu.help.reference.download = Descargar la referencia +menu.help.libraries_reference = Referencias de bibliotecas +menu.help.tools_reference = Referencias de herramientas +menu.help.empty = (vacío) +menu.help.online = En línea + +# Only include the .url lines in the translation file if there +# is an official translated version of the link that can be used. +# Otherwise any change here will have to be copied to all languages. +# https://github.com/processing/processing4/issues/250 +menu.help.getting_started = Primeros pasos +menu.help.getting_started.url = https://processing.org/tutorials/gettingstarted/ +menu.help.troubleshooting = Resolución de problemas +menu.help.troubleshooting.url = https://github.com/processing/processing4/wiki/Troubleshooting +menu.help.faq = Preguntas frecuentes +menu.help.faq.url = https://github.com/processing/processing4/wiki/FAQ +menu.help.foundation = Fundación The Processing Foundation +menu.help.foundation.url = https://processing.foundation/ +menu.help.visit = Visitar Processing.org +menu.help.visit.url = https://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Sí +prompt.no = No +prompt.cancel = Cancelar +prompt.ok = Aceptar +prompt.browse = Buscar +prompt.export = Exportar + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Abrir un sketch de Processing... + +# Save (Frame) +save = Guardar la carpeta del sketch... +save.title = ¿Quieres guardar los cambios de «%s» antes de cerrar? +save.hint = Si no los guardas, los cambios se perderán. +save.btn.save = Guardar +save.btn.dont_save = No guardar + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = ¿Quieres guardar los cambios de «%s»? + +# AppPreferences (Frame) +preferences = Preferencias +preferences.button.width = 80 +preferences.restart_required = Reinicia Processing para que se apliquen los cambios +preferences.sketchbook_location = Ubicación del Sketchbook +preferences.sketchbook_location.popup = Ubicación del Sketchbook +preferences.sketch_naming = Nombres de nuevos sketches +preferences.language = Idioma: +preferences.editor_and_console_font = Fuente del editor y la consola: +preferences.editor_and_console_font.tip = Selecciona la fuente del editor y de la consola.
Solo se permiten fuentes con caracteres de ancho
fijo. Puede que no todas aparezcan en la lista. +preferences.editor_font_size = Tamaño de letra del editor: +preferences.console_font_size = Tamaño de letra de la consola: +preferences.interface_scale = Escala de la interfaz: +preferences.interface_scale.auto = Automática +preferences.background_color = Color de fondo del modo Presentación: +preferences.background_color.tip = Selecciona el color de fondo para el modo Presentación.
En este modo se presenta el sketch en pantalla completa;
puedes acceder a este modo desde el menú Sketch. +preferences.use_smooth_text = Suavizar el texto en el editor +preferences.enable_complex_text = Habilitar ingreso de caracteres complejos +preferences.enable_complex_text.tip = Para escribir en algunas lenguas en el editor,
como el chino, el japonés o el árabe, hay que tener
activadas características adicionales. +preferences.continuously_check = Comprobación continua de errores +preferences.show_warnings = Mostrar advertencias +preferences.code_completion = Autocompletar código con +preferences.trigger_with = Activar con +preferences.cmd_space = espacio +preferences.suggest_imports = Sugerir declaraciones de importación +preferences.increase_max_memory = Aumentar la memoria máxima disponible a +# preferences.delete_previous_folder_on_export = Eliminar la carpeta anterior al exportar +preferences.check_for_updates_on_startup = Comprobar actualizaciones (consultar los datos enviados en Preguntas Frecuentes) +preferences.run_sketches_on_display = Pantalla donde ejecutar sketches +preferences.run_sketches_on_display.tip = Define la pantalla donde inicialmente se abren los sketches.
Si la ventana del sketch se mueve, esta se volverá a abrir
en la misma posición. Sin embargo, en modo Presentación
(pantalla completa), se utilizará siempre esta pantalla. +preferences.automatically_associate_pde_files = Asociar automáticamente los archivos «.pde» con Processing +preferences.launch_programs_in = Ejecutar programas en +preferences.launch_programs_in.mode = modo +preferences.file = Puedes editar otras preferencias modificando directamente el archivo: +preferences.file.hint = (Editar únicamente cuando Processing no esté abierto.) + +# Sketchbook Location (Frame) +sketchbook_location = Nueva ubicación del sketchbook + +# Sketchbook (Frame) +sketchbook = Sketchbook +sketchbook.tree = Sketchbook + +# Examples (Frame) +examples.title = Ejemplos en %s +examples.add_examples = Añadir ejemplos... +examples.libraries = Bibliotecas contribuidas +examples.core_libraries = Bibliotecas +examples.contributed = Ejemplos contribuidos + +# Export (Frame) +export = Opciones de exportación +export.platforms = Sistemas operativos +export.options = Opciones +export.options.present = Modo Presentación +export.options.show_stop_button = Mostrar un botón de Detener +export.description = Convierte el sketch en una aplicación para varios sistemas operativos: +export.unsaved_changes = ¿Guardar los cambios antes de exportar? +export.notice.cancel.unsaved_changes = Exportación cancelada: debes guardar los cambios del sketch antes de exportarlo. +export.notice.exporting = Exportando como aplicación... +export.notice.exporting.done = Exportación finalizada. +export.notice.exporting.error = Ha ocurrido un error al exportar. +export.notice.exporting.cancel = Se ha cancelado la exportación como aplicación. +export.tooltip.macos = La exportación para macOS solo está disponible en macOS +export.full_screen = Pantalla completa +export.embed_java = Incluir Java +export.include_java = Incluir Java en la aplicación para %s +export.code_signing = Firma de código +export.messages.is_read_only = Sketch solo de lectura +export.messages.is_read_only.description = Algunos archivos son solo de lectura\nguarda el sketch en otra ubicación y vuelve a intentarlo. +export.messages.cannot_export = No se puede exportar +export.messages.cannot_export.description = No se puede exportar un sketch que no se ha guardado. + +# Find (Frame) +find = Buscar +find.find = Buscar: +find.replace_with = Reemplazar con: +find.ignore_case = Ignorar mayúsculas +find.all_tabs = Todas las pestañas +find.wrap_around = Continuar buscando +find.btn.replace_all = Reemplazar todo +find.btn.replace = Reemplazar +find.btn.replace_and_find = Buscar y reemplazar +find.btn.previous = Anterior +find.btn.find = Buscar + +# Find in reference (Frame) +find_in_reference = Buscar en la referencia + +# File (Frame) +file = Selecciona un archivo a copiar en el sketch + +# Create Font (Frame) +create_font = Crear fuente +create_font.label = Crea fuentes de mapas de bits con esta herramienta.\nSelecciona una fuente y un tamaño, y haz clic en «Aceptar».\nLa fuente se añadirá a la carpeta de datos del sketch. +create_font.size = Tamaño +create_font.smooth = Suavizar +create_font.characters = Caracteres... +create_font.character_selector = Selector de caracteres +create_font.character_selector.label = La opción «Caracteres predeterminados» incluye la mayoría\nde mapas de bits para las grafías latinas en MacOS y Windows.\nIncluir «Todos los caracteres» añade muchos más mapas de bits\ny requiere mucha más memoria. Para mayor control puedes\nescoger «Bloques Unicode específicos». +create_font.default_characters = Caracteres predeterminados +create_font.all_characters = Todos los caracteres +create_font.specific_unicode = Bloques Unicode específicos +create_font.filename = Nombre del archivo + +# Color Selector (Frame) +color_selector = Selector de colores + +# Archive Sketch (Frame) +archive_sketch = Archivar sketch como... + +# Tweak Mode +tweak_mode = Retocar en vivo +tweak_mode.save_before_tweak = Debes guardar el sketch antes de entrar en el modo de Retocar en vivo. +tweak_mode.keep_changes.line1 = ¿Quieres mantener los cambios? +tweak_mode.keep_changes.line2 = Has modificado algunos valores del sketch. ¿Quieres guardar esos cambios? + +# DebugTray +debugger.name = Nombre +debugger.value = Valor +debugger.type = Tipo + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Ejecutar +toolbar.present = Presentar +toolbar.stop = Detener +toolbar.debug = Depurar +# --- +toolbar.new = Nuevo +toolbar.open = Abrir +toolbar.save = Guardar +# toolbar.export_application = Exportar como aplicación +# toolbar.add_mode = Añadir modo... +toolbar.manage_modes = Gestionar modos... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Continuar +#toolbar.debug.step = Saltar +#toolbar.debug.step_into = Ingresar +#toolbar.debug.stop = Detener +#toolbar.debug.toggle_breakpoints = Conmutar punto de interrupción +#toolbar.debug.variable_inspector = Inspector de variables + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Nueva pestaña +editor.header.rename = Renombrar +editor.header.delete = Eliminar +editor.header.previous_tab = Pestaña anterior +editor.header.previous_tab.keystroke.macos = meta alt pressed LEFT +editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP +editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP +editor.header.next_tab = Pestaña siguiente +editor.header.next_tab.keystroke.macos = meta alt pressed RIGHT +editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN +editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN +editor.header.delete.warning.title = Acción no permitida +editor.header.delete.warning.text = No se puede eliminar la pestaña principal del único sketch abierto. + +# PopUp menu +editor.popup.jump_to_declaration = Ir a la declaración +editor.popup.show_usage = Mostrar uso... +editor.popup.rename = Renombrar... + +# Tabs +editor.tab.new = Nuevo archivo +editor.tab.new.description = Nombre del archivo nuevo +editor.tab.rename = Renombrar archivo +editor.tab.rename.description = Nombre para el archivo + +# Sketch +editor.sketch.rename.description = Nuevo nombre para el sketch + +editor.status.autoformat.no_changes = Autoformato sin cambios. +editor.status.autoformat.finished = Autoformato completado. +editor.status.find_reference.select_word_first = Debes seleccionar una palabra para buscar en la referencia. +editor.status.find_reference.not_available = No se ha encontrado «%s» en la referencia. +editor.status.drag_and_drop.files_added.0 = No se ha añadido ningún archivo al sketch. +editor.status.drag_and_drop.files_added.1 = Se ha añadido un archivo al sketch. +editor.status.drag_and_drop.files_added.n = Se han añadido %d archivos al sketch. +editor.status.saving = Guardando... +editor.status.saving.done = Se ha guardado el sketch. +editor.status.saving.canceled = Guardado cancelado. +editor.status.printing = Imprimiendo... +editor.status.printing.done = Impresión finalizada. +editor.status.printing.error = Ha ocurrido un error durante la impresión. +editor.status.printing.canceled = Impresión cancelada. +editor.status.copy_as_html = Se ha copiado el código como HTML en el portapapeles. +editor.status.debug.busy = Depurador en funcionamiento... +editor.status.debug.halt = Depurador en pausa. +editor.status.archiver.create = Se ha creado el archivador «%s». +editor.status.archiver.cancel = Se ha cancelado la creación del archivador del sketch. + +# Errors +editor.status.warning = Advertencia +editor.status.error = Error +editor.status.error.syntax = Error de sintaxis - %s +editor.status.error_on = Error en «%s» +editor.status.missing.default = Falta «%c» +editor.status.missing.semicolon = Falta un punto y coma «;» +editor.status.missing.left_sq_bracket = Falta un corchete de apertura «[» +editor.status.missing.right_sq_bracket = Falta un corchete de cierre «]» +editor.status.missing.left_paren = Falta un paréntesis de apertura «(» +editor.status.missing.right_paren = Falta un paréntesis de cierre «)» +editor.status.missing.left_curly_bracket = Falta una llave de apertura «{» +editor.status.missing.right_curly_bracket = Falta una llave de cierre «}» +editor.status.missing.add = Quizás falta añadir «%s» +editor.status.bad_curly_quote = Las comillas onduladas «%s» no son válidas. Usa las rectas «"». Puedes corregirlo con Ctrl+T. +editor.status.reserved_words = «color» e «int» son palabras reservadas y no pueden usarse como nombres de variables +editor.status.undefined_method = No existe la función «%s(%s)» +editor.status.undefined_constructor = No existe el constructor «%s(%s)» +editor.status.empty_param = La función «%s()» no recibe ningún argumento +editor.status.wrong_param = La función «%s()» recibe argumentos de la forma: «%s(%s)» +editor.status.undef_global_var = No existe la variable global «%s» +editor.status.undef_class = No existe la clase «%s» +editor.status.undef_var = No existe la variable «%s» +editor.status.undef_name = No se reconoce el nombre «%s» +editor.status.unterm_string_curly = Cadena de texto sin cerrar con comillas rectas «"»: las onduladas no sirven «%s». +editor.status.type_mismatch = Discrepancia de tipos: «%s» no es compatible con «%s» +editor.status.unused_variable = El valor de la variable local «%s» no se utiliza +editor.status.uninitialized_variable = Quizás no se ha inicializado la variable local «%s» +editor.status.no_effect_assignment = La asignación a la variable «%s» no tiene ningún efecto +editor.status.hiding_enclosing_type = El nombre de la clase «%s» no puede coincidir con el del sketch o el de la clase que la contiene + +editor.status.bad.assignment = Posible error de asignación a una variable cerca de «%s» +editor.status.bad.generic = Quizás falta un tipo en el genérico cerca de «%s» +editor.status.bad.identifier = Posible identificador ilegal. Quizás falta declarar una variable cerca de «%s» +editor.status.bad.parameter = Posible declaración incorrecta de un método/argumento cerca de «%s» +editor.status.bad.import = No se pueden declarar importaciones aquí +editor.status.bad.mixed_mode = Quizás estás mezclando los modos activo y estático de Processing. +editor.status.extraneous = Posible instrucción incompleta o código de más cerca de «%s» +editor.status.mismatched = Quizás falta un operador, un «;» o un «}» cerca de «%s» +editor.status.missing.name = Quizás falta un nombre o un «;» cerca de «%s» +editor.status.missing.type = Quizás falta un nombre, un tipo o un «;» cerca de «%s» + + +# Footer buttons +editor.footer.errors = Errores +editor.footer.errors.problem = Problema +editor.footer.errors.tab = Pestaña +editor.footer.errors.line = Línea +editor.footer.console = Consola + +# New handler +new.messages.is_read_only = Sketch solo de lectura +new.messages.is_read_only.description = Algunos archivos son solo de lectura.\nGuarda el sketch en otro lugar e inténtalo de nuevo. + +# Rename handler +rename.messages.is_untitled = Sketch sin nombre +rename.messages.is_untitled.description = Debes guardar primero el sketch para poder cambiarle el nombre +rename.messages.is_modified = Debes guardar los cambios del sketch\nantes de cambiar el nombre. +rename.messages.is_read_only = Sketch solo de lectura +rename.messages.is_read_only.description = Algunos archivos son solo de lectura.\nGuarda el sketch en otro lugar e inténtalo de nuevo. + +# Naming handler +name.messages.problem_renaming = Error cambio de nombre +name.messages.starts_with_dot.description = El nombre no puede comenzar con un punto. +name.messages.invalid_extension.description = «.%s» no es una extensión válida. +name.messages.main_java_extension.description = La primera pestaña no puede ser un archivo «.%s». +name.messages.new_sketch_exists = Sketch/archivo ya existe +name.messages.new_sketch_exists.description = Ya existe un archivo llamado «%s» en\n«%s» +name.messages.new_folder_exists = La carpeta ya existe +name.messages.new_folder_exists.description = Ya existe un sketch (o una carpeta) con nombre «%s». +name.messages.error = Error +name.messages.no_rename_folder.description = No se ha podido renombrar la carpeta del sketch. +name.messages.no_rename_file.description = No se ha podido renombrar «%s» a «%s» +name.messages.no_create_file.description = No se ha podido crear el archivo «%s»\nen «%s» + +# Delete handler +delete.messages.cannot_delete = No se puede eliminar +delete.messages.cannot_delete.description = No se puede eliminar un sketch que no se ha guardado. +delete.messages.cannot_delete.file = Error eliminando +delete.messages.cannot_delete.file.description = No se ha podido eliminar el archivo +delete.messages.is_read_only = Sketch solo de lectura +delete.messages.is_read_only.description = Algunos archivos son solo de lectura.\nGuarda el sketch en otro lugar e inténtalo de nuevo. + +# Save handler +save_file.messages.is_read_only = Sketch solo de lectura +save_file.messages.is_read_only.description = Algunos archivos son solo de lectura.\nGuarda el sketch en otro lugar e inténtalo de nuevo. +save_file.messages.sketch_exists = El sketch ya existe +save_file.messages.sketch_exists.description = Ya existe un sketch con el nombre\nen limpio «%s». +save_file.messages.tab_exists = Una pestaña ya existe +save_file.messages.tab_exists.description = No se puede guardar el sketch como «%s»\nporque ya contiene un archivo con ese nombre. +save_file.messages.recursive_save = Guardado recursivo +save_file.messages.recursive_save.description = No se puede guardar el sketch\nen una carpeta dentro del propio sketch. + +# Add handler +add_file.messages.is_read_only = Sketch solo de lectura +add_file.messages.is_read_only.description = Algunos archivos son solo de lectura.\nGuarda el sketch en otro lugar e inténtalo de nuevo. +add_file.messages.confirm_replace = El archivo «%s» ya existe, ¿quieres sobreescribirlo? +add_file.messages.error_adding = Error añadiendo archivo +add_file.messages.cannot_delete.description = No se ha podido eliminar el archivo «%s». +add_file.messages.cannot_add.description = No se ha podido añadir el archivo «%s» al sketch. +add_file.messages.same_file = Archivo ya copiado +add_file.messages.same_file.description = Este archivo ya se ha copiado. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Error carpeta montaje +temp_dir.messages.bad_build_folder.description = No se ha encontrado una ubicación donde poder montar el sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Sketch desaparecido +ensure_exist.messages.missing_sketch.description = La carpeta del sketch ha desaparecido.\nSe intentará volverlo a guardar en el mismo sitio,\npero se perderá todo menos el código. +ensure_exist.messages.unrecoverable = No se ha podido guardar +ensure_exist.messages.unrecoverable.description = No se ha podido volver a guardar el sketch. Es recomendable\nque copies el código en otro editor para no perderlo. + +# Check name +check_name.messages.is_name_modified = Se ha modificado el nombre del sketch. El nombre de un sketch\nsolo puede tener caracteres ASCII y números (no puede empezar con un número).\nEn total debe tener menos de 64 caracteres. + +# External changes detector +change_detect.reload.title=Archivo modificado externamente +change_detect.reload.question=Otro programa ha modificado «%s». +change_detect.reload.comment=¿Quieres continuar con esta versión o cargar los cambios?\nEn ambos casos, se guardará una copia del archivo que descartes en la carpeta del sketch. +change_detect.button.keep=Ignorar cambios +change_detect.button.load_new=Cargar cambios +change_detect.delete.title=Pestaña eliminada externamente +change_detect.delete.question=«%s» ha desaparecido de la carpeta del sketch. +change_detect.delete.comment=¿Quieres volver a guardarlo o prefieres eliminarlo del sketch? +change_detect.button.discard=Eliminar +change_detect.button.resave=Guardar + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Gestor de contribuciones +contrib.manager_title.update = Gestor de actualizaciones +contrib.manager_title.mode = Gestor de modos +contrib.manager_title.tool = Gestor de herramientas +contrib.manager_title.library = Gestor de bibliotecas +contrib.manager_title.examples = Gestor de ejemplos +contrib.category = Categoría: +contrib.filter_your_search = Filtrar la búsqueda... +contrib.show_only_compatible.mode = Mostrar solo modos compatibles +contrib.show_only_compatible.tool = Mostrar solo herramientas compatibles +contrib.show_only_compatible.library = Mostrar solo bibliotecas compatibles +contrib.show_only_compatible.examples = Mostrar solo ejemplos compatibles +contrib.show_only_compatible.update = Mostrar solo actualizaciones compatibles +contrib.restart = Reiniciar Processing +contrib.unsaved_changes = Hay cambios sin guardar +contrib.unsaved_changes.prompt = ¿Seguro que quieres reiniciar Processing sin guardar los cambios? +contrib.messages.remove_restart = Reinicia Processing para terminar de eliminar este ítem. +contrib.messages.install_restart = Reinicia Processing para terminar de instalar este ítem. +contrib.messages.update_restart = Reinicia Processing para terminar de actualizar este ítem. +contrib.errors.list_download = No se ha podido descargar la lista de contribuciones disponibles. +contrib.errors.list_download.timeout = El tiempo de espera para descargar la lista de contribuciones se ha agotado. +contrib.errors.download_and_install = Ha ocurrido un error durante la descarga e instalación de «%s». +contrib.errors.description_unavailable = Descripción no disponible. +contrib.errors.malformed_url = El enlace obtenido desde Processing.org no es válido.\nPuedes ir al sitio web de la biblioteca para ver\ncómo instalarla manualmente. +contrib.errors.needs_repackage = Hay que volver a empaquetar «%s» siguiendo las directrices de «%s». +contrib.errors.no_contribution_found = No se ha encontrado «%s» en el archivo descargado. +contrib.errors.overwriting_properties = Error sobreescribiendo el archivo .properties. +contrib.errors.install_failed = La instalación ha fallado. +contrib.errors.update_on_restart_failed = Ha fallado la actualización de «%s» durante el reinicio. +contrib.errors.temporary_directory = No se ha podido escribir en la carpeta temporal. +contrib.errors.contrib_download.timeout = Se ha agotado el tiempo de conexión durante la descarga de «%s». +contrib.errors.no_internet_connection = Parece que no estás conectado a Internet. +contrib.status.downloading_list = Descargando lista... +contrib.status.connecting = Conectando... +contrib.status.done = Listo. +contrib.all = Todas +contrib.undo = Deshacer +contrib.remove = Eliminar +contrib.install = Instalar +contrib.progress.installing = Instalando +contrib.progress.starting = Comenzando +contrib.progress.downloading = Descargando +contrib.download_error = Ha ocurrido un error durante la descarga de la contribución. +contrib.missing_link = No se ha encontrado el enlace de descarga de %s, contacta con el autor. +contrib.category.3d = 3D +contrib.category.animation = Animación +contrib.category.data = Datos +contrib.category.geometry = Geometría +contrib.category.gui = Interfaz gráfica +contrib.category.hardware = Hardware +contrib.category.i_o = Entrada/Salida +contrib.category.math = Matemáticas +contrib.category.renderer = Renderizar +contrib.category.simulation = Simulación +contrib.category.sound = Sonido +contrib.category.typography = Tipografía +contrib.category.utilities = Utilidades +contrib.category.video_vision = Vídeo y visión +contrib.category.other = Otros + +# Install on Startup +contrib.startup.errors.download_install = Ha ocurrido un error durante la descarga o instalación de «%s» +contrib.startup.errors.temp_dir = No se ha podido escribir en la carpeta temporal durante la descarga o instalación de «%s» +contrib.startup.errors.new_marker = El marcador de contribuciones desactualizadas tiene problemas con %s. Es posible que debas instalarlo manualmente para actualizarlo... + +# Install on Import +contrib.import.dialog.title = Bibliotecas necesarias disponibles +contrib.import.dialog.primary_text = Las siguientes bibliotecas importadas no están instaladas, pero están disponibles para descargar. +contrib.import.dialog.secondary_text = ¿Quieres instalarlas ahora? +contrib.import.progress.download = Descargando «%s»... +contrib.import.progress.install = Instalando «%s»... +contrib.import.progress.done = Instalada «%s». +contrib.import.progress.final_list = Se han instalado estas bibliotecas: +contrib.import.errors.link = Error: el enlace de descarga de la biblioteca «%s» no es válido. + +# --------------------------------------- +# Warnings + +warn.delete = Eliminar +warn.delete.sketch_folder = ¿Seguro que quieres eliminar el sketch?\nEsto suprimirá la carpeta «%s» y todo su contenido. +warn.delete.sketch_last = Para mantener tus archivos seguros, no se admite eliminar toda la carpeta del sketch en Processing.\nAbre la carpeta del sketch en tu explorador de archivos para eliminarla. +warn.delete.sketch_file = ¿Seguro que quieres eliminar el archivo «%s»? +warn.cannot_change_mode.title = Error cambio de modo +warn.cannot_change_mode.body = No se puede cambiar al modo «%s»\nporque no es compatible con el modo actual. + + +# --------------------------------------- +# Update Check + +update_check = Actualización +update_check.updates_available.core = Hay una nueva versión de Processing disponible,\n¿quieres ir a la página de descarga? +update_check.updates_available.contributions = Hay actualizaciones disponibles para algunas contribuciones instaladas.\n¿Quieres abrir el gestor de contribuciones? + + +# --------------------------------------- +# Color Chooser + +color_chooser = Selector de color +color_chooser.select = Seleccionar + +# --------------------------------------- +# Movie Maker + +movie_maker = Creador de películas +movie_maker.two.title = Movie Maker II: ahora aún mejor +movie_maker.two.blurb = Crea un vídeo MPEG o una animación GIF a partir de una sucesión de imágenes

Para evitar artefactos visuales debidos a la recompresión de imágenes,
utiliza imágenes en formato TIFF, TGA, o PNG.

Las imágenes en TIFF y TGA se guardan con rapidez, pero ocupan
más espacio en disco:
saveFrame(“frames/####.tif”);
saveFrame(“frames/####.tga”);

Las imágenes en PNG ocupan menos espacio, pero harán que el sketch
vaya más lento:
saveFrame(“frames/####.png”);

La opción de compresión «Lossless 4:2:0» aún es mejorable, debido a cómo
funciona MPEG-4. La opción «4:4:4» es la ideal, pero es menos compatible
con otros programas.

Anteriormente QuickTime Movie Maker de Werner Randelshofer,
se ha reescrito gran parte para poder usar FFmpeg en Processing 4.
+movie_maker.image_folder_help_label = Arrastra a este campo una carpeta de imágenes: +movie_maker.choose_button = Seleccionar... +movie_maker.select_image_folder = Selecciona una carpeta de imágenes... +movie_maker.sound_file_help_label = Arrastra a este campo un archivo de audio (.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = Selecciona un archivo de audio... + +movie_maker.create_movie_button = Crear película... +movie_maker.save_dialog_prompt = Guardar película como... +movie_maker.width = Ancho: +movie_maker.height = Alto: +movie_maker.compression = Compresión: +movie_maker.framerate = Fotogramas por segundo: +movie_maker.orig_size_button = Tamaño de las originales +movie_maker.orig_size_tooltip = Márcala si las imágenes ya tienen todas\nel tamaño que quieres para la película. + +movie_maker.error.avoid_tiff = Utiliza imágenes TGA o PNG en vez de TIFF. +movie_maker.error.badnumbers = El ancho y alto de la película deben ser números enteros mayores que 0.\nLos fotogramas por segundo ha de ser un número mayor que 0. +movie_maker.error.cannot_read = No se ha podido leer «%s». +movie_maker.error.cannot_read_maybe_bad = No se ha podido leer «%s»; quizás esté corrupto. +movie_maker.error.movie_failed = Ha ocurrido un error durante la creación de la película. +movie_maker.error.need_input = Debes especificar una carpeta de imágenes, un archivo de audio, o ambos. +movie_maker.error.no_images_found = No se ha encontrado ninguna imagen. +movie_maker.error.sorry = Error +movie_maker.error.unknown_tga_format = El formato «.tga» del archivo «%s» es desconocido. + +movie_maker.progress.creating_file_name = Combinando imágenes para formar la película «%s». +movie_maker.progress.creating_output_file = Creando el archivo de salida +movie_maker.progress.initializing = Inicializando... +movie_maker.progress.processing = Procesando «%s». + +movie_maker.progress.handling_frame = Convirtiendo la imagen %s de %s... diff --git a/app/utils/build/resources/main/PDE_fr.properties b/app/utils/build/resources/main/PDE_fr.properties new file mode 100644 index 0000000000..54cdb3c108 --- /dev/null +++ b/app/utils/build/resources/main/PDE_fr.properties @@ -0,0 +1,547 @@ + + +# --------------------------------------- +# Language: Français (French) (fr) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Fichier +menu.file.new = Nouveau +menu.file.open = Ouvrir... +menu.file.recent = Ouvrir récent +menu.file.sketchbook = Sketchbook... +menu.file.sketchbook.empty = Sketchbook Vide +menu.file.examples = Exemples... +menu.file.close = Fermer +menu.file.save = Enregistrer +menu.file.save_as = Enregistrer sous... +menu.file.export_application = Exporter... +menu.file.page_setup = Aperçu avant impression +menu.file.print = Imprimer... +menu.file.preferences = Préférences... +menu.file.quit = Quitter + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Modifier +menu.edit.undo = Annuler +menu.edit.redo = Refaire +menu.edit.action.addition = addition +menu.edit.action.deletion = suppression +menu.edit.cut = Couper +menu.edit.copy = Copier +menu.edit.copy_as_html = Copier comme HTML +menu.edit.paste = Coller +menu.edit.select_all = Sélectionner tout +menu.edit.auto_format = Mise en forme automatique +menu.edit.comment_uncomment = Commenter/Décommenter +menu.edit.comment_uncomment.keystroke = meta pressed COLON +menu.edit.increase_indent = → Augmenter l'indentation +menu.edit.decrease_indent = ← Diminuer l'indentation +menu.edit.find = Rechercher... +menu.edit.find_next = Rechercher suivant +menu.edit.find_previous = Rechercher précédent +menu.edit.use_selection_for_find = Rechercher dans la sélection + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Exécuter +menu.sketch.present = Présenter +menu.sketch.tweak = Tweak +menu.sketch.stop = Arrêter +# --- +menu.library = Importer une bibliothèque... +menu.library.add_library = Ajouter une bibliothèque... +menu.library.contributed = Contribuées +menu.library.no_core_libraries = Ce mode n'a pas de bibliothèques de base +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Afficher le dossier +menu.sketch.add_file = Ajouter un fichier... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +# ... +menu.debug = Dépanner +menu.debug.show_debug_toolbar = Afficher la barre de dépannage +menu.debug.debug = Dépanner +menu.debug.continue = Continuer +menu.debug.stop = Arrêter +# --- +menu.debug.show_sketch_outline = Afficher l'aperçu du Sketch +menu.debug.show_tabs_list = Afficher la liste de onglets + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Outils +menu.tools.color_selector = Sélecteur de couleurs... +menu.tools.create_font = Générer la police... +menu.tools.archive_sketch = Archiver le sketch... +menu.tools.fix_the_serial_lbrary = Réparer la "Serial Library"... +menu.tools.install_processing_java = Installer "processing-java"... +menu.tools.add_tool = Ajouter un outil... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Aide +menu.help.about = À propos de Processing (en) +menu.help.environment = Environnement (en) +menu.help.reference = Documentation (en) +menu.help.find_in_reference = Chercher dans la documentation (en) +menu.help.online = En ligne +menu.help.getting_started = Premiers pas (en) +menu.help.troubleshooting = Dépannage (en) +menu.help.faq = Foire aux questions (en) +menu.help.foundation = "The Processing Foundation" (en) +menu.help.visit = Visiter Processing.org (en) + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Oui +prompt.no = Non +prompt.cancel = Annuler +prompt.ok = Ok +prompt.browse = Naviguer +prompt.export = Exporter + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Ouvrir un sketch Processing... + +# Save (Frame) +save = Enregistrer le dossier de sketch sous... +save.title = Voulez-vous enregistrer les modifications avant de quitter? +save.hint = Si vous ne sauvegardez pas, vos modifications seront supprimées. +save.btn.save = Enregistrer +save.btn.dont_save = Ne pas enregistrer + +# AppPreferences (Frame) +preferences = Préférences +preferences.button.width = 110 +preferences.requires_restart = Nécessite de redémarrer Processing +preferences.sketchbook_location = Emplacement du sketchbook +preferences.sketchbook_location.popup = Emplacement du sketchbook +preferences.language = Langue +preferences.editor_and_console_font = Police de l'éditeur et de la console +preferences.editor_font_size = Taille de police de l'éditeur +preferences.console_font_size = Taille de police de la console +preferences.background_color = Couleur d'arrière plan en mode présentation +preferences.background_color.tip = \ +Séléctionnez la couleur d'arrière plan en mode présentation
\ +Le mode présentation est utilisé pour présenter un sketch en plein écran.
\ +On peut y accéder depuis le menu Sketch. +preferences.use_smooth_text = Lissage des polices dans l'éditeur +preferences.enable_complex_text_input = Autoriser la saisie de caractères non-latins +preferences.enable_complex_text_input_example = ex.: Japonais +preferences.continuously_check = Détecter les erreurs en continu +preferences.show_warnings = Afficher les avertissements +preferences.code_completion = Autocomplétion du code +preferences.trigger_with = Forcer l'autocomplétion avec +preferences.cmd_space = Espace +preferences.suggest_imports = Suggérer les imports +preferences.increase_max_memory = Augmenter la mémoire vive disponible +preferences.delete_previous_folder_on_export = Effacer le dossier précédent lors de l'export +preferences.hide_toolbar_background_image = Masquer l'image d'arrière-plan de la barre d'outils +preferences.check_for_updates_on_startup = Vérifier les mises à jour au démarrage +preferences.run_sketches_on_display = Exécuter les sketch sur l'écran +preferences.run_sketches_on_display.tip = \ +Sélectionner l'écran où les sketches seront placés par défaut.
\ +Comme d'habitude, si la fenêtre de sketch est déplacée, elle sera
\ +rouverte au même endroit, mais lors de l'exécution en mode
\ +présentation (plein écran), cet écran sera toujours utilisé. +preferences.automatically_associate_pde_files = Ouvrir les fichiers .pde avec Processing par défaut +preferences.launch_programs_in = Lancer les programmes en +preferences.launch_programs_in.mode = mode +preferences.file = Plus de préférences peuvent être éditées directement dans le fichier suivant +preferences.file.hint = fermez toutes les instances de Processing avant d'éditer les préférences + +# Sketchbook Location (Frame) +sketchbook_location = Sélectionnez un nouvel emplacement pour le sketchbook + +# Examples (Frame) +examples.title = %s exemples +examples.add_examples = Ajouter des exemples... +examples.libraries = Bibliothèques contribuées +examples.core_libraries = Bibliothèques +examples.contributed = Exemples contribués + +# Export (Frame) +export = Options d'export +export.platforms = Plateformes +export.options = Options +export.options.fullscreen = Plein écran (Mode présentation) +export.options.show_stop_button = Afficher un bouton stop +export.description.line1 = “Exporter l’application” crée un exécutable +export.description.line2 = autonome pour chaque plateforme sélectionnée. +export.unsaved_changes = Sauvegarder les changements avant l'export? +export.notice.cancel.unsaved_changes = Échec de l'export, les changement doivent d'abord être sauvegardés. +export.notice.exporting = Export de l'application en cours... +export.notice.exporting.done = Export terminé. +export.notice.exporting.error = Erreur lors de l'export. +export.notice.exporting.cancel = Export de l'application annulé. +export.tooltip.macos = L'export pour macOS est seulement disponible sur macOS +export.full_screen = Plein écran +export.embed_java = Inclure Java +export.embed_java.for = Inclure Java pour +export.code_signing = Signature de code +export.messages.is_read_only = Le sketch est en lecture seule +export.messages.is_read_only.description = Certains fichiers sont en "lecture seule", vous devrez \nre-sauvegarder le sketch dans un autre emplacement,\net réessayer. +export.messages.cannot_export = Export impossible +export.messages.cannot_export.description = Vous ne pouvez pas exporter un sketch qui n'a pas été sauvegardé. + +# Find (Frame) +find = Rechercher +find.find = Rechercher: +find.replace_with = Remplacer par: +find.ignore_case = Ignorer la casse +find.all_tabs = Tous les onglets +find.wrap_around = Reprendre au début +find.btn.replace_all = Remplacer tout +find.btn.replace = Remplacer +find.btn.find_and_replace = Remplacer & rechercher +find.btn.previous = Précédent +find.btn.find = Rechercher + +# Find in reference (Frame) +find_in_reference = Chercher dans la doc (en) + +# File (Frame) +file = Sélectionner une image ou fichier de données à ajouter au sketch + +# Create Font (Frame) +create_font = Créer la police +create_font.label = Utilisez cet outil pour créer des polices bitmap pour votre programme. \nSélectionnez une police et une taille, puis cliquez sur "OK" pour générer la police. \nElle sera ajoutée au dossier de données du sketch actuel. +create_font.size = Taille +create_font.smooth = Lissage +create_font.characters = Caractères... +create_font.character_selector = Palette de caractères +create_font.character_selector.label = Les caractères par défaut comprennent la plupart des bitmaps pour les scripts latins de Mac OS \net de Windows. L'inclusion de tous les caractères peut nécessiter \nune grande quantité de mémoire pour tous les bitmaps. \nPour un meilleur contrôle, vous pouvez sélectionner des blocs Unicode spécifiques. +create_font.default_characters = Caractères par défaut +create_font.all_characters = Tous les caractères +create_font.specific_unicode = Blocs Unicode spécifiques +create_font.filename = Nom du fichier + +# Color Selector (Frame) +color_selector = Sélecteur de couleurs + +# Archive Sketch (Frame) +archive_sketch = Archiver le sketch sous... + +# Tweak Mode +tweak_mode = Mode Tweak +tweak_mode.save_before_tweak = Veuillez sauvegarder le sketch avant d'activer le mode Tweak. +tweak_mode.keep_changes.line1 = Conserver les modifications ? +tweak_mode.keep_changes.line2 = Vous avez modifié certaines valeurs dans votre sketch. Souhaitez-vous conserver les modifications ? + +# DebugTray +debugger.name = Nom +debugger.value = Valeur +debugger.type = Type + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Exécuter +toolbar.present = Présenter +toolbar.stop = Arrêter +# --- +toolbar.new = Nouveau +toolbar.open = Ouvrir +toolbar.save = Enregistrer +# toolbar.export_application = Exporter +toolbar.add_mode = Ajouter un mode... + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Nouvel onglet +editor.header.rename = Renommer +editor.header.delete = Supprimer +editor.header.previous_tab = Onglet précédent +editor.header.next_tab = Onglet suivant +editor.header.delete.warning.title = Ouais, mais non. +editor.header.delete.warning.text = Impossible de supprimer le dernier onglet du sketch. + +# PopUp menu +editor.popup.jump_to_declaration = Aller à la déclaration +editor.popup.show_usage = Montrer l'utilisation... +editor.popup.rename = Renommer... + +# Tabs +editor.tab.new = Nouveau Nom +editor.tab.new.description = Nom du nouveau fichier +editor.tab.rename = Nouveau Nom +editor.tab.rename.description = Nom du nouveau fichier + +# Sketch +editor.sketch.rename.description = Nouveau nom du sketch + +editor.status.autoformat.no_changes = Pas de changements nécessaires pour la mise en forme automatique. +editor.status.autoformat.finished = Mise en forme automatique terminée. +editor.status.find_reference.select_word_first = Sélectionnez d'abord un mot à trouver dans la référence. +editor.status.find_reference.not_available = Pas de référence disponible pour «%s». +editor.status.drag_and_drop.files_added.0 = Aucuns fichiers n'ont été ajoutés au sketch. +editor.status.drag_and_drop.files_added.1 = Un fichier ajouté au sketch. +editor.status.drag_and_drop.files_added.n = %d fichiers ajoutés au sketch. +editor.status.saving = Enregistrement... +editor.status.saving.done = L'enregistrement est terminé. +editor.status.saving.canceled = Enregistrement annulé. +editor.status.printing = En cours d'impression... +editor.status.printing.done = Impression terminée. +editor.status.printing.error = Erreur lors de l'impression. +editor.status.printing.canceled = Impression annulée. +editor.status.copy_as_html = Le code formaté en HTML a été copié dans le presse-papiers. +editor.status.debug.busy = Débogueur occupé... +editor.status.debug.halt = Débogueur arrêté. +editor.status.archiver.create = Archive "%s" créée. +editor.status.archiver.cancel = Archivage annulé. + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = Erreur +editor.status.error.syntax = Erreur de syntaxe +editor.status.error_on = Erreur à "%s" +editor.status.missing.default = Caractère manquant "%c" +editor.status.missing.semicolon = Point virgule manquant ";" +editor.status.missing.left_sq_bracket = Crochet ouvrant manquant "[" +editor.status.missing.right_sq_bracket = Crochet fermant manquant "]" +editor.status.missing.left_paren = Parenthèse ouvrante manquante "(" +editor.status.missing.right_paren = Parenthèse fermante manquante ")" +editor.status.missing.left_curly_bracket = Accolade ouvrante manquante "{" +editor.status.missing.right_curly_bracket = Accolade fermante manquante "}" +editor.status.missing.add = Envisagez d'ajouter "%s" +editor.status.bad_curly_quote = Les guillemets courbes "%s" ne fonctionnent pas. Utilisez des guillemets simples droits. Ctrl-T pour corriger automatiquement. +editor.status.reserved_words = "color" et "int" sont des mots réservés et ne peuvent pas être utilisés comme noms de variable +editor.status.undefined_method = La fonction "%s(%s)" n'existe pas +editor.status.undefined_constructor = Le constructeur "%s(%s)" n'existe pas +editor.status.empty_param = La fonction "%s()" n'accepte aucun paramètre +editor.status.wrong_param = La fonction "%s()" accepte les parametres suivants: "%s(%s)" +editor.status.undef_global_var = La variable globale "%s" n'existe pas +editor.status.undef_class = La classe "%s" n'existe pas +editor.status.undef_var = La variable "%s" n'existe pas +editor.status.undef_name = Le nom "%s" n'est pas reconnu +editor.status.unterm_string_curly = Une chaîne de caractères littérale n'est pas fermée par un guillemet double droit. Les guillemets anglais de type %s ne sont d'aucune utilité. +editor.status.type_mismatch = Erreur de typage, "%s" ne correspond pas à "%s" +editor.status.unused_variable = La valeur de la variable locale "%s" n'est pas utilisée +editor.status.uninitialized_variable = La variable locale "%s" n'a peut-être pas été initialisée. +editor.status.no_effect_assignment = L'initialisation de la variable "%s" n'a aucun effet. +editor.status.hiding_enclosing_type = La classe "%s" ne peut pas avoir le même nom que votre sketch ou sa classe englobante. + +editor.status.bad.assignment = Possible erreur d'initialisation de variable '%s'? +editor.status.bad.generic = Possible type manquant dans le générique vers '%s'? +editor.status.bad.identifier = Mauvais identifiant ? Avez-vous oublié une variable ou commencé un identifiant avec des chiffres vers '%s' ? +editor.status.bad.parameter = Erreur dans la déclaration d'un paramètre ou d'une méthode vers '%s' ? +editor.status.bad.import = Importation non autorisée ici. +editor.status.extraneous = Déclaration incomplète ou code supplémentaire vers '%s'? +editor.status.mismatched = Opérateur, point-virgule ou '}' manquant vers '%s' ? +editor.status.missing.name = Nom manquant ou ; vers '%s' ? +editor.status.missing.type = Nom ou ; ou type manquant vers '%s' ? + +# Footer buttons +editor.footer.errors = Erreurs +editor.footer.errors.problem = Problèmes +editor.footer.errors.tab = Onglet +editor.footer.errors.line = Ligne +editor.footer.console = Console + +# New handler +new.messages.is_read_only = Le sketch est en lecture seule +new.messages.is_read_only.description = Certains fichiers sont en "lecture seule", vous devrez \nre-sauvegarder le sketch dans un autre emplacement,\net réessayer. + +# Rename handler +rename.messages.is_untitled = Le sketch n'a pas de titre +rename.messages.is_untitled.description = Pourquoi ne pas sauvegarder le sketch \navant d'essayer de le renommer ? +rename.messages.is_modified = Veuillez enregistrer le croquis avant de le renommer. +rename.messages.is_read_only = Le sketch est en lecture seule +rename.messages.is_read_only.description = Certains fichiers sont en "lecture seule", vous devrez \nre-sauvegarder le sketch dans un autre emplacement,\net réessayer. + +# Naming handler +name.messages.problem_renaming = Problème de renommage +name.messages.starts_with_dot.description = Le nom ne peut pas commencer par un point. +name.messages.invalid_extension.description = ".%s" n'est pas une extension valide. +name.messages.main_java_extension.description = Le premier onglet ne peut pas être un fichier .%s. \n(Il est peut-être temps pour toi de passer à un \n"vrai" environnement de programmation, champion.) +name.messages.new_sketch_exists = Non, pas là, non +name.messages.new_sketch_exists.description = Un fichier nommé "%s" existe déjà a l'emplacement suivant \n"%s" +name.messages.new_folder_exists = Impossible de renommer +name.messages.new_folder_exists.description = Désolé, un sketch (ou un dossier) nommé "%s" existe déjà. +name.messages.error = Erreur +name.messages.no_rename_folder.description = Impossible de renommer le dossier des sketchs. +name.messages.no_rename_file.description = Impossible de renommer "%s" en "%s" +name.messages.no_create_file.description = Impossible de créer le fichier "%s"\ndans "%s" + +# Delete handler +delete.messages.cannot_delete = Impossible de supprimer +delete.messages.cannot_delete.description = Vous ne pouvez pas supprimer un sketch qui n'a pas été enregistré. +delete.messages.cannot_delete.file = Impossible +delete.messages.cannot_delete.file.description = Impossible de supprimer +delete.messages.is_read_only = Le sketch est en lecture seule +delete.messages.is_read_only.description = Certains fichiers sont en "lecture seule", vous devrez \nre-sauvegarder le sketch dans un autre emplacement,\net réessayer. + +# Save handler +save_file.messages.is_read_only = Le sketch est en lecture seule +save_file.messages.is_read_only.description = Certains fichiers sont en "lecture seule", vous devrez \nre-sauvegarder le sketch dans un autre emplacement. +save_file.messages.sketch_exists = Impossible de sauvegarder +save_file.messages.sketch_exists.description = Un sketch avec le nom \n“%s” existe déjà. +save_file.messages.tab_exists = Non, pas là, non +save_file.messages.tab_exists.description = Vous ne pouvez pas enregistrer le sketch sous le nom de "%s"\nparce que le sketch possède déjà un onglet portant ce nom. +save_file.messages.recursive_save = C'est très borgésien de votre part. +save_file.messages.recursive_save.description = Vous ne pouvez pas enregistrer le sketch dans un dossier à l'intérieur de son propre dossier. Cette opération se prolongerait indéfiniment. + +# Add handler +add_file.messages.is_read_only = Le sketch est en lecture seule +add_file.messages.is_read_only.description = Certains fichiers sont en "lecture seule", vous devrez \nre-sauvegarder le sketch dans un autre emplacement,\net réessayer. +add_file.messages.confirm_replace = Remplacer la version existante de %s? +add_file.messages.error_adding = Une erreur s'est produite lors de l'ajout d'un fichier +add_file.messages.cannot_delete.description = Impossible de supprimer le fichier '%s' existant. +add_file.messages.cannot_add.description = Impossible d'ajouter '%s' au sketch. +add_file.messages.same_file = Tu m'as pris pour un jambon ? +add_file.messages.same_file.description = Ce fichier a déjà été copié à \nl'emplacement d'où vous essayez de l'ajouter. \nJe touche à rien. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Mauvais dossier de construction +temp_dir.messages.bad_build_folder.description = Impossible de trouver un emplacement pour construire le sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Le sketch a disparu +ensure_exist.messages.missing_sketch.description = Le dossier des croquis a disparu. Je vais essayer de le réenregistrer au même endroit, mais toutes les données autres que le code seront perdu. +ensure_exist.messages.unrecoverable = Impossible de re-sauvegarder le sketch +ensure_exist.messages.unrecoverable.description = Impossible de réenregistrer correctement le sketch. Vous avez peut-être des problèmes à ce stade, et il est peut-être temps de copier et coller votre code dans un autre éditeur de texte. + +# Check name +check_name.messages.is_name_modified = Le nom du sketch a dû être modifié. Les noms de sketch ne peuvent être constitués que \nde caractères ASCII et de chiffres (mais ne peuvent pas commencer par un chiffre). \nIls doivent également comporter moins de 64 caractères. + +# External changes detector +change_detect.reload.title=Onglet modifié en externe +change_detect.reload.question="%s" a été modifié par un autre programme. +change_detect.reload.comment=Souhaitez-vous conserver cette version ou charger les nouvelles modifications ? \nDans tous les cas, la version que vous éliminez sera enregistrée dans votre dossier de croquis. +change_detect.button.keep=Garder +change_detect.button.load_new=Charger les modifications +change_detect.delete.title=Onglet supprimé en externe +change_detect.delete.question="%s" a disparu du dossier du sketch. +change_detect.delete.comment=Voulez-vous le réenregistrer ou le supprimer de votre sketch ? +change_detect.button.discard=Supprimer définitivement +change_detect.button.resave=Re-sauvegarder + +# --------------------------------------- +# Contribution Panel + +contrib = Contribution Manager +contrib.category = Catégorie: +contrib.filter_your_search = Filtrer la recherche... +contrib.restart = Redémarrage Processing +contrib.unsaved_changes = Les modifications non enregistrées ont été trouvées +contrib.unsaved_changes.prompt = Êtes-vous sûr(e) de vouloir redémarrer Processing sans d'abord le registrer? +contrib.messages.remove_restart = Redémarrer Processing afin que la suppression de cet article soit terminé. +contrib.messages.install_restart = Redémarrer Procesing afin que l'installation de cet article soit terminé. +contrib.messages.update_restart = Redémarrer Processing pour terminer la mise à jour de cet article. +contrib.errors.list_download = Impossible de télécharger la liste des contributions disponibles. +contrib.errors.list_download.timeout = Délai de connexion dépassé en téléchargeant la liste des contributions disponibles. +contrib.errors.download_and_install = Erreur lors du téléchargement et de l'installation. +contrib.errors.description_unavailable = Description indisponible. +contrib.errors.malformed_url = Le lien extraité de Processing.org n'est pas valide. \nVous pouvez toujours installer cette librairie manuellement en visitant le site Web de \nla librairie. +contrib.errors.needs_repackage = %s doit être reconditionné selon les directives de %s. +contrib.errors.no_contribution_found = Impossible de trouver un(e) %s dans le fichier téléchargé. +contrib.errors.overwriting_properties = Erreur écrasant le fichier «.properties». +contrib.errors.install_failed = L'installation a échoué. +contrib.errors.update_on_restart_failed = Mise à jour au redémarrage de %s a échoué. +contrib.errors.temporary_directory = Impossible d'écrire dans le répertoire temporaire. +contrib.all = Tout +contrib.undo = Annuler +contrib.remove = Supprimer +contrib.install = Installer +contrib.progress.installing = L'installation en cours +contrib.progress.starting = Commencement +contrib.progress.downloading = Téléchargement en cours +contrib.download_error = Une erreur s'est produite lors du téléchargement de la contribution. +contrib.unsupported_operating_system = Votre système d'exploitation ne semble pas être pris en charge. Vous devriez visiter la librairie de %s pour plus d'information. + +# Install on Startup +contrib.startup.errors.download_install = Erreur lors du téléchargement et de l'installation de %s +contrib.startup.errors.temp_dir = Impossible d'écrire dans le répertoire temporaire pendant le téléchargement et l'installation de %s +contrib.startup.errors.new_marker = Le marqueur de contribution non mis à jour semble ne pas aimer %s. Vous devrez peut-être l'installer manuellement pour mettre à jour... + +# Install on Import +contrib.import.dialog.title = Bibliothèques manquantes disponibles +contrib.import.dialog.primary_text = Les bibliothèques importées suivantes sont disponibles pour le téléchargement, mais n'ont pas été installées. +contrib.import.dialog.secondary_text = Voulez-vous les installer maintenant ? +contrib.import.progress.download = Téléchargement de %s en cours... +contrib.import.progress.install = Installation de %s en cours... +contrib.import.progress.done = %s a été installé. +contrib.import.progress.final_list = Les bibliothèques suivantes ont été installées: +contrib.import.errors.link = Erreur : Le lien de téléchargement de la bibliothèque %s paraît bizarre. + +# --------------------------------------- +# Warnings + +warn.delete = Supprimer +warn.delete.sketch = Êtes-vous sûr(e) de vouloir supprimer ce sketch? \nLe dossier “%s” sera entièrement effacé. +# warn.delete.sketch_last = To keep your files safe, deleting the whole sketch folder isn?t supported in Processing. \nPlease open the sketch folder in your file explorer to delete it. +warn.delete.sketch_last = Pour protéger vos fichiers, la suppression du dossier de sketch entier n'est pas prise en charge dans Processing. \nVeuillez ouvrir le dossier de sketch dans votre explorateur de fichiers pour le supprimer. +warn.delete.file = Êtes-vous sûr(e) de vouloir supprimer «%s»? +warn.cannot_change_mode.title = Impossible de changer le mode +warn.cannot_change_mode.body = Impossible de changer de mode, \ncar le mode "%s" n'est pas compatible avec le mode actuel. + + + +# --------------------------------------- +# Update Check +update_check = Mise à jour +update_check.updates_available.core = Une nouvelle version de Processing est disponible, \nVoulez-vous visiter la page de téléchargement de Processing? +update_check.updates_available.contributions = Il y a des mises à jour disponibles pour certaines des contributions installées, \nVoulez-vous ouvrir le gestionnaire de contributions? + + +# --------------------------------------- +# Color Chooser +color_chooser = Sélecteur de couleurs... +color_chooser.select = Sélectionner + +# --------------------------------------- +# Movie Maker + +movie_maker = Movie Maker +movie_maker.title = QuickTime Movie Maker +movie_maker.blurb = Cet outil crée un film QuickTime à partir d'une séquence d'images.

Pour éviter les artefacts causés par la recompression des images en tant que vidéo,
utilisez des images TIFF, TGA (de Processing), ou PNG comme source.

Les images TIFF et TGA s'enregistrent plus rapidement, mais nécessitent plus d'espace disque:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = Faites glisser un dossier contenant des fichiers image dans le champ ci-dessous : +movie_maker.choose_button = Sélectionner... +movie_maker.select_image_folder = Sélectionner le dossier d'images... +movie_maker.sound_file_help_label = Faites glisser un fichier sonore dans le champ ci-dessous (.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = Sélectionner le fichier sonore... + +movie_maker.create_movie_button = Créer un film... +movie_maker.save_dialog_prompt = Enregistrer le film sous... +movie_maker.width = Largeur: +movie_maker.height = Hauteur: +movie_maker.compression = Compression: +movie_maker.framerate = Fréquence d'images: +movie_maker.orig_size_button = Même format que les originaux +movie_maker.orig_size_tooltip = Cochez cette case si le dossier contient des images vidéo déjà encodées au format souhaité. + +movie_maker.error.avoid_tiff = Essayer les images TGA ou PNG au lieu de TIFF. +movie_maker.error.badnumbers = La largeur et la hauteur doivent être des nombres entiers supérieurs à zéro.; Fréquence d'images doit être un nombre supérieur à zéro. +movie_maker.error.cannot_read = Impossible de lire %s. +movie_maker.error.cannot_read_maybe_bad = Impossible de lire %s; c'est peut-être grave. +movie_maker.error.movie_failed = La création du film QuickTime a échoué. +movie_maker.error.need_input = Vous devez spécifier le dossier contenant les fichiers image, le fichier son, ou les deux. +movie_maker.error.no_images_found = Aucun fichier image trouvé. +movie_maker.error.sorry = Désolé +movie_maker.error.unknown_tga_format = Format de fichier .tga inconnu pour %s. + +movie_maker.progress.creating_file_name = Création de %s. +movie_maker.progress.creating_output_file = Création du fichier de sortie +movie_maker.progress.initializing = Initialisation en cours... +movie_maker.progress.processing = Traitement de %s. + +movie_maker.progress.handling_frame = Conversion de la frame %s de %s... diff --git a/app/utils/build/resources/main/PDE_it.properties b/app/utils/build/resources/main/PDE_it.properties new file mode 100644 index 0000000000..b4b7125b30 --- /dev/null +++ b/app/utils/build/resources/main/PDE_it.properties @@ -0,0 +1,592 @@ +Annulla + +# --------------------------------------- +# Language: Italiano (Italian) (it) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = File +menu.file.new = Nuovo +menu.file.open = Apri... +menu.file.recent = Apri Recenti +menu.file.sketchbook = Cartelle degli Sketch... +menu.file.sketchbook.empty = Cartella degli Sketch vuota +menu.file.examples = Esempi... +menu.file.close = Chiudi +menu.file.save = Salva +menu.file.save_as = Salva con nome... +menu.file.export_application = Esporta Applicazione... +menu.file.page_setup = Imposta Pagina +menu.file.print = Stampa... +menu.file.preferences = Preferenze... +menu.file.quit = Esci + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Modifica +menu.edit.undo = Annulla +menu.edit.redo = Ripeti +menu.edit.action.addition = addizione +menu.edit.action.deletion = cancellazione +menu.edit.cut = Taglia +menu.edit.copy = Copia +menu.edit.copy_as_html = Copia come HTML +menu.edit.paste = Incolla +menu.edit.select_all = Seleziona Tutto +menu.edit.auto_format = Formattazione Automatica +menu.edit.comment_uncomment = Commenta/Rimuovi commento +menu.edit.increase_indent = → Aumenta Indentazione +menu.edit.decrease_indent = ← Diminuisci Indentazione +menu.edit.find = Trova... +menu.edit.find_next = Trova Successivo +menu.edit.find_previous = Trova Puccessivo +menu.edit.use_selection_for_find = Trova Testo Selezionato + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Esegui +menu.sketch.present = Presenta +menu.sketch.tweak = Tweak +menu.sketch.stop = Stop +# --- +menu.library = Importa Libreria... +menu.library.add_library = Aggiungi Libreria... +menu.library.contributed = Librerie di terze parti +menu.library.no_core_libraries = modalità senza librerie di default +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Apri cartella dello Sketch +menu.sketch.add_file = Aggiungi File... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Debug +menu.debug.enable = Abilitare Debugger +menu.debug.disable = Disabilitare Debugger +#menu.debug.show_debug_toolbar = Show Debug Toolbar +#menu.debug.debug = Debug +#menu.debug.stop = Stop +# --- +menu.debug.toggle_breakpoint = Toggle Breakpoint +#menu.debug.list_breakpoints = List breakpoints +# --- +# used for both menus and toolbars +menu.debug.step = Step +menu.debug.step_into = Step Avanti +menu.debug.step_out = Step Indietro +menu.debug.continue = Continua +# --- +#menu.debug.print_stack_trace = Print Stack Trace +#menu.debug.print_locals = Print Locals +#menu.debug.print_fields = Print Fields +#menu.debug.print_source_location = Print Source Location +#menu.debug.print_threads = Print Threads +# --- +#menu.debug.variable_inspector = Variable Inspector +menu.debug.show_variables = Mostra Variabili +menu.debug.hide_variables = Nascondi Variabili +#menu.debug.show_sketch_outline = Show Sketch Outline +#menu.debug.show_tabs_list = Show Tabs List + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Strumenti +menu.tools.color_selector = Selezionatore dei colori... +menu.tools.create_font = Crea Font... +menu.tools.archive_sketch = Archivia Sketch +menu.tools.fix_the_serial_lbrary = Ripara la "Serial Library" +menu.tools.install_processing_java = Installa "processing-java" +menu.tools.add_tool = Aggiungi Strumento... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Aiuto +menu.help.welcome = Benvenuto in Processing +menu.help.about = Riguardo a Processing +menu.help.environment = Ambiente di Sviluppo +menu.help.reference = Guida di Riferimento +menu.help.find_in_reference = Cerca nella Guida +menu.help.libraries_reference = Guida delle Librerie +menu.help.tools_reference = Guida degli Strumenti +menu.help.empty = (vuoto) +menu.help.online = Online +menu.help.getting_started = Primi Passi +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Risoluzione dei Problemi +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Domande Frequenti +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = La Processing Foundation +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Visita Processing.org +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Si +prompt.no = No +prompt.cancel = Cancella +prompt.ok = Ok +prompt.browse = Naviga +prompt.export = Esporta + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Apri uno sketch di Processing... + +# Save (Frame) +save = Salva la cartella degli sketch con nome... +save.title = Vuoi salvare le modifiche di %s prima di chiudere? +save.hint = Se non salverai, le tue modifiche verranno perse. +save.btn.save = Salva +save.btn.dont_save = Non salvare + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = Salvare le modifiche di %s? + +# AppPreferences (Frame) +preferences = Preferenze +preferences.button.width = 80 +preferences.requires_restart = richiede il riavvio di Processing +preferences.sketchbook_location = Percorso della cartella degli sketch +preferences.sketchbook_location.popup = Percorso della cartella degli sketch +preferences.language = Lingua +preferences.editor_and_console_font = Font dell'Editor e della Console +preferences.editor_and_console_font.tip = Scegli il font usato dall'Editor e dalla Console.
Solo font monospaced (larghezza fissa) possono essere usati,
sebbene la lista possa essere imperfetta. +preferences.editor_font_size = Dimensione del font dell'Editor +preferences.console_font_size = Dimensione del font della Console +preferences.zoom = Scala dell'interfaccia +preferences.zoom.auto = Automatica +preferences.background_color = Colore di sfondo durante la modalità "Presenta" +preferences.background_color.tip = Scegli il colore di sfondo durante la modalità "Presenta".
Questa modalità è utilizzata per mostrare uno sketch a tutto schermo;
è accessibile dal menù Sketch. +preferences.use_smooth_text = Usa un font semplice nell'Editor +preferences.enable_complex_text_input = Abilita la possibilità di usare caratteri complessi +preferences.enable_complex_text_input_example = per esempio Giapponese +preferences.continuously_check = Controlla continuamente la presenza di errori +preferences.show_warnings = Mostra Avvisi +preferences.code_completion = Completamento del codice con +preferences.trigger_with = Abilita con +preferences.cmd_space = spazio +preferences.suggest_imports = Suggerisci il codice di import +preferences.increase_max_memory = Aumenta la massima memoria disponibile a +preferences.delete_previous_folder_on_export = Elimina le cartelle precedenti dopo l'export +preferences.check_for_updates_on_startup = Consenti di controllare la presenza di aggiornamenti (vedi le FAQ per le informazioni condivise) +preferences.run_sketches_on_display = Esegui Sketch nel monitor +preferences.run_sketches_on_display.tip = Stabilisce il monitor nel quale gli sketch vengono inizalmente visualizzati.
Come al solito, se la finestra dello sketch viene spostata, si riaprirà nella
stessa posizione, tuttavia quando si esegue nella modalità "Presenta"
(tutto schermo), questo monitor verrà sempre utilizzato. +preferences.automatically_associate_pde_files = Associa automaticamente i file .pde con Processing +preferences.launch_programs_in = Lancia programmi in +preferences.launch_programs_in.mode = modalità +preferences.file = Più preferenze possono essere modificate nel file +preferences.file.hint = modificalo solo quando Processing non è aperto + +# Sketchbook Location (Frame) +sketchbook_location = Seleziona la nuova posizione della cartella degli Sketch + +# Sketchbook (Frame) +sketchbook = Cartella degli Sketch +sketchbook.tree = Cartella degli Sketch + +# Examples (Frame) +examples.title = %s Esempi +examples.add_examples = Aggiungi Esempi... +examples.libraries = Librerie di terze parti +examples.core_libraries = Librerie +examples.contributed = Esempi di terze parti + +# Export (Frame) +export = Opzioni di esportazione +export.platforms = Piattaforme +export.options = Opzioni +export.options.present = Modalità "Presenta" +export.options.show_stop_button = Mostra il bottone di Stop +export.description.line1 = Esporta come applicazione creerà +export.description.line2 = delle applicazioni esegubili per la piattaforma scelta. +export.unsaved_changes = Salvare le modifiche prima di esportare? +export.notice.cancel.unsaved_changes = Esportazione cancellata, prima di eseguirlo è necessario salvare. +export.notice.exporting = Esportando l'applicazione +export.notice.exporting.done = Esportazione eseguita. +export.notice.exporting.error = Errore durante l'esportazione. +export.notice.exporting.cancel = Esportazione come applicazione cancellata. +export.tooltip.macos = L'esportazione per macOS è disponibile solo su macOS +export.full_screen = Tutto Schermo +export.embed_java = Embed Java +export.code_signing = Code Signing +export.messages.is_read_only = Sketch è in modalità di sola lettura +export.messages.is_read_only.description = Alcuni files sono in modalità sola lettura, quindi dovrai\nsalvare lo Sketch in un'altra posizione\ne provare di nuovo. +export.messages.cannot_export = Non è possibile esportare +export.messages.cannot_export.description = Non puoi esportare uno Sketch che non è ancora stato salvato. + +# Find (Frame) +find = Trova +find.find = Trova: +find.replace_with = Sostituisci con: +find.ignore_case = Ignora maiuscole / minuscole +find.all_tabs = Cerca in tutte le schede +find.wrap_around = Prosegui dall'inizio +find.btn.replace_all = Sostituisci tutto +find.btn.replace = Sostituisci +find.btn.replace_and_find = Trova e sostituisci +find.btn.previous = Trova precedente +find.btn.find = Trova + +# Find in reference (Frame) +find_in_reference = Trova nella guida + +# File (Frame) +file = Seleziona un'immagine o un altro file da copiare nel tuo sketch + +# Create Font (Frame) +create_font = Crea un Font +create_font.label = Usa questo strumento per creare dei font bitmap per il tuo programma.\nSeleziona un font e la dimensione, poi clicca su 'Ok' per generare il font.\nSarà aggiunto alla cartella dei dati del tuo sketch. +create_font.size = Dimensione +create_font.smooth = Caratteri semplici +create_font.characters = Caratteri... +create_font.character_selector = Selezionatore dei caratteri +create_font.character_selector.label = I caratteri di default includono gran parte dei caratteri bitmap per Mac OS\ne Windows Latin scripts. Includere tutti i caratteri può\nrichiedere una grande quantità di memoria per tutti i bitmap.\nPEr un controllo maggiore puoi selezionare ogni specifico blocco Unicode. +create_font.default_characters = Caratteri di default +create_font.all_characters = Tutti i caratteri +create_font.specific_unicode = Blocchi specifici Unicode +create_font.filename = Nome del file + +# Color Selector (Frame) +color_selector = Selezionatore dei colori + +# Archive Sketch (Frame) +archive_sketch = Archivia sketch come... + +# Tweak Mode +tweak_mode = Modalità Tweak +tweak_mode.save_before_tweak = Per favore salva lo sketch prima di avviare la modalità Tweak. +tweak_mode.keep_changes.line1 = Salvare le modifiche? +tweak_mode.keep_changes.line2 = Hai cambiato alcuni valori nello sketch. Vuoi salvare le modifiche? + +# DebugTray +debugger.name = Nome +debugger.value = Valore +debugger.type = Tipo + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Esegui +toolbar.present = Presenta +toolbar.stop = Stop +toolbar.debug = Debug +# --- +toolbar.new = Nuovo +toolbar.open = Apri +toolbar.save = Salva +# toolbar.export_application = Export Application +toolbar.add_mode = Aggiungi modalità... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Continue +#toolbar.debug.step = Step +#toolbar.debug.step_into = Step Into +#toolbar.debug.stop = Stop +#toolbar.debug.toggle_breakpoints = Toggle Breakpoint +#toolbar.debug.variable_inspector = Variable Inspector + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Nuova scheda +editor.header.rename = Rinomina +editor.header.delete = Elimina +editor.header.previous_tab = Scheda precedente +editor.header.next_tab = Scheda successiva +editor.header.delete.warning.title = No. +editor.header.delete.warning.text = Non puoi eliminare la scheda principale del tuo unico sketch aperto.. + +# PopUp menu +editor.popup.jump_to_declaration = Vai alla Dichiarazione +editor.popup.show_usage = Mostra utilizzo... +editor.popup.rename = Rinomina... + +# Tabs +editor.tab.new = Nuovo Nome +editor.tab.new.description = Nome del nuovo file +editor.tab.rename = Nuovo Nome +editor.tab.rename.description = Nuovo nome del file + +# Sketch +editor.sketch.rename.description = Nuovo nome dello scketch + +editor.status.autoformat.no_changes = Nessuna modifica necessaria per l'Auto Format. +editor.status.autoformat.finished = Auto Format terminato. +editor.status.find_reference.select_word_first = Per prima cosa selezionare una parola da trovare nella guida. +editor.status.find_reference.not_available = Nessuna referenza disponibile per "%s". +editor.status.drag_and_drop.files_added.0 = Nessun file aggiunto allo sketch. +editor.status.drag_and_drop.files_added.1 = Un file aggiunto allo sketch. +editor.status.drag_and_drop.files_added.n = %d file aggiunti allo sketch. +editor.status.saving = Salvataggio... +editor.status.saving.done = Salvataggio eseguito. +editor.status.saving.canceled = Salvataggio annullato. +editor.status.printing = Stampa in corso... +editor.status.printing.done = Stampa eseguita. +editor.status.printing.error = Errore durante la stampa. +editor.status.printing.canceled = Stampa annullata. +editor.status.copy_as_html = Il codice formattato in HTML è stato copiato. +editor.status.debug.busy = Debugger occupato... +editor.status.debug.halt = Debugger bloccato. +editor.status.archiver.create = Creato archivio "%s". +editor.status.archiver.cancel = Archivio sketch annullato. + +# Errors +editor.status.warning = Avviso +editor.status.error = Errore +editor.status.error_on = Errore su "%s" +editor.status.missing.default = Manca "%c" +editor.status.missing.semicolon = Manca un punto e virgola ";" +editor.status.missing.left_sq_bracket = Manca parentesi quadra sinistra "[" +editor.status.missing.right_sq_bracket = Manca parentesi quadra destra "]" +editor.status.missing.left_paren = Manca parentesi sinistra "(" +editor.status.missing.right_paren = Manca parentesi destra ")" +editor.status.missing.left_curly_bracket = Manca parentesi graffa sinistra "{" +editor.status.missing.right_curly_bracket = Manca parentesi graffa destra "}" +editor.status.missing.add = Considera di aggiungere "%s" +editor.status.reserved_words = "color" e "int" sono parole riservate e non possono essere usate come nome di una variabile +editor.status.undefined_method = La funzione "%s(%s)" non esiste +editor.status.undefined_constructor = Il costruttore "%s(%s)" non esiste +editor.status.empty_param = La funzione "%s()" non richiede alcun parametro +editor.status.wrong_param = La funzione "%s()" si aspetta dei parametri come: "%s(%s)" +editor.status.undef_global_var = La variabile globale "%s" non esiste +editor.status.undef_class = La classe "%s" non esiste +editor.status.undef_var = La variabile "%s" non esiste +editor.status.undef_name = Il nome "%s" non può essere riconosciuto +editor.status.type_mismatch = Errore di battitura, "%s" non combacia con "%s" +editor.status.unused_variable = Il valore della variabile locale "%s" non è usato +editor.status.uninitialized_variable = La variabile locale "%s" potrebbe non essere stata inizializzata +editor.status.no_effect_assignment = L'assegnazione alla variabile "%s" non ha effetto +editor.status.hiding_enclosing_type = La classe "%s" non può avere lo stesso nome del tuo sketch o della classe che la contiene + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error.syntax = Errore di sintassi - %s + +# Footer buttons +editor.footer.errors = Errori +editor.footer.errors.problem = Problemi +editor.footer.errors.tab = Tab +editor.footer.errors.line = Linea +editor.footer.console = Console + +# New handler +new.messages.is_read_only = Lo sketch è in modalità sola lettura. +new.messages.is_read_only.description = Alcuni files sono in sola lettura, quindi devi\nsalvare lo sketch in un'altra cartella,\ne provare di nuovo. + +# Rename handler +rename.messages.is_untitled = Sketch senza nome +rename.messages.is_untitled.description = Che ne dici di salvare lo sketch\nprima di provare a rinominarlo? +rename.messages.is_modified = Per favore salva lo sketch prima di rinominarlo. +rename.messages.is_read_only = Lo sketch è in modalità sola lettura. +rename.messages.is_read_only.description = Alcuni files sono in sola lettura, quindi devi\nsalvare lo sketch in un'altra cartella,\ne provare di nuovo. + +# Naming handler +name.messages.problem_renaming = Problema con nuovo nome +name.messages.starts_with_dot.description = Il nome non può iniziare con un punto. +name.messages.invalid_extension.description = ".%s" non è un'estensione valida. +name.messages.main_java_extension.description = La prima tab non può essere un file .%s.\n(Potrebbe essere il caso che tu passi a un\n"vero" ambiente di sviluppo.) +name.messages.new_sketch_exists = No +name.messages.new_sketch_exists.description = Un file chiamato "%s" esiste già in\n"%s" +name.messages.new_folder_exists = Impossibile rinominare +name.messages.new_folder_exists.description = Putroppo uno sketch (o cartella) chiamato "%s" esiste già. +name.messages.error = Errore +name.messages.no_rename_folder.description = Impossibile rinominare la cartella dello sketch. +name.messages.no_rename_file.description = Impossibile rinominare "%s" in "%s" +name.messages.no_create_file.description = Impossibile creare il file "%s"\nin "%s" + +# Delete handler +delete.messages.cannot_delete = Impossibile eliminare +delete.messages.cannot_delete.description = Non puoi eliminare uno sketch che non è stato salvato. +delete.messages.cannot_delete.file = Impossibile +delete.messages.cannot_delete.file.description = Impossibile eliminare +delete.messages.is_read_only = Lo sketch è in modalità sola lettura. +delete.messages.is_read_only.description = Alcuni files sono in sola lettura, quindi devi\nsalvare lo sketch in un'altra cartella,\ne provare di nuovo. + +# Save handler +save_file.messages.is_read_only = Lo sketch è in modalità sola lettura. +save_file.messages.is_read_only.description = Alcuni files sono in sola lettura, quindi devi\nsalvare questo sketch in un'altra cartella. +save_file.messages.sketch_exists = Impossibile salvare +save_file.messages.sketch_exists.description = Uno sketch con il nome\n“%s” esiste già. +save_file.messages.tab_exists = No +save_file.messages.tab_exists.description = Non puoi salvare lo sketch come "%s"\npoichè lo sketch ha già una tab con quel nome. +save_file.messages.recursive_save = Sei amico di Borges +save_file.messages.recursive_save.description = Non puoi salvare lo sketch in una cartella\ndentro se stessa: andrebbe avanti all'infinito. + +# Add handler +add_file.messages.is_read_only = Lo sketch è in modalità sola lettura. +add_file.messages.is_read_only.description = Alcuni files sono in sola lettura, quindi devi\nsalvare lo sketch in un'altra cartella,\ne provare di nuovo. +add_file.messages.confirm_replace = Sostituire l'esitente versione di %s? +add_file.messages.error_adding = Errore aggiungendo il file +add_file.messages.cannot_delete.description = Impossibile eliminare il corrente file '%s'. +add_file.messages.cannot_add.description = Impossibile aggiungere '%s' allo sketch. +add_file.messages.same_file = Non puoi fregarmi +add_file.messages.same_file.description = Questo file è già stato copiato nella\nquale tu stavic cercando di aggiugnerlo.\nNon lo farò. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Errore nella compilazione della cartella +temp_dir.messages.bad_build_folder.description = Impossibile trovare una cartella dove compilare lo sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Sketch scomparso. +ensure_exist.messages.missing_sketch.description = Cartella dello sketch scomparsa.\nProverò a ri-salvarla nella stessa location,\nma qualsiasi cosa eccetto il codice verrà persa. +ensure_exist.messages.unrecoverable = Impossibile ri-salvare lo sketch. +ensure_exist.messages.unrecoverable.description = Impossibile ri-salvare correttamente lo sketch. Potresti incontrare qualche problema,\ne potrebbe essere l'ora di copiare e incollare il codice in un altro editor di testo. + +# Check name +check_name.messages.is_name_modified = Il nome dello sketch deve essere modificato. Il nome può consistere solo di\ncaratteri e numeri ASCII (ma non può cominciare con un numero).\nInoltre devono essere di lunghezza inferiore ai 64 caratteri. + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Manager dei Contributi +contrib.manager_title.update = Manager degli Aggiornamenti +contrib.manager_title.mode = Manager delle Modalità +contrib.manager_title.tool = Manager degli Strumenti +contrib.manager_title.library = Manager della Libreria +contrib.manager_title.examples = Manager degli esempi +contrib.category = Categoria: +contrib.filter_your_search = Filtra la tua ricerca... +contrib.show_only_compatible.mode = Mostra solo modalità compatibili +contrib.show_only_compatible.tool = Mostra solo strumenti compatibili +contrib.show_only_compatible.library = Mostra solo librerie compatibili +contrib.show_only_compatible.examples = Mostra solo esempi compatibili +contrib.show_only_compatible.update = Mostra solo aggiornamenti compatibili +contrib.restart = Riavvia Processing +contrib.unsaved_changes = Sono presenti modifiche non salvate +contrib.unsaved_changes.prompt = Sei sicuro di voler riavviare Processing senza salvare le modifiche? +contrib.messages.remove_restart = Per favore riavvia Processing per finire di rimuovere questo componente. +contrib.messages.install_restart = Per favore riavvia Processing per finire di installare questo componente. +contrib.messages.update_restart = Per favore riavvia Processing per finire di aggiornare questo componente. +contrib.errors.list_download = Impossibile scaricare la lista dei contributi disponibili. +contrib.errors.list_download.timeout = Connessione interrotta durante il download della lista dei contributi. +contrib.errors.download_and_install = Errore durante il download e l'installazione di %s. +contrib.errors.description_unavailable = Descrizione non disponibile. +contrib.errors.malformed_url = Il link ottenuto da Processing.org non è valido.\nPuoi comunque installare la libreria manualmente visitando\nil suo sito web. +contrib.errors.needs_repackage = %s necessita di ricreare il suo pacchetto secondo le %s lineeguida. +contrib.errors.no_contribution_found = Impossibile trovare un %s nel file scaricato. +contrib.errors.overwriting_properties = Errore sovrascrivendo il file .properties. +contrib.errors.install_failed = Installazione fallita +contrib.errors.update_on_restart_failed = L'aggiornamento al riavvio di %s è fallito. +contrib.errors.temporary_directory = Impossibile scrivere nella cartella temporanea. +contrib.errors.contrib_download.timeout = Connessione interrotta durante il download di %s. +contrib.errors.no_internet_connection = Sembra che tu non sia connesso a Internet. +contrib.status.downloading_list = Scaricando la lista dei contributi... +contrib.status.connecting = Connettendosi... +contrib.status.done = Fatto. +contrib.all = Tutti +contrib.undo = Annulla +contrib.remove = Rimuovi +contrib.install = Installa +contrib.progress.installing = Installando +contrib.progress.starting = Inizializzando +contrib.progress.downloading = Scaricando +contrib.download_error = Errore durante il download del contributo. +contrib.unsupported_operating_system = Il tuo sistema operativo sembra non essere supportato. Dovresti visitare %s della libreria per maggiori informazioni. +contrib.category.3d = 3D +contrib.category.animation = Animazione +contrib.category.data = Dati +contrib.category.geometry = Geometria +contrib.category.gui = GUI +contrib.category.hardware = Hardware +contrib.category.i_o = I/O +contrib.category.math = Matematica +contrib.category.simulation = Simulazione +contrib.category.sound = Suono +contrib.category.typography = Tipografia +contrib.category.utilities = Utilità +contrib.category.video_vision = Video & Grafica +contrib.category.other = Altro + +# Install on Startup +contrib.startup.errors.download_install = Errore durante il download e installazione di %s +contrib.startup.errors.temp_dir = Impossibile scrivere nella cartella temporanea durante il download e installazione di %s +contrib.startup.errors.new_marker = Il selezionatore dei contributi non aggiornato sembra non essere compatibile con %s. Dovresti installarlo manualmente per poterlo aggiornare... + +# Install on Import +contrib.import.dialog.title = Librerie mancanti disponibili +contrib.import.dialog.primary_text = Le seguenti librerie importate sono disponibili per il download, ma non sono state installate. +contrib.import.dialog.secondary_text = Vorresti installarle ora? +contrib.import.progress.download = Scaricando %s... +contrib.import.progress.install = Installando %s... +contrib.import.progress.done = %s è stato installato. +contrib.import.progress.final_list = LE seguenti librerie sono state installate: +contrib.import.errors.link = Errore: la libreria %s ha uno strano link di download. + +# --------------------------------------- +# Warnings + +warn.delete = Elimina +warn.delete.sketch = Sei sicuro di voler eliminare questo sketch? +warn.delete.sketch_last = Per mantenere i tuoi file al sicuro, l'eliminazione dell'intera cartella dello sketch non è supportata in Processing. \nPer favore apri la cartella dello sketch nel tuo esplora file per eliminarla. +warn.delete.file = Sei sicuro di voler eliminare "%s"? +warn.cannot_change_mode.title = Impossibile cambiare modalità +warn.cannot_change_mode.body = Impossibile cambiare modalità,\npoichè la modalità "%s" non è compatibile con quella corrente. + + +# --------------------------------------- +# Update Check + +update_check = Aggiorna +update_check.updates_available.core = Una nuova versione di Processing è disponibile,\nvuoi visitare la pagina di download del sito di Processing? +update_check.updates_available.contributions = Ci sono aggiornamenti disponibili per alcuni dei contributi installati,\nvorresti aprire il gestore dei contributi ora? + +# --------------------------------------- +# Color Chooser + +color_chooser = Selezionatore dei colori +color_chooser.select = Seleziona + +# --------------------------------------- +# Movie Maker + +movie_maker = Creatore di filmati +movie_maker.title = QuickTime Movie Maker +movie_maker.blurb = Questo strumento crea un filmato QuickTime a partire da una sequenza di immagini.

Per evitare artifatti causati dalla ri-compressone di immagini in video,
usa immagini TIFF, TGA (da Processing), o PNG come sorgenti.

Immagini TIFF e TGA verranno scritte più rapidamente, ma richiederanno più memoria:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

Le immagini PNG sono più piccole, ma il tuo sketch verrà eseguito più lentamente:
saveFrame("frames/####.png");

This codice è basato su QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. Tutti i diritti riservati
+movie_maker.image_folder_help_label = Trascina una cartella con immagini dentro il campo qui sotto: +movie_maker.choose_button = Scegli... +movie_maker.select_image_folder = Seleziona la cartella con le immagini... +movie_maker.sound_file_help_label = Trascina un file audio nel campo qui sotto (.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = Seleziona un file audio... + +movie_maker.create_movie_button = Crea filmato... +movie_maker.save_dialog_prompt = Salva filmato come... +movie_maker.width = Larghezza: +movie_maker.height = Altezza: +movie_maker.compression = Compressione: +movie_maker.compression.animation = Animazione +movie_maker.compression.jpeg = JPEG +movie_maker.compression.png = PNG +movie_maker.framerate = Fotogrammi al secondo: +movie_maker.orig_size_button = Stessa dimensione degli originali +movie_maker.orig_size_tooltip = Seleziona questa opzione se la cartalla contiene già fotogrammi della dimensione desiderata. + +movie_maker.error.avoid_tiff = Prova immagini TGA o PNG al posto di TIFF. +movie_maker.error.badnumbers = Larghezza e altezza devono essere numeri interi positivi; il numero di fotogrammi al secondo deve essere un numero positivo. +movie_maker.error.cannot_read = Impossibile leggere %s. +movie_maker.error.cannot_read_maybe_bad = Impossibile leggere %s; potrebbe non andare bene. +movie_maker.error.movie_failed = Creazione del filmato QuickTime fallita. +movie_maker.error.need_input = Dovresti specificare la cartella con i file delle immagini o dei suoni, o entrambe. +movie_maker.error.no_images_found = Nessun file immagine trovato. +movie_maker.error.sorry = Mi dispiace +movie_maker.error.unknown_tga_format = Sconosciuto formato di file .tga per %s. + +movie_maker.progress.creating_file_name = Creando %s. +movie_maker.progress.creating_output_file = Creando il file di output +movie_maker.progress.initializing = Inizializzando... +movie_maker.progress.processing = Processando %s. diff --git a/app/utils/build/resources/main/PDE_ja.properties b/app/utils/build/resources/main/PDE_ja.properties new file mode 100644 index 0000000000..5aab9ad466 --- /dev/null +++ b/app/utils/build/resources/main/PDE_ja.properties @@ -0,0 +1,597 @@ + + +# --------------------------------------- +# Language: Japanese (日本語) (ja) +# --------------------------------------- + + +# Use the built-in fonts because they have full character support +font.family.sans = SansSerif +font.family.mono = Monospaced + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = ファイル +menu.file.new = 新規 +menu.file.open = 開く... +menu.file.recent = 最近開いたファイル +menu.file.sketchbook = スケッチブック... +menu.file.sketchbook.empty = 空のスケッチブック +menu.file.examples = サンプル... +menu.file.close = 閉じる +menu.file.save = 保存 +menu.file.save_as = 名前を付けて保存... +menu.file.export_application = アプリケーションとしてエクスポート... +menu.file.page_setup = ページ設定 +menu.file.print = 印刷... +menu.file.preferences = 設定... +menu.file.quit = 終了 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = 編集 +menu.edit.undo = 元に戻す +menu.edit.redo = やり直し +menu.edit.action.addition = addition +menu.edit.action.deletion = deletion +menu.edit.cut = 切り取り +menu.edit.copy = コピー +menu.edit.copy_as_html = HTMLとしてコピー +menu.edit.paste = 貼り付け +menu.edit.select_all = すべて選択 +menu.edit.auto_format = 自動フォーマット +menu.edit.comment_uncomment = コメント/アンコメント +menu.edit.increase_indent = → インデントを増やす +menu.edit.decrease_indent = ← インデントを減らす +menu.edit.find = 検索... +menu.edit.find_next = 次を探す +menu.edit.find_previous = 前を探す +menu.edit.use_selection_for_find = 選択を検索 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = 実行 +menu.sketch.present = プレゼンテーション +menu.sketch.tweak = Tweak +menu.sketch.stop = 停止 +# --- +menu.library = ライブラリをインポート... +menu.library.add_library = ライブラリを追加... +menu.library.contributed = Contributed +menu.library.no_core_libraries = モードにコアライブラリがありません +# --- +menu.sketch = スケッチ +menu.sketch.show_sketch_folder = スケッチフォルダーを開く +menu.sketch.add_file = ファイルを追加... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = デバッグ +menu.debug.enable = デバッガを有効化 +menu.debug.disable = デバッガを無効化 +#menu.debug.show_debug_toolbar = Show Debug Toolbar +#menu.debug.debug = Debug +#menu.debug.stop = Stop +# --- +menu.debug.toggle_breakpoint = ブレークポイントを切り替え +#menu.debug.list_breakpoints = List breakpoints +# --- +# used for both menus and toolbars +menu.debug.step = ステップ +menu.debug.step_into = ステップイン +menu.debug.step_out = ステップアウト +menu.debug.continue = 続行 +# --- +#menu.debug.print_stack_trace = Print Stack Trace +#menu.debug.print_locals = Print Locals +#menu.debug.print_fields = Print Fields +#menu.debug.print_source_location = Print Source Location +#menu.debug.print_threads = Print Threads +# --- +#menu.debug.variable_inspector = Variable Inspector +menu.debug.show_variables = 変数を表示 +menu.debug.hide_variables = 変数を隠す +#menu.debug.show_sketch_outline = Show Sketch Outline +#menu.debug.show_tabs_list = Show Tabs List + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = ツール +menu.tools.color_selector = 色選択... +menu.tools.create_font = フォント作成... +menu.tools.archive_sketch = スケッチをアーカイブ +menu.tools.fix_the_serial_lbrary = シリアルライブラリを修正 +menu.tools.install_processing_java = "processing-java" をインストール +menu.tools.add_tool = ツールを追加... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = ヘルプ +menu.help.welcome = Processing へようこそ +menu.help.about = Processing について +menu.help.environment = 環境 +menu.help.reference = リファレンス +menu.help.find_in_reference = リファレンスから探す +menu.help.libraries_reference = ライブラリ・リファレンス +menu.help.tools_reference = ツール・リファレンス +menu.help.empty = (空) +menu.help.online = オンライン +menu.help.getting_started = はじめの一歩 +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = 問題解決 +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = よくある質問 +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = Processing Foundation +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Processing.org にアクセスする +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = はい +prompt.no = いいえ +prompt.cancel = キャンセル +prompt.ok = OK +prompt.browse = 参照 +prompt.export = エクスポート + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Processing スケッチを開く... + +# Save (Frame) +save = スケッチフォルダーを名前を付けて保存... +save.title = 閉じる前に %s への変更を保存しますか? +save.hint = 保存しなければ、変更は失われます。 +save.btn.save = 保存する +save.btn.dont_save = 保存しない + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = %s への変更を保存しますか? + +# AppPreferences (Frame) +preferences = 設定 +preferences.button.width = 120 +preferences.requires_restart = Processingの再起動が必要です +preferences.sketchbook_location = スケッチブックの場所 +preferences.sketchbook_location.popup = スケッチブックの場所 +preferences.language = 言語 +preferences.editor_and_console_font = エディタとコンソールのフォント +preferences.editor_and_console_font.tip = Select the font used in the Editor and the Console.
Only monospaced (fixed-width) fonts may be used,
though the list may be imperfect. +preferences.editor_font_size = エディタフォントサイズ +preferences.console_font_size = コンソールフォントサイズ +preferences.zoom = インターフェース拡大率 +preferences.zoom.auto = 自動 +preferences.background_color = プレゼンテーションの背景色 +preferences.background_color.tip = Select the background color used when using Present.
Present is used to present a sketch in full-screen,
accessible from the Sketch menu. +preferences.use_smooth_text = エディタウィンドウでスムーズテキストを使う +preferences.enable_complex_text_input = 複雑なテキスト入力を有効にする +preferences.enable_complex_text_input_example = 例:日本語 +preferences.continuously_check = エラーのために継続的にチェックする +preferences.show_warnings = 警告を表示する +preferences.code_completion = コード補完 +preferences.trigger_with = 起動 +preferences.cmd_space = space +preferences.suggest_imports = import 宣言をサジェストする +preferences.increase_max_memory = 有効な最大メモリを増やす +preferences.delete_previous_folder_on_export = エクスポート時に以前のフォルダーを削除する +preferences.check_for_updates_on_startup = 起動時に更新をチェックする +preferences.run_sketches_on_display = スケッチを実行するディスプレイ +preferences.run_sketches_on_display.tip = スケッチが最初に置かれるディスプレイをセットして下さい。
通常、スケッチウィンドウを動かすと、同じ位置に再び開かれますが、
プレゼンテーション(フルスクリーン)モードで実行している場合、
このディスプレイが常に使用されます。 +preferences.automatically_associate_pde_files = 自動的に .pde ファイルを Processing に関連付ける +preferences.launch_programs_in = プログラムを起動する +preferences.launch_programs_in.mode = モード +preferences.file = 詳細な設定は次のファイルを直接編集することで可能です +preferences.file.hint = Processing が起動していない時のみ編集できます + +# Sketchbook Location (Frame) +sketchbook_location = 新規スケッチブックの場所を選択 + +# Sketchbook (Frame) +sketchbook = スケッチブック +sketchbook.tree = スケッチブック + +# Examples (Frame) +examples.title = %s サンプル +examples.add_examples = サンプルを追加... +examples.libraries = Contributed Libraries +examples.core_libraries = ライブラリ +examples.contributed = Contributed Examples + +# Export (Frame) +export = エクスポートオプション +export.platforms = プラットフォーム +export.options = オプション +export.options.present = プレゼンテーションモード +export.options.show_stop_button = 停止ボタンを表示する +export.description.line1 = 選択されたプラットフォーム用のスタンドアロンの +export.description.line2 = アプリケーションとして書き出します。 +export.unsaved_changes = エクスポートの前に変更を保存しますか? +export.notice.cancel.unsaved_changes = Export canceled, changes must first be saved. +export.notice.exporting = アプリケーションとしてエクスポートしています... +export.notice.exporting.done = エクスポートが完了しました。 +export.notice.exporting.error = エクスポート中にエラーが発生しました。 +export.notice.exporting.cancel = アプリケーションへのエクスポートがキャンセルされました。 +export.tooltip.macos = macOS 用のエクスポートは macOS でのみ利用可能です +export.full_screen = フルスクリーン +export.embed_java = Java の埋め込み +export.code_signing = Code Signing +export.messages.is_read_only = スケッチが読込み専用です +export.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. +export.messages.cannot_export = エクスポートできません +export.messages.cannot_export.description = 保存されていないスケッチをエクスポートすることはできません。 + +# Find (Frame) +find = 検索 +find.find = 検索: +find.replace_with = 置換: +find.ignore_case = 大文字小文字を区別しない +find.all_tabs = すべてのタブ +find.wrap_around = 折り返し +find.btn.replace_all = すべて置換 +find.btn.replace = 置換 +find.btn.replace_and_find = 置換&検索 +find.btn.previous = 前 +find.btn.find = 検索 + +# Find in reference (Frame) +find_in_reference = リファレンスから探す + +# File (Frame) +file = スケッチにコピーする画像やその他のデータファイルを選択して下さい + +# Create Font (Frame) +create_font = フォント作成 +create_font.label = Use this tool to create bitmap fonts for your program.\nSelect a font and size, and click 'OK' to generate the font.\nIt will be added to the data folder of the current sketch. +create_font.size = サイズ +create_font.smooth = スムーズ +create_font.characters = 文字... +create_font.character_selector = 文字選択 +create_font.character_selector.label = Default characters will include most bitmaps for Mac OS\nand Windows Latin scripts. Including all characters may\nrequire large amounts of memory for all of the bitmaps.\nFor greater control, you can select specific Unicode blocks. +create_font.default_characters = デフォルトの文字 +create_font.all_characters = すべての文字 +create_font.specific_unicode = 特定のUnicodeブロック +create_font.filename = ファイル名 + +# Color Selector (Frame) +color_selector = 色選択 + +# Archive Sketch (Frame) +archive_sketch = スケッチを名前を付けてアーカイブする... + +# Tweak Mode +tweak_mode = Tweak モード +tweak_mode.save_before_tweak = Tweak モードで実行する前にスケッチを保存して下さい。 +tweak_mode.keep_changes.line1 = 変更を保持しますか? +tweak_mode.keep_changes.line2 = このスケッチで値を変更しました。変更を保持しますか? + +# DebugTray +debugger.name = 名前 +debugger.value = 値 +debugger.type = 型 + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = 実行 +toolbar.present = プレゼンテーション +toolbar.stop = 停止 +toolbar.debug = デバッグ +# --- +toolbar.new = 新規 +toolbar.open = 開く +toolbar.save = 保存 + toolbar.export_application = Export Application +toolbar.add_mode = モードの追加... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Continue +#toolbar.debug.step = Step +#toolbar.debug.step_into = Step Into +#toolbar.debug.stop = Stop +#toolbar.debug.toggle_breakpoints = Toggle Breakpoint +#toolbar.debug.variable_inspector = Variable Inspector + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = 新規タブ +editor.header.rename = 名前の変更 +editor.header.delete = 削除 +editor.header.previous_tab = 前のタブ +editor.header.next_tab = 次のタブ +editor.header.delete.warning.title = いや、うん。 +editor.header.delete.warning.text = 開いただけのスケッチのメインタブは削除できません。 + +# PopUp menu +editor.popup.jump_to_declaration = 宣言に移動 +editor.popup.show_usage = 用法の表示... +editor.popup.rename = 名前の変更... + +# Tabs +editor.tab.new = 新規名 +editor.tab.new.description = 新しいファイルの名前 +editor.tab.rename = 新規名 +editor.tab.rename.description = ファイルの新しい名前 + +# Sketch +editor.sketch.rename.description = スケッチの新しい名前 + +editor.status.autoformat.no_changes = No changes necessary for Auto Format. +editor.status.autoformat.finished = 自動フォーマットが完了しました。 +editor.status.find_reference.select_word_first = First select a word to find in the reference. +editor.status.find_reference.not_available = "%s" のリファレンスは利用できません。 +editor.status.drag_and_drop.files_added.0 = スケッチに追加されたファイルはありませんでした。 +editor.status.drag_and_drop.files_added.1 = 1 個のファイルがスケッチに追加されました。 +editor.status.drag_and_drop.files_added.n = %d 個のファイルがスケッチに追加されました。 +editor.status.saving = 保存しています... +editor.status.saving.done = 保存が完了しました。 +editor.status.saving.canceled = 保存がキャンセルされました。 +editor.status.printing = 印刷しています... +editor.status.printing.done = 印刷が完了しました。 +editor.status.printing.error = 印刷中にエラーが発生しました。 +editor.status.printing.canceled = 印刷がキャンセルされました。 +editor.status.copy_as_html = HTMLとしてフォーマットされたコードがクリップボードにコピーされました。 +editor.status.debug.busy = Debugger busy... +editor.status.debug.halt = Debugger halted. +editor.status.archiver.create = アーカイブ "%s" を作成しました。 +editor.status.archiver.cancel = スケッチのアーカイブがキャンセルされました。 + +# Errors +editor.status.warning = 警告 +editor.status.error = エラー +editor.status.error_on = "%s" でエラー +editor.status.missing.default = "%c" がありません +editor.status.missing.semicolon = セミコロン ";" がありません +editor.status.missing.left_sq_bracket = Missing left square bracket "[" +editor.status.missing.right_sq_bracket = Missing right square bracket "]" +editor.status.missing.left_paren = Missing left parenthesis "(" +editor.status.missing.right_paren = Missing right parenthesis ")" +editor.status.missing.left_curly_bracket = Missing left curly bracket "{" +editor.status.missing.right_curly_bracket = Missing right curly bracket "}" +editor.status.missing.add = "%s" の追加を考えてください +editor.status.reserved_words = "color" and "int" are reserved words & cannot be used as variable names +editor.status.undefined_method = 関数 "%s(%s)" は存在しません +editor.status.undefined_constructor = コンストラクター "%s(%s)" は存在しません +editor.status.empty_param = The function "%s()" does not expect any parameters +editor.status.wrong_param = The function "%s()" expects parameters like: "%s(%s)" +editor.status.undef_global_var = グローバル変数 "%s" は存在しません +editor.status.undef_class = クラス "%s" は存在しません +editor.status.undef_var = 変数 "%s" は存在しません +editor.status.undef_name = The name "%s" cannot be recognized +editor.status.type_mismatch = Type mismatch, "%s" does not match with "%s" +editor.status.unused_variable = ローカル変数 "%s" の値は使われていません +editor.status.uninitialized_variable = The local variable "%s" may not have been initialized +editor.status.no_effect_assignment = The assignment to variable "%s" has no effect + +# Limited syntax error support +editor.status.error.syntax = "%s" でエラー + +# Footer buttons +editor.footer.errors = エラー +editor.footer.errors.problem = 問題 +editor.footer.errors.tab = タブ +editor.footer.errors.line = 行 +editor.footer.console = コンソール + +# New handler +new.messages.is_read_only = スケッチが読込み専用です +new.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. + +# Rename handler +rename.messages.is_untitled = スケッチが無題です +rename.messages.is_untitled.description = How about saving the sketch first\nbefore trying to rename it? +rename.messages.is_modified = 名前の変更の前にスケッチを保存して下さい。 +rename.messages.is_read_only = スケッチが読込み専用です +rename.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. + +# Naming handler +name.messages.problem_renaming = 名前の変更中に問題が起きました +name.messages.starts_with_dot.description = 名前をピリオドで始めることはできません。 +name.messages.invalid_extension.description = ".%s" is not a valid extension. +name.messages.main_java_extension.description = The first tab cannot be a .%s file.\n(It may be time for you to graduate to a\n"real" programming environment, hotshot.) +name.messages.new_sketch_exists = Nope +name.messages.new_sketch_exists.description = A file named "%s" already exists at\n"%s" +name.messages.new_folder_exists = 名前を変更できません +name.messages.new_folder_exists.description = Sorry, a sketch (or folder) named "%s" already exists. +name.messages.error = エラー +name.messages.no_rename_folder.description = スケッチフォルダー名を変更できませんでした。 +name.messages.no_rename_file.description = Could not rename "%s" to "%s" +name.messages.no_create_file.description = Could not create the file "%s"\nin "%s" + +# Delete handler +delete.messages.cannot_delete = 削除できません +delete.messages.cannot_delete.description = 保存されていないスケッチを削除することはできません。 +delete.messages.cannot_delete.file = Could not do it +delete.messages.cannot_delete.file.description = 削除できませんでした +delete.messages.is_read_only = スケッチが読込み専用です +delete.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. + +# Save handler +save_file.messages.is_read_only = スケッチが読込み専用です +save_file.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save this sketch to another location. +save_file.messages.sketch_exists = 保存できません +save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. +save_file.messages.tab_exists = Nope +save_file.messages.tab_exists.description = You cannot save the sketch as "%s"\nbecause the sketch already has a tab with that name. +save_file.messages.recursive_save = How very Borges of you +save_file.messages.recursive_save.description = You cannot save the sketch into a folder\ninside itself. This would go on forever. + +# Add handler +add_file.messages.is_read_only = スケッチが読込み専用です +add_file.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. +add_file.messages.confirm_replace = Replace the existing version of %s? +add_file.messages.error_adding = ファイルの追加中にエラーが発生しました +add_file.messages.cannot_delete.description = Could not delete the existing '%s' file. +add_file.messages.cannot_add.description = Could not add '%s' to the sketch. +add_file.messages.same_file = You can't fool me +add_file.messages.same_file.description = This file has already been copied to the\nlocation from which where you're trying to add it.\nI ain't not doin nuthin'. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Build folder bad +temp_dir.messages.bad_build_folder.description = Could not find a place to build the sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Sketch Disappeared +ensure_exist.messages.missing_sketch.description = The sketch folder has disappeared.\nWill attempt to re-save in the same location,\nbut anything besides the code will be lost. +ensure_exist.messages.unrecoverable = Could not re-save sketch +ensure_exist.messages.unrecoverable.description = Could not properly re-save the sketch. You may be in trouble at this point,\nand it might be time to copy and paste your code to another text editor. + +# Check name +check_name.messages.is_name_modified = The sketch name had to be modified. Sketch names can only consist\nof ASCII characters and numbers (but cannot start with a number).\nThey should also be less than 64 characters long. + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Contribution Manager +contrib.manager_title.update = アップデートマネージャー +contrib.manager_title.mode = モードマネージャー +contrib.manager_title.tool = ツールマネージャー +contrib.manager_title.library = ライブラリマネージャー +contrib.manager_title.examples = サンプルマネージャー +contrib.category = カテゴリ: +contrib.filter_your_search = 検索をフィルタ... +contrib.show_only_compatible.mode = Show Only Compatible Modes +contrib.show_only_compatible.tool = Show Only Compatible Tools +contrib.show_only_compatible.library = Show Only Compatible Libraries +contrib.show_only_compatible.examples = Show Only Compatible Examples +contrib.show_only_compatible.update = Show Only Compatible Updates +contrib.restart = Restart Processing +contrib.unsaved_changes = Unsaved changes have been found +contrib.unsaved_changes.prompt = Are you sure you want to restart Processing without saving first? +contrib.messages.remove_restart = Please restart Processing to finish removing this item. +contrib.messages.install_restart = Please restart Processing to finish installing this item. +contrib.messages.update_restart = Please restart Processing to finish updating this item. +contrib.errors.list_download = Could not download the list of available contributions. +contrib.errors.list_download.timeout = Connection timed out while downloading the contribution list. +contrib.errors.download_and_install = Error during download and install of %s. +contrib.errors.description_unavailable = Description unavailable. +contrib.errors.malformed_url = The link fetched from Processing.org is not valid.\nYou can still install this library manually by visiting\nthe library\'s website. +contrib.errors.needs_repackage = %s needs to be repackaged according to the %s guidelines. +contrib.errors.no_contribution_found = Could not find a %s in the downloaded file. +contrib.errors.overwriting_properties = Error overwriting .properties file. +contrib.errors.install_failed = インストールに失敗しました。 +contrib.errors.update_on_restart_failed = Update on restart of %s failed. +contrib.errors.temporary_directory = 一時ディレクトリに書き込めませんでした。 +contrib.errors.contrib_download.timeout = %sをダウンロード中に接続がタイムアウトしました。 +contrib.errors.no_internet_connection = インターネットに接続されていないようです。 +contrib.status.downloading_list = Downloading contribution list... +contrib.status.connecting = 接続しています... +contrib.status.done = Done. +contrib.all = すべて +contrib.undo = 元に戻す +contrib.remove = 削除 +contrib.install = インストール +contrib.progress.installing = インストール中 +contrib.progress.starting = 開始中 +contrib.progress.downloading = ダウンロード中 +contrib.download_error = An error occured while downloading the contribution. +contrib.unsupported_operating_system = Your operating system does not appear to be supported. You should visit the %s\'s library for more info. +contrib.category.3d = 3D +contrib.category.animation = Animation +contrib.category.data = Data +contrib.category.geometry = Geometry +contrib.category.gui = GUI +contrib.category.hardware = Hardware +contrib.category.i_o = I/O +contrib.category.math = Math +contrib.category.simulation = Simulation +contrib.category.sound = Sound +contrib.category.typography = Typography +contrib.category.utilities = Utilities +contrib.category.video_vision = Video & Vision +contrib.category.other = Other + +# Install on Startup +contrib.startup.errors.download_install = Error during download and install of %s +contrib.startup.errors.temp_dir = Could not write to temporary directory during download and install of %s +contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update... + +# Install on Import +contrib.import.dialog.title = Missing Libraries Available +contrib.import.dialog.primary_text = The following imported libraries are available for download, but have not been installed. +contrib.import.dialog.secondary_text = Would you like to install them now? +contrib.import.progress.download = %sをダウンロードしています... +contrib.import.progress.install = %sをインストールしています... +contrib.import.progress.done = %sがインストールされました。 +contrib.import.progress.final_list = The following libraries have been installed: +contrib.import.errors.link = Error: The library %s has a strange looking download link. + +# --------------------------------------- +# Warnings + +warn.delete = 削除 +warn.delete.sketch = このスケッチを削除してもよろしいですか? +warn.delete.sketch_last = ファイルの安全を保つため、Processing ではプロジェクトフォルダーの削除はサポートされていません。\nファイルエクスプローラーでプロジェクトフォルダーを開き、削除してください。 +warn.delete.file = "%s"を削除してもよろしいですか? +warn.cannot_change_mode.title = モード変更失敗 +warn.cannot_change_mode.body = 互換性がないため、"%s"モードに切り替えられません。 + + +# --------------------------------------- +# Update Check + +update_check = 更新 +update_check.updates_available.core = 新しいバージョンのProcessingが利用可能です。\nProcessingのダウンロードページにアクセスしますか? +update_check.updates_available.contributions = There are updates available for some of the installed contributions,\nwould you like to open the the Contribution Manager now? + + +# --------------------------------------- +# Color Chooser + +color_chooser = カラーセレクター +color_chooser.select = 選択 + +# --------------------------------------- +# Movie Maker + +movie_maker = ムービーメーカー +movie_maker.title = QuickTime ムービーメーカー +movie_maker.blurb = This tool creates a QuickTime movie from a sequence of images.

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA (from Processing), or PNG images as the source.

TIFF and TGA images will write more quickly, but require more disk:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = Drag a folder with image files into the field below: +movie_maker.choose_button = 選択... +movie_maker.select_image_folder = 画像フォルダーを選択... +movie_maker.sound_file_help_label = Drag a sound file into the field below (.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = 音声ファイルを選択... + +movie_maker.create_movie_button = 動画を作成... +movie_maker.save_dialog_prompt = Save movie as... +movie_maker.width = 幅: +movie_maker.height = 高さ: +movie_maker.compression = 圧縮: +movie_maker.compression.animation = Animation +movie_maker.compression.jpeg = JPEG +movie_maker.compression.png = PNG +movie_maker.framerate = フレームレート: +movie_maker.orig_size_button = オリジナルと同じサイズ +movie_maker.orig_size_tooltip = Check this box if the folder contains already encoded video frames in the desired size. + +movie_maker.error.avoid_tiff = Try TGA or PNG images instead of TIFF. +movie_maker.error.badnumbers = Width and height must be whole numbers greater than zero; framerate must be a number greater than zero. +movie_maker.error.cannot_read = Could not read %s. +movie_maker.error.cannot_read_maybe_bad = Could not read %s; it may be bad. +movie_maker.error.movie_failed = Creating the QuickTime movie failed. +movie_maker.error.need_input = You need to specify the folder with image files, the sound file, or both. +movie_maker.error.no_images_found = No image files found. +movie_maker.error.sorry = Sorry +movie_maker.error.unknown_tga_format = Unknown .tga file format for %s. + +movie_maker.progress.creating_file_name = Creating %s. +movie_maker.progress.creating_output_file = Creating output file +movie_maker.progress.initializing = Initializing... +movie_maker.progress.processing = Processing %s. diff --git a/app/utils/build/resources/main/PDE_ko.properties b/app/utils/build/resources/main/PDE_ko.properties new file mode 100644 index 0000000000..ee68fc1010 --- /dev/null +++ b/app/utils/build/resources/main/PDE_ko.properties @@ -0,0 +1,324 @@ + + +# --------------------------------------- +# KOREAN (ko) +# --------------------------------------- + + +# Use the built-in fonts because they have full character support +font.family.sans = SansSerif +font.family.mono = Monospaced + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = 파일 +menu.file.new = 새 스케치 +menu.file.open = 열기... +menu.file.recent = 최근 스케치 +menu.file.sketchbook = 스케치북 +menu.file.sketchbook.empty = 빈 스케치북 +menu.file.examples = 예제... +menu.file.close = 닫기 +menu.file.save = 저장 +menu.file.save_as = 다른 이름으로 저장... +menu.file.export_application = 어플리케이션으로 내보내기... +menu.file.page_setup = 인쇄 설정 +menu.file.print = 인쇄 +menu.file.preferences = 환경 설정 +menu.file.quit = 종료 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = 편집 +menu.edit.undo = 입력 취소 +menu.edit.redo = 다시 실행 +menu.edit.cut = 잘라내기 +menu.edit.copy = 복사하기 +menu.edit.copy_as_html = HTML 서식으로 복사 +menu.edit.paste = 붙이기 +menu.edit.select_all = 전체선택 +menu.edit.auto_format = 자동 정렬 +menu.edit.comment_uncomment = 주석 처리/해제 +menu.edit.increase_indent = → 들여쓰기 +menu.edit.decrease_indent = ← 내어쓰기 +menu.edit.find = 찾기... +menu.edit.find_next = 다음 찾기 +menu.edit.find_previous = 이전 찾기 +menu.edit.use_selection_for_find = 선택영역으로 찾기 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = 실행하기 +menu.sketch.present = 전체화면 보기 +menu.sketch.tweak = 변수 조정하기 +menu.sketch.stop = 정지하기 +# --- +menu.library = 내부 라이브러리... +menu.library.add_library = 라이브러리 추가하기... +menu.library.contributed = 외부 라이브러리 +menu.library.no_core_libraries = 내부 라이브러리 미제공 +# --- +menu.sketch = 스케치 +menu.sketch.show_sketch_folder = 스케치 폴더 열기 +menu.sketch.add_file = 스케치 불러오기... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +# ... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = 도구 +menu.tools.create_font = 글꼴 생성... +menu.tools.color_selector = 색상 선택 +menu.tools.archive_sketch = .zip으로 압축하기 +menu.tools.fix_the_serial_lbrary = 시리얼 라이브러리 오류 수정 +menu.tools.install_processing_java = "processing-java" 설치 +menu.tools.add_tool = 추가도구 생성... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = 도움말 +menu.help.about = Processing에 관하여 +menu.help.environment = 환경 +menu.help.reference = 레퍼런스 +menu.help.find_in_reference = 레퍼런스 찾기 +menu.help.online = 온라인 +menu.help.getting_started = 시작하기 +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = 문제해결 +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = f&q +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = 프로세싱 재단 +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Processing.org +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = 예 +prompt.no = 아니오 +prompt.cancel = 취소 +prompt.ok = OK +prompt.browse = 네비게이션 +prompt.export = 내보내기 + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = 프로세싱 스케치 열기... + +# Save (Frame) +save = 다른 이름으로 해당 폴더에 저장... +save.title = 스케치의 변경 내용을 저장할까요? +save.hint = 저장하지 않으면 변경 내용은 삭제됩니다. +save.btn.save = 저장 +save.btn.dont_save = 저장 안 함 + +# AppPreferences (Frame) +preferences = 설정 +preferences.button.width = 80 +preferences.requires_restart = 프로세싱 재실행 시 적용 +preferences.sketchbook_location = 스케치 폴더 위치 +preferences.sketchbook_location.popup = 스케치 폴더 위치 +preferences.language = 언어 +preferences.editor_and_console_font = 스케치 에디터와 콘솔 글꼴 선택 +preferences.editor_and_console_font.tip = \ +에디터와 콘솔에서 사용할 폰트 선택하기.
\ +Monospaced (fixed-width) 폰트만 리스트에 나타나며,
\ +리스트는 불완전할 수 있습니다. +preferences.editor_font_size = 스케치 에디터 글꼴 크기 +preferences.console_font_size = 콘솔 글꼴 크기 +preferences.background_color = 전체 화면 보기 배경색상 +preferences.background_color.tip = \ +전체화면 보기에서 사용할 배경색상 선택하기.
\ +전체화면 보기는 상단 메뉴바의 스케치에서 전체화면을 선택하여 적다 가능합니다. +preferences.use_smooth_text = 에디터창 부드러운 글꼴 적용 +preferences.enable_complex_text_input = 다국어 언어 입력 허용 +preferences.enable_complex_text_input_example = 예. 한국어 +preferences.continuously_check = 오류 검사 활성화 +preferences.show_warnings = 오류 메시지 보기 +preferences.code_completion = 코드 자동 완성 +preferences.trigger_with = 자동 완성 비활성화 +preferences.cmd_space = space키 +preferences.increase_max_memory = 프로세싱의 사용 메모리 설정 +preferences.delete_previous_folder_on_export = 내보내기 시 기존 폴더 삭제 +preferences.hide_toolbar_background_image = 탭/툴바의 배경 이미지 숨기기 +preferences.check_for_updates_on_startup = 프로그램 시작 시 버전 업데이트 확인 +preferences.run_sketches_on_display = 실행 시 스케치창 디스플레이의 장치 설정 +preferences.run_sketches_on_display.tip = \ +멀티스크린 사용 시 실행된 스케치 창을 보여줄 스크린 선택하기.
\ +일반적으로, 스케치 창을 커서로 드래그하여 이동하면 재 실행 시에는 해당 스크린에서 실행되지만
\ +전체화면 모드로 실행하는 경우에 설정된 스크린에서만 실행됩니다. +preferences.automatically_associate_pde_files = .pde 파일 실행 시 프로세싱으로 자동 연결 +preferences.launch_programs_in = 프로그램 실행 +preferences.launch_programs_in.mode = 모드 +preferences.file = 기타 자세 설정은 해당 경로의 파일에서 변경 가능 +preferences.file.hint = 프로그램 종료 시에만 적용 + +# Sketchbook Location (Frame) +sketchbook_location = 새 스케치북 폴더 위치 설정 + +# Sketchbook (Frame) +sketchbook = 스케치북 +sketchbook.tree = 스케치북 + +# Examples (Frame) +examples = 예제 + +# Export (Frame) +export = 내보내 옵션 +export.platforms = 플랫폼 +export.options = 옵션 +export.options.fullscreen = 전체 화면 (보기 모드) +export.options.show_stop_button = 정지 버튼 표시 +export.description.line1 = "어플리케이션으로 내보내기"는 아래에서 선택한 플랫폼에서 +export.description.line2 = 독립적으로 실행되는 어플리케이션으로 스케치를 저장합니다. + +# Find (Frame) +find = 찾기 +find.find = 찾을 내용: +find.replace_with = 바꿀 내용: +find.ignore_case = 대소문자 구별 안 함 +find.all_tabs = 탭 전체 +find.wrap_around = 자동 줄바꿈 +find.btn.replace_all = 모두 바꾸기 +find.btn.replace = 바꾸기 +find.btn.find_and_replace = 찾기 & 바꾸기 +find.btn.previous = 이전 +find.btn.find = 찾기 + +# Find in reference (Frame) +find_in_reference = 레퍼런스에서 찾기 + +# File (Frame) +file = 선택한 이미지 또는 데이터 파일을 스케치로 불러오기 + +# Create Font (Frame) +create_font = 글꼴 생성 + +# Color Selector (Frame) +color_selector = 색상 선택기 + +# Archive Sketch (Frame) +archive_sketch = 스케치 전체를 (이미지/데이터 포함) Zip으로 압축하기... + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = 실행 +toolbar.present = 전체 화면 +toolbar.stop = 정지 +# --- +toolbar.new = 새 스케치 +toolbar.open = 열기 +toolbar.save = 저장 +toolbar.export_application = 어플리케이션으로 내보내기 +toolbar.add_mode = 모드 추가... + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = 새 탭 +editor.header.rename = 탭 이름 변경 +editor.header.delete = 삭제 +editor.header.previous_tab = 이전 탭 +editor.header.next_tab = 다음 탭 +editor.header.delete.warning.title = Yeah, no. +editor.header.delete.warning.text = 스케치의 마지막 탭은 삭제할 수 없습니다. + +# Tabs +editor.tab.new = 새 탭 이름 +editor.tab.new.description = 파일의 새 탭 이름 +editor.tab.rename = 새 탭 이름 +editor.tab.rename.description = 파일의 새 탭 이름 + +# Sketch +editor.sketch.rename.description = 새 스케치 이름 + +editor.status.autoformat.no_changes = 변경할 서식이 없습니다. +editor.status.autoformat.finished = 자동 서식 적용 완료 +editor.status.find_reference.select_word_first = 레퍼런스에서 찾을 단어를 선택하세요. +editor.status.find_reference.not_available = "%s" 관련 레퍼런스가 없습니다. +editor.status.drag_and_drop.files_added.0 = 스케치에 추가된 파일이 없습니다. +editor.status.drag_and_drop.files_added.1 = 스케치에 1개의 파일이 추가되었습니다. +editor.status.drag_and_drop.files_added.n = 스케치에 %d개의 파일 추가되었습니다. +editor.status.saving = 저장 중... +editor.status.saving.done = 저장 완료. +editor.status.saving.canceled = 저장 취소. +editor.status.printing = 인쇄 중... +editor.status.printing.done = 인쇄 완료. +editor.status.printing.error = 인쇄 중 오류 발생. +editor.status.printing.canceled = 인쇄 취소. + + +# --------------------------------------- +# Contribution Panel + +contrib = 컨트리뷰션 매니저 +contrib.category = 카테고리: +contrib.filter_your_search = 검색 필터... +contrib.restart = 프로세싱 다시 시작하기 +contrib.unsaved_changes = 저장되지 않은 변경 사항이 발견되었습니다. +contrib.unsaved_changes.prompt = 정말 변경 사항을 저장하지 않고 프로세싱을 다시 시작하시겠습니까? +contrib.messages.remove_restart = 해당 아이템이 완전히 삭제된 후 프로세싱을 다시 시작해 주세요. +contrib.messages.install_restart = 해당 아이템이 완전히 설치된 후 프로세싱을 다시 시작해 주세요. +contrib.messages.update_restart = 해당 아이템이 완전히 업데이트된 후 프로세싱을 다시 시작해 주세요. +contrib.errors.list_download = 헤당 리스트의 파일을 다운로드 할 수 없습니다. +contrib.errors.list_download.timeout =연결시간 초과로 해당 리스트의 파일을 다운로드 할 수 없습니다. +contrib.errors.download_and_install = 다운로드 및 설치 중에 오류가 발생했습니다. +contrib.errors.description_unavailable = 제공된 추가설명이 없습니다. +contrib.errors.malformed_url = Processing.org에 잘못된 링크가 포함되어 파일을 다운로드 받을 수 없습니다. \n해당 라이브러리 웹사이트에 방문하사면 다운로드 받을 수 있습니다. +contrib.errors.needs_repackage = %s 라이브러리는 해당 프로세싱 버전에서 지원되지 않습니다. +contrib.errors.no_contribution_found = %s 파일을 다운로드 경로에서 찾을 수 없습니다. +contrib.errors.overwriting_properties = .properties 파일 덮어쓰기에 실패하였습니다. +contrib.errors.install_failed = 설치 오류 발생. +contrib.errors.update_on_restart_failed = %s 파일은 알 수 없는 오류로 재실행 후에도 사용할 수 없습니다. +contrib.errors.temporary_directory = 임시 디렉터리에 업데이트할 수 없습니다. +contrib.all = All +contrib.undo = 입력 취소 +contrib.remove = 삭제 +contrib.install = 설치 +contrib.progress.installing = 설치 중 +contrib.progress.starting = 시작 중 +contrib.progress.downloading = 다운로드 중 +contrib.download_error = 해당 파일 다운로드 중 에러 발생하였습니다. +contrib.unsupported_operating_system = 해당 파일 해당 컴퓨터의 운영체제를 지원하지 않습니다. %s의 웹페이지에 방문하여 확인해 보세요. + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = 오류 +editor.status.error.syntax = 구문 오류 - %s + +# --------------------------------------- +# Warnings + +warn.delete = 삭제 +warn.delete.sketch = 정말 해당 스케치를 삭제하시겠습니까? +warn.delete.sketch_last = 파일의 안전을 위해 Processing에서는 프로젝트 폴더 삭제를 지원하지 않습니다. \n파일 탐색기에서 프로젝트 폴더를 열어 삭제해 주세요. +warn.delete.file = 정말 "%s"를 삭제하시겠습니까? + + +# --------------------------------------- +# Update Check +update_check = 업데이트 +update_check.updates_available.core = 새 버전의 프로세싱 설치가 가능합니다. \n해당 다운로드 페이지로 지금 이동하시겠습니까? +update_check.updates_available.contributions = 설치된 컨트리뷰션(도구, 라이브러리, 모드, 예제) 중 일부가 업데이트되었습니다,\n 컨트리뷰션 매니저로 이동하여 확인하시겠습니까? + + +# --------------------------------------- +# Color Chooser +color_chooser = 색상 선택 diff --git a/app/utils/build/resources/main/PDE_nl.properties b/app/utils/build/resources/main/PDE_nl.properties new file mode 100644 index 0000000000..e94c448350 --- /dev/null +++ b/app/utils/build/resources/main/PDE_nl.properties @@ -0,0 +1,327 @@ + + +# --------------------------------------- +# Language: Dutch (Nederlands) (nl) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Bestand +menu.file.new = Nieuw +menu.file.open = Openen... +menu.file.sketchbook = Schetsboek +menu.file.sketchbook.empty = Leeg Schetsboek +menu.file.recent = Recent +menu.file.examples = Voorbeelden... +menu.file.close = Sluiten +menu.file.save = Opslaan +menu.file.save_as = Opslaan Als... +menu.file.export_application = Exporteren Applicatie... +menu.file.page_setup = Pagina-instelling +menu.file.print = Afdrukken... +menu.file.preferences = Instellingen... +menu.file.quit = Afsluiten + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Bewerken +menu.edit.undo = Ongedaan Maken +menu.edit.redo = Opnieuw Uitvoeren +menu.edit.cut = Knippen +menu.edit.copy = Kopiëren +menu.edit.copy_as_html = Kopiëren als HTML +menu.edit.paste = Plakken +menu.edit.select_all = Alles Selecteren +menu.edit.auto_format = Automatische Opmaak +menu.edit.comment_uncomment = Commentaar Aan/Uit +menu.edit.increase_indent = → Inspringen Vergroten +menu.edit.decrease_indent = ← Inspringen Verkleinen +menu.edit.find = Zoeken... +menu.edit.find_next = Volgende Zoeken +menu.edit.find_previous = Vorige Zoeken +menu.edit.use_selection_for_find = Gebruik Selectie voor Zoeken + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Uitvoeren +menu.sketch.present = Presenteren +menu.sketch.tweak = Tweak +menu.sketch.stop = Stoppen +# --- +menu.library = Bibliotheek Importeren... +menu.library.add_library = Bibliotheek Toevoegen... +menu.library.contributed = Bijgedragen +menu.library.no_core_libraries = Modus heeft geen standaard bibliotheken +# --- +menu.sketch = Schets +menu.sketch.show_sketch_folder = Toon Schets Map +menu.sketch.add_file = Bestand Toevoegen... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +# ... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Tools +menu.tools.color_selector = Kleur Selecteren... +menu.tools.create_font = Lettertype Maken... +menu.tools.archive_sketch = Schets Archiveren +menu.tools.fix_the_serial_lbrary = Seriële Bibliotheek Herstellen +menu.tools.install_processing_java = Installeren "processing-java" +menu.tools.add_tool = Tool Toevoegen... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Help +menu.help.about = Over Processing +menu.help.environment = Programmeeromgeving +menu.help.reference = Handleiding +menu.help.find_in_reference = Zoeken in Handleiding +menu.help.online = Online +menu.help.getting_started = Om te beginnen +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Bekende Problemen +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Veelgestelde Vragen +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = Over The Processing Foundation +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Ga naar Processing.org +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Ja +prompt.no = Nee +prompt.cancel = Annuleren +prompt.ok = OK +prompt.browse = Bladeren +prompt.export = Exporteren + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Een Processing schets openen... + +# Save (Frame) +save = Schets map opslaan als... +save.title = Wilt u wijzigingen die zijn aangebracht in deze schets opslaan voor het sluiten? +save.hint = Als u niet opslaat, zullen uw wijzigingen verloren gaan. +save.btn.save = Opslaan +save.btn.dont_save = Niet Opslaan + +# AppPreferences (Frame) +preferences = Instellingen +preferences.button.width = 90 +preferences.requires_restart = herstart van Processing vereist +preferences.sketchbook_location = Schetsboek locatie +preferences.sketchbook_location.popup = Schetsboek locatie +preferences.language = Taal +preferences.editor_and_console_font = Editor en Console lettertype +preferences.editor_and_console_font.tip = \ +Selecteer het gebruikte lettertype in de Editor en de Console.
\ +Alleen monospace lettertypes (dezelfde breedte voor elk karakter)
\ +mogen gebruikt worden, ook al is de lijst wellicht niet geheel correct. +preferences.editor_font_size = Editor lettergrootte +preferences.console_font_size = Console lettergrootte +preferences.background_color = Achtergrond kleur in Presenteer modus +preferences.background_color.tip = \ +Selecteer de achtergrond kleur in Presenteer modus.
\ +De Presenteer modus (te vinden in het Schets menu) wordt gebruikt
\ +om een schets op het volledige scherm te tonen. +preferences.use_smooth_text = Gebruik duidelijke tekst in Editor venster +preferences.enable_complex_text_input = Complexe tekstkarakters mogelijk maken +preferences.enable_complex_text_input_example = i.e. Japans +preferences.continuously_check = Continu controleren op fouten +preferences.show_warnings = Toon waarschuwingen +preferences.code_completion = Automatische aanvulling +preferences.trigger_with = Activeren met +preferences.cmd_space = Spatie +preferences.increase_max_memory = Verhogen maximaal beschikbare geheugen naar +preferences.delete_previous_folder_on_export = Vorige map verwijderen bij exporteren +preferences.hide_toolbar_background_image = Achtergrond van toolbar verbergen +preferences.check_for_updates_on_startup = Controleren op updates bij het opstarten +preferences.run_sketches_on_display = Uitvoeren schetsen op beeld +preferences.run_sketches_on_display.tip = \ +Stelt het beeld in waarop schetsen aanvankelijk te zien zijn.
\ +Zoals gebruikelijk, als het venster wordt verplaatst, zal het heropenen
\ +op die locatie. Wanneer echter gebruik wordt gemaakt van de Presenteer
\ +modus (volledig scherm), zal altijd het gekozen beeld worden gebruikt. +preferences.automatically_associate_pde_files = Automatisch associëren .pde bestanden met Processing +preferences.launch_programs_in = Programma's starten in +preferences.launch_programs_in.mode = modus +preferences.file = Meer instellingen kunnen direct worden aangepast in het bestand +preferences.file.hint = alleen aanpassen wanneer Processing niet actief is + +# Sketchbook Location (Frame) +sketchbook_location = Selecteer nieuwe schetsboek locatie + +# Sketchbook (Frame) +sketchbook = Schetsboek +sketchbook.tree = Schetsboek + +# examples (Frame) +examples = Examples + +# Export (Frame) +export = Exporteer Opties +export.platforms = Platforms +export.options = Opties +export.options.fullscreen = Volledig Scherm (Presenteer modus) +export.options.show_stop_button = Tonen Stop knop +export.description.line1 = Exporteren naar Applicatie creëert dubbel-klikbare, +export.description.line2 = zelfstandige applicaties voor de geselecteerde platforms. + +# Find (Frame) +find = Zoeken +find.find = Zoeken naar: +find.replace_with = Vervangen door: +find.ignore_case = Case negeren +find.all_tabs = Alle Tabbladen +find.wrap_around = Rondgaan +find.btn.replace_all = Alles Vervangen +find.btn.replace = Vervangen +find.btn.find_and_replace = Zoeken & Vervangen +find.btn.previous = Vorige +find.btn.find = Zoeken + +# Find in reference (Frame) +find_in_reference = Zoeken in Handleiding + +# File (Frame) +file = Selecteer een bestand om te kopiëren naar uw schets + +# Create Font (Frame) +create_font = Lettertype Maken + +# Color Selector (Frame) +color_selector = Kleur Selecteren + +# Archive Sketch (Frame) +archive_sketch = Schets archiveren als... + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Uitvoeren +toolbar.present = Presenteren +toolbar.stop = Stoppen +# --- +toolbar.new = Nieuw +toolbar.open = Openen +toolbar.save = Opslaan +# toolbar.export_application = Exporteren Applicatie +toolbar.add_mode = Modus toevoegen... + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Nieuw Tabblad +editor.header.rename = Naam wijzigen +editor.header.delete = Verwijderen +editor.header.previous_tab = Vorige Tabblad +editor.header.next_tab = Volgende Tabblad +editor.header.delete.warning.title = Waarschuwing +editor.header.delete.warning.text = U kunt het laatste tabblad van de laatst geopende schets niet verwijderen. + +# Tabs +editor.tab.new = Nieuwe Naam +editor.tab.new.description = Naam voor nieuw bestand +editor.tab.rename = Nieuwe Naam +editor.tab.rename.description = Nieuwe naam voor bestand + +# Sketch +editor.sketch.rename.description = Nieuwe naam voor schets + +editor.status.autoformat.no_changes = Geen wijzigingen nodig voor Automatische Opmaak. +editor.status.autoformat.finished = Automatische Opmaak gereed. +editor.status.find_reference.select_word_first = Selecteer eerst een woord om te zoeken in de handleiding. +editor.status.find_reference.not_available = Geen handleiding beschikbaar voor "%s". +editor.status.drag_and_drop.files_added.0 = Er zijn geen bestanden toegevoegd aan de schets. +editor.status.drag_and_drop.files_added.1 = Een bestand toegevoegd aan de schets. +editor.status.drag_and_drop.files_added.n = %d bestanden toegevoegd aan de schets. +editor.status.saving = Bezig met opslaan... +editor.status.saving.done = Opslaan gereed. +editor.status.saving.canceled = Opslaan geannuleerd. +editor.status.printing = Bezig met afdrukken... +editor.status.printing.done = Afdrukken gereed. +editor.status.printing.error = Fout tijdens het afdrukken. +editor.status.printing.canceled = Afdrukken geannuleerd. + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = Fout +editor.status.error.syntax = Fout - %s + +# --------------------------------------- +# Contribution Panel + +contrib = Bijdragen Manager +contrib.category = Categorie: +contrib.filter_your_search = Filter zoekresultaten... +contrib.restart = Processing herstarten +contrib.unsaved_changes = Niet opgeslagen wijzigingen gevonden +contrib.unsaved_changes.prompt = Weet u zeker dat u Processing wil herstarten zonder eerst op te slaan? +contrib.messages.remove_restart = Herstart Processing om het verwijderen van dit item te voltooien. +contrib.messages.install_restart = Herstart Processing om het installeren van dit item te voltooien. +contrib.messages.update_restart = Herstart Processing om het updaten van dit item te voltooien. +contrib.errors.list_download = De lijst met beschikbare bijdragen kon niet worden gedownload. +contrib.errors.list_download.timeout = Verbinding time out bij het downloaden van de lijst met bijdragen. +contrib.errors.download_and_install = Fout bij het downloaden en installeren. +contrib.errors.description_unavailable = Beschrijving niet beschikbaar. +contrib.errors.malformed_url = "De van Processing.org verkregen link is niet correct.\nU kunt nog steeds de bibliotheek handmatig installeren door\nde website van de bibliotheek te bezoeken +contrib.errors.needs_repackage = %s moet opnieuw worden ingepakt volgens de %s richtlijnen. +contrib.errors.no_contribution_found = Kan geen %s vinden in het gedownloade bestand. +contrib.errors.overwriting_properties = Fout bij het overschrijven van het .properties bestand. +contrib.errors.install_failed = Installatie mislukt. +contrib.errors.update_on_restart_failed = Update bij herstart van %s mislukt. +contrib.errors.temporary_directory = Kan niet schrijven naar een tijdelijke map. +contrib.all = Alles +contrib.undo = Ongedaan maken +contrib.remove = Verwijderen +contrib.install = Installeren +contrib.progress.installing = Bezig met installeren +contrib.progress.starting = Bezig met starten +contrib.progress.downloading = Bezig met downloaden +contrib.download_error = Fout bij het downloaden van de bijdrage. +contrib.unsupported_operating_system = Uw besturingssyteem wordt schijnbaar niet ondersteund. U kunt de website van de %s bibliotheek bezoeken voor meer informatie. + + +# --------------------------------------- +# Warnings + +warn.delete = Verwijderen +warn.delete.sketch = Weet u zeker dat u deze schets wil verwijderen? +warn.delete.sketch_last = Om je bestanden veilig te houden, wordt het verwijderen van de gehele schets niet ondersteund in Processing. \nOpen de schets map in je bestandsverkenner om deze te verwijderen. +warn.delete.file = Weet u zeker dat u "%s" wil verwijderen? + + +# --------------------------------------- +# Update Check +update_check = Update +update_check.updates_available.core = Een nieuwe versie van Processing is beschikbaar,\nwilt u de Processing download pagina bezoeken? +update_check.updates_available.contributions = Er zijn updates beschikbaar voor sommige van de door u geïnstalleerde bijdragen,\nwilt u nu de Bijdragen Manager openen? + +# --------------------------------------- +# Beta +beta.window.title = Welkom bij Beta +beta.title = Dankuwel voor het testen van deze Processing Beta! +beta.message = Deze preview release laat ons feedback verzamelen en problemen oplossen. **Sommige functies werken mogelijk niet zoals verwacht.** Als u problemen ondervindt, [post dan op het forum](https://discourse.processing.org) of [open een GitHub issue](https://github.com/processing/processing4/issues). +beta.button = Ok + +# --------------------------------------- +# Color Chooser +color_chooser = Kies een kleur... diff --git a/app/utils/build/resources/main/PDE_pt.properties b/app/utils/build/resources/main/PDE_pt.properties new file mode 100644 index 0000000000..4953fda3e3 --- /dev/null +++ b/app/utils/build/resources/main/PDE_pt.properties @@ -0,0 +1,265 @@ + + +# --------------------------------------- +# Language: Portuguese (pt) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Arquivo +menu.file.new = Novo +menu.file.open = Abrir... +menu.file.sketchbook = Sketchbook +menu.file.recent = Recentes +menu.file.examples = Exemplos... +menu.file.close = Fechar +menu.file.save = Guardar +menu.file.save_as = Guardar Como... +menu.file.export_application = Exportar Aplicação... +menu.file.page_setup = Configurar Página +menu.file.print = Imprimir... +menu.file.preferences = Preferências... +menu.file.quit = Sair + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Editar +menu.edit.undo = Desfazer +menu.edit.redo = Refazer +menu.edit.cut = Cortar +menu.edit.copy = Copiar +menu.edit.copy_as_html = Copiar como HTML +menu.edit.paste = Colar +menu.edit.select_all = Seleccionar Tudo +menu.edit.auto_format = Auto Formatar +menu.edit.comment_uncomment = Comentar/Descomentar +menu.edit.increase_indent = → Aumentar Indentação +menu.edit.decrease_indent = ← Diminuir Indentação +menu.edit.find = Procurar... +menu.edit.find_next = Procurar Seguinte +menu.edit.find_previous = Procurar Anterior +menu.edit.use_selection_for_find = Usar Selecção para Procurar + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Executar +menu.sketch.present = Apresentar +menu.sketch.tweak = Tweak +menu.sketch.stop = Parar +# --- +menu.library = Importar Biblioteca... +menu.library.add_library = Adicionar Biblioteca... +menu.library.contributed = Contribuidas +menu.library.no_core_libraries = O modo não tem bibliotecas incluídas +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Ver Pasta de Sketch +menu.sketch.add_file = Adicionar Ficheiro... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +# ... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Ferramentas +menu.tools.color_selector = Selector de Cor... +menu.tools.create_font = Criar Fonte... +menu.tools.archive_sketch = Arquivar Sketch +menu.tools.fix_the_serial_lbrary = Corrijir a Biblioteca Serial +menu.tools.install_processing_java = Instalar "processing-java" +menu.tools.add_tool = Adicionar Ferramenta... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Ajuda +menu.help.about = Acerca do Processing +menu.help.environment = Ambiente +menu.help.reference = Referência +menu.help.find_in_reference = Procurar na Referência +menu.help.online = Online +menu.help.getting_started = Primeiros Passos +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Resolução de Problemas +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Perguntas Mais Frequentes +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = A Processing Foundation +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Visitar Processing.org +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Sim +prompt.no = Não +prompt.cancel = Cancelar +prompt.ok = OK +prompt.browse = Procurar +prompt.export = Exportar + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Abrir um sketch de Processing... + +# Save (Frame) +save = Guardar pasta do sketch como... +save.title = Deseja guardar as alterções a este sketch antes de fechar? +save.hint = Se não guardar as suas alterações serão perdidas. +save.btn.save = Guardar +save.btn.dont_save = Não Guardar + +# AppPreferences (Frame) +preferences = Preferências +preferences.button.width = 80 +preferences.requires_restart = requer reiniciar o Processing +preferences.sketchbook_location = Localização do Sketchook +preferences.language = Língua +preferences.editor_and_console_font = Fonte do Editor e da Consola +preferences.editor_font_size = Tamanho da fonte do Editor +preferences.console_font_size = Tamanho da fonte da Consola +preferences.background_color = Côr de fundo em modo de Apresentação +preferences.use_smooth_text = Utilizar texto suavizado na janela do editor +preferences.enable_complex_text_input = Activar inserção de caracteres complexos +preferences.enable_complex_text_input_example = ex. Japonês +preferences.continuously_check = Verificação contínua de erros +preferences.show_warnings = Mostrar avisos +preferences.code_completion = Auto-completar de código +preferences.trigger_with = Activar com +preferences.cmd_space = espaço +preferences.increase_max_memory = Aumentar tamanho máximo de memória para +preferences.delete_previous_folder_on_export = Apagar pasta anterior ao exportar +preferences.hide_toolbar_background_image = Esconder imagem de fundo da Aba/Aba de ferramentas +preferences.check_for_updates_on_startup = Verificar por actualizações ao iniciar +preferences.run_sketches_on_display = Executar sketches no ecrã +preferences.run_sketches_on_display.tip = \ +Configura o ecrã onde os sketches se abrem inicialmente.
\ +Como habitual, ao mover a janela do sketch, esta volta a abrir
\ +na mesma localização. No entanto, quando em modo de apresentação
\ +(ecrã inteiro), este ecrã será sempre utilizado. +preferences.automatically_associate_pde_files = Automaticamente associar ficheiros .pde com o Processing +preferences.launch_programs_in = Executar aplicações em +preferences.launch_programs_in.mode = modo +preferences.file = Mais preferências podem ser configuradas directamente no ficheiro +preferences.file.hint = editar apenas quando o Processing não está a ser executado + +# Sketchbook Location (Frame) +sketchbook_location = Escolha a nova loclização do sketchbook + +# Export (Frame) +export = Opções de Exportação +export.platforms = Plataformas +export.options = Opções +export.options.fullscreen = Ecrã Inteiro (Modo de Apresentação) +export.options.show_stop_button = Mostrar botão de Parar +export.description.line1 = Exportar para Aplicação cria uma aplicação executavél, +export.description.line2 = para as plataformas seleccionadas. + +# Find (Frame) +find = Procurar +find.find = Procurar: +find.replace_with = Substituir por: +find.ignore_case = Ignorar Caixa +find.all_tabs = Todas as Abas +find.wrap_around = Continuar desde início +find.btn.replace_all = Substituir Todas +find.btn.replace = Substituir +find.btn.find_and_replace = Procurar e Substituir +find.btn.previous = Anterior +find.btn.find = Seguinte + +# Find in reference (Frame) +find_in_reference = Procurar na Referência + +# File (Frame) +file = Seleccionar uma imagem ou outro ficheiro de dados para copiar para o sketch + +# Create Font (Frame) +create_font = Criar Fonte + +# Color Selector (Frame) +color_selector = Selector de Côr + +# Archive Sketch (Frame) +archive_sketch = Arquivar sketch como... + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Executar +toolbar.present = Apresentar +toolbar.stop = Parar +# --- +toolbar.new = Novo +toolbar.open = Abrir +toolbar.save = Guardar +# toolbar.export_application = Exportar Aplicação +toolbar.add_mode = Adicionar modo... + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Nova Aba +editor.header.rename = Renomear +editor.header.delete = Apagar +editor.header.previous_tab = Aba Anterior +editor.header.next_tab = Aba Seguinte +editor.header.delete.warning.title = Ah, não. +editor.header.delete.warning.text = Não pode apagar a última aba do último sketch aberto. + +editor.status.autoformat.no_changes = Não foram necessárias alterações para a Auto Formatação. +editor.status.autoformat.finished = Auto Formatação completa. +editor.status.find_reference.select_word_first = Primeiro escolha uma palavra para procurar na referência. +editor.status.find_reference.not_available = Não existe referência disponivel para "%s". +editor.status.drag_and_drop.files_added.0 = Nenhum dos ficheiros foram adicionados ao sketch. +editor.status.drag_and_drop.files_added.1 = Um ficheiro adicionado ao sketch. +editor.status.drag_and_drop.files_added.n = %d ficheiros adicionados ao sketch. +editor.status.saving = A Guardar... +editor.status.saving.done = Guardado com sucesso. +editor.status.saving.canceled = Guardar cancelado. +editor.status.printing = A imprimir... +editor.status.printing.done = Impresso com sucesso. +editor.status.printing.error = Erro a imprimir. +editor.status.printing.canceled = Impressão cancelada. + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = Erro +editor.status.error.syntax = Erro - %s + + +# --------------------------------------- +# Contribution Panel + +contrib.category = Categoria: +contrib.filter_your_search = Filtrar a sua procura... +contrib.undo = Desfazer +contrib.remove = Refazer +contrib.install = Instalar +contrib.progress.starting = A iniciar +contrib.progress.downloading = A descarregar +contrib.download_error = Ocorreu um erro ao descarregar a contribuição. +contrib.unsupported_operating_system = O seu sistema operativo não parece ser suportado. Deve visitar a biblioteca %s para mais informação. + +# --------------------------------------- +# Warnings + +warn.delete = Apagar +warn.delete.sketch_folder = Tem a certeza de que deseja apagar este sketch?\nIsto irá remover a pasta inteira “%s”. +warn.delete.sketch_last = Para manter os seus ficheiros seguros, apagar a pasta inteira do sketch não é suportado no Processing.\nPor favor, abra a pasta do sketch no seu explorador de ficheiros para a apagar. +warn.delete.sketch_file = Tem a certeza de que deseja apagar “%s”? +warn.cannot_change_mode.title = Não é possível mudar de modo +warn.cannot_change_mode.body = Não é possível mudar de modo,\nporque o modo “%s” não é compatível com o modo atual. \ No newline at end of file diff --git a/app/utils/build/resources/main/PDE_ru.properties b/app/utils/build/resources/main/PDE_ru.properties new file mode 100644 index 0000000000..93566e7795 --- /dev/null +++ b/app/utils/build/resources/main/PDE_ru.properties @@ -0,0 +1,607 @@ + + +# --------------------------------------- +# Language: Russian (Русский) (ru) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Файл +menu.file.new = Создать +menu.file.open = Открыть... +menu.file.recent = Недавние +menu.file.sketchbook = Рабочая папка... +menu.file.sketchbook.empty = Пустая рабочая папка +menu.file.examples = Примеры... +menu.file.close = Закрыть +menu.file.save = Сохранить +menu.file.save_as = Сохранить как... +menu.file.export_application = Экспорт приложения... +menu.file.page_setup = Настройка страницы +menu.file.print = Печать... +menu.file.preferences = Параметры... +menu.file.quit = Выход + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Правка +menu.edit.undo = Отменить +menu.edit.redo = Повторить +menu.edit.action.addition = добавление +menu.edit.action.deletion = удаление +menu.edit.cut = Вырезать +menu.edit.copy = Копировать +menu.edit.copy_as_html = Скопировать как HTML +menu.edit.paste = Вставить +menu.edit.select_all = Выделить всё +menu.edit.auto_format = Автоформатирование +menu.edit.comment_uncomment = Закомментировать/Раскомментировать +menu.edit.increase_indent = → Увеличить отступ +menu.edit.decrease_indent = ← Уменьшить отступ +menu.edit.find = Найти... +menu.edit.find_next = Найти следущее +menu.edit.find_previous = Найти предыдущее +menu.edit.use_selection_for_find = Найти выделенное + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Запустить +menu.sketch.present = Режим презентации +menu.sketch.tweak = Изменить +menu.sketch.stop = Остановить +# --- +menu.library = Импортировать библиотеку... +menu.library.add_library = Добавить библиотеку... +menu.library.contributed = Вклад сообщества +menu.library.no_core_libraries = отсутствуют основные библиотеки +# --- +menu.sketch = Набросок +menu.sketch.show_sketch_folder = Показать папку с набросками +menu.sketch.add_file = Добавить файл... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Отладка +menu.debug.enable = Включить отладку +menu.debug.disable = Отключить отладку +#menu.debug.show_debug_toolbar = Показать панель отладки +#menu.debug.debug = Начать отладку +#menu.debug.stop = Остановить отладку +# --- +menu.debug.toggle_breakpoint = Поставить/снять точку останова +#menu.debug.list_breakpoints = Список точек останова +# --- +# used for both menus and toolbars +menu.debug.step = Шаг +menu.debug.step_into = Зайти в +menu.debug.step_out = Выйти из +menu.debug.continue = Продолжить +# --- +#menu.debug.print_stack_trace = Печать стека вызовов +#menu.debug.print_locals = Печать локальных переменных +#menu.debug.print_fields = Печать полей +#menu.debug.print_source_location = Печатать расположение источника +#menu.debug.print_threads = Друкувати потоки +# --- +#menu.debug.variable_inspector = Инспектор переменных +menu.debug.show_variables = Показать переменные +menu.debug.hide_variables = Спрятать переменные +#menu.debug.show_sketch_outline = Показать рамку наброска +#menu.debug.show_tabs_list = Показать список вкладок + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Инструменты +menu.tools.color_selector = Выбрать цвет... +menu.tools.create_font = Создать шрифты... +menu.tools.archive_sketch = Архивировать набросок +menu.tools.fix_the_serial_lbrary = Исправить библиотеку Serial +menu.tools.install_processing_java = Установить "processing-java" +menu.tools.add_tool = Добавить инструмент... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Помощь +menu.help.welcome = Добро пожаловать в Processing +menu.help.about = О Processing +menu.help.environment = Среда +menu.help.reference = Документация +menu.help.find_in_reference = Найти в документации +menu.help.libraries_reference = Документация библиотек +menu.help.tools_reference = Документация инструментов +menu.help.empty = (пусто) +menu.help.online = Онлайн +menu.help.getting_started = Начало работы (англ.) +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Решение проблем (англ.) +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Часто задаваемые вопросы (англ.) +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = The Processing Foundation (англ.) +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Постетить Processing.org (англ.) +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Да +prompt.no = Нет +prompt.cancel = Отменить +prompt.ok = ОК +prompt.browse = Просмотр +prompt.export = Экспорт + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Открыть в Processing... + +# Save (Frame) +save = Сохранить папку как... +save.title = Сохранить изменения %s перед закрытием? +save.hint = Несохранённые изменения будут потеряны. +save.btn.save = Сохранить +save.btn.dont_save = Не сохранять + +# Close (Frame) also used to prompt on non-mac machines +close.unsaved_changes = Сохранить изменения в %s? + +# AppPreferences (Frame) +preferences = Параметры +preferences.button.width = 95 +preferences.requires_restart = требуется перезапуск Processing +preferences.sketchbook_location = Расположение рабочей папки +preferences.sketchbook_location.popup = Расположение рабочей папки +preferences.language = Язык +preferences.editor_and_console_font = Шрифт редактора и консоли +preferences.editor_and_console_font.tip = Выбрать шрифт для использовании в редакторе и консоли.
Возможно использование только моноширинных шрифтов. +preferences.editor_font_size = Размер шрифта редактора +preferences.console_font_size = Размер шрифта консоли +preferences.zoom = Масштабирование интерфейса +preferences.zoom.auto = По умолчанию +preferences.background_color = Цвет фона в режиме презентации +preferences.background_color.tip = Выбрать фоновый цвет для режима презентации.
Режим презентации используется для полноэкранного просмотра
из меню набросок. +preferences.use_smooth_text = Рисовать сглаженный текст в окне редактора +preferences.enable_complex_text_input = Включить расширенное редактирование текста +preferences.enable_complex_text_input_example = напр. японский +preferences.continuously_check = Проверять на ошибки +preferences.show_warnings = Показать предупреждения +preferences.code_completion = Автодополнение кода +preferences.trigger_with = Запуск с помощью +preferences.cmd_space = Пробел +preferences.suggest_imports = Предлагать импорт +preferences.increase_max_memory = Увеличить лимит памяти для наброска +preferences.delete_previous_folder_on_export = Удалять предыдущую папку при экспорте +preferences.check_for_updates_on_startup = Разрешать проверку обновлений (см. ЧаВо для получения информации о используемых данных) +preferences.run_sketches_on_display = Запускать набросок на мониторе +preferences.run_sketches_on_display.tip = Задаёт монитор, на котором будут запускаться наброски.
Обычно, если окно перемещается, то оно будет перезапущено
на том месте, тем не менее при запуске в полноэкранном режиме
всегда используется выбранный монитор. +preferences.automatically_associate_pde_files = Автоматически ассоциировать файлы .pde с Processing +preferences.launch_programs_in = Запускать программы в +preferences.launch_programs_in.mode = Режим +preferences.file = В файле настроек можно найти больше параметров для настройки +preferences.file.hint = не редактируйте его при запущенном Processing + +# Sketchbook Location (Frame) +sketchbook_location = Выбрать новое раположение рабочей папки + +# Sketchbook (Frame) +sketchbook = Рабочая папка +sketchbook.tree = Рабочая папка + +# Examples (Frame) +examples.title = Примеры %s +examples.add_examples = Добавить... +examples.libraries = Библиотеки сообщества +examples.core_libraries = Библиотеки +examples.contributed = Примеры сообщества + +# Export (Frame) +export = Настройка экспорта +export.platforms = Платформы +export.options = Настройки +export.options.present = Режим презентации +export.options.show_stop_button = Показывать кнопку остановки +export.description.line1 = "Экспорт в приложение" создаёт интерактивное, +export.description.line2 = самостоятельное приложение для выбранных платформ. +export.unsaved_changes = Сохранить изменения перед экспортом? +export.notice.cancel.unsaved_changes = Экспорт отменён, сохраните сперва сделанные изменения. +export.notice.exporting = Экспорт приложения... +export.notice.exporting.done = Экспорт завершён. +export.notice.exporting.error = Ошибка при экспорте. +export.notice.exporting.cancel = Экспорт в приложение отменён. +export.tooltip.macos = Экспорт для macOS доступен только на macOS +export.full_screen = Во весь экран +export.embed_java = Встроенная Java +export.code_signing = Цифровая подпись +export.messages.is_read_only = Скетч доступен только для чтения +export.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nНужно сперва сохранить их в другом месте\nа затем попробовать заново. +export.messages.cannot_export = Экспорт невозможен +export.messages.cannot_export.description = Нельзя экспортировать несохранённый набросок. + +# Find (Frame) +find = Поиск +find.find = Найти: +find.replace_with = Заменить на: +find.ignore_case = Игнорировать регистр +find.all_tabs = Во всех вкладках +find.wrap_around = По всему документу +find.btn.replace_all = Заменить всё +find.btn.replace = Заменить +find.btn.replace_and_find = Найти и заменить +find.btn.previous = Предыдущий +find.btn.find = Найти + +# Find in reference (Frame) +find_in_reference = Найти в документации + +# File (Frame) +file = Выбрать + +# Create Font (Frame) +create_font = Создать шрифт +create_font.label = Этот инструмент предназначен для создания пользовательских шрифтов.\nВыберите шрифт, его размер и нажмите "ОК", для создания шрифта.\nОн будет сохранён в папке с наброском. +create_font.size = Размер +create_font.smooth = Сглаживание +create_font.characters = Символы... +create_font.character_selector = Выбор символа +create_font.character_selector.label = В стандартные набор символов включены bitmap-ы для Mac OS\nи Windows Latin. Включение всех символов увеличивает потребление памяти.\nДля улучшения ситуации подключайте необходимые блоки Unicode. +create_font.default_characters = Стандартные символы +create_font.all_characters = Все символы +create_font.specific_unicode = Определённые блоки Unicode +create_font.filename = Имя файла + +# Color Selector (Frame) +color_selector = Выбрать цвет + +# Archive Sketch (Frame) +archive_sketch = Архивировать скетч в... + +# Tweak Mode +tweak_mode = Режим редактирования +tweak_mode.save_before_tweak = Сохраните набросок перед переходом в режим редактирования. +tweak_mode.keep_changes.line1 = Сохранить изменения? +tweak_mode.keep_changes.line2 = Вы изменили настройки наброска. Желаете сохранить? + +# DebugTray +debugger.name = Имя +debugger.value = Значения +debugger.type = Тип + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Запустить +toolbar.present = Показать +toolbar.stop = Остановить +toolbar.debug = Отладить +# --- +toolbar.new = Новый +toolbar.open = Открыть +toolbar.save = Сохранить +# toolbar.export_application = Экспорт приложения +toolbar.add_mode = Добавить режим... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Продолжить +#toolbar.debug.step = Шаг +#toolbar.debug.step_into = Зайти в +#toolbar.debug.stop = Остановить +#toolbar.debug.toggle_breakpoints = Поставить/Убрать точку останова +#toolbar.debug.variable_inspector = Экран переменных + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Новая вкладка +editor.header.rename = Переименовать +editor.header.delete = Удалить +editor.header.previous_tab = Предыдущая вкладка +editor.header.next_tab = Следующая вкладка +editor.header.delete.warning.title = Да, нет. +editor.header.delete.warning.text = Нельзя удалить основную вкладку открытого наброска. + +# PopUp menu +editor.popup.jump_to_declaration = Перейти к определению +editor.popup.show_usage = Найти использование... +editor.popup.rename = Переименовать... + +# Tabs +editor.tab.new = Новое имя +editor.tab.new.description = Имя нового файла +editor.tab.rename = Новое имя +editor.tab.rename.description = Новое имя файла + +# Sketch +editor.sketch.rename.description = Имя нового наброска + +editor.status.autoformat.no_changes = Автоформатирования не требуется. +editor.status.autoformat.finished = Автоформатирование завершено. +editor.status.find_reference.select_word_first = Сначала выделите слово для поиска в документации. +editor.status.find_reference.not_available = Документация для "%s" недоступна. +editor.status.drag_and_drop.files_added.0 = В скетч не добавлено файлов. +editor.status.drag_and_drop.files_added.1 = Файл добавлен в скетч. +editor.status.drag_and_drop.files_added.n = В скетч добавлено %d файла(-ов). +editor.status.saving = Сохранение... +editor.status.saving.done = Сохранение завершено. +editor.status.saving.canceled = Сохранение отменено. +editor.status.printing = Печать... +editor.status.printing.done = Печать завершена. +editor.status.printing.error = Ошибка печати. +editor.status.printing.canceled = Печать отменена. +editor.status.copy_as_html = Код, форматированный в HTML, скопирован в буфер обмена. +editor.status.debug.busy = Отладчик занят... +editor.status.debug.halt = Отладчик остановлен. +editor.status.archiver.create = "%s" создан. +editor.status.archiver.cancel = Архивирование отменено. + +# Errors +editor.status.warning = Предупреждение +editor.status.error = Ошибка +editor.status.error_on = Ошибка в "%s" +editor.status.missing.default = Пропущен "%c" +editor.status.missing.semicolon = Пропущена ";" +editor.status.missing.left_sq_bracket = Пропущена "[" +editor.status.missing.right_sq_bracket = Пропущена "]" +editor.status.missing.left_paren = Пропущена "(" +editor.status.missing.right_paren = Пропущена ")" +editor.status.missing.left_curly_bracket = Пропущена "{" +editor.status.missing.right_curly_bracket = Пропущена "}" +editor.status.missing.add = Добавьте "%s" +editor.status.bad_curly_quote = Косые кавычки %s не работают. Используйте прямые. Ctrl-T для автозамены. +editor.status.reserved_words = "color" и "int" - зарезервированы и не могут быть использованы в качестве имён переменных +editor.status.undefined_method = Функция "%s(%s)" не определена +editor.status.undefined_constructor = Конструктор "%s(%s)" не определён +editor.status.empty_param = Функция "%s()" не имеет параметров +editor.status.wrong_param = Функция "%s()" ожидает параметры: "%s(%s)" +editor.status.undef_global_var = Глобальная переменная "%s" не определена +editor.status.undef_class = Класс "%s" не определён +editor.status.undef_var = Переменная "%s" не определена +editor.status.undef_name = Имя "%s" не может быть распознано +editor.status.unterm_string_curly = Строковый литерал не заключён в двойные кавычки. Косые кавычки %s не применимы. +editor.status.type_mismatch = Несовпадение типов "%s" и "%s" +editor.status.unused_variable = Локальная переменная "%s" нигде не используется +editor.status.uninitialized_variable = Локальная переменная "%s" не инициализирована +editor.status.no_effect_assignment = Присвоение переменной "%s" не имеет эффекта +editor.status.hiding_enclosing_type = Класс "%s" не может иметь имя наброска + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error.syntax = Синтаксическая ошибка - %s + +# Footer buttons +editor.footer.errors = Ошибки +editor.footer.errors.problem = Проблема +editor.footer.errors.tab = Вкладка +editor.footer.errors.line = Строка +editor.footer.console = Консоль + +# New handler +new.messages.is_read_only = Набросок только для чтения +new.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. + +# Rename handler +rename.messages.is_untitled = Набросок без названия +rename.messages.is_untitled.description = Сперва сохраните набросок, перед\n тем как его переименовывать +rename.messages.is_modified = Сохраните набросок, перед его переименованием. +rename.messages.is_read_only = Набросок только для чтения +rename.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. + +# Naming handler +name.messages.problem_renaming = Проблема переименования +name.messages.starts_with_dot.description = Имя не может начинаться с точки +name.messages.invalid_extension.description = ".%s" не допустимое расширениие. +name.messages.main_java_extension.description = Первая вкладка не может быть %s файлом.\n(Воспользуйтесь другой, "правильной" средой\nпрограммирования?) +name.messages.new_sketch_exists = Переименование невозможно +name.messages.new_sketch_exists.description = Файл "%s" уже существует в\n"%s" +name.messages.new_folder_exists = Переименование невозможно +name.messages.new_folder_exists.description = Набросок(или папка) "%s" уже существует. +name.messages.error = Ошибка +name.messages.no_rename_folder.description = Не удалось переименовать папку наброска. +name.messages.no_rename_file.description = Не удалось переименовать "%s" на "%s" +name.messages.no_create_file.description = Не удалось создать файл "%s"\nв "%s" + +# Delete handler +delete.messages.cannot_delete = Нельзя удалить +delete.messages.cannot_delete.description = Нельзя удалить несохранённый набросок. +delete.messages.cannot_delete.file = Не удалось +delete.messages.cannot_delete.file.description = Не получилось удалить +delete.messages.is_read_only = Набросок открыт "только для чтения" +delete.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. + +# Save handler +save_file.messages.is_read_only = Набросок только для чтения +save_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +save_file.messages.sketch_exists = Набросок уже существует +save_file.messages.sketch_exists.description = Набросок с очищенным именем\n“%s” уже существует. +save_file.messages.tab_exists = Не удалось сохранить +save_file.messages.tab_exists.description = Нельзя сохранить набросок "%s"\n. Вкладка с таким именем уже открыта +save_file.messages.recursive_save = Сохранение в стиле Боргеса +save_file.messages.recursive_save.description = Нельзя сохранить набросок в папку внутри\nсамого себя. Будет циклическая зависимость. + +# Add handler +add_file.messages.is_read_only = Набросок "только для чтения" +add_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +add_file.messages.confirm_replace = Заменить существующюю версию %s? +add_file.messages.error_adding = Ошибка при добавлении файла +add_file.messages.cannot_delete.description = Не получилось удалить существующий файл '%s'. +add_file.messages.cannot_add.description = Не удалось добавить '%s' в набросок. +add_file.messages.same_file = Меня не обдуришь +add_file.messages.same_file.description = Этот файл уже был скопирован в то место\nкуда вы пытаетесь его скопировать.\nНичего не будет сделано. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Плохая папка сборки +temp_dir.messages.bad_build_folder.description = Не удалось найти место для сборки. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Набросок не найден +ensure_exist.messages.missing_sketch.description = Папка с наброском не найдена.\nПопробуем сохранить заново, некоторые\nизменения возможно будут утрачены. +ensure_exist.messages.unrecoverable = Не удалось востановить набросок +ensure_exist.messages.unrecoverable.description = Не удалось повторно сохранить набросок. У вас могут возникнуть трудности,\nпри редактировании в внешнем текстовом редакторе. + +# Check name +check_name.messages.is_name_modified = Имя наброска было изменено. Имена набросков могут состоять\nтолько из ASCII-символов и цифр (но не могут начинаться с цифры).\nТакже имя не должно быть больше 64-ёх + +# External changes detector +change_detect.reload.title=Вкладка изменена вне приложения +change_detect.reload.question="%s" изменена другим приложением. +change_detect.reload.comment=Оставить или перезагрузить изменения?\nВ любом случае файл будет сохранён в папке с наброском. +change_detect.button.keep=Оставить +change_detect.button.load_new=Перезагрузить +change_detect.delete.title=Вкладка удалена вне программы +change_detect.delete.question="%s" пропала из папки с работами. +change_detect.delete.comment=Хотите пересохранить или удалить набросок? +change_detect.button.discard=Удалить +change_detect.button.resave=Пересохранить + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Управление расширениями +contrib.manager_title.update = Управление обновлениями +contrib.manager_title.mode = Управление режимами +contrib.manager_title.tool = Управление инструментами +contrib.manager_title.library = Управление библиотеками +contrib.manager_title.examples = Управление примерами +contrib.category = Категория: +contrib.filter_your_search = Фильтр поиска... +contrib.show_only_compatible.mode = Показать только совместимые режимы +contrib.show_only_compatible.tool = Показать только совместимые инструменты +contrib.show_only_compatible.library = Показать только совместимые библиотеки +contrib.show_only_compatible.examples = Показать только совместимые примеры +contrib.show_only_compatible.update = Показать только совместимые обновления +contrib.restart = Перезапустить Processing +contrib.unsaved_changes = Остались несохранённые изменения +contrib.unsaved_changes.prompt = Вы уверены, что хотите перезапустить Processing, не сохранив изменений? +contrib.messages.remove_restart = Перезапустите Processing, для завершения удаления расширения. +contrib.messages.install_restart = Перезапустите Processing, для завершения установки расширения. +contrib.messages.update_restart = Перезапустите Processing, для завершения обновления расширения. +contrib.errors.list_download = Ну удалось загрузить список доступных расширений. +contrib.errors.list_download.timeout = Тайм-аут соединения при загрузке списка расширений. +contrib.errors.download_and_install = Ошибка при загрузке и установке %s. +contrib.errors.description_unavailable = Описание недоступно. +contrib.errors.malformed_url = Ссылка полученная с Processing.org, не рабочая.\nЭту библиотеку всё ещё можно установить вручную\nзагрузив её с сайта. +contrib.errors.needs_repackage = %s требует правильной пересборки %s. +contrib.errors.no_contribution_found = Не удалось найти %s в загруженном файле. +contrib.errors.overwriting_properties = Ошибка сохранения файла .properties. +contrib.errors.install_failed = Установка не удалась. +contrib.errors.update_on_restart_failed = Не удалась установка обновления %s при перезапуске. +contrib.errors.temporary_directory = Не удалась запись во временную папку. +contrib.errors.contrib_download.timeout = Тайм-аут соединения при загрузке %s. +contrib.errors.no_internet_connection = Нет подключения к сети. +contrib.status.downloading_list = Список загрузок расширений... +contrib.status.connecting = Соединение... +contrib.status.done = Готово. +contrib.all = Всё +contrib.undo = Отменить +contrib.remove = Удалить +contrib.install = Установить +contrib.progress.installing = Установка +contrib.progress.starting = Начинаем +contrib.progress.downloading = Загрузка +contrib.download_error = Произошла ошибка при загрузке расширений. +contrib.unsupported_operating_system = Ваша система не поддерживается. Посетите %s для получения подробной информации. +contrib.category.3d = 3D +contrib.category.animation = Анимация +contrib.category.data = Данные +contrib.category.geometry = Геометрия +contrib.category.gui = Интерфейс +contrib.category.hardware = Аппаратное обеспечение +contrib.category.i_o = Ввод/Вывод +contrib.category.math = Математика +contrib.category.simulation = Симуляция +contrib.category.sound = Звук +contrib.category.typography = Типография +contrib.category.utilities = Утилиты +contrib.category.video_vision = Видео +contrib.category.other = Остальное + +# Install on Startup +contrib.startup.errors.download_install = Ошибка при загрузке и установке %s +contrib.startup.errors.temp_dir = Не удалась запись во временную папку при загрузке и установке %s +contrib.startup.errors.new_marker = Метка не обновлённых расширений не похожа на %s. Возможно потребуется обновление вручную... + +# Install on Import +contrib.import.dialog.title = Пропущены доступные бибиотеки +contrib.import.dialog.primary_text = Для следующие импортированных библиотек доступны обновления, которые ещё не установлены. +contrib.import.dialog.secondary_text = Хотите установить их сейчас? +contrib.import.progress.download = Загрузка %s... +contrib.import.progress.install = Установка %s... +contrib.import.progress.done = %s было установлено. +contrib.import.progress.final_list = Были устновлены следующие библиотеки: +contrib.import.errors.link = Ошибка: у библиотеки %s странная ссылка для загрузки. + +# --------------------------------------- +# Warnings + +warn.delete = Удалить +warn.delete.sketch = Вы уверены, что хотите удалить эскиз? +warn.delete.sketch_last = Чтобы сохранить ваши файлы в безопасности, удаление всей папки с наброском не поддерживается в Processing.\nПожалуйста, откройте папку с наброском в проводнике, чтобы удалить её. +warn.delete.file = Вы уверены, что хотите удалить "%s"? +warn.cannot_change_mode.title = Нельзя сменить режим +warn.cannot_change_mode.body = Не получается изменить режим,\nтак как "%s" не совместим с текущим режимом. + + +# --------------------------------------- +# Update Check + +update_check = Обновить +update_check.updates_available.core = Доступна новая версия Processing,\nхотите перейти на страницу загрузки Processing? +update_check.updates_available.contributions = Доступны обновления сообщества,\nхотите перейти в менеджер обновлений сообщества? + + +# --------------------------------------- +# Color Chooser + +color_chooser = Выбрать цвет +color_chooser.select = Выбрать + +# --------------------------------------- +# Movie Maker + +movie_maker = Генератор видео +movie_maker.title = Генератор QuickTime +movie_maker.blurb = Этот инструмент делает QuickTime видео из последовательности изображений.

Для недопущения появления артефактов от пересжатеия изобажений в видео
используйте TIFF, TGA (из Processing) или PNG форматы.

Изображения TIFF и TGA обработаются быстрее, но получившееся видео будет занимать больше места на диске:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG изображения меньше, но набросок будет работать медленно:
saveFrame("frames/####.png");

Код на основе QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. Все права защищены.
+movie_maker.image_folder_help_label = Перетяните папку с изображениями в поле ниже: +movie_maker.choose_button = Выбрать... +movie_maker.select_image_folder = Выбрать папку с изображениями... +movie_maker.sound_file_help_label = Перенесите файл (.au, .aiff, .wav, .mp3) в поле ниже: +movie_maker.select_sound_file = Выбрать звуковой файл... + +movie_maker.create_movie_button = Создать видео... +movie_maker.save_dialog_prompt = Сохранить видео как... +movie_maker.width = Ширина: +movie_maker.height = Высота: +movie_maker.compression = Сжатие: +movie_maker.compression.animation = Анимация +movie_maker.compression.jpeg = JPEG +movie_maker.compression.png = PNG +movie_maker.framerate = Частота кадров: +movie_maker.orig_size_button = Размер, как у оригинала +movie_maker.orig_size_tooltip = Отметьте флажок, если папка уже содержит видео правильного размера. + +movie_maker.error.avoid_tiff = Попробуйте TGA или PNG вместо TIFF. +movie_maker.error.badnumbers = Ширина и высота должны быть натуральными числами; частота кадров должна быть больше нуля. +movie_maker.error.cannot_read = Не удалось прочитать %s. +movie_maker.error.cannot_read_maybe_bad = Не удалось прочитать %s; файл может быть повреждён. +movie_maker.error.movie_failed = Не удалось создать видео QuickTime. +movie_maker.error.need_input = Нужно сначала выбрать папку с изображениями, звуковыми файлами или всем сразу. +movie_maker.error.no_images_found = Не найдены файлы изображений. +movie_maker.error.sorry = Извините +movie_maker.error.unknown_tga_format = Неизвестный формат .tga для %s. + +movie_maker.progress.creating_file_name = Создаётся %s. +movie_maker.progress.creating_output_file = Создаётся выходной файл +movie_maker.progress.initializing = Инициализация... +movie_maker.progress.processing = Обработка %s. diff --git a/app/utils/build/resources/main/PDE_tr.properties b/app/utils/build/resources/main/PDE_tr.properties new file mode 100644 index 0000000000..073317560a --- /dev/null +++ b/app/utils/build/resources/main/PDE_tr.properties @@ -0,0 +1,244 @@ + + +# --------------------------------------- +# Language: Türkçe (Turkish) (tr) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Dosya +menu.file.new = Yeni +menu.file.open = Aç... +menu.file.recent = En son +menu.file.sketchbook = Sketchbook... +menu.file.sketchbook.empty = Boş Sketchbook +menu.file.examples = Örnekler... +menu.file.close = Kapat +menu.file.save = Kaydet +menu.file.save_as = Farklı Kaydet +menu.file.export_application = Dışa Aktar +menu.file.page_setup = Sayfa Yapısı +menu.file.print = Yazdır +menu.file.preferences = Tercihler +menu.file.quit = Çıkış + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Düzenle +menu.edit.undo = Geri Al +menu.edit.redo = İleri Al +menu.edit.cut = Kes +menu.edit.copy = Kopyala +menu.edit.copy_as_html = HTML olarak Kopyala +menu.edit.paste = Yapıştır +menu.edit.select_all = Tümünü Seç +menu.edit.auto_format = Otomatik Biçimlendir +menu.edit.comment_uncomment = Yorumla/Yorumu Kaldır +menu.edit.increase_indent = → Girintiyi Artır +menu.edit.decrease_indent = ← Girintiyi Azalt +menu.edit.find = Bul.. +menu.edit.find_next = Sonrakini Bul +menu.edit.find_previous = Öncekini Bul +menu.edit.use_selection_for_find = Seçimi Bul + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Çalıştır +menu.sketch.present = Sunum Yap +menu.sketch.tweak = Ayar Çek +menu.sketch.stop = Durdur +# --- +menu.library = Kütüphane... +menu.library.add_library = Kütüphane Ekle... +menu.library.contributed = Yüklenenler +menu.library.no_core_libraries = Esas mod kütüphaneleri yoktur +# --- +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Sketch Klasörünü Görüntüle +menu.sketch.add_file = Dosya Ekle... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +# ... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Araçlar +menu.tools.color_selector = Renk Seçici +menu.tools.create_font = Yazı Tipi Oluştur... +menu.tools.archive_sketch = Sketch'i Arşivle +menu.tools.fix_the_serial_lbrary = "Serial Kütüphanesi"ni Onar... +menu.tools.install_processing_java = "Processing-Java"yı Yükle... +menu.tools.add_tool = Araç Ekle... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Yardım +menu.help.about = Processing Hakkında (en) +menu.help.environment = Ortam (en) +menu.help.reference = Referanslar (en) +menu.help.find_in_reference = Referanslarda Bul (en) +menu.help.online = Çevrimiçi +menu.help.getting_started = Başlarken (en) +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Sorun Giderme (en) +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Sıkça Sorulan Sorular (en) +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = "Processing Vakfı" (en) +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Processing.org'u Ziyaret Et (en) +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Evet +prompt.no = Hayır +prompt.cancel = İptal +prompt.ok = Tamam +prompt.browse = Gözat +prompt.export = Dışa Aktar + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Bir Processing Sketch'i Aç... + +# Save (Frame) +save = Sketch Dosyasını Kaydet... +save.title = Kapatmadan önce yapılan son değişikleri kaydetmek istiyor musunuz? +save.hint = Kaydedilmeyen değişiklikler kaybolur +save.btn.save = Kaydet +save.btn.dont_save = Kaydetme + +# AppPreferences (Frame) +preferences = Tercihler +preferences.button.width = 110 +preferences.requires_restart = Processing'i yeniden başlatmalısınız +preferences.sketchbook_location = Sketchbook'un Konumu +preferences.language = Dil +preferences.editor_and_console_font = Editör ve Konsol Yazı Tipi +preferences.editor_font_size = Editör Yazı Tipi Boyutu +preferences.console_font_size = Konsol Yazı Tipi Boyutu +preferences.background_color = Sunum sırasındaki arkaplan rengi +preferences.use_smooth_text = Editör penceresinde yazıyı yumuşat +preferences.enable_complex_text_input = Latin olmayan karakter girişini etkinleştir +preferences.enable_complex_text_input_example = örn.: Japonca, +preferences.continuously_check = Hataları sürekli tespit et +preferences.show_warnings = Uyarıları göster +preferences.code_completion = Otomatik kod tamamlama +preferences.trigger_with = ile Başlat +preferences.cmd_space = Boşluk +preferences.increase_max_memory = Kullanılabilir maksimum hafızayı artır +preferences.delete_previous_folder_on_export = Aktarırken önceki uygulama klasörünü sil +preferences.hide_toolbar_background_image = Araç çubuğu arkaplan görselini gizle +preferences.check_for_updates_on_startup = Başlangıçta güncellemeleri denetle +preferences.run_sketches_on_display = Ekranda çalışan sketch sayısı +preferences.automatically_associate_pde_files = .pde dosyalarını otomatik olarak Processing'le ilişkilendir +preferences.launch_programs_in = Programları çalıştır +preferences.launch_programs_in.mode = Mod +preferences.file = Dosya menüsünde bir çok ayarı düzenleyebilirsiniz +preferences.file.hint = Tercihleri düzenlemeden önce Processing Sketchlerini kapatın + +# Sketchbook Location (Frame) +sketchbook_location = Sketchbook'un konumunu seç + +# Sketchbook (Frame) +sketchbook = Sketchbook +sketchbook.tree = Sketchbook Ağacı +# examples (Frame) +examples = Örnekler + +# Export (Frame) +export = Aktarım Seçenekleri +export.platforms = Platformlar +export.options = Seçenekler +export.options.fullscreen = Tam Ekran (Sunum Modu) +export.options.show_stop_button = Durdur butonunu göster +export.description.line1 = Uygulama Aktarımı iki platformda da bağımsız +export.description.line2 = olarak çalışabilen uygulamalar oluşturabilir. + +# Find (Frame) +find = Bul +find.find = Bul: +find.replace_with = ile Değiştir: +find.ignore_case = Büyük/Küçük Harf'i Yoksay +find.all_tabs = Tüm Sekmelerde +find.wrap_around = Başa Dön +find.btn.replace_all = Tümünü Değiştir +find.btn.replace = Değiştir +find.btn.find_and_replace = Bul ve Değiştir +find.btn.previous = Önceki +find.btn.find = Bul + +# Find in reference (Frame) +find_in_reference = Referans Bul (en) + +# File (Frame) +file = Sketch'e eklemek için görüntü veya başka bir data dosyası seç + +# Create Font (Frame) +create_font = Yazı Tipi Oluştur + +# Color Selector (Frame) +color_selector = Renk Seçici + +# Archive Sketch (Frame) +archive_sketch = ... olarak Arşivle + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Çalıştır +toolbar.present = Sunum Yap +toolbar.stop = Durdur +# --- +toolbar.new = Yeni +toolbar.open = Aç +toolbar.save = Kaydet +# toolbar.export_application = Uygulama Aktarımı +toolbar.add_mode = Mod ekle... + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Yeni Sekme +editor.header.rename = Yeniden İsimlendir +editor.header.delete = Sil +editor.header.previous_tab = Önceki Sekme +editor.header.next_tab = Sonraki Sekme +editor.header.delete.warning.title = Evet, hayır. +editor.header.delete.warning.text = Aktif sketchteki son sekmeyi silemezsin. + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = Hata +editor.status.error.syntax = Hata - %s + +# --------------------------------------- +# Contribution Panel + +contrib.category = Kategori: +contrib.filter_your_search = Aramayı Filtrele... + +# --------------------------------------- +# Warnings + +warn.delete = Sil +warn.delete.sketch_folder = Bu sketch'i silmek istediğinizden emin misiniz?\nBu işlem “%s” klasörünün tamamını silecektir. +warn.delete.sketch_last = Dosyalarınızı güvende tutmak için, tüm sketch klasörünü silmek Processing'de desteklenmemektedir.\nLütfen bu klasörü silmek için dosya gezgininizi kullanın. +warn.delete.sketch_file = “%s” dosyasını silmek istediğinizden emin misiniz? +warn.cannot_change_mode.title = Mod değiştirilemiyor +warn.cannot_change_mode.body = Mod değiştirilemiyor,\nçünkü “%s” modu mevcut modla uyumlu değil. \ No newline at end of file diff --git a/app/utils/build/resources/main/PDE_uk.properties b/app/utils/build/resources/main/PDE_uk.properties new file mode 100644 index 0000000000..aeb957f777 --- /dev/null +++ b/app/utils/build/resources/main/PDE_uk.properties @@ -0,0 +1,654 @@ + + +# --------------------------------------- +# Language: Ukrainian (Українська) (uk) +# --------------------------------------- + + +font.family.sans = Processing Sans +font.family.mono = Source Code Pro + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = Файл +menu.file.new = Створити +menu.file.open = Відкрити... +menu.file.recent = Відкрити останні +menu.file.sketchbook = Ескізник... +menu.file.sketchbook.empty = Очистити ескізник +menu.file.examples = Приклади... +menu.file.close = Закрити +menu.file.save = Зберегти +menu.file.save_as = Зберегти як... +menu.file.export_application = Експортувати застосунок... +menu.file.page_setup = Параметри сторінки +menu.file.print = Друк... +menu.file.preferences = Налаштування... +menu.file.quit = Вийти + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = Редагування +menu.edit.undo = Скасувати +menu.edit.redo = Повторити +menu.edit.redo.keystroke.macos = shift meta pressed Z +menu.edit.redo.keystroke.windows = ctrl pressed Y +menu.edit.redo.keystroke.linux = shift ctrl pressed Z +menu.edit.action.addition = додавання +menu.edit.action.deletion = видалення +menu.edit.cut = Вирізати +menu.edit.copy = Копіювати +menu.edit.copy_as_html = Копіювати як HTML +menu.edit.paste = Вставити +menu.edit.select_all = Виділити все +menu.edit.auto_format = Автоформатування +menu.edit.comment_uncomment = Коментувати/Розкоментувати +menu.edit.comment_uncomment.keystroke.macos = meta pressed SLASH +menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH +menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH +menu.edit.increase_indent = → Збільшити відступ +menu.edit.increase_indent.keystroke.macos = meta pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET +menu.edit.decrease_indent = ← Зменшити відступ +menu.edit.decrease_indent.keystroke.macos = meta pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET +menu.edit.find = Знайти... +menu.edit.find_next = Знайти наступне +menu.edit.find_previous = Знайти попереднє +menu.edit.use_selection_for_find = Шукати виділене + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = Запустити +menu.sketch.present = Режим презентації +menu.sketch.tweak = Модифікувати +menu.sketch.stop = Зупинити +# --- +menu.library = Імпортувати бібліотеку... +# menu.library.add_library = Додати бібліотеку... +menu.library.manage_libraries = Керувати бібліотеками... +menu.library.contributed = Користувацькі +menu.library.no_core_libraries = у режиму немає основних бібліотек +# --- +menu.sketch = Ескіз +menu.sketch.show_sketch_folder = Показати папку ескізу +menu.sketch.add_file = Додати файл... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = Налагодження +menu.debug.enable = Увімкнути налагоджувач +menu.debug.disable = Вимкнути налагоджувач +#menu.debug.show_debug_toolbar = Показати панель налагодження +#menu.debug.debug = Почати налагодження +#menu.debug.stop = Зупинити налагодження +# --- +menu.debug.toggle_breakpoint = Додати / вилучити точку зупинки +#menu.debug.list_breakpoints = Показати список точок зупинки +# --- +# used for both menus and toolbars +menu.debug.step = Крок +menu.debug.step.keystroke.macos = meta pressed J +menu.debug.step.keystroke.windows = ctrl pressed J +menu.debug.step.keystroke.linux = ctrl pressed J +menu.debug.step_into = Крок із заходом +menu.debug.step_into.keystroke.macos = shift meta pressed J +menu.debug.step_into.keystroke.windows = shift ctrl pressed J +menu.debug.step_into.keystroke.linux = shift ctrl pressed J +menu.debug.step_out = Крок із виходом +menu.debug.step_out.keystroke.macos = meta alt pressed J +menu.debug.step_out.keystroke.windows = ctrl alt pressed J +menu.debug.step_out.keystroke.linux = ctrl alt pressed J +menu.debug.continue = Продовжити +# --- +#menu.debug.print_stack_trace = Друкувати стек викликів +#menu.debug.print_locals = Друкувати локальні змінні +#menu.debug.print_fields = Друкувати поля +#menu.debug.print_source_location = Друкувати розташування джерела +#menu.debug.print_threads = Друкувати потоки +# --- +#menu.debug.variable_inspector = Інспектор змінних +menu.debug.show_variables = Показати змінні +menu.debug.hide_variables = Приховати змінні +#menu.debug.show_sketch_outline = Показати начерк ескізу +#menu.debug.show_tabs_list = Показати список вкладок + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = Інструменти +menu.tools.color_selector = Вибрати колір... +menu.tools.create_font = Створити шрифт... +menu.tools.archive_sketch = Архівувати ескіз +menu.tools.fix_the_serial_lbrary = Виправити Serial Library +menu.tools.install_processing_java = Встановити "processing-java" +# menu.tools.add_tool = Додати інструмент... +menu.tools.manage_tools = Керувати інструментами... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = Довідка +menu.help.welcome = Ласкаво просимо до Processing +menu.help.about = Про Processing +menu.help.environment = Середовище +menu.help.reference = Документація +menu.help.find_in_reference = Знайти у документації +menu.help.libraries_reference = Документація бібліотек +menu.help.tools_reference = Документація інструментів +menu.help.empty = (порожньо) +menu.help.online = Онлайн +menu.help.getting_started = Перші кроки (англ.) +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Вирішення проблем (англ.) +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Часті питання (англ.) +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = The Processing Foundation (англ.) +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Відвідати Processing.org (англ.) +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Так +prompt.no = Ні +prompt.cancel = Скасувати +prompt.ok = ОК +prompt.browse = Огляд +prompt.export = Експортувати + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Відкрити ескіз Processing... + +# Save (Frame) +save = Зберегти папку ескізу як... +save.title = Зберегти зміни до %s перед закриттям? +save.hint = Якщо не зберегти зміни, їх буде втрачено. +save.btn.save = Зберегти +save.btn.dont_save = Не зберігати + +# Close (Frame) also used to prompt on non-macOS machines +close.unsaved_changes = Зберегти зміни до %s? + +# AppPreferences (Frame) +preferences = Налаштування +preferences.button.width = 95 +preferences.requires_restart = потрібен перезапуск Processing +preferences.sketchbook_location = Місцезнаходження ескізника +preferences.sketchbook_location.popup = Місцезнаходження ескізника +preferences.language = Мова +preferences.editor_and_console_font = Шрифт редактора і консолі +preferences.editor_and_console_font.tip = Виберіть шрифт, що використовуватиметься у редакторі та консолі.
Можна використовувати лише моноширинні шрифти. +preferences.editor_font_size = Розмір шрифту редактора +preferences.console_font_size = Розмір шрифту консолі +preferences.zoom = Розмір інтерфейсу +preferences.zoom.auto = Автоматичний +preferences.background_color = Колір фону в режимі презентації +preferences.background_color.tip = Виберіть фоновий колір для режиму презентації.
Режим презентації використовується для повноекранної презентації ескізу
і доступний з меню Ескіз. +preferences.use_smooth_text = Використовувати згладжений текст у вікні редактора +preferences.enable_complex_text_input = Увімкнути введення складного тексту +preferences.enable_complex_text_input_example = напр. японська +preferences.continuously_check = Постійно перевіряти на помилки +preferences.show_warnings = Показувати попередження +preferences.code_completion = Доповнення коду за допомогою +preferences.trigger_with = Запуск за допомогою +preferences.cmd_space = Пробіл +preferences.suggest_imports = Пропонувати інструкції import +preferences.increase_max_memory = Збільшити максимальну доступну пам’ять до +preferences.delete_previous_folder_on_export = Видаляти попередню папку при експортуванні +preferences.check_for_updates_on_startup = Дозволяти перевірку на оновлення (див. ЧаПи щодо інформації, яка передається) +preferences.run_sketches_on_display = Запускати ескізи на моніторі +preferences.run_sketches_on_display.tip = Задає монітор, де спочатку розміщені ескізи.
Якщо вікно ескізу буде переміщено, воно відкриється у тому ж
місці, але у режимі презентації (на повний екран) завжди
використовуватиметься цей монітор. +preferences.automatically_associate_pde_files = Автоматично асоціювати файли .pde з Processing +preferences.launch_programs_in = Запускати програми у режимі + +# Intentionally left blank +# In Ukrainian "launch programs in mode X" looks nicer than "launch programs in X mode" +preferences.launch_programs_in.mode = + +preferences.file = Інші налаштування можна вручну редагувати у файлі +preferences.file.hint = не редагувати, коли Processing запущено! + +# Sketchbook Location (Frame) +sketchbook_location = Виберіть нове місцезнаходження ескізника + +# Sketchbook (Frame) +sketchbook = Ескізник +sketchbook.tree = Ескізник + +# Examples (Frame) +examples.title = Приклади %s +examples.add_examples = Додати приклади... +examples.libraries = Користувацькі бібліотеки +examples.core_libraries = Бібліотеки +examples.contributed = Користувацькі приклади + +# Export (Frame) +export = Налаштування експортування +export.platforms = Платформи +export.options = Налаштування +export.options.present = Режим презентації +export.options.show_stop_button = Показувати кнопку зупинки +export.description.line1 = "Експортування застосунку" створює інтерактивні, +export.description.line2 = незалежні застосунки для обраних платформ. +export.unsaved_changes = Зберегти зміни перед тим, як експортувати? +export.notice.cancel.unsaved_changes = Експортування скасовано, спершу потрібно зберегти зміни. +export.notice.exporting = Експортую застосунок... +export.notice.exporting.done = Експортування завершено. +export.notice.exporting.error = Помилка експортування. +export.notice.exporting.cancel = Експортування застосунку скасовано. +export.tooltip.macos = Експорт для macOS доступний лише на macOS +export.full_screen = Повний екран +export.embed_java = Вбудувати Java +export.include_java = Включати Java у додатку %s +export.code_signing = Цифровий підпис +export.messages.is_read_only = Ескіз лише для читання +export.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +export.messages.cannot_export = Експортування неможливе +export.messages.cannot_export.description = Не можна експортувати ескіз, який не було збережено. + +# Find (Frame) +find = Знайти +find.find = Знайти: +find.replace_with = Замінити на: +find.ignore_case = Не враховувати регістр +find.all_tabs = По всіх вкладках +find.wrap_around = По всьому документу +find.btn.replace_all = Замінити все +find.btn.replace = Замінити +find.btn.replace_and_find = Замінити і знайти далі +find.btn.previous = Назад +find.btn.find = Знайти + +# Find in reference (Frame) +find_in_reference = Знайти у документації + +# File (Frame) +file = Виберіть зображення або інший файл з даними, щоб скопіювати його у ескіз + +# Create Font (Frame) +create_font = Створити шрифт +create_font.label = Цей інструмент призначений для створення растрових шрифтів для вашої програми.\nВиберіть шрифт та розмір і натисніть "ОК", щоб згенерувати шрифт.\nЙого буде додано до папки даних поточного ескізу. +create_font.size = Розмір +create_font.smooth = Згладжений +create_font.characters = Символи... +create_font.character_selector = Вибирач символів +create_font.character_selector.label = У стандартні символи включено більшість bitmap-ів для Mac OS\nі Windows Latin. Включення усіх символів вимагає великого\nобсягу пам’яті.\nДля кращої навігації можна обрати конкретні блоки Unicode. +create_font.default_characters = Стандартні символи +create_font.all_characters = Усі символи +create_font.specific_unicode = Конкретні блоки Unicode +create_font.filename = Ім’я файлу + +# Color Selector (Frame) +color_selector = Вибирач кольору + +# Archive Sketch (Frame) +archive_sketch = Архівувати ескіз як... + +# Tweak Mode +tweak_mode = Режим модифікування +tweak_mode.save_before_tweak = Будь ласка, збережіть ескіз перед тим, як запускати його у режимі модифікування. +tweak_mode.keep_changes.line1 = Зберегти змінні? +tweak_mode.keep_changes.line2 = Ви змінили деякі параметри у вашому ескізі. Бажаєте зберегти зміни? + +# DebugTray +debugger.name = Ім’я +debugger.value = Значення +debugger.type = Тип + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Запустити +toolbar.present = Презентувати +toolbar.stop = Зупинити +toolbar.debug = Налагоджувати +# --- +toolbar.new = Створити +toolbar.open = Відкрити +toolbar.save = Зберегти +# toolbar.export_application = Експортувати застосунок +toolbar.add_mode = Додати режим... + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Продовжити +#toolbar.debug.step = Крок +#toolbar.debug.step_into = Крок із заходом +#toolbar.debug.stop = Зупинити +#toolbar.debug.toggle_breakpoints = Додати / вилучити точку зупинки +#toolbar.debug.variable_inspector = Інспектор змінних + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Нова вкладка +editor.header.rename = Перейменувати +editor.header.delete = Видалити +editor.header.previous_tab = Попередня вкладка +editor.header.previous_tab.keystroke.macos = meta alt pressed LEFT +editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP +editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP +editor.header.next_tab = Наступна вкладка +editor.header.next_tab.keystroke.macos = meta alt pressed RIGHT +editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN +editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN +editor.header.delete.warning.title = Хех, ні. +editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. + +# PopUp menu +editor.popup.jump_to_declaration = Перейти до визначення +editor.popup.show_usage = Показати використання... +editor.popup.rename = Перейменувати... + +# Tabs +editor.tab.new = Нове ім’я +editor.tab.new.description = Ім’я нового файлу +editor.tab.rename = Нове ім’я +editor.tab.rename.description = Нове ім’я файлу + +# Sketch +editor.sketch.rename.description = Ім’я нового ескізу + +editor.status.autoformat.no_changes = Не потрібно нічого змінювати для автоформатування. +editor.status.autoformat.finished = Автоформатування завершено. +editor.status.find_reference.select_word_first = Спершу виберіть слово, яке потрібно знайти у документації. +editor.status.find_reference.not_available = Документація для "%s" недоступна. +editor.status.drag_and_drop.files_added.0 = До ескізу не додано жодного файлу. +editor.status.drag_and_drop.files_added.1 = До ескізу додано один файл. +editor.status.drag_and_drop.files_added.n = До ескізу додано %d файли(-ів). +editor.status.saving = Зберігаю... +editor.status.saving.done = Збереження завершено. +editor.status.saving.canceled = Збереження скасовано. +editor.status.printing = Друкую... +editor.status.printing.done = Друк завершено. +editor.status.printing.error = Помилка під час друку. +editor.status.printing.canceled = Друк скасовано. +editor.status.copy_as_html = Код, форматований як HTML, скопійовано до буферу обміну. +editor.status.debug.busy = Налагоджувач зайнятий... +editor.status.debug.halt = Налагоджувач зупинено. +editor.status.archiver.create = Архів "%s" створено. +editor.status.archiver.cancel = Архівування ескізу скасовано. + +# Errors +editor.status.warning = Попередження +editor.status.error = Помилка +editor.status.error.syntax = Помилка синтаксису - %s +editor.status.error_on = Помилка на "%s" +editor.status.missing.default = Відсутні "%c" +editor.status.missing.semicolon = Відсутня ";" +editor.status.missing.left_sq_bracket = Відсутня "[" +editor.status.missing.right_sq_bracket = Відсутня "]" +editor.status.missing.left_paren = Відсутня "(" +editor.status.missing.right_paren = Відсутня ")" +editor.status.missing.left_curly_bracket = Відсутня "{" +editor.status.missing.right_curly_bracket = Відсутня "}" +editor.status.missing.add = Спробуйте додати "%s" +editor.status.bad_curly_quote = Фігурні лапки %s не працюють. Використовуйте прямі лапки. Ctrl-T для автозаміни. +editor.status.reserved_words = "color" і "int" - зарезервовані ідентифікатори і не можуть бути назвами змінних +editor.status.undefined_method = Функція "%s(%s)" не існує +editor.status.undefined_constructor = Конструктор "%s(%s)" не існує +editor.status.empty_param = Функція "%s()" не очікує параметрів +editor.status.wrong_param = Функція "%s()" очікує такі параметри: "%s(%s)" +editor.status.undef_global_var = Глобальна змінна "%s" не існує +editor.status.undef_class = Клас "%s" не існує +editor.status.undef_var = Змінна "%s" не існує +editor.status.undef_name = Ім’я "%s" не може бути розпізнано +editor.status.unterm_string_curly = Рядковий літерал не оточений прямими лапками. Фігурні лапки %s не працюють. +editor.status.type_mismatch = Неспівпадіння типів "%s" та "%s" +editor.status.unused_variable = Локальна змінна "%s" ніде не використовується +editor.status.uninitialized_variable = Локальна змінна "%s" може бути не ініціалізована +editor.status.no_effect_assignment = Присвоєння змінної "%s" не має чинності +editor.status.hiding_enclosing_type = Клас "%s" не може мати ім'я ескізу або батьківського класу. + +editor.status.bad.assignment = Можлива помилка присвоєння змінної біля '%s'? +editor.status.bad.generic = Можливо, немає типу в дженерику біля '%s'? +editor.status.bad.identifier = Помилка ідентифікатора? Можливо, неправильний ідентифікатор, або змінна починається з цифр біля '%s'? +editor.status.bad.parameter = Помилка визначення параметру чи методу біля '%s'? +editor.status.bad.import = Імпорт тут не дозволений. +editor.status.extraneous = Незакінчений рядок або зайвий код біля '%s'? +editor.status.mismatched = Не вистачає оператора, ; або '}' біля '%s'? +editor.status.missing.name = Не вистачає назви або ; біля '%s'? +editor.status.missing.type = Не вистачає назви, ; або типу '%s'? + + +# Footer buttons +editor.footer.errors = Помилки +editor.footer.errors.problem = Проблема +editor.footer.errors.tab = Вкладка +editor.footer.errors.line = Рядок +editor.footer.console = Консоль + +# New handler +new.messages.is_read_only = Ескіз лише для читання +new.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. + +# Rename handler +rename.messages.is_untitled = Ескіз безіменний +rename.messages.is_untitled.description = Варто зберегти ескіз\nперед тим, як перейменовувати його +rename.messages.is_modified = Будь ласка, збережіть ескіз перед перейменування. +rename.messages.is_read_only = Ескіз лише для читання +rename.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. + +# Naming handler +name.messages.problem_renaming = Помилка перейменовування +name.messages.starts_with_dot.description = Ім’я не може починатись з крапки. +name.messages.invalid_extension.description = ".%s" не є допустимим розширенням. +name.messages.main_java_extension.description = Перша вкладка не може бути файлом .%s.\n(А не пора тобі перейти на\n"справжнє" середовище програмування?) +name.messages.new_sketch_exists = Перейменування неможливе +name.messages.new_sketch_exists.description = Файл з назвою "%s" вже існує у\n"%s" +name.messages.new_folder_exists = Перейменування неможливе +name.messages.new_folder_exists.description = Ескіз (чи папка) з назвою "%s" вже існує. +name.messages.error = Помилка +name.messages.no_rename_folder.description = Не вдалось перейменувати папку ескізу. +name.messages.no_rename_file.description = Не вдалось перейменувати "%s" на "%s" +name.messages.no_create_file.description = Не вдалось створити файл "%s"\nу "%s" + +# Delete handler +delete.messages.cannot_delete = Видалення неможливе +delete.messages.cannot_delete.description = Не можна видалити ескіз, який не було збережено. +delete.messages.cannot_delete.file = Не вдалось це зробити +delete.messages.cannot_delete.file.description = Не вдалось видалити +delete.messages.is_read_only = Ескіз лише для читання +delete.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. + +# Save handler +save_file.messages.is_read_only = Ескіз лише для читання +save_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні. +save_file.messages.sketch_exists = Не вдалось зберегти +save_file.messages.sketch_exists.description = Ескіз з очищеним іменем\n“%s” вже існує. +save_file.messages.tab_exists = Не вдалось зберегти +save_file.messages.tab_exists.description = Не можна зберегти ескіз як "%s"\nбо він вже має вкладку з таким іменем. +save_file.messages.recursive_save = Збереження в стилі Боргеса +save_file.messages.recursive_save.description = Не можна зберегти ескіз всередині\nсамого себе. Це викличе нескінченну рекурсію. + +# Add handler +add_file.messages.is_read_only = Ескіз лише для читання +add_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +add_file.messages.confirm_replace = Замінити існуюче розширення %s? +add_file.messages.error_adding = Помилка при додаванні файлу +add_file.messages.cannot_delete.description = Не вдалось видалити існуючий файл '%s'. +add_file.messages.cannot_add.description = Не вдалось додати '%s' до ескізу. +add_file.messages.same_file = Мене не надуриш +add_file.messages.same_file.description = Цей файл уже скопійовано у\nрозташування, куди ви його копіюєте.\nЯ ніц не зроблю. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Погана папка збірки +temp_dir.messages.bad_build_folder.description = Не вдалось знайти розташування для збірки ескізу. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Ескіз зник +ensure_exist.messages.missing_sketch.description = Папка ескізу зникла.\nСпробую зберегти у тому ж розташуванні,\nале все, крім коду, зникне. +ensure_exist.messages.unrecoverable = Не вдалось зберегти ескіз +ensure_exist.messages.unrecoverable.description = Не вдалось повторно зберегти ескіз. У вас можуть бути проблеми,\nпора копіювати і вставляти код у інший текстовий редактор. + +# Check name +check_name.messages.is_name_modified = Ім’я ескізу потрібно було змінити. Імена ескізів можуть містити\nтільки ASCII-символи і числа (але не можуть починатися з числа).\nКрім того, вони мають бути не довшими за 64 символи. + +# External changes detector +change_detect.reload.title=Вкладка змінена ззовні +change_detect.reload.question="%s" була змінена іншою програмою. +change_detect.reload.comment=Бажаєте залишити цю версію чи завантажити зміни ззовні?\nТак чи інакше, файл буде збережено в папці з ескізами. +change_detect.button.keep=Залишити +change_detect.button.load_new=Завантажити зміни ззовні +change_detect.delete.title=Вкладка видалена +change_detect.delete.question="%s" зникла з папки з ескізами. +change_detect.delete.comment=Бажаєте повторно її зберегти чи видалити зі свого ескізу? +change_detect.button.discard=Видалити назавжди +change_detect.button.resave=Повторно зберегти + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Керування внесками +contrib.manager_title.update = Керування оновленнями +contrib.manager_title.mode = Керування режимами +contrib.manager_title.tool = Керування інструментами +contrib.manager_title.library = Керування бібліотеками +contrib.manager_title.examples = Керування прикладами +contrib.category = Категорія: +contrib.filter_your_search = Фільтр пошуку... +contrib.show_only_compatible.mode = Показати лише сумісні режими +contrib.show_only_compatible.tool = Показати лише сумісні інструменти +contrib.show_only_compatible.library = Показати лише сумісні бібліотеки +contrib.show_only_compatible.examples = Показати лише сумісні приклади +contrib.show_only_compatible.update = Показати лише сумісні оновлення +contrib.restart = Перезапустити Processing +contrib.unsaved_changes = Зміни не було збережено +contrib.unsaved_changes.prompt = Ви впевнені, що хочете перезапустити Processing, не зберігаючи зміни? +contrib.messages.remove_restart = Будь ласка, перезапустіть Processing, щоб завершити видалення цього внеску. +contrib.messages.install_restart = Будь ласка, перезапустіть Processing, щоб завершити встановлення цього внеску. +contrib.messages.update_restart = Будь ласка, перезапустіть Processing, щоб завершити оновлення цього внеску. +contrib.errors.list_download = Не вдалось завантажити список встановлених внесків. +contrib.errors.list_download.timeout = Тайм-аут з’єднання під час завантаження списку внесків. +contrib.errors.download_and_install = Помилка при завантаженні чи встановленні %s. +contrib.errors.description_unavailable = Опису немає. +contrib.errors.malformed_url = Посилання, отримане з Processing.org, недійсне.\nЦю бібліотеку все ще можна встановити, відвідавши\nїї сайт. +contrib.errors.needs_repackage = %s потрібно перепакувати за правилами %s. +contrib.errors.no_contribution_found = Не вдалось знайти %s у завантаженому файлі. +contrib.errors.overwriting_properties = Помилка при перезаписуванні файлу .properties. +contrib.errors.install_failed = Встановлення не вдалось. +contrib.errors.update_on_restart_failed = Помилка оновлення під час перезапуску %s. +contrib.errors.temporary_directory = Не вдалось записати у тимчасову папку. +contrib.errors.contrib_download.timeout = Тайм-аут з’єднання під час завантаження %s. +contrib.errors.no_internet_connection = Здається, ви не під’єднані до мережі Інтернет. +contrib.status.downloading_list = Завантаження списку внесків... +contrib.status.connecting = З’єднання... +contrib.status.done = Готово. +contrib.all = Усе +contrib.undo = Скасувати +contrib.remove = Видалити +contrib.install = Встановити +contrib.progress.installing = Встановлюю +contrib.progress.starting = Починаю +contrib.progress.downloading = Завантажую +contrib.download_error = Сталась помилка під час завантаження внеску. +contrib.unsupported_operating_system = Здається, ваша операційна система не підтримується. Відвідайте бібліотеку %s для детальнішої інформації. +contrib.category.3d = 3D +contrib.category.animation = Анімація +contrib.category.data = Дані +contrib.category.geometry = Геометрія +contrib.category.gui = Інтерфейс +contrib.category.hardware = Апаратне забезпечення +contrib.category.i_o = Введення/виведення +contrib.category.math = Математика +contrib.category.simulation = Симуляція +contrib.category.sound = Звук +contrib.category.typography = Типографія +contrib.category.utilities = Утиліти +contrib.category.video_vision = Відео +contrib.category.other = Інше + +# Install on Startup +contrib.startup.errors.download_install = Помилка під час завантаження чи встановлення %s +contrib.startup.errors.temp_dir = Не вдалось записати у тимчасову папку під час завантаження чи встановлення %s +contrib.startup.errors.new_marker = Здається, старому маркеру внеску не подобається %s. Можливо, потрібно оновити вручну... + +# Install on Import +contrib.import.dialog.title = Доступні відсутні бібліотеки +contrib.import.dialog.primary_text = Ці імпортовані бібліотеки доступні для завантаження, але не були встановлені. +contrib.import.dialog.secondary_text = Бажаєте встановити їх зараз? +contrib.import.progress.download = Завантаження %s... +contrib.import.progress.install = Встановлення %s... +contrib.import.progress.done = %s було встановлено. +contrib.import.progress.final_list = Було встановлено такі бібліотеки: +contrib.import.errors.link = Помилка: У бібліотеки %s недійсне посилання завантаження. + +# --------------------------------------- +# Warnings + +warn.delete = Видалення +warn.delete.sketch = Ви впевнені, що хочете видалити цей ескіз? +warn.delete.sketch_last = Щоб зберегти ваші файли в безпеці, видалення всієї папки ескізу не підтримується в Processing.\nБудь ласка, відкрийте папку ескізу у вашому файловому менеджері, щоб видалити її. +warn.delete.file = Ви впевнені, що хочете видалити "%s"? +warn.cannot_change_mode.title = Зміна режиму неможлива +warn.cannot_change_mode.body = Зміна режиму неможлива,\nоскільки режим "%s" несумісний з поточним режимом. + + +# --------------------------------------- +# Update Check + +update_check = Оновлення +update_check.updates_available.core = Доступна нова версія Processing,\nбажаєте відвідати сторінку завантаження Processing? +update_check.updates_available.contributions = Доступні оновлення для деяких встановлених внесків,\nбажаєте відкрити меню керування внесками зараз? + + +# --------------------------------------- +# Color Chooser + +color_chooser = Вибирач кольору +color_chooser.select = Вибрати + +# --------------------------------------- +# Movie Maker + +movie_maker = Генератор відео +movie_maker.two.title = Генератор відео II: Вендета +movie_maker.two.blurb = Цей інструмент створює MPEG-відео або анімовану GIF з послідовності зображень.

Для уникнення артефактів від повторного стиснення зображень у відео,
використовуйте зображення TIFF, TGA або PNG як джерело.

Зображення TIFF та TGA записуватимуться швидше, але вимагають більше місця на диску:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

Зображення PNG менші, але записуватимуться повільніше:
saveFrame("frames/####.png");

Режим Lossless 4:2:0 все ще не ідеальний через нюанси в MPEG-4.
4:4:4 має бути ідеальним, але менш сумісним з іншими програмами.

Раніше відомий як QuickTime Movie Maker від Werner Randelshofer,
цей інструмент переписаний на FFmpeg для Processing 4.
+movie_maker.image_folder_help_label = Перетягніть папку з файлами зображень у поле внизу: +movie_maker.choose_button = Вибрати... +movie_maker.select_image_folder = Вибрати папку зображень... +movie_maker.sound_file_help_label = Перетягніть звуковий файл (.au, .aiff, .wav, .mp3) у поле внизу: +movie_maker.select_sound_file = Вибрати звуковий файл... + +movie_maker.create_movie_button = Створити відео... +movie_maker.save_dialog_prompt = Зберегти відео як... +movie_maker.width = Ширина: +movie_maker.height = Висота: +movie_maker.compression = Стиснення: +movie_maker.framerate = Частота кадрів: +movie_maker.orig_size_button = Розмір, як в оригіналі +movie_maker.orig_size_tooltip = Відмітьте це, якщо папка вже містить закодовані кадри відео бажаного розміру. + +movie_maker.error.avoid_tiff = Спробуйте зображення TGA чи PNG замість TIFF. +movie_maker.error.badnumbers = Ширина та висота мають бути цілими додатніми числами; частота кадрів має бути додатнім числом. +movie_maker.error.cannot_read = Не вдалось прочитати %s. +movie_maker.error.cannot_read_maybe_bad = Не вдалось прочитати %s; файл може бути недійсним. +movie_maker.error.movie_failed = Не вдалось створити відео QuickTime. +movie_maker.error.need_input = Потрібно зазначити папку з файлами зображень, звуковими файлами, або і тим, і іншим. +movie_maker.error.no_images_found = Не знайдено файлів зображень. +movie_maker.error.sorry = Вибачте +movie_maker.error.unknown_tga_format = Невідомий формат файлу .tga для %s. + +movie_maker.progress.creating_file_name = Створюю %s. +movie_maker.progress.creating_output_file = Створюю вихідний файл +movie_maker.progress.initializing = Ініціалізація... +movie_maker.progress.processing = Обробляю %s. + +movie_maker.progress.handling_frame = Конвертую кадр %s з %s... + diff --git a/app/utils/build/resources/main/PDE_zh-CN.properties b/app/utils/build/resources/main/PDE_zh-CN.properties new file mode 100644 index 0000000000..7aff8d2e8d --- /dev/null +++ b/app/utils/build/resources/main/PDE_zh-CN.properties @@ -0,0 +1,316 @@ + + +# --------------------------------------- +# CHINESE (zh) +# --------------------------------------- + + +# Use the built-in fonts because they have full character support +font.family.sans = SansSerif +font.family.mono = Monospaced + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = 文件 +menu.file.new = 新建 +menu.file.open = 打开... +menu.file.recent = 打开最近项目 +menu.file.sketchbook = 速写本... +menu.file.examples = 范例程序... +menu.file.close = 关闭 +menu.file.save = 保存 +menu.file.save_as = 另存为... +menu.file.export_application = 输出程序... +menu.file.page_setup = 页面设置 +menu.file.print = 打印... +menu.file.preferences = 偏好设定... +menu.file.quit = 退出 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = 编辑 +menu.edit.undo = 撤销 +menu.edit.redo = 重做 +menu.edit.cut = 剪切 +menu.edit.copy = 复制 +menu.edit.copy_as_html = 复制为HTML +menu.edit.paste = 黏贴 +menu.edit.select_all = 全部选择 +menu.edit.auto_format = 自动对齐 +menu.edit.comment_uncomment = 注释/取消注释 +menu.edit.increase_indent = → 增加缩进量 +menu.edit.decrease_indent = ← 减少缩进量 +menu.edit.find = 查找... +menu.edit.find_next = 查找下一个 +menu.edit.find_previous = 查找上一个 +menu.edit.use_selection_for_find = 使用当前选定查找 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = 运行 +menu.sketch.present = 展示模式 +menu.sketch.tweak = 调整 +menu.sketch.stop = 停止 +# --- +menu.library = 引用库文件... +menu.library.add_library = 添加库文件... +menu.library.contributed = 第三方贡献库 +menu.library.no_core_libraries = 该模式下无核心库文件 +# --- +menu.sketch = 速写本 +menu.sketch.show_sketch_folder = 打开程序目录 +menu.sketch.add_file = 添加文件... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = 调试 +menu.debug.enable = 启用调试器 +menu.debug.disable = 禁用调试器 +# --- +menu.debug.toggle_breakpoint = 切换断点 +# --- +# used for both menus and toolbars +menu.debug.step = 单步 (Step) +menu.debug.step_into = 单步进入 (Step Into) +menu.debug.step_out = 单步跳出 (Step Out) +menu.debug.continue = ç»§ç»­ +# --- +#menu.debug.variable_inspector = Variable Inspector +menu.debug.show_variables = 显示变量 +menu.debug.hide_variables = 隐藏变量 + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = 工具 +menu.tools.color_selector = 颜色选择器... +menu.tools.create_font = 创建字体... +menu.tools.archive_sketch = 速写本压缩输出 +menu.tools.fix_the_serial_lbrary = 修复串口库文件 +menu.tools.install_processing_java = 安装 "processing-java" +menu.tools.add_tool = 添加工具... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = 帮助 +menu.help.about = 关于 Processing +menu.help.environment = 开发环境 +menu.help.reference = 参考文档 +menu.help.find_in_reference = 在文档中查询 +menu.help.online = 在线 +menu.help.getting_started = 入门帮助 +# menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = 问题排除 +# menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = 常见问题解答 +# menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = The Processing Foundation +# menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = 访问 Processing.org +# menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = 是 +prompt.no = 否 +prompt.cancel = 取消 +prompt.ok = 确认 +prompt.browse = 浏览 +prompt.export = 输出 + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = 打开 Processing 速写本... + +# Save (Frame) +save = 保存速写本文件夹为... +save.title = 在关闭前你想要保存该速写本更改内容么? +save.hint = 如果你没保存, 你所有的更改内容将丢失. +save.btn.save = 保存 +save.btn.dont_save = 不保存 + +# AppPreferences (Frame) +preferences = 偏好设置 +preferences.button.width = 80 +preferences.requires_restart = 需要重启 Processing +preferences.sketchbook_location = 速写本位置 +preferences.sketchbook_location.popup = 速写本位置 +preferences.language = 语言 +preferences.editor_and_console_font = 编辑器和控制台字体 +preferences.editor_and_console_font.tip = \ +为编辑器和控制台选择字体.
\ +只允许使用等宽字体,
\ +此列表可能不完全。 +preferences.editor_font_size = 编辑器字体大小 +preferences.console_font_size = 控制台字体大小 +preferences.background_color = 展示模式时的背景颜色 +preferences.background_color.tip = \ +选择背景颜色当使用展示模式时.
\ +展示模式通常被用来在全屏模式下展示速写程序,
\ +可从速写本菜单中访问. +preferences.use_smooth_text = 在编辑器窗口中使用平滑字体 +preferences.enable_complex_text_input = 启用复杂字体输入 +preferences.enable_complex_text_input_example = 例如日文 +preferences.continuously_check = 不断检查错误 +preferences.show_warnings = 显示警告 +preferences.code_completion = 代码补全 +preferences.trigger_with = 触发开关 +preferences.cmd_space = 空格 +preferences.increase_max_memory = 增加最大内存至 +preferences.delete_previous_folder_on_export = 当导出时删除先前的文件夹 +preferences.hide_toolbar_background_image = 隐藏标签/工具栏背景图片 +preferences.check_for_updates_on_startup = 在启动时检查有无更新 +preferences.run_sketches_on_display = 在此显示器中运行速写本 +preferences.run_sketches_on_display.tip = \ +Sets the display where sketches are initially placed.
\ +As usual, if the sketch window is moved, it will re-open
\ +at the same location, however when running in present
\ +(full screen) mode, this display will always be used. +preferences.automatically_associate_pde_files = 自动关联 .pde 文件通过 Processing +preferences.launch_programs_in = 加载程序的模式 +preferences.launch_programs_in.mode = 模式 +preferences.file = 更多选项可直接编辑该文件 +preferences.file.hint = 请在 Processing 未运行时编辑该文件 + +# Sketchbook Location (Frame) +sketchbook_location = 选择新速写本位置 + +# Sketchbook (Frame) +sketchbook = Sketchbook +sketchbook.tree = Sketchbook + +# examples (Frame) +examples = 范例程序 + +# Export (Frame) +export = 输出选项 +export.platforms = 系统平台 +export.options = 选项 +export.options.fullscreen = 全屏 (展示模式) +export.options.show_stop_button = 显示停止按钮 +export.description.line1 = 为输出程序创建双击事件, +export.description.line2 = 为所选系统创建独立运行程序. + +# Find (Frame) +find = 搜索 +find.find = 搜索: +find.replace_with = 替换为: +find.ignore_case = 忽略大小写 +find.all_tabs = 所有标签 +find.wrap_around = 循环遍历 +find.btn.replace_all = 全部替换 +find.btn.replace = 替换 +find.btn.find_and_replace = 搜索 & 替换 +find.btn.previous = 上一个 +find.btn.find = 搜索 + +# Find in reference (Frame) +find_in_reference = 在参考文档中搜索 + +# Library Manager (Frame) +library.category = 目录: +library.filter_your_search = 筛查需找... + +# File (Frame) +file = 选择一个图片或其它文件拷贝至你的速写本中 + +# Create Font (Frame) +create_font = 创建字体 + +# Color Selector (Frame) +color_selector = 颜色选择 + +# Archive Sketch (Frame) +archive_sketch = 速写本压缩输出... + + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = 运行 +toolbar.present = 展示模式 +toolbar.stop = 停止 +# --- +toolbar.new = 新建 +toolbar.open = 打开 +toolbar.save = 保存 +# toolbar.export_application = 导出程序 +toolbar.add_mode = 添加模式... + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = 新建标签 +editor.header.rename = 重命名 +editor.header.delete = 删除 +editor.header.previous_tab = 前一个标签 +editor.header.next_tab = 后一个标签 +editor.header.delete.warning.title = 这样不行 +editor.header.delete.warning.text = 无法删除最后一个速写本的最后一个标签 + +# Limited syntax error support, Wikipedia CC BY-SA +editor.status.error = 錯誤 +editor.status.error.syntax = 语法错误 - %s + +# Tabs +editor.tab.new = 新文件名 +editor.tab.new.description = 新文件名称 +editor.tab.rename = 新文件名 +editor.tab.rename.description = 新文件名称 + +# Sketch +editor.sketch.rename.description = 速写本的新名称 + +editor.status.autoformat.no_changes = 自动格式化不需要做更改。 +editor.status.autoformat.finished = 自动格式化完成。 +editor.status.find_reference.select_word_first = 请首先选择要查找的关键字。 +editor.status.find_reference.not_available = 没有找到 "%s" 的引用。 +editor.status.drag_and_drop.files_added.0 = 未将任何文件添加到速写本。 +editor.status.drag_and_drop.files_added.1 = 将 1 个文件添加到速写本。 +editor.status.drag_and_drop.files_added.n = 将 %d 个文件添加到速写本。 +editor.status.saving = 保存中... +editor.status.saving.done = 保存完成. +editor.status.saving.canceled = 取消保存. +editor.status.printing = 打印中... +editor.status.printing.done = 打印完毕. +editor.status.printing.error = 打印时出错. +editor.status.printing.canceled = 取消打印. + + +# --------------------------------------- +# Contribution Panel + +contrib.undo = 撤销 +contrib.remove = 移除 +contrib.install = 安装 +contrib.progress.starting = 开始 +contrib.progress.downloading = 下载 +contrib.download_error = 下载时出现问题. +contrib.unsupported_operating_system = 你当前的操作系统似乎不被支持. 你应该访问 %s 获取更多信息. + + +# --------------------------------------- +# Warnings + +warn.delete = 删除 +warn.delete.sketch = 你确定要删除该速写本吗? +warn.delete.sketch_folder = 你确定要删除该速写本吗?\n这将删除整个 “%s” 文件夹。 +warn.delete.sketch_last = 为了确保您的文件安全,Processing 不支持删除整个速写本文件夹。\n请在文件管理器中打开速写本文件夹进行删除。 +warn.delete.file = 你确定要删除 "%s" 吗? +warn.delete.sketch_file = 你确定要删除 “%s” 吗? +warn.cannot_change_mode.title = 无法切换模式 +warn.cannot_change_mode.body = 无法切换模式,\n因为 “%s” 模式与当前模式不兼容。 \ No newline at end of file diff --git a/app/utils/build/resources/main/PDE_zh-TW.properties b/app/utils/build/resources/main/PDE_zh-TW.properties new file mode 100644 index 0000000000..85976eb277 --- /dev/null +++ b/app/utils/build/resources/main/PDE_zh-TW.properties @@ -0,0 +1,636 @@ + + +# --------------------------------------- +# Language: CHINESE (zh) +# --------------------------------------- + + +# Use the built-in fonts because they have full character support +font.family.sans = SansSerif +font.family.mono = Monospaced + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Debug | Tools | Help | +# | File | +menu.file = 檔案(File) +menu.file.new = 新增(New) +menu.file.open = 開啟(Open)... +menu.file.recent = 最近開啟檔案(Recent) +menu.file.sketchbook = 全部程式素描本(Sketchbook)... +menu.file.sketchbook.empty = 空白的程式素描本(Empty Sketchbook) +menu.file.examples = 範例(Examples)... +menu.file.close = 關閉(Close) +menu.file.save = 儲存(Save) +menu.file.save_as = 另存新檔(Save As)... +menu.file.export_application = 匯出應用程式(Export Application)... +menu.file.page_setup = 印列設定(Page Setup) +menu.file.print = 列印(Print)... +menu.file.preferences = 偏好設定(Preferences)... +menu.file.quit = 離開(Quit) + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Edit | +menu.edit = 編輯(Edit) +menu.edit.undo = 還原(Undo) +menu.edit.redo = 重做(Redo) +#menu.edit.redo.keystroke.macosx = shift meta pressed Z +#menu.edit.redo.keystroke.windows = ctrl pressed Y +#menu.edit.redo.keystroke.linux = shift ctrl pressed Z +menu.edit.action.addition = 增加(addition) +menu.edit.action.deletion = 刪除(deletion) +menu.edit.cut = 剪下(Cut) +menu.edit.copy = 複製(Copy) +menu.edit.copy_as_html = 複製為HTML格式(Copy as HTML) +menu.edit.paste = 貼上(Paste) +menu.edit.select_all = 全選(Select All) +menu.edit.auto_format = 自動排版(Auto Format) +menu.edit.comment_uncomment = 註解程式/取消註解(Comment/Uncomment) +#menu.edit.comment_uncomment.keystroke.macosx = meta pressed SLASH +#menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH +#menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH +menu.edit.increase_indent = → 往右增加縮排(Increase Indent) +#menu.edit.increase_indent.keystroke.macosx = meta pressed CLOSE_BRACKET +#menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET +#menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET +menu.edit.decrease_indent = ← 往左減少縮排(Decrease Indent) +#menu.edit.decrease_indent.keystroke.macosx = meta pressed OPEN_BRACKET +#menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET +#menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET +menu.edit.find = 尋找(Find)... +menu.edit.find_next = 找下一個(Find Next) +menu.edit.find_previous = 往上找(Find Previous) +menu.edit.use_selection_for_find = 只在範圍中尋找(Use Selection for find) + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Sketch | +menu.sketch.run = 執行(Run) +menu.sketch.present = 全螢幕執行(Present) +menu.sketch.tweak = 分析微調(Tweak) +menu.sketch.stop = 停止(Stop) +# --- +menu.library = 使用函式庫(Library)... +menu.library.add_library = 安裝函式庫(Add Library)... +menu.library.contributed = 其他人貢獻的函式庫(Contributed) +menu.library.no_core_libraries = 本模式沒有核心函式庫(No Core Library) +# --- +menu.sketch = 程式素描本(Sketch) +menu.sketch.show_sketch_folder = 開啟程式目錄(Show Sketch Folder) +menu.sketch.add_file = 新增檔案(Add File)... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Debug | +menu.debug = 偵錯(Debug) +menu.debug.enable = 開啟Debugger +menu.debug.disable = 關閉Debugger +#menu.debug.show_debug_toolbar = Show Debug Toolbar +#menu.debug.debug = Debug +#menu.debug.stop = Stop +# --- +menu.debug.toggle_breakpoint = 設定中斷點(Toggle Breakpoint) +#menu.debug.list_breakpoints = 列出全部中斷點(List breakpoints) +# --- +# used for both menus and toolbars +menu.debug.step = 下一步(Step) +#menu.debug.step.keystroke.macosx = meta pressed J +#menu.debug.step.keystroke.windows = ctrl pressed J +#menu.debug.step.keystroke.linux = ctrl pressed J +menu.debug.step_into = 下一步/進入函式(Step Into) +#menu.debug.step_into.keystroke.macosx = shift meta pressed J +#menu.debug.step_into.keystroke.windows = shift ctrl pressed J +#menu.debug.step_into.keystroke.linux = shift ctrl pressed J +menu.debug.step_out = 下一步/離開函式(Step Out) +#menu.debug.step_out.keystroke.macosx = meta alt pressed J +#menu.debug.step_out.keystroke.windows = ctrl alt pressed J +#menu.debug.step_out.keystroke.linux = ctrl alt pressed J +menu.debug.continue = 繼續(Continue) +# --- +#menu.debug.print_stack_trace = Print Stack Trace +#menu.debug.print_locals = Print Locals +#menu.debug.print_fields = Print Fields +#menu.debug.print_source_location = Print Source Location +#menu.debug.print_threads = Print Threads +# --- +#menu.debug.variable_inspector = Variable Inspector +menu.debug.show_variables = 秀出變數值(Show Variables) +menu.debug.hide_variables = 不秀變數值(Hide Variables) +#menu.debug.show_sketch_outline = Show Sketch Outline +#menu.debug.show_tabs_list = Show Tabs List + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Tools | +menu.tools = 工具(Tool) +menu.tools.color_selector = 顏色選擇器(Color Selector)... +menu.tools.create_font = 建字型檔(Create Font)... +menu.tools.archive_sketch = 壓縮程式專案(Archive Sketch) +menu.tools.fix_the_serial_library = 修復Serial函式庫(Fix the Serial Library) +menu.tools.install_processing_java = 安裝 "processing-java" +menu.tools.add_tool = 新增工具(Add Tool)... + +# | File | Edit | Sketch | Debug | Tools | Help | +# | Help | +menu.help = 協助(Help) +menu.help.welcome = 歡迎(Welcome to Processing 3) +menu.help.about = 關於(About Processing) +menu.help.environment = 開發環境(Environment) +menu.help.reference = 參考文件(Reference) +menu.help.find_in_reference = 查詢參考文件(Find in Reference) +menu.help.libraries_reference = 函式庫文件(Libraries Reference) +menu.help.tools_reference = 工具的文件(Tools Reference) +menu.help.empty = (empty) +menu.help.online = 線上(Online) +menu.help.getting_started = 入門教學(Getting Started) +menu.help.getting_started.url = https://processing.org/tutorials/gettingstarted/ +menu.help.troubleshooting = 問題排除(Trouble Shooting) +menu.help.troubleshooting.url = https://github.com/processing/processing/wiki/troubleshooting +menu.help.faq = 常見問與答(FAQ) +menu.help.faq.url = https://github.com/processing/processing/wiki/FAQ +menu.help.foundation = Processing基金會(The Processing Foundation) +menu.help.foundation.url = https://processingfoundation.org/ +menu.help.visit = 拜訪 Visit Processing.org +menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = 是(Yes) +prompt.no = 否(No) +prompt.cancel = 取消(Cancel) +prompt.ok = 確認(OK) +prompt.browse = 瀏覽(Browse) +prompt.export = 匯出(Export) + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Open Processing Sketch 開啟程式素描本... + +# Save (Frame) +save = Save Sketch儲存程式素描本... +save.title = 你想在關閉前將 %s 儲存嗎? +save.hint = 如果Sketch沒有儲存,關閉後你的修改會全部遺失 +save.btn.save = 存檔(Save) +save.btn.dont_save = 不存檔(Don't Save) + +# Close (Frame) also used to prompt on non-OS X machines +close.unsaved_changes = 要儲存嗎? Save changes to %s? + +# AppPreferences (Frame) +preferences = 偏好設定Preference +preferences.button.width = 80 +preferences.requires_restart = 需重新開啟Requires Restart Processing +preferences.sketchbook_location = 程式素描本的目錄Sketch Location +preferences.sketchbook_location.popup = 程式素描本的目錄Sketch Location +preferences.language = 語言Language +preferences.editor_and_console_font = 程式編輯Edtor及主控台Console的字形 +preferences.editor_and_console_font.tip = 在程式編輯Editor及主控台Console使用的字形
必需使用Monospace等寬字形,這裡的列表可能不完整。 +preferences.editor_font_size = 程式編輯Editor的字型大小 +preferences.console_font_size = 主控台Console的字型大小 +preferences.zoom = 縮放界面的文字比例 +preferences.zoom.auto = 使用系統預設值 +preferences.background_color = 全螢幕執行的背景色彩 +preferences.background_color.tip = 全螢幕執行(Present)的背景色
Present展示模式使用Fullscreen全螢幕執行,
可以在Processing上方選單的Sketch裡找到Present展示模式 +preferences.use_smooth_text = 在程式編輯窗使用平滑(smooth)的字形 +preferences.enable_complex_text_input = 使用複雜語系輸入 +preferences.enable_complex_text_input_example = 例如中文、日文、韓文 +preferences.continuously_check = 持續檢查程式是否錯誤Error +preferences.show_warnings = 顯示警告Warning +preferences.code_completion = 自動補齊程式碼CodeComplete +preferences.trigger_with = 用...觸發 +preferences.cmd_space = Space空白鍵 +preferences.suggest_imports = 自動建議需import的函式庫 +preferences.increase_max_memory = 加大程式可用的Memory到 +preferences.delete_previous_folder_on_export = 匯出應用程式時,刪掉前一版 +preferences.check_for_updates_on_startup = 啟動時檢查是否有新版Processing +preferences.run_sketches_on_display = 多螢幕顯示時,在哪個螢幕執行(Run) +preferences.run_sketches_on_display.tip = 若有多個螢幕,可設定(某個)螢幕,顯示Run視窗。
執行時,若把Run視窗移到其他螢幕,下次保留在同一位置。
若用全螢幕執行(Sketch-Present),就會在設定的螢幕顯示。 +preferences.automatically_associate_pde_files = 預設使用Processing來開啟.pde檔 +preferences.launch_programs_in = 啟動Processing時使用 +preferences.launch_programs_in.mode = 模式 +preferences.file = 直接編輯下面的設定檔,可設定更多的選項 +preferences.file.hint = 不要在執行Processing同時修改設定檔,以免衝突 + +# Sketchbook Location (Frame) +sketchbook_location = 選擇新的Sketchbook目錄 + +# Sketchbook (Frame) +sketchbook = Sketchbook全部的程式素描本 +sketchbook.tree = Sketchbook全部的程式素描本 + +# examples (Frame) 這裡是跳出的視窗,所以英文放前面 +examples = 範例Examples +examples.add_examples = Add Examples...增加範例 +examples.libraries = Contributed Libraries第三方貢獻的函式庫 +examples.core_libraries = Libraries核心函式庫 +examples.contributed = Contributed Examples第三方貢獻的範例 + +# Export (Frame) +export = 匯出設定 Export Options +export.platforms = 選定平台 Platform +export.options = 匯出選項 Options +export.options.present = Presentation Mode(全螢幕) +export.options.show_stop_button = Show a Stop Button 要有關閉的按鈕 +export.description = 匯出應用程式後,可以點2下執行。\n並可在選定平台「獨立執行」。 +export.unsaved_changes = 在Export匯出前需先將程式存檔。
你要先存檔嗎? +export.notice.cancel.unsaved_changes = 因Export匯出前需先將程式存檔, 所以取消Export匯出。 +export.notice.exporting = 正在匯出(應用程式)... +export.notice.exporting.done = 順利匯出(應用程式) +export.notice.exporting.error = 匯出過程出現錯誤 +export.notice.exporting.cancel = 你取消匯出 +export.tooltip.macosx = macOS 匯出的程式只能在 macOS 裡執行 +export.full_screen = 是否要全螢幕 Full Screen +export.embed_java = 是否要嵌入Embed Java +export.include_java = 將Java放進你匯出的 %s 應用程式 +export.code_signing = 程式碼簽章 Code Signing +export.messages.is_read_only = 因程式碼Read-Only無法存檔 +export.messages.is_read_only.description = 有些檔案被設成read-only(可能是其他應用程式正在開啟)。\n所以你需要再試一次,改存在其他目錄裡。 +export.messages.cannot_export = 無法匯出應用程式 +export.messages.cannot_export.description = 若沒將sketch存檔,就無法Export匯出應用程式。 + +# Find (Frame) +find = 尋找 Find +find.find = 尋找 Find +find.replace_with = 替代 Replace +find.ignore_case = 忽略大小寫 Ignore Case +find.all_tabs = 在全部Tab中尋找 All Tabs +find.wrap_around = 找完從頭再找 Wrap Around +find.btn.replace_all = 全部取代 Replace All +find.btn.replace = 取代 Replace +find.btn.find_and_replace = 尋找&取代 Find & Replace +find.btn.previous = 往前找 Previous +find.btn.find = 尋找 Find + +# Find in reference (Frame) +find_in_reference = 在參考文件裡找選取的字... + +# File (Frame) +file = 選一個圖檔或要放到data目錄的檔案,會copy到你的data目錄中 + +# Create Font (Frame) +create_font = 新建字型Create Font... +create_font.label = Use this tool to create bitmap fonts for your(待查) program.\nSelect a font and size, and click 'OK' to generate the font.\nIt will be added to the data folder of the current sketch. +create_font.size = Size +create_font.smooth = Smooth +create_font.characters = Characters... +create_font.character_selector = Character Selector +create_font.character_selector.label = Default characters will include most bitmaps for Mac OS\nand Windows Latin scripts. Including all characters may\nrequire large amounts of memory for all of the bitmaps.\nFor greater control, you can select specific Unicode blocks. +create_font.default_characters = Default Characters +create_font.all_characters = All Characters +create_font.specific_unicode = Specific Unicode Blocks +create_font.filename = Filename + +# Color Selector (Frame) +color_selector = 色彩選擇器(Color Selector)... + +# Archive Sketch (Frame) +archive_sketch = 壓縮程式專案Archive Sketch... + +# Tweak Mode +tweak_mode = Tweak Mode +tweak_mode.save_before_tweak = Please save the sketch before running in Tweak Mode. +tweak_mode.keep_changes.line1 = Keep the changes? +tweak_mode.keep_changes.line2 = You changed some values in your sketch. Would you like to keep the changes? + +# DebugTray +debugger.name = Name變數名 +debugger.value = Value變數值 +debugger.type = Type變數型別 + +# --------------------------------------- +# Toolbars + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = 執行(Run) +toolbar.present = 全螢幕執行(Present) +toolbar.stop = 停止執行(Stop) +toolbar.debug = 偵錯(Debug) +# --- +toolbar.new = 新增(New) +toolbar.open = 開啟(Open) +toolbar.save = 儲存(Save) +toolbar.export_application = 匯出單一應用程式(Export Application) +toolbar.add_mode = 增加新模式(Add Mode) + +# [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] +#toolbar.debug.continue = Continue +#toolbar.debug.step = Step +#toolbar.debug.step_into = Step Into +#toolbar.debug.stop = Stop +#toolbar.debug.toggle_breakpoints = Toggle Breakpoint +#toolbar.debug.variable_inspector = Variable Inspector + + +# --------------------------------------- +# Editor + +# [Tab1] [Tab2] [v] +editor.header.new_tab = 新增分頁(New Tab) +editor.header.rename = 重新命名分頁(Rename Tab) +editor.header.delete = 刪除分頁(Delete Tab) +editor.header.previous_tab = 前一個分頁(Previous Tab) +#editor.header.previous_tab.keystroke.macosx = meta alt pressed LEFT +#editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP +#editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP +editor.header.next_tab = 下一個分頁(Next Tab) +#editor.header.next_tab.keystroke.macosx = meta alt pressed RIGHT +#editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN +#editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN +editor.header.delete.warning.title = 警告! 不能刪除! +editor.header.delete.warning.text = 你不能刪除這個Tab分頁 + +# PopUp menu +editor.popup.jump_to_declaration = 跳到變數宣告(Jump to Declaration) +editor.popup.show_usage = 變數哪裡使用(Show Usage...) +editor.popup.rename = 變數重新命名(Rename...) + +# Tabs +editor.tab.new = 新的分頁檔案 +editor.tab.new.description = 新的分頁檔案名 +editor.tab.rename = 新的分頁檔案改名為 +editor.tab.rename.description = 新的分頁檔案名 + +# Sketch +editor.sketch.rename.description = 程式重新命名 + +editor.status.autoformat.no_changes = 自動排版後,沒任何修改。 +editor.status.autoformat.finished = 自動排版完成。 +editor.status.find_reference.select_word_first = 要先反白關鍵字,才能找它的參考文件。 +editor.status.find_reference.not_available = 找不到"%s"的參考文件。 +editor.status.drag_and_drop.files_added.0 = 沒有檔案被加到程式速寫本中。 +editor.status.drag_and_drop.files_added.1 = 有1個檔案被加到程式速寫本中。 +editor.status.drag_and_drop.files_added.n = 有%d個檔案被加到程式速寫本中。 +editor.status.saving = 儲存中Saving... +editor.status.saving.done = 儲存完成Done. +editor.status.saving.canceled = 取消儲存Canceled. +editor.status.printing = 列印中Printing... +editor.status.printing.done = 列印完成Done. +editor.status.printing.error = 列印時出錯Error. +editor.status.printing.canceled = 取消列印Canceled. +editor.status.copy_as_html = Code formatted as HTML has been copied to the clipboard. +editor.status.debug.busy = Debugger busy... +editor.status.debug.halt = Debugger halted. +editor.status.archiver.create = Created archive "%s". +editor.status.archiver.cancel = Archive sketch canceled. + +# Errors +editor.status.warning = Warning +editor.status.error = Error +editor.status.error_on = Error on "%s" +editor.status.missing.default = Missing "%c" +editor.status.missing.semicolon = Missing a semicolon ";" +editor.status.missing.left_sq_bracket = Missing left square bracket "[" +editor.status.missing.right_sq_bracket = Missing right square bracket "]" +editor.status.missing.left_paren = Missing left parenthesis "(" +editor.status.missing.right_paren = Missing right parenthesis ")" +editor.status.missing.left_curly_bracket = Missing left curly bracket "{" +editor.status.missing.right_curly_bracket = Missing right curly bracket "}" +editor.status.missing.add = Consider adding "%s" +editor.status.bad_curly_quote = Curly quotes like %s don't work. Use straight quotes. Ctrl-T to autocorrect. +editor.status.reserved_words = "color" and "int" are reserved words & cannot be used as variable names +editor.status.undefined_method = The function "%s(%s)" does not exist +editor.status.undefined_constructor = The constructor "%s(%s)" does not exist +editor.status.empty_param = The function "%s()" does not expect any parameters +editor.status.wrong_param = The function "%s()" expects parameters like: "%s(%s)" +editor.status.undef_global_var = The global variable "%s" does not exist +editor.status.undef_class = The class "%s" does not exist +editor.status.undef_var = The variable "%s" does not exist +editor.status.undef_name = The name "%s" cannot be recognized +editor.status.unterm_string_curly = String literal is not closed by a straight double quote. Curly quotes like %s won't help. +editor.status.type_mismatch = Type mismatch, "%s" does not match with "%s" +editor.status.unused_variable = The value of the local variable "%s" is not used +editor.status.uninitialized_variable = The local variable "%s" may not have been initialized +editor.status.no_effect_assignment = The assignment to variable "%s" has no effect +editor.status.hiding_enclosing_type = The class "%s" cannot have the same name as your sketch or its enclosing class + +# Footer buttons +editor.footer.errors = Errors +editor.footer.errors.problem = Problem +editor.footer.errors.tab = Tab +editor.footer.errors.line = Line +editor.footer.console = Console + +# New handler +new.messages.is_read_only = Sketch is Read-Only +new.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. + +# Rename handler +rename.messages.is_untitled = Sketch is Untitled +rename.messages.is_untitled.description = How about saving the sketch first\nbefore trying to rename it? +rename.messages.is_modified = Please save the sketch before renaming. +rename.messages.is_read_only = Sketch is Read-Only +rename.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. + +# Naming handler +name.messages.problem_renaming = Problem with rename +name.messages.starts_with_dot.description = The name cannot start with a period. +name.messages.invalid_extension.description = ".%s" is not a valid extension. +name.messages.main_java_extension.description = The first tab cannot be a .%s file.\n(It may be time for you to graduate to a\n"real" programming environment, hotshot.) +name.messages.new_sketch_exists = Nope +name.messages.new_sketch_exists.description = A file named "%s" already exists at\n"%s" +name.messages.new_folder_exists = Cannot Rename +name.messages.new_folder_exists.description = Sorry, a sketch (or folder) named "%s" already exists. +name.messages.error = Error +name.messages.no_rename_folder.description = Could not rename the sketch folder. +name.messages.no_rename_file.description = Could not rename "%s" to "%s" +name.messages.no_create_file.description = Could not create the file "%s"\nin "%s" + +# Delete handler +delete.messages.cannot_delete = Cannot Delete +delete.messages.cannot_delete.description = You cannot delete a sketch that has not been saved. +delete.messages.cannot_delete.file = Could not do it +delete.messages.cannot_delete.file.description = Could not delete +delete.messages.is_read_only = Sketch is Read-Only +delete.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. + +# Save handler +save_file.messages.is_read_only = Sketch is read-only +save_file.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save this sketch to another location. +save_file.messages.sketch_exists = Cannot Save +save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. +save_file.messages.tab_exists = Nope +save_file.messages.tab_exists.description = You cannot save the sketch as "%s"\nbecause the sketch already has a tab with that name. +save_file.messages.recursive_save = How very Borges of you +save_file.messages.recursive_save.description = You cannot save the sketch into a folder\ninside itself. This would go on forever. + +# Add handler +add_file.messages.is_read_only = Sketch is Read-Only +add_file.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save the sketch in another location,\nand try again. +add_file.messages.confirm_replace = Replace the existing version of %s? +add_file.messages.error_adding = Error adding file +add_file.messages.cannot_delete.description = Could not delete the existing '%s' file. +add_file.messages.cannot_add.description = Could not add '%s' to the sketch. +add_file.messages.same_file = You can't fool me +add_file.messages.same_file.description = This file has already been copied to the\nlocation from which where you're trying to add it.\nI ain't not doin nuthin'. + +# Temp folder creator +temp_dir.messages.bad_build_folder = Build folder bad +temp_dir.messages.bad_build_folder.description = Could not find a place to build the sketch. + +# Ensure Existance +ensure_exist.messages.missing_sketch = Sketch Disappeared +ensure_exist.messages.missing_sketch.description = The sketch folder has disappeared.\nWill attempt to re-save in the same location,\nbut anything besides the code will be lost. +ensure_exist.messages.unrecoverable = Could not re-save sketch +ensure_exist.messages.unrecoverable.description = Could not properly re-save the sketch. You may be in trouble at this point,\nand it might be time to copy and paste your code to another text editor. + +# Check name +check_name.messages.is_name_modified = The sketch name had to be modified. Sketch names can only consist\nof ASCII characters and numbers (but cannot start with a number).\nThey should also be less than 64 characters long. + +# External changes detector +change_detect.reload.title=Tab modified externally +change_detect.reload.question="%s" was modified by another program. +change_detect.reload.comment=Would you like to keep this version or load the new changes?\nEither way, the version you discard will be saved to your sketch folder. +change_detect.button.keep=Keep +change_detect.button.load_new=Load changes +change_detect.delete.title=Tab deleted externally +change_detect.delete.question="%s" has disappeared from the sketch folder. +change_detect.delete.comment=Would you like to re-save it or remove it from your sketch? +change_detect.button.discard=Remove permanently +change_detect.button.resave=Re-save + +# --------------------------------------- +# Contributions + +# Contribution Panel +contrib = Contribution Manager +contrib.manager_title.update = Update Manager +contrib.manager_title.mode = Mode Manager +contrib.manager_title.tool = Tool Manager +contrib.manager_title.library = Library Manager +contrib.manager_title.examples = Examples Manager +contrib.category = Category: +contrib.filter_your_search = Filter your search... +contrib.show_only_compatible.mode = Show Only Compatible Modes +contrib.show_only_compatible.tool = Show Only Compatible Tools +contrib.show_only_compatible.library = Show Only Compatible Libraries +contrib.show_only_compatible.examples = Show Only Compatible Examples +contrib.show_only_compatible.update = Show Only Compatible Updates +contrib.restart = Restart Processing +contrib.unsaved_changes = Unsaved changes have been found +contrib.unsaved_changes.prompt = Are you sure you want to restart Processing without saving first? +contrib.messages.remove_restart = Please restart Processing to finish removing this item. +contrib.messages.install_restart = Please restart Processing to finish installing this item. +contrib.messages.update_restart = Please restart Processing to finish updating this item. +contrib.errors.list_download = Could not download the list of available contributions. +contrib.errors.list_download.timeout = Connection timed out while downloading the contribution list. +contrib.errors.download_and_install = Error during download and install of %s. +contrib.errors.description_unavailable = Description unavailable. +contrib.errors.malformed_url = The link fetched from Processing.org is not valid.\nYou can still install this library manually by visiting\nthe library\'s website. +contrib.errors.needs_repackage = %s needs to be repackaged according to the %s guidelines. +contrib.errors.no_contribution_found = Could not find a %s in the downloaded file. +contrib.errors.overwriting_properties = Error overwriting .properties file. +contrib.errors.install_failed = Install failed. +contrib.errors.update_on_restart_failed = Update on restart of %s failed. +contrib.errors.temporary_directory = Could not write to temporary directory. +contrib.errors.contrib_download.timeout = Connection timed out while downloading %s. +contrib.errors.no_internet_connection = You do not seem to be connected to the Internet. +contrib.status.downloading_list = Downloading contribution list... +contrib.status.connecting = Connecting... +contrib.status.done = Done. +contrib.all = 全部All +contrib.undo = 還原Undo +contrib.remove = 移除Renove +contrib.install = 安裝Install +contrib.progress.installing = 安裝中 Installing... +contrib.progress.starting = 準備開始Starting... +contrib.progress.downloading = 下載中Downloading... +contrib.download_error = 下載出現問題Download Error. +contrib.unsupported_operating_system = 你的作業系統沒有支援這個功能。你可查查 %s 相關文件. +contrib.category.3d = 3D +contrib.category.animation = Animation +contrib.category.data = Data +contrib.category.geometry = Geometry +contrib.category.gui = GUI +contrib.category.hardware = Hardware +contrib.category.i_o = I/O +contrib.category.math = Math +contrib.category.simulation = Simulation +contrib.category.sound = Sound +contrib.category.typography = Typography +contrib.category.utilities = Utilities +contrib.category.video_vision = Video & Vision +contrib.category.other = Other + +# Install on Startup +contrib.startup.errors.download_install = Error during download and install of %s +contrib.startup.errors.temp_dir = Could not write to temporary directory during download and install of %s +contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update... + +# Install on Import +contrib.import.dialog.title = 缺的Library可下載哦! Missing Libraries Available +contrib.import.dialog.primary_text = 下面是你import想使用, 但還沒安裝的library, 可下載安裝它們。The following imported libraries are available for download, but have not been installed. +contrib.import.dialog.secondary_text = 你想要安裝它們嗎? Would you like to install them now? +contrib.import.progress.download = 下載中Downloading %s... +contrib.import.progress.install = 安裝中Installing %s... +contrib.import.progress.done = %s 已經安裝好了。 +contrib.import.progress.final_list = 下面列的libraries已安裝好: +contrib.import.errors.link = 錯誤Error: 這個library %s 的下載網址有問題。 + +# --------------------------------------- +# Warnings + +warn.delete = 刪除Delete... +warn.delete.sketch = 確定要刪除程式嗎? +warn.delete.file = 確定要刪除檔案 "%s" 嗎? +warn.delete.sketch_file = 您確定要刪除「%s」嗎? +warn.delete.sketch_last = 為了保護您的檔案安全,Processing 不支援刪除整個程式素描本資料夾。\n請在檔案總管中開啟該資料夾進行刪除。 +warn.cannot_change_mode.title = 無法切換模式 +warn.cannot_change_mode.body = 無法切換模式,\n因為「%s」模式與當前模式不相容。 + +# --------------------------------------- +# Update Check + +update_check = 線上更新Update +update_check.updates_available.core = 線上更新時找到新版Processing\n你想要從Processing官網下載最新版嗎? +update_check.updates_available.contributions = 你安裝的第三方貢獻Contributions有線上更新\n你想要開啟Contribution Manager去線上更新嗎? + + +# --------------------------------------- +# Color Chooser + +color_chooser = 色彩選擇器(Color Selector) +color_chooser.select = 選擇(Select) + +# --------------------------------------- +# Movie Maker + +movie_maker = 圖片建出影片(Movie Maker) +movie_maker.title = QuickTime Movie Maker +movie_maker.blurb = 這個工具可以從一堆連續的圖片, 製作出QuickTime影片。

為了避免圖片壓縮造成不連續小瑕疵,
請在Processing存圖時使用TIFF, TGA, PNG來當連續圖片。

使用TIFF 或TGA圖檔可以快速製作影片,但需要大量的硬碟空間:
saveFrame("frames/####.tif");可存TIFF圖檔
saveFrame("frames/####.tga");可存TGA圖檔

PNG圖檔會比較小,不過程式在執行時會比較慢:
saveFrame("frames/####.png");可存PNG圖檔

這裡使用的程式是使用QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = 可在檔案總管裡直接將image目錄drag拖曳到下面欄位: +movie_maker.choose_button = 手動選擇目錄Choose... +movie_maker.select_image_folder = Select image folder... +movie_maker.sound_file_help_label = 可在檔案總管裡直接將sound檔案drag拖曳到下面欄位(.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = 請選擇一個sound聲音檔... + +movie_maker.create_movie_button = 開始製作影片Create movie... +movie_maker.save_dialog_prompt = 將影片存檔成Save movie as... +movie_maker.width = 寬度Width: +movie_maker.height = 高度Height +movie_maker.compression = 壓縮方式Compression: +movie_maker.compression.animation = Animation +movie_maker.compression.jpeg = JPEG +movie_maker.compression.png = PNG +movie_maker.framerate = 每秒幾張圖Framerate: +movie_maker.orig_size_button = 影片size與圖片相同Same size as originals +movie_maker.orig_size_tooltip = 如果勾選,表示image目錄的圖檔已是影片要使用的長寬大小。 + +movie_maker.error.avoid_tiff = 有TIFF問題,請改用TGA或PNG圖檔。 +movie_maker.error.badnumbers = 欄位有問題,寬度Width、高度height必須是比0大的整數; 每秒framerate必須是比0大的數。 +movie_maker.error.cannot_read = 無法讀取 %s. +movie_maker.error.cannot_read_maybe_bad = 無法讀取 %s; 它可能已損壞。 +movie_maker.error.movie_failed = 製作QuickTime影片時失敗。 +movie_maker.error.need_input = 你必須要設定好image目錄、sound聲音檔案。 +movie_maker.error.no_images_found = 找不到image圖檔。 +movie_maker.error.sorry = Sorry +movie_maker.error.unknown_tga_format = 這個 .tga檔案的格式無法辨識%s + +movie_maker.progress.creating_file_name = 製作中 %s +movie_maker.progress.creating_output_file = 製作output檔案中 +movie_maker.progress.initializing = 初始化Initializing... +movie_maker.progress.processing = 處理中Processing %s. diff --git a/app/utils/build/resources/main/ProcessingSans-Bold.ttf b/app/utils/build/resources/main/ProcessingSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..45ebecc82e5540065725e9f362b1a5abeb42075f GIT binary patch literal 336072 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 gtJY&LJjUCv(XdA(`99{25Dp02$kTuRc1^ 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 literal 0 HcmV?d00001 diff --git a/app/utils/build/resources/main/ProcessingSans-LICENSE.md b/app/utils/build/resources/main/ProcessingSans-LICENSE.md new file mode 100644 index 0000000000..bb8a7c833f --- /dev/null +++ b/app/utils/build/resources/main/ProcessingSans-LICENSE.md @@ -0,0 +1,8 @@ +This is [Source Sans](https://github.com/adobe-fonts/source-sans) from Adobe, but renamed to +prevent conflicts on Windows with other versions of Source Sans. See [issue 4747](https://github.com/processing/processing/issues/4747) in the old Processing repository for details. + +The license for this font can be found [here](https://github.com/adobe-fonts/source-sans/blob/release/LICENSE.md). + +We're using [version 3.046 from 14 July 2021](https://github.com/adobe-fonts/source-sans/releases/tag/3.046R). + +After downloading the TTF, it was opened with [FontForge](https://fontforge.org/). The font and family names were changed using Element → Font Info, followed by File → Generate to create the new `.ttf` files. diff --git a/app/utils/build/resources/main/ProcessingSans-Regular.ttf b/app/utils/build/resources/main/ProcessingSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7b0cda50ad5d77ee6015cd0d48a634e7dad82862 GIT binary patch literal 337024 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 [username] -> AppData -> Roaming -> +# Processing -> preferences.txt (on Windows 10) + +# ~/Library -> Processing -> preferences.txt (on macOS) + +# ~/.config/processing -> preferences.txt (on Linux) + +# The exact location of your preferences file can be found at +# the bottom of the Preferences window inside Processing. + +# Because AppData and Application Data may be considered +# hidden or system folders on Windows, you'll have to ensure +# that they're visible in order to get at preferences.txt + +# You'll have problems running Processing if you incorrectly +# modify lines in this file. It will probably not start at all. + +# AGAIN, DO NOT ALTER THIS FILE! I'M ONLY YELLING BECAUSE I LOVE YOU! + + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# If you don't want users to have their sketchbook default to +# "My Documents/Processing" on Windows and "Documents/Processing" on OS X, +# set this to another path that will be used by default. +# Note that this path must exist already otherwise it won't see +# the sketchbook folder, and will instead assume the sketchbook +# has gone missing, and that it should instead use the default. +# In 4.0, the location has changed. +#sketchbook.path.four= + +# Whether or not to show the Welcome screen for 4.0 +# (It's always available under Help → Welcome) +welcome.four.show = true +welcome.four.seen = false + +# Set 'true' for the default behavior before 4.0, where the +# main tab must have the same name as the sketch folder +editor.sync_folder_and_filename = true + +# By default, contributions are moved to backup folders when +# they are removed or replaced. The backups can be found at +# sketchbook/libraries/old, sketchbook/tools/old, and sketchbook/modes/old + +# true to backup contributions when "Remove" button is pressed +contribution.backup.on_remove = true +# true to backup contributions when installing a newer version +contribution.backup.on_install = true + +recent.count = 10 + +# Default to the native (AWT) file selector where possible +chooser.files.native = true +# We were shutting this off on macOS because it broke Copy/Paste: +# https://github.com/processing/processing/issues/1035 +# But removing again for 4.0 alpha 5, because the JFileChooser is awful, +# and worse on Big Sur, so a bigger problem than the Copy/Paste issue. +# https://github.com/processing/processing4/issues/77 +#chooser.files.native.macos = false + +# set to 'lab' to interpolate theme gradients using L*a*b* color space +theme.gradient.method = rgb + + +# by default, check the processing server for any updates +# (please avoid disabling, this also helps us know basic numbers +# on how many people are using Processing) +update.check = true + +# on windows, automatically associate .pde files with processing.exe +platform.auto_file_type_associations = true + + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# default size for the main window +editor.window.width.default = 700 +editor.window.height.default = 600 + +editor.window.width.min = 400 +editor.window.height.min = 500 +# tested as approx 440 on OS X +editor.window.height.min.macos = 450 +# tested to be 515 on Windows XP, this leaves some room +editor.window.height.min.windows = 530 +# tested with Raspberry Pi display +editor.window.height.min.linux = 480 + +# scaling for the interface (to handle Windows and Linux HiDPI displays) +editor.zoom = 100% +# automatically set based on system dpi (only helps on Windows) +editor.zoom.auto = true + +# Use the default monospace font included in lib/fonts. +# (As of Processing 4 alpha 5, that's Source Code Pro) +editor.font.family = processing.mono +editor.font.size = 12 + +# To reset everyone's default, replaced editor.antialias with editor.smooth +# for 2.1. Fonts are unusably gross on OS X (and Linux) w/o smoothing and +# the Oracle JVM, and many longtime users have anti-aliasing turned off. +editor.smooth = true + +# blink the caret by default +editor.caret.blink = true +# change to true to use a block (instead of a bar) +editor.caret.block = false + +# enable ctrl-ins, shift-ins, shift-delete for cut/copy/paste +# on windows and linux, but disable on the mac +editor.keys.alternative_cut_copy_paste = true +editor.keys.alternative_cut_copy_paste.macos = false + +# true if shift-backspace sends the delete character, +# false if shift-backspace just means backspace +editor.keys.shift_backspace_is_delete = false + +# home and end keys should only travel to the start/end of the current line +editor.keys.home_and_end_travel_far = false +# home and end keys move to the first/last non-whitespace character, +# and move to the actual start/end when pressed a second time. +# Only works if editor.keys.home_and_end_travel_far is false. +editor.keys.home_and_end_travel_smart = true +# The OS X HI Guidelines say that home/end are relative to the document, +# but that drives some people nuts. This pref enables/disables it. +editor.keys.home_and_end_travel_far.macos = true + +# Enable/disable support for complex scripts. Used for Japanese and others, +# but disable when not needed, otherwise basic Western European chars break. +editor.input_method_support = false + +# convert tabs to spaces? how many spaces? +editor.tabs.expand = true +editor.tabs.size = 2 + +# Set to true to automatically close [ { ( " and ' +editor.completion.auto_close = false + +# automatically indent each line +editor.indent = true + +# Whether to check files to see if they've been modified externally +editor.watcher = true +# Set true to enable debugging, since this is quirky on others' machines +editor.watcher.debug = false +# The window of time (in milliseconds) in which a change won't be counted +editor.watcher.window = 1500 + +# Format and search engine to use for online queries +search.format = https://google.com/search?q=%s + +# font choice and size for the console +console.font.size = 12 + +# number of lines to show by default +console.lines = 4 + +# Number of blank lines to advance/clear console. +# Note that those lines are also printed in the terminal when +# Processing is executed there. +# Setting to 0 stops this behavior. +console.head_padding = 10 + +# Set to false to disable automatically clearing the console +# each time 'run' is hit +# If one sets it to false, one may also want to set 'console.head_padding' +# to a positive number to separate outputs from different runs. +console.auto_clear = true + +# number of days of history to keep around before cleaning +# setting to 0 will never clean files +console.temp.days = 7 + +# set the maximum number of lines remembered by the console +# the default is 500, lengthen at your own peril +console.scrollback.lines = 500 +console.scrollback.chars = 40000 + +# Any additional Java options when running. +# If you change this and can't run things, it's your own durn fault. +run.options = + +# settings for the -XmsNNNm and -XmxNNNm command line option +run.options.memory = false +run.options.memory.initial = 64 +run.options.memory.maximum = 512 + +# Index of the display to use for running sketches (starts at 1). +# Kept this 1-indexed because older vesions of Processing were setting +# the preference even before it was being used. +# -1 means the default display, 0 means all displays +run.display = -1 + +# set internally because it comes from the system +#run.window.bgcolor= + +# set to false to open a new untitled window when closing the last window +# (otherwise, the environment will quit) +# default to the relative norm for the different platforms, +# but the setting can be changed in the prefs dialog anyway +#sketchbook.closing_last_window_quits = true +#sketchbook.closing_last_window_quits.macos = false + +editor.untitled.prefix=sketch_ +# The old (pre-1.0, back for 2.0) style for default sketch name. +# If you change this, be careful that this will work with your language +# settings. For instance, MMMdd won't work on Korean-language systems +# because it'll insert non-ASCII characters and break the environment. +# https://github.com/processing/processing/issues/322 +editor.untitled.suffix=yyMMdd + +# replace underscores in .pde file names with spaces +sketch.name.replace_underscore = true + +# what to use for generating sketch names (change in the prefs window) +#sketch.name.approach = + +# number of days of build history and other temp files to keep around +# these are kept around for debugging purposes, and in case code is lost +temp.days = 7 + + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# whether or not to export as full screen (present) mode +export.application.fullscreen = false + +# whether to show the stop button when exporting to application +export.application.stop = true + +# embed Java by default for lower likelihood of problems +export.application.embed_java = true + +# set to false to no longer delete application folders before export +# (removed from the Preferences windows in 4.0 beta 9) +export.delete_target_folder = true + +# may be useful when attempting to debug the preprocessor +preproc.save_build_files=false + +# allows various preprocessor features to be toggled +# in case they are causing problems + +# preprocessor: pde.g +preproc.color_datatype = true +preproc.web_colors = true +preproc.enhanced_casting = true + +# preprocessor: PdeEmitter.java +preproc.substitute_floats = true + +# PdePreproc.java +# writes out the parse tree as parseTree.xml, which can be usefully +# viewed in (at least) Mozilla or IE. useful when debugging the preprocessor. +preproc.output_parse_tree = false + +# set to the program to be used for opening HTML files, folders, etc. +#launcher.linux = xdg-open + +# FULL SCREEN (PRESENT MODE) +run.present.bgcolor = #666666 +run.present.stop.color = #cccccc + +# PROXIES +# Set a proxy server for folks that require it. This will allow the update +# checker and the contrib manager to run properly in those environments. +# This changed from proxy.host and proxy.port to proxy.http.host and +# proxy.http.port in 3.0a8. In addition, https and socks were added. +proxy.http.host= +proxy.http.port= +proxy.https.host= +proxy.https.port= +proxy.socks.host= +proxy.socks.port= +# Example of usage (replace 'http' with 'https' or 'socks' as needed) +#proxy.http.host=proxy.example.com +#proxy.http.port=8080 +# Whether to use the system proxy by default +proxy.system=true + +# PDE X +pdex.errorCheckEnabled = true +pdex.warningsEnabled = true +pdex.writeErrorLogs = false + +pdex.autoSave.autoSaveEnabled = false +pdex.autoSaveInterval = 5 +pdex.autoSave.promptDisplay = true +pdex.autoSave.autoSaveByDefault = true + +# Enable auto-completion when hitting ctrl-space +pdex.completion = false +# Setting this true will show completions whenever available, not just after ctrl-space +pdex.completion.trigger = false +# Suggest libraries to import when a class is undefined/unavailable +pdex.suggest.imports = true +# Set to false to disable ctrl/cmd-click jump to definition +pdex.inspectMode.hotkey = true diff --git a/app/utils/build/resources/main/mini.svg b/app/utils/build/resources/main/mini.svg new file mode 100644 index 0000000000..27d4525820 --- /dev/null +++ b/app/utils/build/resources/main/mini.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/utils/build/resources/main/theme.txt b/app/utils/build/resources/main/theme.txt new file mode 100644 index 0000000000..c170123b5a --- /dev/null +++ b/app/utils/build/resources/main/theme.txt @@ -0,0 +1,347 @@ +## Look-and-Feel Entries ## + +laf.mode = light +laf.accent.color = #003775 + +# global color used in dialog boxes that have text links +label.link.color = #cc0000 + + +## EditorToolbar ## + +# TOOLBAR BUTTON TEXT +toolbar.rollover.font = processing.sans,plain,12 +toolbar.rollover.color = #000000 +toolbar.gradient.top = #6BA0CC +toolbar.gradient.bottom = #6BA0CC + +# MODE SELECTOR (EditorToolbar) +mode.title.font = processing.sans,plain,12 +mode.title.color = #004166 +# stolen from gradient bottom +mode.background.color = #6BA0CC +mode.outline.color = #13577F + +mode.popup.enabled.fgcolor = #344351 +mode.popup.enabled.bgcolor = #DCEDFF +mode.popup.disabled.fgcolor = #8494A4 +mode.popup.disabled.bgcolor = #DCEDFF +mode.popup.selected.fgcolor = #00072B +mode.popup.selected.bgcolor = #6BA0CC + +toolbar.button.disabled.field = #558BB6 +toolbar.button.disabled.glyph = #3E76A0 +toolbar.button.disabled.stroke = none +toolbar.button.enabled.field = #FFFFFE +toolbar.button.enabled.glyph = #0088F6 +toolbar.button.enabled.stroke = none +toolbar.button.pressed.field = #0068D1 +toolbar.button.pressed.glyph = #FFFFFE +toolbar.button.pressed.stroke = #FFFFFE +toolbar.button.rollover.field = #FFFFFE +toolbar.button.rollover.glyph = #002E7A +toolbar.button.rollover.stroke = none +toolbar.button.selected.field = #002E7A +toolbar.button.selected.glyph = #FFFFFE +toolbar.button.selected.stroke = none + +toolbar.button.debug.disabled.field = #000009 +toolbar.button.debug.disabled.glyph = #E4E8E4 +toolbar.button.debug.disabled.stroke = none +toolbar.button.debug.enabled.field = #909699 +toolbar.button.debug.enabled.glyph = #DEE2DF +toolbar.button.debug.enabled.stroke = none +toolbar.button.debug.pressed.field = #909699 +toolbar.button.debug.pressed.glyph = #FFFFF2 +toolbar.button.debug.pressed.stroke = #60605B +toolbar.button.debug.rollover.field = #5B6165 +toolbar.button.debug.rollover.glyph = #FFFFF2 +toolbar.button.debug.rollover.stroke = none +toolbar.button.debug.selected.field = #FFFFF2 +toolbar.button.debug.selected.glyph = #0075FF +toolbar.button.debug.selected.stroke = none + + +## EditorStatus - status message bar directly below the editor ## + +status.font = processing.sans,plain,13 + +status.notice.fgcolor = #00173F +status.notice.bgcolor = #0870A3 +status.error.fgcolor = #FFFFFE +status.error.bgcolor = #BF0019 +status.warning.bgcolor = #003775 +status.warning.fgcolor = #00DFFF + +# applies to the entire status text if it contains url +status.url.enabled.alpha = 70 +status.url.rollover.alpha = 90 +status.url.pressed.alpha = 100 + +status.button.enabled.alpha = 50 +status.button.rollover.alpha = 70 +status.button.pressed.alpha = 90 + + +## EditorHeader - the tab area above the editor ## + +header.text.font = processing.sans,bold,14 +header.text.selected.color = #002F72 +header.text.unselected.color = #516C85 +header.tab.arrow.color = #516C85 +header.tab.selected.color = #C4E9FF +header.tab.unselected.color = #A6CAED +header.tab.modified.color = #000000 +header.gradient.top = #6BA0CC +header.gradient.bottom = #6BA0CC + + +## EditorFooter - the tabs below the editor ## + +footer.text.font = processing.sans,bold,12 +footer.text.selected.color = #000000 +footer.text.enabled.color = #004166 +footer.icon.selected.color = #000000 +footer.icon.enabled.color = #004166 +footer.gradient.top = #6BA0CC +footer.gradient.bottom = #6BA0CC +footer.tab.selected.color = #3E76A0 +footer.tab.enabled.color = #6BA0CC +footer.updates.text.color = #000000 +footer.updates.indicator.field.color = #D1FFFF +footer.updates.indicator.text.color = #00072B + + +## EditorConsole - stack traces of doom and println() ## +# The font is handled by preferences.txt, so its size/etc are modifiable. + +console.color = #171F27 +# color of System.out text +console.output.color = #949DA7 +# text color for errors printed in the console +console.error.color = #00CFFF + +console.scrollbar.thumb.enabled.color = #475059 +console.scrollbar.thumb.rollover.color = #2F6A90 +console.scrollbar.thumb.pressed.color = #2F6A90 +console.scrollbar.color = #121A22 + + +## PdeTextAreaDefaults - default colors for the editor ## + +# foreground and background colors +editor.fgcolor = #000000 +editor.bgcolor = #FFFFFE + +editor.gradient.top = #6BA0CC +editor.gradient.bottom = #6BA0CC + +# highlight for the current line +editor.line.highlight = true +editor.line.highlight.color = #DEF3FF + +editor.caret.color = #000000 +# also used by EditorHeader +editor.selection.color = #BFD7EF + +# little pooties at the end of lines that show where they finish +editor.eol_markers = false +editor.eol_markers.color = #999999 + +# bracket/brace highlighting +editor.bracket.highlight = true +editor.bracket.highlight.color = #006698 + +# colors for the custom scroll bar +editor.scrollbar.thumb.enabled.color = #3E76A0 +editor.scrollbar.thumb.rollover.color = #306B93 +editor.scrollbar.thumb.pressed.color = #306B93 +editor.scrollbar.color = #5E93BF + + +## PdeTextAreaPainter - extras added to the editor ## + +editor.gutter.text.font = processing.mono,plain,12 +editor.gutter.text.color = #00072B + +# transparency (0..100) for line numbers in gutter +editor.gutter.text.active.alpha = 70 +# transparency for lines not currently in use +editor.gutter.text.inactive.alpha = 30 + +# bgcolor for the current (highlighted) line +editor.gutter.highlight.color = #3E76A0 + +# squiggly line underneath errors in the editor +editor.error.underline.color = #FF002C +# squiggly line underneath warnings +editor.warning.underline.color = #003775 + + +## MarkerColumn - shows ticks adjacent the scroll bar ## + +# lines next to the scrollbar showing where errors are located +editor.column.error.color = #9C0000 +editor.column.warning.color = #00496F + + +## ErrorTable - second tab below the console area, lists errors and warnings ## + +errors.header.font = processing.sans,plain,12 +errors.header.bgcolor = #00243E +errors.header.fgcolor = #8F9FB0 +errors.bgcolor = #005076 +errors.row.font = processing.sans,plain,12 +errors.row.fgcolor = #AED2F5 +errors.row.bgcolor = #005076 +errors.selection.fgcolor = #FFFFFE +errors.selection.bgcolor = #3E76A0 +errors.selection.error.bgcolor = #008FFF +errors.selection.warning.bgcolor = #3B749E +errors.indicator.error.color = #00F0FF +errors.indicator.warning.color = #659BC6 + + +## ManagerTabs - tabs in the Contribution Manager ## + +manager.tab.selected.color = #C4E9FF +manager.tab.unselected.color = #8DB2D3 +manager.tab.text.font = processing.sans,bold,14 +manager.tab.text.selected.color = #000000 +manager.tab.text.unselected.color = #305774 +manager.tab.gradient.top = #477FA9 +manager.tab.gradient.bottom = #477FA9 + + +## ManagerFrame - main window for the Contribution Manager ## + +# same as manager.tab.gradient.top, because .bottom is between the tabs +manager.tab.background = #477FA9 + + +## ContributionTab + +# category chooser for libraries +manager.categories.enabled.fgcolor = #A6DAFF +manager.categories.enabled.bgcolor = #004268 +manager.categories.disabled.fgcolor = #09537A +manager.categories.disabled.bgcolor = #004268 +manager.categories.selected.fgcolor = #003E87 +manager.categories.selected.bgcolor = #4EE5FF + + +# error window (X) close button +manager.error.close.icon.color = #000000 + +manager.scrollbar.thumb.enabled.color = #9ABEE0 +manager.scrollbar.thumb.rollover.color = #85A9CB +manager.scrollbar.thumb.pressed.color = #85A9CB +manager.scrollbar.color = #BFE3FF + +manager.search.text.color = #000000 +manager.search.icon.color = #3E617E +manager.search.background.color = #9DBFDF +manager.search.caret.color = #003675 +manager.search.placeholder.color = #3E617E +manager.search.selection.text.color = #000000 +manager.search.selection.background.color = #4899D1 + + +## ListPanel – the listing inside a Contribution Manager tab ## + +manager.list.heavy.font = processing.sans,bold,14 +manager.list.background.color = #C4E9FF +manager.list.header.fgcolor = #003262 +manager.list.header.bgcolor = #B6DBFE +manager.list.section.color = #C4E9FF +manager.list.selection.color = #6A9FCB +manager.list.icon.color = #00388C +manager.list.text.color = #000000 +manager.list.foundation.color = #00367D +manager.list.incompatible.selection.color = #B2CEEA +manager.list.incompatible.text.color = #677685 + + +## StatusPanel - the bottom panel with detail about a contribution + +manager.panel.font = processing.sans,plain,11 +manager.panel.background.color = #175A81 +manager.panel.text.color = #FFFFFE +manager.panel.link.color = #4EE5FF +manager.panel.foundation.color = #00F4FF + +manager.button.enabled.background.color = #00385D +manager.button.enabled.text.color = #FFFFFE +manager.button.enabled.icon.color = #4EE5FF +manager.button.pressed.background.color = #001A3B +manager.button.pressed.text.color = #4EE5FF +manager.button.pressed.icon.color = #4EE5FF +manager.button.disabled.background.color = #00496F +manager.button.disabled.text.color = #A4B0BE +manager.button.disabled.icon.color = #A4B0BE + +manager.progress.complete.fgcolor = #FFFFFE +manager.progress.complete.bgcolor = #00C2FF +manager.progress.incomplete.fgcolor = #A4B0BE +manager.progress.incomplete.bgcolor = #001A3B + + +## ZoomTreeCellRenderer - tree for Examples and Sketchbook windows ## + +tree.font = processing.sans,plain,12 + + +## Theme Selector - stays the same across all themes ## + +# dropdown for changing the theme set +theme_selector.combo_box.enabled.fgcolor = #B5C8DC +theme_selector.combo_box.enabled.bgcolor = #1F3241 +theme_selector.combo_box.disabled.fgcolor = #4E6071 +theme_selector.combo_box.disabled.bgcolor = #1F3241 +theme_selector.combo_box.selected.fgcolor = #000E46 +theme_selector.combo_box.selected.bgcolor = #00A4F0 + +# background color for the window +theme_selector.window.color = #000000 + +# text for the labels at the bottom +theme_selector.text.color = #71777E +theme_selector.link.color = #57D0FF + + +## Token - colors for source code in the editor ## + +# For an explanation of these tags, see Token.java: +# processing/app/src/processing/app/syntax/Token.java + +editor.token.function1.style = #006698,plain +editor.token.function2.style = #006698,plain +editor.token.function3.style = #6D9810,plain +editor.token.function4.style = #006698,bold + +editor.token.keyword1.style = #30987F,plain +editor.token.keyword2.style = #30987F,plain +editor.token.keyword3.style = #6D9810,plain +editor.token.keyword4.style = #DB4D7A,plain +editor.token.keyword5.style = #E7671C,plain +editor.token.keyword6.style = #30987F,plain + +editor.token.literal1.style = #738A63,plain +editor.token.literal2.style = #754891,plain + +editor.token.operator.style = #006698,plain + +editor.token.label.style = #656565,bold + +editor.token.comment1.style = #656565,plain +editor.token.comment2.style = #656565,plain + +editor.token.invalid.style = #656565,bold + + +## Colors used for code completion icons ## + +editor.completion.class.color = #E7671C +editor.completion.field.color = #754891 +editor.completion.local.color = #006698 +editor.completion.method.color = #30987F diff --git a/app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Base.class.uniqueId1 b/app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Base.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..50ae3e9682dfbfddebb0a5b61e7f03f902ad1f74 GIT binary patch literal 2418 zcmaJ?SyL2O7(Ew|9-0Pq6bLRj3bGo;tcrt17(s~xCW06-TQhT+X{V=q(%plS&E#LC z`~!K(gGs8CXjSrfT+$t8nIey5*DH1r{r}S4)fNFtb2xSrSOix z*%>S2=#I?jRw>i4s#bU}<5d{ZOhvEPr6o%#yeDubZ#T?R#2T?rg2%p6%8NYDkI%=AaCj}1v)|!e#SMN zqMUIFDfODb*gjG<^KQYaH@wg^r(l*oHDMP_QN<&~o#SG?r$L7g* zzb95z+`xi@4>jCGVR!0nxt=7ob`qA>CaWW^1iyT;i+Vkm!jiy&Yjd-Au6N=ie5~NM zhGnb>bOi)sLxIksZF#z3xi{t3YgFPKUhBXVRy8c)u7Fq*Xv^CrNeK&vC6^ktb?L15 zxgn4)*hSr3)g8lMN1JU7J>~5y>>HLGDH(3wuGN?@J|JT}s{1Jv#y`#mGNWNn zA}MwR=M$+7;#hhu;MfdNlsD{iapJ|zrTcaCu4PXzR;g{|l}3^UV?9n2&51H+DR`va zjnXF~M3%c##f(d6_X(L!v(JWISX~Zs(eG_6Uq6Q@ed^2wHdv1@==DYERqT>`upN#H z7oLKK-&&XxLrpIYYtydEZ0Ky*ZRYi&XFCk|Pf2AX!w~ca<6%m7s9@XGMm?7hHUvuU z?7FzJRhP-b$ozf+A^1sBs2Jtz=>vuD6$+q88nHoH;5FzX29c$4cf?t z-LOiRGJ?&2!Lp#e8}<)j7oIQqx_xW-Wn4R9Zya@B#)aEv?t<$>UYc4=iB9lvl#ByM-o z_H%p@+5Uz$w9;Zq6t-EH6VK4|1pWLRe}Z&+U}77Y7Z@hOHpYL3wwQi9{q8x=U!wQk z1j)Vslt3*Qq|JE(`6P$=0MN(XW2AbLfBXR)#VOj1@N9_VS^75`IFaF<5v1@X^gxd( ztfR==Ex3RZB(XQR>O$))3@YfIRd7B<_%g0W{0##5LLN^~jXy)KF!47Izr@VF@fXMg z&vEUqiKjdcnWgD0a1jdC@5Ckk?WY44y&(iD!P^Si8h8-Boq~9Ueg##stnI{SIJg0H xZ{vD;@ekZ;!SA@^2P!GG!gnq1wZKN5-)_#nqQ%2t+`>29Q@Q>Y-{S}L{|DjKZjAr{ literal 0 HcmV?d00001 diff --git a/app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Main.class.uniqueId0 b/app/utils/build/tmp/compileJava/compileTransaction/stash-dir/Main.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..f7771be06e0568fded26eca1c2bc625825b6a275 GIT binary patch literal 1858 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 literal 0 HcmV?d00001 diff --git a/app/utils/build/tmp/jar/MANIFEST.MF b/app/utils/build/tmp/jar/MANIFEST.MF new file mode 100644 index 0000000000..59499bce4a --- /dev/null +++ b/app/utils/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/app/utils/src/main/java/processing/utils/Base.java b/app/utils/src/main/java/processing/utils/Base.java new file mode 100644 index 0000000000..a265bcab69 --- /dev/null +++ b/app/utils/src/main/java/processing/utils/Base.java @@ -0,0 +1,72 @@ +package processing.utils; + +import java.io.File; +import java.io.InputStream; + +public class Base { + static public boolean DEBUG = System.getenv().containsKey("DEBUG"); + + + static public boolean isCommandLine() { + return Boolean.getBoolean("processing.cli"); + } + + + /** + * Convenience method to get a File object for the specified filename inside + * the settings folder. Used to get preferences and recent sketch files. + * + * @param filename A file inside the settings folder. + * @return filename wrapped as a File object inside the settings folder + */ + static public File getSettingsFile(String filename) { + File settingsFolder = null; + + try { + settingsFolder = SettingsResolver.getSettingsFolder(); + + // create the folder if it doesn't exist already + if (!settingsFolder.exists()) { + if (!settingsFolder.mkdirs()) { + Messages.showError("Settings issues", + "Could not create the folder" + + settingsFolder, null); + } + } + } catch (Exception e) { + Messages.showError("An rare and unknowable thing happened", + "Could not get the settings folder.", e); + } + return new File(settingsFolder, filename); + } + + + /** + * Retrieves an InputStream to a resource file located within the JAR package. + * This method uses Java's resource loading system to fetch files bundled in the application, + * such as configuration files, data, or assets. + * + * @param resourceName The name or path of the resource file to be loaded. + * This should match the location in the JAR's structure. + * @return An InputStream that can be used to read the contents of the requested resource file, + * or null if the resource is not found. + * @throws IllegalArgumentException if the resource cannot be located. + */ + public static InputStream getLibStream(String resourceName) { + if (resourceName == null || resourceName.isEmpty()) { + throw new IllegalArgumentException("Resource name cannot be null or empty"); + } + // Ensure the resource name starts with exactly one "/" + if (!resourceName.startsWith("/")) { + resourceName = "/" + resourceName; // Prepend "/" if missing + } else { + resourceName = resourceName.replaceAll("^/+","/"); // Ensure only one "/" at start + } + + InputStream stream = Base.class.getResourceAsStream(resourceName); + if (stream == null) { + throw new IllegalArgumentException("Resource not found: " + resourceName); + } + return stream; + } +} diff --git a/app/utils/src/main/java/processing/utils/Main.java b/app/utils/src/main/java/processing/utils/Main.java new file mode 100644 index 0000000000..04449f5411 --- /dev/null +++ b/app/utils/src/main/java/processing/utils/Main.java @@ -0,0 +1,27 @@ +package processing.utils; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +//TIP To Run code, press or +// click the icon in the gutter. +public class Main { + public static void main(String[] args) { + //TIP Press with your caret at the highlighted text + // to see how IntelliJ IDEA suggests fixing it. + InputStream inputStream = Base.getLibStream("/defaults.txt"); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { + String line; + while ((line = reader.readLine()) != null) { + // Print each line from the InputStream + System.out.println(line); + } + } catch (IOException e) { + // Handle error if an issue occurs while reading + System.err.println("Error reading from InputStream: " + e.getMessage()); + } + + } +} \ No newline at end of file diff --git a/app/utils/src/main/java/processing/utils/Messages.kt b/app/utils/src/main/java/processing/utils/Messages.kt new file mode 100644 index 0000000000..c6418e9df7 --- /dev/null +++ b/app/utils/src/main/java/processing/utils/Messages.kt @@ -0,0 +1,144 @@ +/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */ /* + Part of the Processing project - http://processing.org + + Copyright (c) 2015 The Processing Foundation + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + version 2, as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +package processing.utils + +import java.awt.Frame +import javax.swing.JOptionPane + +open class Messages { + companion object { + /** + * "No cookie for you" type messages. Nothing fatal or all that + * much of a bummer, but something to notify the user about. + */ + @JvmStatic + fun showMessage(title: String = "Message", message: String) { + if (Base.isCommandLine()) { + println("$title: $message") + } else { + JOptionPane.showMessageDialog( + Frame(), message, title, + JOptionPane.INFORMATION_MESSAGE + ) + } + } + + + /** + * Non-fatal error message with optional stack trace side dish. + */ + /** + * Non-fatal error message. + */ + @JvmStatic + @JvmOverloads + fun showWarning(title: String = "Warning", message: String, e: Throwable? = null) { + if (Base.isCommandLine()) { + println("$title: $message") + } else { + JOptionPane.showMessageDialog( + Frame(), message, title, + JOptionPane.WARNING_MESSAGE + ) + } + e?.printStackTrace() + } + + + /** + * Show an error message that's actually fatal to the program. + * This is an error that can't be recovered. Use showWarning() + * for errors that allow P5 to continue running. + */ + @JvmStatic + fun showError(title: String? = "Error", message: String, e: Throwable?) { + if (Base.isCommandLine()) { + System.err.println("$title: $message") + } else { + JOptionPane.showMessageDialog( + Frame(), message, title, + JOptionPane.ERROR_MESSAGE + ) + } + e?.printStackTrace() + System.exit(1) + } + + + // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + @JvmStatic + @Deprecated("Use log() instead") + fun log(from: Any, message: String) { + if (Base.DEBUG) { + val callingClass = Throwable() + .stackTrace[2] + .className + .formatClassName() + println("$callingClass: $message") + } + } + + @JvmStatic + fun log(message: String?) { + if (Base.DEBUG) { + val callingClass = Throwable() + .stackTrace[2] + .className + .formatClassName() + println("$callingClass$message") + } + } + + @JvmStatic + fun logf(message: String?, vararg args: Any?) { + if (Base.DEBUG) { + val callingClass = Throwable() + .stackTrace[2] + .className + .formatClassName() + System.out.printf("$callingClass$message", *args) + } + } + + @JvmStatic + @JvmOverloads + fun err(message: String?, e: Throwable? = null) { + if (Base.DEBUG) { + if (message != null) { + val callingClass = Throwable() + .stackTrace[4] + .className + .formatClassName() + System.err.println("$callingClass$message") + } + e?.printStackTrace() + } + } + } +} + +// Helper functions to give the base classes a color +fun String.formatClassName() = this + .replace("processing.", "") + .replace(".", "/") + .padEnd(40) + .colorizePathParts() +fun String.colorizePathParts() = split("/").joinToString("/") { part -> + "\u001B[${31 + (part.hashCode() and 0x7).rem(6)}m$part\u001B[0m" +} \ No newline at end of file diff --git a/app/src/processing/app/Preferences.java b/app/utils/src/main/java/processing/utils/Preferences.java similarity index 95% rename from app/src/processing/app/Preferences.java rename to app/utils/src/main/java/processing/utils/Preferences.java index 640c77eade..f3aba56e97 100644 --- a/app/src/processing/app/Preferences.java +++ b/app/utils/src/main/java/processing/utils/Preferences.java @@ -19,15 +19,13 @@ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -package processing.app; +package processing.utils; import java.awt.Color; -import java.awt.Font; import java.awt.SystemColor; import java.io.*; import java.util.*; -import processing.app.ui.Toolkit; import processing.core.*; @@ -80,11 +78,6 @@ static public void init() { // other things that have to be set explicitly for the defaults setColor("run.window.bgcolor", SystemColor.control); //$NON-NLS-1$ - // For CJK users, enable IM support by default - if (Language.useInputMethod()) { - setBoolean("editor.input_method_support", true); - } - // next load user preferences file preferencesFile = Base.getSettingsFile(PREFS_FILE); boolean firstRun = !preferencesFile.exists(); @@ -347,17 +340,6 @@ static public void setColor(String attr, Color what) { } - static public Font getFont(String familyAttr, String sizeAttr, int style) { - int fontSize = getInteger(sizeAttr); - - String fontFamily = get(familyAttr); - if ("processing.mono".equals(fontFamily) || - Toolkit.getMonoFontName().equals(fontFamily)) { - return Toolkit.getMonoFont(fontSize, style); - } - return new Font(fontFamily, style, fontSize); - } - // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . @@ -392,7 +374,7 @@ static public String getSketchbookPath() { } - static protected void setSketchbookPath(String path) { + public static void setSketchbookPath(String path) { set("sketchbook.path.four", path); //$NON-NLS-1$ } } diff --git a/app/utils/src/main/java/processing/utils/SettingsResolver.java b/app/utils/src/main/java/processing/utils/SettingsResolver.java new file mode 100644 index 0000000000..b58f99ef4b --- /dev/null +++ b/app/utils/src/main/java/processing/utils/SettingsResolver.java @@ -0,0 +1,35 @@ +package processing.utils; + +import processing.utils.settingslocation.*; + +import java.io.File; + +public class SettingsResolver { + /** + * Get the directory that can store settings. (Library on OS X, App Data or + * something similar on Windows, a dot folder on Linux.) Removed this as a + * preference for 3.0a3 because we need this to be stable, but adding back + * for 4.0 beta 4 so that folks can do 'portable' versions again. + */ + static public File getSettingsFolder() throws Exception { + File settingsFolder = null; + + String os = System.getProperty("os.name"); + DefaultLocation loc = null; + + if (os.contains("Mac")) { + loc = new MacLocation(); + } else if (os.contains("Linux")) { + loc = new LinuxLocation(); + } else if (os.contains("Windows")) { + loc = new WindowsLocation(); + } else { + loc = new DefaultLocation(); + } + + settingsFolder = loc.getSettingsFolder(); + + return settingsFolder; + + } +} diff --git a/app/src/processing/app/Util.java b/app/utils/src/main/java/processing/utils/Util.java similarity index 99% rename from app/src/processing/app/Util.java rename to app/utils/src/main/java/processing/utils/Util.java index 4c94af5fe5..281de6fb6d 100644 --- a/app/src/processing/app/Util.java +++ b/app/utils/src/main/java/processing/utils/Util.java @@ -20,7 +20,7 @@ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -package processing.app; +package processing.utils; import java.io.*; import java.net.HttpURLConnection; @@ -278,13 +278,14 @@ static public File createTempFolder(String prefix, String suffix, static public File getProcessingTemp() throws IOException { + String os = System.getProperty("os.name"); String tmpDir = System.getProperty("java.io.tmpdir"); File directory = new File(tmpDir, "processing"); if (!directory.exists()) { if (directory.mkdirs()) { // Set the parent directory writable for multi-user machines. // https://github.com/processing/processing4/issues/666 - if (Platform.isLinux()) { + if (os.contains("Linux")) { Path path = directory.toPath(); Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("rwxrwxrwx")); @@ -347,8 +348,9 @@ static public void copyDir(File sourceDir, static public void copyDirNative(File sourceDir, File targetDir) throws IOException { + String os = System.getProperty("os.name"); Process process; - if (Platform.isMacOS() || Platform.isLinux()) { + if (os.contains("Mac") || os.contains("Linux")) { process = Runtime.getRuntime().exec(new String[] { "cp", "-a", sourceDir.getAbsolutePath(), targetDir.getAbsolutePath() }); diff --git a/app/utils/src/main/java/processing/utils/settingslocation/DefaultLocation.java b/app/utils/src/main/java/processing/utils/settingslocation/DefaultLocation.java new file mode 100644 index 0000000000..ecf8fbdd0e --- /dev/null +++ b/app/utils/src/main/java/processing/utils/settingslocation/DefaultLocation.java @@ -0,0 +1,17 @@ +package processing.utils.settingslocation; + +import java.io.File; + +public class DefaultLocation { + /** + * This function should throw an exception or return a value. + * Do not return null. + */ + public File getSettingsFolder() throws Exception { + // If no subclass has a behavior, default to making a + // ".processing" directory in the user's home directory. + File home = new File(System.getProperty("user.home")); + return new File(home, ".processing"); + } + +} diff --git a/app/utils/src/main/java/processing/utils/settingslocation/LinuxLocation.java b/app/utils/src/main/java/processing/utils/settingslocation/LinuxLocation.java new file mode 100644 index 0000000000..439664de19 --- /dev/null +++ b/app/utils/src/main/java/processing/utils/settingslocation/LinuxLocation.java @@ -0,0 +1,60 @@ +package processing.utils.settingslocation; + +import processing.core.PApplet; +import processing.utils.Messages; + +import java.io.File; + +public class LinuxLocation extends DefaultLocation{ + String homeDir; + + @Override + public File getSettingsFolder() throws Exception { + // https://github.com/processing/processing4/issues/203 + // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html + + File configHome = null; + + // Check to see if the user has set a different location for their config + String configHomeEnv = System.getenv("XDG_CONFIG_HOME"); + if (configHomeEnv != null && !configHomeEnv.isBlank()) { + configHome = new File(configHomeEnv); + if (!configHome.exists()) { + Messages.err("XDG_CONFIG_HOME is set to " + configHomeEnv + " but does not exist."); + configHome = null; // don't use non-existent folder + } + } + String snapUserCommon = System.getenv("SNAP_USER_COMMON"); + if (snapUserCommon != null && !snapUserCommon.isBlank()) { + configHome = new File(snapUserCommon); + } + // If not set properly, use the default + if (configHome == null) { + configHome = new File(getHomeDir(), ".config"); + } + return new File(configHome, "processing"); + } + + + // Java sets user.home to be /root for execution with sudo. + // This method attempts to use the user's real home directory instead. + public String getHomeDir() { + if (homeDir == null) { + // get home directory of SUDO_USER if set, else use user.home + homeDir = System.getProperty("user.home"); + String sudoUser = System.getenv("SUDO_USER"); + if (sudoUser != null && sudoUser.length() != 0) { + try { + homeDir = getHomeDir(sudoUser); + } catch (Exception ignored) { } + } + } + return homeDir; + } + + + static public String getHomeDir(String user) throws Exception { + Process p = PApplet.exec("/bin/sh", "-c", "echo ~" + user); + return PApplet.createReader(p.getInputStream()).readLine(); + } +} diff --git a/app/utils/src/main/java/processing/utils/settingslocation/MacLocation.java b/app/utils/src/main/java/processing/utils/settingslocation/MacLocation.java new file mode 100644 index 0000000000..2029427870 --- /dev/null +++ b/app/utils/src/main/java/processing/utils/settingslocation/MacLocation.java @@ -0,0 +1,25 @@ +package processing.utils.settingslocation; + +import java.io.File; +import java.io.FileNotFoundException; + +public class MacLocation extends DefaultLocation{ + + public File getSettingsFolder() throws Exception { + return new File(getLibraryFolder(), "Processing"); + } + + + // TODO I suspect this won't work much longer, since access to the user's + // home directory seems verboten on more recent macOS versions [fry 191008] + // However, anecdotally it seems that just using the name works, + // and the localization is handled transparently. [fry 220116] + // https://github.com/processing/processing4/issues/9 + protected String getLibraryFolder() throws FileNotFoundException { + File folder = new File(System.getProperty("user.home"), "Library"); + if (!folder.exists()) { + throw new FileNotFoundException("Folder missing: " + folder); + } + return folder.getAbsolutePath(); + } +} diff --git a/app/utils/src/main/java/processing/utils/settingslocation/WindowsLocation.java b/app/utils/src/main/java/processing/utils/settingslocation/WindowsLocation.java new file mode 100644 index 0000000000..e0f6f0dc35 --- /dev/null +++ b/app/utils/src/main/java/processing/utils/settingslocation/WindowsLocation.java @@ -0,0 +1,69 @@ +package processing.utils.settingslocation; + +import com.sun.jna.platform.win32.Shell32Util; +import com.sun.jna.platform.win32.ShlObj; +import processing.utils.Messages; +import processing.utils.Util; + +import java.io.File; +import java.io.IOException; + +public class WindowsLocation extends DefaultLocation{ + static final String APP_NAME = "Processing"; + + // looking for Documents and Settings/blah/Application Data/Processing + public File getSettingsFolder() throws Exception { + + try { + String appDataRoaming = getAppDataPath(); + if (appDataRoaming != null) { + File settingsFolder = new File(appDataRoaming, APP_NAME); + if (settingsFolder.exists() || settingsFolder.mkdirs()) { + return settingsFolder; + } + } + + String appDataLocal = getLocalAppDataPath(); + if (appDataLocal != null) { + File settingsFolder = new File(appDataLocal, APP_NAME); + if (settingsFolder.exists() || settingsFolder.mkdirs()) { + return settingsFolder; + } + } + + if (appDataRoaming == null && appDataLocal == null) { + throw new IOException("Could not get the AppData folder"); + } + + // https://github.com/processing/processing/issues/3838 + throw new IOException("Permissions error: make sure that " + + appDataRoaming + " or " + appDataLocal + + " is writable."); + + } catch (UnsatisfiedLinkError ule) { + String path = new File("lib").getCanonicalPath(); + + String msg = Util.containsNonASCII(path) ? + """ + Please move Processing to a location with only + ASCII characters in the path and try again. + https://github.com/processing/processing/issues/3543 + """ : + "Could not find JNA support files, please reinstall Processing."; + Messages.showError("Windows JNA Problem", msg, ule); + return null; // unreachable + } + } + + + /** Get the Users\name\AppData\Roaming path to write settings files. */ + static private String getAppDataPath() { + return Shell32Util.getSpecialFolderPath(ShlObj.CSIDL_APPDATA, true); + } + + + /** Get the Users\name\AppData\Local path as a settings fallback. */ + static private String getLocalAppDataPath() { + return Shell32Util.getSpecialFolderPath(ShlObj.CSIDL_LOCAL_APPDATA, true); + } +} diff --git a/app/utils/src/main/resources/defaults.txt b/app/utils/src/main/resources/defaults.txt new file mode 100644 index 0000000000..6e3e00f0d6 --- /dev/null +++ b/app/utils/src/main/resources/defaults.txt @@ -0,0 +1,309 @@ +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# DO NOT MAKE CHANGES TO THIS FILE!!! + +# These are the default preferences. If you want to modify +# them directly, use the per-user local version of the file: + +# Users -> [username] -> AppData -> Roaming -> +# Processing -> preferences.txt (on Windows 10) + +# ~/Library -> Processing -> preferences.txt (on macOS) + +# ~/.config/processing -> preferences.txt (on Linux) + +# The exact location of your preferences file can be found at +# the bottom of the Preferences window inside Processing. + +# Because AppData and Application Data may be considered +# hidden or system folders on Windows, you'll have to ensure +# that they're visible in order to get at preferences.txt + +# You'll have problems running Processing if you incorrectly +# modify lines in this file. It will probably not start at all. + +# AGAIN, DO NOT ALTER THIS FILE! I'M ONLY YELLING BECAUSE I LOVE YOU! + + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# If you don't want users to have their sketchbook default to +# "My Documents/Processing" on Windows and "Documents/Processing" on OS X, +# set this to another path that will be used by default. +# Note that this path must exist already otherwise it won't see +# the sketchbook folder, and will instead assume the sketchbook +# has gone missing, and that it should instead use the default. +# In 4.0, the location has changed. +#sketchbook.path.four= + +# Whether or not to show the Welcome screen for 4.0 +# (It's always available under Help → Welcome) +welcome.four.show = true +welcome.four.seen = false + +# Set 'true' for the default behavior before 4.0, where the +# main tab must have the same name as the sketch folder +editor.sync_folder_and_filename = true + +# By default, contributions are moved to backup folders when +# they are removed or replaced. The backups can be found at +# sketchbook/libraries/old, sketchbook/tools/old, and sketchbook/modes/old + +# true to backup contributions when "Remove" button is pressed +contribution.backup.on_remove = true +# true to backup contributions when installing a newer version +contribution.backup.on_install = true + +recent.count = 10 + +# Default to the native (AWT) file selector where possible +chooser.files.native = true +# We were shutting this off on macOS because it broke Copy/Paste: +# https://github.com/processing/processing/issues/1035 +# But removing again for 4.0 alpha 5, because the JFileChooser is awful, +# and worse on Big Sur, so a bigger problem than the Copy/Paste issue. +# https://github.com/processing/processing4/issues/77 +#chooser.files.native.macos = false + +# set to 'lab' to interpolate theme gradients using L*a*b* color space +theme.gradient.method = rgb + + +# by default, check the processing server for any updates +# (please avoid disabling, this also helps us know basic numbers +# on how many people are using Processing) +update.check = true + +# on windows, automatically associate .pde files with processing.exe +platform.auto_file_type_associations = true + + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# default size for the main window +editor.window.width.default = 700 +editor.window.height.default = 600 + +editor.window.width.min = 400 +editor.window.height.min = 500 +# tested as approx 440 on OS X +editor.window.height.min.macos = 450 +# tested to be 515 on Windows XP, this leaves some room +editor.window.height.min.windows = 530 +# tested with Raspberry Pi display +editor.window.height.min.linux = 480 + +# scaling for the interface (to handle Windows and Linux HiDPI displays) +editor.zoom = 100% +# automatically set based on system dpi (only helps on Windows) +editor.zoom.auto = true + +# Use the default monospace font included in lib/fonts. +# (As of Processing 4 alpha 5, that's Source Code Pro) +editor.font.family = processing.mono +editor.font.size = 12 + +# To reset everyone's default, replaced editor.antialias with editor.smooth +# for 2.1. Fonts are unusably gross on OS X (and Linux) w/o smoothing and +# the Oracle JVM, and many longtime users have anti-aliasing turned off. +editor.smooth = true + +# blink the caret by default +editor.caret.blink = true +# change to true to use a block (instead of a bar) +editor.caret.block = false + +# enable ctrl-ins, shift-ins, shift-delete for cut/copy/paste +# on windows and linux, but disable on the mac +editor.keys.alternative_cut_copy_paste = true +editor.keys.alternative_cut_copy_paste.macos = false + +# true if shift-backspace sends the delete character, +# false if shift-backspace just means backspace +editor.keys.shift_backspace_is_delete = false + +# home and end keys should only travel to the start/end of the current line +editor.keys.home_and_end_travel_far = false +# home and end keys move to the first/last non-whitespace character, +# and move to the actual start/end when pressed a second time. +# Only works if editor.keys.home_and_end_travel_far is false. +editor.keys.home_and_end_travel_smart = true +# The OS X HI Guidelines say that home/end are relative to the document, +# but that drives some people nuts. This pref enables/disables it. +editor.keys.home_and_end_travel_far.macos = true + +# Enable/disable support for complex scripts. Used for Japanese and others, +# but disable when not needed, otherwise basic Western European chars break. +editor.input_method_support = false + +# convert tabs to spaces? how many spaces? +editor.tabs.expand = true +editor.tabs.size = 2 + +# Set to true to automatically close [ { ( " and ' +editor.completion.auto_close = false + +# automatically indent each line +editor.indent = true + +# Whether to check files to see if they've been modified externally +editor.watcher = true +# Set true to enable debugging, since this is quirky on others' machines +editor.watcher.debug = false +# The window of time (in milliseconds) in which a change won't be counted +editor.watcher.window = 1500 + +# Format and search engine to use for online queries +search.format = https://google.com/search?q=%s + +# font choice and size for the console +console.font.size = 12 + +# number of lines to show by default +console.lines = 4 + +# Number of blank lines to advance/clear console. +# Note that those lines are also printed in the terminal when +# Processing is executed there. +# Setting to 0 stops this behavior. +console.head_padding = 10 + +# Set to false to disable automatically clearing the console +# each time 'run' is hit +# If one sets it to false, one may also want to set 'console.head_padding' +# to a positive number to separate outputs from different runs. +console.auto_clear = true + +# number of days of history to keep around before cleaning +# setting to 0 will never clean files +console.temp.days = 7 + +# set the maximum number of lines remembered by the console +# the default is 500, lengthen at your own peril +console.scrollback.lines = 500 +console.scrollback.chars = 40000 + +# Any additional Java options when running. +# If you change this and can't run things, it's your own durn fault. +run.options = + +# settings for the -XmsNNNm and -XmxNNNm command line option +run.options.memory = false +run.options.memory.initial = 64 +run.options.memory.maximum = 512 + +# Index of the display to use for running sketches (starts at 1). +# Kept this 1-indexed because older vesions of Processing were setting +# the preference even before it was being used. +# -1 means the default display, 0 means all displays +run.display = -1 + +# set internally because it comes from the system +#run.window.bgcolor= + +# set to false to open a new untitled window when closing the last window +# (otherwise, the environment will quit) +# default to the relative norm for the different platforms, +# but the setting can be changed in the prefs dialog anyway +#sketchbook.closing_last_window_quits = true +#sketchbook.closing_last_window_quits.macos = false + +editor.untitled.prefix=sketch_ +# The old (pre-1.0, back for 2.0) style for default sketch name. +# If you change this, be careful that this will work with your language +# settings. For instance, MMMdd won't work on Korean-language systems +# because it'll insert non-ASCII characters and break the environment. +# https://github.com/processing/processing/issues/322 +editor.untitled.suffix=yyMMdd + +# replace underscores in .pde file names with spaces +sketch.name.replace_underscore = true + +# what to use for generating sketch names (change in the prefs window) +#sketch.name.approach = + +# number of days of build history and other temp files to keep around +# these are kept around for debugging purposes, and in case code is lost +temp.days = 7 + + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +# whether or not to export as full screen (present) mode +export.application.fullscreen = false + +# whether to show the stop button when exporting to application +export.application.stop = true + +# embed Java by default for lower likelihood of problems +export.application.embed_java = true + +# set to false to no longer delete application folders before export +# (removed from the Preferences windows in 4.0 beta 9) +export.delete_target_folder = true + +# may be useful when attempting to debug the preprocessor +preproc.save_build_files=false + +# allows various preprocessor features to be toggled +# in case they are causing problems + +# preprocessor: pde.g +preproc.color_datatype = true +preproc.web_colors = true +preproc.enhanced_casting = true + +# preprocessor: PdeEmitter.java +preproc.substitute_floats = true + +# PdePreproc.java +# writes out the parse tree as parseTree.xml, which can be usefully +# viewed in (at least) Mozilla or IE. useful when debugging the preprocessor. +preproc.output_parse_tree = false + +# set to the program to be used for opening HTML files, folders, etc. +#launcher.linux = xdg-open + +# FULL SCREEN (PRESENT MODE) +run.present.bgcolor = #666666 +run.present.stop.color = #cccccc + +# PROXIES +# Set a proxy server for folks that require it. This will allow the update +# checker and the contrib manager to run properly in those environments. +# This changed from proxy.host and proxy.port to proxy.http.host and +# proxy.http.port in 3.0a8. In addition, https and socks were added. +proxy.http.host= +proxy.http.port= +proxy.https.host= +proxy.https.port= +proxy.socks.host= +proxy.socks.port= +# Example of usage (replace 'http' with 'https' or 'socks' as needed) +#proxy.http.host=proxy.example.com +#proxy.http.port=8080 +# Whether to use the system proxy by default +proxy.system=true + +# PDE X +pdex.errorCheckEnabled = true +pdex.warningsEnabled = true +pdex.writeErrorLogs = false + +pdex.autoSave.autoSaveEnabled = false +pdex.autoSaveInterval = 5 +pdex.autoSave.promptDisplay = true +pdex.autoSave.autoSaveByDefault = true + +# Enable auto-completion when hitting ctrl-space +pdex.completion = false +# Setting this true will show completions whenever available, not just after ctrl-space +pdex.completion.trigger = false +# Suggest libraries to import when a class is undefined/unavailable +pdex.suggest.imports = true +# Set to false to disable ctrl/cmd-click jump to definition +pdex.inspectMode.hotkey = true diff --git a/build/shared/lib/languages/PDE.properties b/build/shared/lib/languages/PDE.properties index 9d03f33c08..e26137c8f4 100644 --- a/build/shared/lib/languages/PDE.properties +++ b/build/shared/lib/languages/PDE.properties @@ -197,7 +197,7 @@ save.btn.dont_save = Don’t Save # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Save changes to %s? -# Preferences (Frame) +# AppPreferences (Frame) preferences = Preferences preferences.button.width = 80 preferences.restart_required = Restart Processing to apply changes diff --git a/build/shared/lib/languages/PDE_ar.properties b/build/shared/lib/languages/PDE_ar.properties index 8f15db5c39..3e66aafa18 100644 --- a/build/shared/lib/languages/PDE_ar.properties +++ b/build/shared/lib/languages/PDE_ar.properties @@ -1,7 +1,7 @@  # --------------------------------------- -# Language: Arabic (ar) | العربية +# Language: Arabic (ar) | العربية # --------------------------------------- @@ -15,120 +15,120 @@ font.family.mono = Monospaced # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = ملف -menu.file.new = جديد -menu.file.open = افتح... -menu.file.recent = فتح من الملفات الأخيرة -menu.file.sketchbook = دفتر المخطوطات... -menu.file.sketchbook.empty = دفتر مخطوطات فارغ -menu.file.examples = أمثلة... -menu.file.close = إغلاق -menu.file.save = حفظ -menu.file.save_as = حفظ ك... -menu.file.export_application = تصدير التطبيق... -menu.file.page_setup = إعدادات الصفحة -menu.file.print = طباعة -menu.file.preferences = إعدادات... -menu.file.quit = خروج +menu.file = ملف +menu.file.new = جديد +menu.file.open = افتح... +menu.file.recent = فتح من الملفات الأخيرة +menu.file.sketchbook = دفتر المخطوطات... +menu.file.sketchbook.empty = دفتر مخطوطات فارغ +menu.file.examples = أمثلة... +menu.file.close = إغلاق +menu.file.save = حفظ +menu.file.save_as = حفظ ك... +menu.file.export_application = تصدير التطبيق... +menu.file.page_setup = إعدادات الصفحة +menu.file.print = طباعة +menu.file.preferences = إعدادات... +menu.file.quit = خروج # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = تعديل -menu.edit.undo = تراجع -menu.edit.redo = إعادة -menu.edit.action.addition = إضافة -menu.edit.action.deletion = حذف -menu.edit.cut = قص -menu.edit.copy = نسخ -menu.edit.copy_as_html = نسخ ك HTML -menu.edit.paste = لصق -menu.edit.select_all = تحديد الكل -menu.edit.auto_format = فرمتة تلقائية -menu.edit.comment_uncomment = تعليق/إلغاء التعليق -menu.edit.increase_indent = زيادة المسافة البادئة → -menu.edit.decrease_indent = انقاص المسافة البادئة ← -menu.edit.find = بحث... -menu.edit.find_next = النتيجة التالية -menu.edit.find_previous = النتيجة السابقة -menu.edit.use_selection_for_find = ابحث عن المحدد +menu.edit = تعديل +menu.edit.undo = تراجع +menu.edit.redo = إعادة +menu.edit.action.addition = إضافة +menu.edit.action.deletion = حذف +menu.edit.cut = قص +menu.edit.copy = نسخ +menu.edit.copy_as_html = نسخ ك HTML +menu.edit.paste = لصق +menu.edit.select_all = تحديد الكل +menu.edit.auto_format = فرمتة تلقائية +menu.edit.comment_uncomment = تعليق/إلغاء التعليق +menu.edit.increase_indent = زيادة المسافة البادئة → +menu.edit.decrease_indent = انقاص المسافة البادئة ← +menu.edit.find = بحث... +menu.edit.find_next = النتيجة التالية +menu.edit.find_previous = النتيجة السابقة +menu.edit.use_selection_for_find = ابحث عن المحدد # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = تشغيل -menu.sketch.present = تقديم -menu.sketch.tweak = تعديل -menu.sketch.stop = إيقاف +menu.sketch.run = تشغيل +menu.sketch.present = تقديم +menu.sketch.tweak = تعديل +menu.sketch.stop = إيقاف # --- -menu.library = استيراد مكتبة... -menu.library.add_library = إضافة مكتبة... -menu.library.contributed = مساهمات -menu.library.no_core_libraries = لا يوجد مكتبات أساسية لهذا الوضع +menu.library = استيراد مكتبة... +menu.library.add_library = إضافة مكتبة... +menu.library.contributed = مساهمات +menu.library.no_core_libraries = لا يوجد مكتبات أساسية لهذا الوضع # --- -menu.sketch = المخطوط -menu.sketch.show_sketch_folder = إظهار ملف المخطوطات -menu.sketch.add_file = إضافة ملف.. +menu.sketch = المخطوط +menu.sketch.show_sketch_folder = إظهار ملف المخطوطات +menu.sketch.add_file = إضافة ملف.. # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = تنقيح -menu.debug.enable = تفعيل أداة التنقيح -menu.debug.disable = تعطيل أداة التنقيح -#menu.debug.show_debug_toolbar = إظهار شريط أدواة التنقيح -#menu.debug.debug = تنقيح -#menu.debug.stop = توقف +menu.debug = تنقيح +menu.debug.enable = تفعيل أداة التنقيح +menu.debug.disable = تعطيل أداة التنقيح +#menu.debug.show_debug_toolbar = إظهار شريط أدواة التنقيح +#menu.debug.debug = تنقيح +#menu.debug.stop = توقف # --- -menu.debug.toggle_breakpoint = تبديل حالة نقطة الوقوف -#menu.debug.list_breakpoints = قائمة نقاط الوقوف +menu.debug.toggle_breakpoint = تبديل حالة نقطة الوقوف +#menu.debug.list_breakpoints = قائمة نقاط الوقوف # --- # used for both menus and toolbars -menu.debug.step = تقدم -menu.debug.step_into = تقدم إلى الأمام -menu.debug.step_out = تقدم إلى الخلف -menu.debug.continue = استمر +menu.debug.step = تقدم +menu.debug.step_into = تقدم إلى الأمام +menu.debug.step_out = تقدم إلى الخلف +menu.debug.continue = استمر # --- -#menu.debug.print_stack_trace = طباعة أثر المكدس -#menu.debug.print_locals = طباعة المتغيرات المحلية -#menu.debug.print_fields = طباعة الحقول -#menu.debug.print_source_location = طباعة مكان المصدر -#menu.debug.print_threads = طباعة شرط التعليمات +#menu.debug.print_stack_trace = طباعة أثر المكدس +#menu.debug.print_locals = طباعة المتغيرات المحلية +#menu.debug.print_fields = طباعة الحقول +#menu.debug.print_source_location = طباعة مكان المصدر +#menu.debug.print_threads = طباعة شرط التعليمات # --- -#menu.debug.variable_inspector = مظهر المتغيرات -menu.debug.show_variables = إظهار المتغيرات -menu.debug.hide_variables = إخفاء المتغيرات -#menu.debug.show_sketch_outline = إظهار موجز المخطوط -#menu.debug.show_tabs_list = إظهار قائمة علامات التبويب +#menu.debug.variable_inspector = مظهر المتغيرات +menu.debug.show_variables = إظهار المتغيرات +menu.debug.hide_variables = إخفاء المتغيرات +#menu.debug.show_sketch_outline = إظهار موجز المخطوط +#menu.debug.show_tabs_list = إظهار قائمة علامات التبويب # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = أدوات -menu.tools.color_selector = أداة اختيار الألوان... -menu.tools.create_font = أداة صناعة الخطوط -menu.tools.archive_sketch = أرشفة المخطوط -menu.tools.fix_the_serial_lbrary = إصلاح مكتبة الاتصالات التسلسلية -menu.tools.install_processing_java = تثبيت"processing-java" -menu.tools.add_tool = أضف أداة +menu.tools = أدوات +menu.tools.color_selector = أداة اختيار الألوان... +menu.tools.create_font = أداة صناعة الخطوط +menu.tools.archive_sketch = أرشفة المخطوط +menu.tools.fix_the_serial_lbrary = إصلاح مكتبة الاتصالات التسلسلية +menu.tools.install_processing_java = تثبيت"processing-java" +menu.tools.add_tool = أضف أداة # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = مساعدة -menu.help.welcome = مرحباً بكم في Processing -menu.help.about = عن Processing -menu.help.environment = البيئة -menu.help.reference = مراجع -menu.help.find_in_reference = إبحث في مرجع -menu.help.libraries_reference = مرجع المكتبات -menu.help.tools_reference = مرجع الأدوات -menu.help.empty = (فارغ) -menu.help.online = متصل -menu.help.getting_started = البدء +menu.help = مساعدة +menu.help.welcome = مرحباً بكم في Processing +menu.help.about = عن Processing +menu.help.environment = البيئة +menu.help.reference = مراجع +menu.help.find_in_reference = إبحث في مرجع +menu.help.libraries_reference = مرجع المكتبات +menu.help.tools_reference = مرجع الأدوات +menu.help.empty = (فارغ) +menu.help.online = متصل +menu.help.getting_started = البدء # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = اكتشاف الأخطاء وإصلاحها +menu.help.troubleshooting = اكتشاف الأخطاء وإصلاحها # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = الأسئلة الشائعة +menu.help.faq = الأسئلة الشائعة # menu.help.faq.url = http://wiki.processing.org/w/FAQ -menu.help.foundation = Processing مؤسسة +menu.help.foundation = Processing مؤسسة # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = Processing.org زيارة +menu.help.visit = Processing.org زيارة # menu.help.visit.url = http://processing.org/ @@ -136,462 +136,462 @@ menu.help.visit = Processing.org زيارة # Basics # Buttons -prompt.yes = نعم -prompt.no = لا -prompt.cancel = إلغاء -prompt.ok = موافق -prompt.browse = تصفح -prompt.export = تصدير +prompt.yes = نعم +prompt.no = لا +prompt.cancel = إلغاء +prompt.ok = موافق +prompt.browse = تصفح +prompt.export = تصدير # --------------------------------------- # Frames # Open (Frame) -open = فتح مخطوط بروسسنج... +open = فتح مخطوط بروسسنج... # Save (Frame) -save = حفظ ملف المخطوطات ك... -save.title = هل تريد حفظ التغييرات على %s قبل الإغلاق؟ -save.hint = في حال عدم الحفظ, ستفقد كل التغييرات على الملف -save.btn.save = حفظ -save.btn.dont_save = عدم الحفظ +save = حفظ ملف المخطوطات ك... +save.title = هل تريد حفظ التغييرات على %s قبل الإغلاق؟ +save.hint = في حال عدم الحفظ, ستفقد كل التغييرات على الملف +save.btn.save = حفظ +save.btn.dont_save = عدم الحفظ # Close (Frame) also used to prompt on non-macOS machines -close.unsaved_changes = ؟%s هل تريد حفظ التغييرات على +close.unsaved_changes = ؟%s هل تريد حفظ التغييرات على -# Preferences (Frame) -preferences = الإعدادات +# AppPreferences (Frame) +preferences = الإعدادات preferences.button.width = 80 -preferences.requires_restart = تلزم إعادة تشغيل Processing -preferences.sketchbook_location = موقع دفتر المخطوطات -preferences.sketchbook_location.popup = موقع دفتر المخطوطات -preferences.language = اللغة -preferences.editor_and_console_font = خط المحرر ووحدة الأوامر -preferences.editor_and_console_font.tip = .اختر خطاً لاستخدامه في المحرر ووحدة الأوامر.
يمكن استخدام الخطوط ذات الفراغات الموحدة فقط -preferences.editor_font_size = حجم خط المحرر -preferences.console_font_size = حجم خط وحدة الأوامر -preferences.zoom = حجم الواجهة -preferences.zoom.auto = تلقائي -preferences.background_color = لون الخلفية خلال وضعية التقديم -preferences.background_color.tip = اختر لون خلفية لاستخدامها في وضعية التقديم.
وضعية التقديم تقوم بعرض المخطوطة على ملء الشاشة.
يمكن تشغيل وضعية التقديم من نافذة المخطوط. -preferences.use_smooth_text = استخدام خط سلس في نافذة المحرر -preferences.enable_complex_text_input = تفعيل وضعية الإدخال المعقدة -preferences.enable_complex_text_input_example = يقصد هنا اللغة اليابانية -preferences.continuously_check = تحقق من الأخطاء بشكل دائم -preferences.show_warnings = أظهر التحذيرات -preferences.code_completion = إكمال شفرة المصدر باستخدام -preferences.trigger_with = تفعيل باستخدام -preferences.cmd_space = فراغ -preferences.suggest_imports = اقتراح أوامر استيراد المكتبات -preferences.increase_max_memory = زيادة الذاكرة المتاحة إلى -preferences.delete_previous_folder_on_export = حذف الملف السابق بعد التصدير -preferences.check_for_updates_on_startup = السماح بالبحث التلقائي عن التحديثات (راجع الأسئلة الشائعة لتفاصيل عن المعلومات المشاركة) -preferences.run_sketches_on_display = تشغيل المخطوط على الشاشة. -preferences.run_sketches_on_display.tip = لتحديد الشاشة التي ستستخدم لعرض المخطوط.
كالعادة, إذا تم تحريك النافذة, سيعاد فتحها في المرة القادمة
في نفس هذا المكان. لكن في حال تشغيل المخطوط في وضعية
العرض (الشاشة الملئة), سيتم استخدام هذه الشاشة المحددة للعرض. -preferences.automatically_associate_pde_files = تلقائياً مع بروسسنج .pde ربط الملفات بلاحقة -preferences.launch_programs_in = بدء البرنامج في -preferences.launch_programs_in.mode = الوضع -preferences.file = يمكن تعديل المزيد من الإعدادات في الملف -preferences.file.hint = قم بالتعديل عندما يكون Processing غير مفعل +preferences.requires_restart = تلزم إعادة تشغيل Processing +preferences.sketchbook_location = موقع دفتر المخطوطات +preferences.sketchbook_location.popup = موقع دفتر المخطوطات +preferences.language = اللغة +preferences.editor_and_console_font = خط المحرر ووحدة الأوامر +preferences.editor_and_console_font.tip = .اختر خطاً لاستخدامه في المحرر ووحدة الأوامر.
يمكن استخدام الخطوط ذات الفراغات الموحدة فقط +preferences.editor_font_size = حجم خط المحرر +preferences.console_font_size = حجم خط وحدة الأوامر +preferences.zoom = حجم الواجهة +preferences.zoom.auto = تلقائي +preferences.background_color = لون الخلفية خلال وضعية التقديم +preferences.background_color.tip = اختر لون خلفية لاستخدامها في وضعية التقديم.
وضعية التقديم تقوم بعرض المخطوطة على ملء الشاشة.
يمكن تشغيل وضعية التقديم من نافذة المخطوط. +preferences.use_smooth_text = استخدام خط سلس في نافذة المحرر +preferences.enable_complex_text_input = تفعيل وضعية الإدخال المعقدة +preferences.enable_complex_text_input_example = يقصد هنا اللغة اليابانية +preferences.continuously_check = تحقق من الأخطاء بشكل دائم +preferences.show_warnings = أظهر التحذيرات +preferences.code_completion = إكمال شفرة المصدر باستخدام +preferences.trigger_with = تفعيل باستخدام +preferences.cmd_space = فراغ +preferences.suggest_imports = اقتراح أوامر استيراد المكتبات +preferences.increase_max_memory = زيادة الذاكرة المتاحة إلى +preferences.delete_previous_folder_on_export = حذف الملف السابق بعد التصدير +preferences.check_for_updates_on_startup = السماح بالبحث التلقائي عن التحديثات (راجع الأسئلة الشائعة لتفاصيل عن المعلومات المشاركة) +preferences.run_sketches_on_display = تشغيل المخطوط على الشاشة. +preferences.run_sketches_on_display.tip = لتحديد الشاشة التي ستستخدم لعرض المخطوط.
كالعادة, إذا تم تحريك النافذة, سيعاد فتحها في المرة القادمة
في نفس هذا المكان. لكن في حال تشغيل المخطوط في وضعية
العرض (الشاشة الملئة), سيتم استخدام هذه الشاشة المحددة للعرض. +preferences.automatically_associate_pde_files = تلقائياً مع بروسسنج .pde ربط الملفات بلاحقة +preferences.launch_programs_in = بدء البرنامج في +preferences.launch_programs_in.mode = الوضع +preferences.file = يمكن تعديل المزيد من الإعدادات في الملف +preferences.file.hint = قم بالتعديل عندما يكون Processing غير مفعل # Sketchbook Location (Frame) -sketchbook_location = اختر مكان جديد لكتاب المخطوطات +sketchbook_location = اختر مكان جديد لكتاب المخطوطات # Sketchbook (Frame) -sketchbook = كتاب مخطوطات -sketchbook.tree = كتاب مخطوطات +sketchbook = كتاب مخطوطات +sketchbook.tree = كتاب مخطوطات # Examples (Frame) -examples.title = أمثلة %s -examples.add_examples = أضف أمثلة... -examples.libraries = المكتبات المشاركة -examples.core_libraries = المكتبات -examples.contributed = الأمثلة المشاركة +examples.title = أمثلة %s +examples.add_examples = أضف أمثلة... +examples.libraries = المكتبات المشاركة +examples.core_libraries = المكتبات +examples.contributed = الأمثلة المشاركة # Export (Frame) -export = خيارات التصدير -export.platforms = المنصات -export.options = الخيارات -export.options.present = وضعية التقديم -export.options.show_stop_button = إظهار زر التوقف -export.description.line1 = خيار "التصدير إلى تطبيق" ينتج برامج قابلة للتنفيذ, -export.description.line2 = برنامج منفصل لمنصات محددة. -export.unsaved_changes = حفظ التغييرات قبل التصدير؟ -export.notice.cancel.unsaved_changes = تم إلغاء التصدير. يجب حفظ التغييرات أولاً. -export.notice.exporting = يتم تصدير التطبيق -export.notice.exporting.done = تم التصدير. -export.notice.exporting.error = حصل خطأ خلال التصدير. -export.notice.exporting.cancel = تم إلغاء عملية التصدير. -export.tooltip.macos = macOS متاح فقط على macOS التصدير ل -export.full_screen = ملء الشاشة -export.embed_java = تضمين جافا -export.code_signing = توقيع الشفرة المصدرية -export.messages.is_read_only = هذا المخطوط للقراءة فقط -export.messages.is_read_only.description = بعض الملفات محددة ك "للقراءة فقط", \nستحتاج لإعادة حفظ المخطوطات في مكان آخر, \nوالمحاولة لاحقاً. -export.messages.cannot_export = لا يمكن التصدير -export.messages.cannot_export.description = لا يمكنك تصدير مخطوط لم يحفظ بعد. +export = خيارات التصدير +export.platforms = المنصات +export.options = الخيارات +export.options.present = وضعية التقديم +export.options.show_stop_button = إظهار زر التوقف +export.description.line1 = خيار "التصدير إلى تطبيق" ينتج برامج قابلة للتنفيذ, +export.description.line2 = برنامج منفصل لمنصات محددة. +export.unsaved_changes = حفظ التغييرات قبل التصدير؟ +export.notice.cancel.unsaved_changes = تم إلغاء التصدير. يجب حفظ التغييرات أولاً. +export.notice.exporting = يتم تصدير التطبيق +export.notice.exporting.done = تم التصدير. +export.notice.exporting.error = حصل خطأ خلال التصدير. +export.notice.exporting.cancel = تم إلغاء عملية التصدير. +export.tooltip.macos = macOS متاح فقط على macOS التصدير ل +export.full_screen = ملء الشاشة +export.embed_java = تضمين جافا +export.code_signing = توقيع الشفرة المصدرية +export.messages.is_read_only = هذا المخطوط للقراءة فقط +export.messages.is_read_only.description = بعض الملفات محددة ك "للقراءة فقط", \nستحتاج لإعادة حفظ المخطوطات في مكان آخر, \nوالمحاولة لاحقاً. +export.messages.cannot_export = لا يمكن التصدير +export.messages.cannot_export.description = لا يمكنك تصدير مخطوط لم يحفظ بعد. # Find (Frame) -find = البحث -find.find = ابحث عن: -find.replace_with = استبدل ب: -find.ignore_case = تجاهل الحالة (لا يلزم للغة العربية) -find.all_tabs = جميع علامات التبويب -find.wrap_around = طي النص حول -find.btn.replace_all = استبدال الكل -find.btn.replace = استبدال -find.btn.replace_and_find = استبدال وبحث -find.btn.previous = سابق -find.btn.find = ابحث +find = البحث +find.find = ابحث عن: +find.replace_with = استبدل ب: +find.ignore_case = تجاهل الحالة (لا يلزم للغة العربية) +find.all_tabs = جميع علامات التبويب +find.wrap_around = طي النص حول +find.btn.replace_all = استبدال الكل +find.btn.replace = استبدال +find.btn.replace_and_find = استبدال وبحث +find.btn.previous = سابق +find.btn.find = ابحث # Find in reference (Frame) -find_in_reference = البحث في المرجع +find_in_reference = البحث في المرجع # File (Frame) -file = اختر صورة أو ملفات بيانات أخرى ليتم نسخها إلى مخطوطتك +file = اختر صورة أو ملفات بيانات أخرى ليتم نسخها إلى مخطوطتك # Create Font (Frame) -create_font = اصنع خط جديد -create_font.label = استخدم هذه الأداة لتوليد خطوط لبرنامحك. \nاختر الخط والحجم المطلوب, وانقر على موافق لتوليد الخط. \nستتم إضافة الخط إلى ملف البيانات الخاص بالمخطوط الحالي. -create_font.size = الحجم -create_font.smooth = سلس -create_font.characters = الأحرف... -create_font.character_selector = أداة اختيار الأحرف -create_font.character_selector.label = الرموز الافتراضية ستتضمن أغلب الأشكال اللاتينية اللازمة لنظم تشغيل وينودوز وماك. \nتضمين جميع الرموز سيتطلب مساحة ذاكرة أكبر. \nلمزيد من التحكم, يمكنك اختيار أقسام معينة من تشفير يونيكود. -create_font.default_characters = الأحرف الافتراضية -create_font.all_characters = كل الأحرف -create_font.specific_unicode = مجموعات يونيكود محددة -create_font.filename = اسم الملف +create_font = اصنع خط جديد +create_font.label = استخدم هذه الأداة لتوليد خطوط لبرنامحك. \nاختر الخط والحجم المطلوب, وانقر على موافق لتوليد الخط. \nستتم إضافة الخط إلى ملف البيانات الخاص بالمخطوط الحالي. +create_font.size = الحجم +create_font.smooth = سلس +create_font.characters = الأحرف... +create_font.character_selector = أداة اختيار الأحرف +create_font.character_selector.label = الرموز الافتراضية ستتضمن أغلب الأشكال اللاتينية اللازمة لنظم تشغيل وينودوز وماك. \nتضمين جميع الرموز سيتطلب مساحة ذاكرة أكبر. \nلمزيد من التحكم, يمكنك اختيار أقسام معينة من تشفير يونيكود. +create_font.default_characters = الأحرف الافتراضية +create_font.all_characters = كل الأحرف +create_font.specific_unicode = مجموعات يونيكود محددة +create_font.filename = اسم الملف # Color Selector (Frame) -color_selector = أداة اختيار الألوان +color_selector = أداة اختيار الألوان # Archive Sketch (Frame) -archive_sketch = أرشف المخطوط بإسم... +archive_sketch = أرشف المخطوط بإسم... # Tweak Mode -tweak_mode = وضع التعديل -tweak_mode.save_before_tweak = يرجى حفظ التغييرات قبل تفعيل وضع التعديل. -tweak_mode.keep_changes.line1 = هل تريد اللإبقاء على التغييرات؟ -tweak_mode.keep_changes.line2 = لقد تم تغيير بعض القيم في مخطوطتك. هل تريد حفظ التغييرات؟ +tweak_mode = وضع التعديل +tweak_mode.save_before_tweak = يرجى حفظ التغييرات قبل تفعيل وضع التعديل. +tweak_mode.keep_changes.line1 = هل تريد اللإبقاء على التغييرات؟ +tweak_mode.keep_changes.line2 = لقد تم تغيير بعض القيم في مخطوطتك. هل تريد حفظ التغييرات؟ # DebugTray -debugger.name = الإسم -debugger.value = القيمة -debugger.type = النوع +debugger.name = الإسم +debugger.value = القيمة +debugger.type = النوع # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = تشغيل -toolbar.present = عرض -toolbar.stop = توقف -toolbar.debug = تنقيح +toolbar.run = تشغيل +toolbar.present = عرض +toolbar.stop = توقف +toolbar.debug = تنقيح # --- -toolbar.new = جديد -toolbar.open = فتح -toolbar.save = حفظ -# toolbar.export_application = تصدير التطبيق -toolbar.add_mode = إضافة وضع جديد... +toolbar.new = جديد +toolbar.open = فتح +toolbar.save = حفظ +# toolbar.export_application = تصدير التطبيق +toolbar.add_mode = إضافة وضع جديد... # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] -#toolbar.debug.continue = الاستمرار -#toolbar.debug.step = خطوة -#toolbar.debug.step_into = تقدم نحو -#toolbar.debug.stop = توقف -#toolbar.debug.toggle_breakpoints = تبديل حالة نقطة التوقف -#toolbar.debug.variable_inspector = مظهر المتغيرات +#toolbar.debug.continue = الاستمرار +#toolbar.debug.step = خطوة +#toolbar.debug.step_into = تقدم نحو +#toolbar.debug.stop = توقف +#toolbar.debug.toggle_breakpoints = تبديل حالة نقطة التوقف +#toolbar.debug.variable_inspector = مظهر المتغيرات # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = علامة تبويب حديدة -editor.header.rename = إعادة تسمية -editor.header.delete = حذف -editor.header.previous_tab = علامة التبويب السابقة -editor.header.next_tab = علامة التبويب اللاحقة -editor.header.delete.warning.title = هممم, لا. -editor.header.delete.warning.text = لا يمكنك حذف علامة التبويت الخاصة بالمخطوط الوحيد المفتوح. +editor.header.new_tab = علامة تبويب حديدة +editor.header.rename = إعادة تسمية +editor.header.delete = حذف +editor.header.previous_tab = علامة التبويب السابقة +editor.header.next_tab = علامة التبويب اللاحقة +editor.header.delete.warning.title = هممم, لا. +editor.header.delete.warning.text = لا يمكنك حذف علامة التبويت الخاصة بالمخطوط الوحيد المفتوح. # PopUp menu -editor.popup.jump_to_declaration = القفز إلى التعريف. -editor.popup.show_usage = أظهر الاستخدام -editor.popup.rename = إعادة تسمية +editor.popup.jump_to_declaration = القفز إلى التعريف. +editor.popup.show_usage = أظهر الاستخدام +editor.popup.rename = إعادة تسمية # Tabs -editor.tab.new = إسم جديد -editor.tab.new.description = إسم الملف الجديد -editor.tab.rename = إسم جديد -editor.tab.rename.description = إسم الملف الجديد +editor.tab.new = إسم جديد +editor.tab.new.description = إسم الملف الجديد +editor.tab.rename = إسم جديد +editor.tab.rename.description = إسم الملف الجديد # Sketch -editor.sketch.rename.description = إسم المخطوط الجديد - -editor.status.autoformat.no_changes = لم تلزم أية تغييرات من الفرمتة التلقائية -editor.status.autoformat.finished = إنتهت الفرمتة التلقائية. -editor.status.find_reference.select_word_first = اختر كلمة ليتم البحث عنها. -editor.status.find_reference.not_available = تعذر العثور على "%s" في المراجع. -editor.status.drag_and_drop.files_added.0 = لم تتم إضافة أية مخطوطات إلى الملف. -editor.status.drag_and_drop.files_added.1 = تم إضافة ملف واحد إلى المخطوط -editor.status.drag_and_drop.files_added.n = تم إضافة %d ملف إلى المخطوط. -editor.status.saving = يتم الحفظ... -editor.status.saving.done = تم الحفظ... -editor.status.saving.canceled = تم إلغاء الحفظ. -editor.status.printing = تتم الطباعة... -editor.status.printing.done = تمت الطباعة. -editor.status.printing.error = حدث خطأ خلال الطباعة. -editor.status.printing.canceled = تم إلغاء الطباعة. -editor.status.copy_as_html = تم نسخ شفرة مصدرية بتشفير HTML إلى لوح المقصوصات. -editor.status.debug.busy = أداة التنقيح مشغولة. -editor.status.debug.halt = أداة التنقيح متوقفة. -editor.status.archiver.create = ."%s" تم إنشاء الأرشيف -editor.status.archiver.cancel = تم إلغاء أرشفة المخطوط. +editor.sketch.rename.description = إسم المخطوط الجديد + +editor.status.autoformat.no_changes = لم تلزم أية تغييرات من الفرمتة التلقائية +editor.status.autoformat.finished = إنتهت الفرمتة التلقائية. +editor.status.find_reference.select_word_first = اختر كلمة ليتم البحث عنها. +editor.status.find_reference.not_available = تعذر العثور على "%s" في المراجع. +editor.status.drag_and_drop.files_added.0 = لم تتم إضافة أية مخطوطات إلى الملف. +editor.status.drag_and_drop.files_added.1 = تم إضافة ملف واحد إلى المخطوط +editor.status.drag_and_drop.files_added.n = تم إضافة %d ملف إلى المخطوط. +editor.status.saving = يتم الحفظ... +editor.status.saving.done = تم الحفظ... +editor.status.saving.canceled = تم إلغاء الحفظ. +editor.status.printing = تتم الطباعة... +editor.status.printing.done = تمت الطباعة. +editor.status.printing.error = حدث خطأ خلال الطباعة. +editor.status.printing.canceled = تم إلغاء الطباعة. +editor.status.copy_as_html = تم نسخ شفرة مصدرية بتشفير HTML إلى لوح المقصوصات. +editor.status.debug.busy = أداة التنقيح مشغولة. +editor.status.debug.halt = أداة التنقيح متوقفة. +editor.status.archiver.create = ."%s" تم إنشاء الأرشيف +editor.status.archiver.cancel = تم إلغاء أرشفة المخطوط. # Errors -editor.status.warning = تحذير -editor.status.error = خطأ -editor.status.error_on = "%s" خطأ في -editor.status.missing.default = "%c" ينقص -editor.status.missing.semicolon = ";" تنقص فاصلة منقوطة -editor.status.missing.left_sq_bracket = يوجد قوص مربع يساري ناقص "[" -editor.status.missing.right_sq_bracket = يوجد قوص مربع يميني ناقص "]" -editor.status.missing.left_paren = يوجد قوص يساري ناقص "(" -editor.status.missing.right_paren = يوجد قوص يميني ناقص ")" -editor.status.missing.left_curly_bracket = يوجد قوص مجعد يساري ناقص "{" -editor.status.missing.right_curly_bracket = يوجد قوص مجعد يميني ناقص "}" -editor.status.missing.add = قد تحتاج لإضافة "%s" -editor.status.reserved_words = "color" و "int" من الكلمات المحجوزة ولا يمكن استخدامهما كأسماء متغيرات -editor.status.undefined_method = الدالة "%s(%s)" غير معرفة -editor.status.undefined_constructor = الباني "%s(%s)" غير معرف -editor.status.empty_param = الدالة "%s()" لا تحتاج لأية معطيات -editor.status.wrong_param = "%s(%s)" الدالة "%s()" تحتاج معطيات بشكل -editor.status.undef_global_var = المتغير العالمي "%s" غير موجود -editor.status.undef_class = الصنف "%s" غير موجود -editor.status.undef_var = المتغير "%s" غير موجود -editor.status.undef_name = تعذر العثور على الإسم "%s" -editor.status.type_mismatch = الأنواع غير متطابقة. "%s" لا يطابق "%s". -editor.status.unused_variable = قيمة المتغير المحلي "%s" غير مستخدمة -editor.status.uninitialized_variable = لم يتم تعريف المتغير المحلي "%s" -editor.status.no_effect_assignment = الإسناد للمتغير "%s" ليس لديه أي مفعول -editor.status.hiding_enclosing_type = لا يمكن أن يكون إسم الصنف "%s" كإسم المخطوط أو إسم الصنف المحتوي +editor.status.warning = تحذير +editor.status.error = خطأ +editor.status.error_on = "%s" خطأ في +editor.status.missing.default = "%c" ينقص +editor.status.missing.semicolon = ";" تنقص فاصلة منقوطة +editor.status.missing.left_sq_bracket = يوجد قوص مربع يساري ناقص "[" +editor.status.missing.right_sq_bracket = يوجد قوص مربع يميني ناقص "]" +editor.status.missing.left_paren = يوجد قوص يساري ناقص "(" +editor.status.missing.right_paren = يوجد قوص يميني ناقص ")" +editor.status.missing.left_curly_bracket = يوجد قوص مجعد يساري ناقص "{" +editor.status.missing.right_curly_bracket = يوجد قوص مجعد يميني ناقص "}" +editor.status.missing.add = قد تحتاج لإضافة "%s" +editor.status.reserved_words = "color" و "int" من الكلمات المحجوزة ولا يمكن استخدامهما كأسماء متغيرات +editor.status.undefined_method = الدالة "%s(%s)" غير معرفة +editor.status.undefined_constructor = الباني "%s(%s)" غير معرف +editor.status.empty_param = الدالة "%s()" لا تحتاج لأية معطيات +editor.status.wrong_param = "%s(%s)" الدالة "%s()" تحتاج معطيات بشكل +editor.status.undef_global_var = المتغير العالمي "%s" غير موجود +editor.status.undef_class = الصنف "%s" غير موجود +editor.status.undef_var = المتغير "%s" غير موجود +editor.status.undef_name = تعذر العثور على الإسم "%s" +editor.status.type_mismatch = الأنواع غير متطابقة. "%s" لا يطابق "%s". +editor.status.unused_variable = قيمة المتغير المحلي "%s" غير مستخدمة +editor.status.uninitialized_variable = لم يتم تعريف المتغير المحلي "%s" +editor.status.no_effect_assignment = الإسناد للمتغير "%s" ليس لديه أي مفعول +editor.status.hiding_enclosing_type = لا يمكن أن يكون إسم الصنف "%s" كإسم المخطوط أو إسم الصنف المحتوي # Limited syntax error support, Wikipedia CC BY-SA -editor.status.error.syntax = خطأ قواعدي - %s +editor.status.error.syntax = خطأ قواعدي - %s # Footer buttons -editor.footer.errors = أخطاء -editor.footer.errors.problem = مشاكل -editor.footer.errors.tab = علامات تبويب -editor.footer.errors.line = سطر -editor.footer.console = لوحة أوامر +editor.footer.errors = أخطاء +editor.footer.errors.problem = مشاكل +editor.footer.errors.tab = علامات تبويب +editor.footer.errors.line = سطر +editor.footer.console = لوحة أوامر # New handler -new.messages.is_read_only = المخطوط للقراءة فقط. -new.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +new.messages.is_read_only = المخطوط للقراءة فقط. +new.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. # Rename handler -rename.messages.is_untitled = المخطوط غير مسمى -rename.messages.is_untitled.description = ألا تريد حفظ المخطوط قبل إعادة التسمية؟ -rename.messages.is_modified = يرجى حفظ المخطوط قبل إعادة التسمية. -rename.messages.is_read_only = المخطوط للقراءة فقط. -rename.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +rename.messages.is_untitled = المخطوط غير مسمى +rename.messages.is_untitled.description = ألا تريد حفظ المخطوط قبل إعادة التسمية؟ +rename.messages.is_modified = يرجى حفظ المخطوط قبل إعادة التسمية. +rename.messages.is_read_only = المخطوط للقراءة فقط. +rename.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. # Naming handler -name.messages.problem_renaming = حدثت مشكلة خلال إعادة التسمية -name.messages.starts_with_dot.description = لا يمكن أن يبدأ الإسم بنقطة. -name.messages.invalid_extension.description = اللاحقة ".%s" غير صالحة -name.messages.main_java_extension.description = .%s علامة التبويب الأولى لا يمكن أن تكون لملف من نوع -name.messages.new_sketch_exists = لا -name.messages.new_sketch_exists.description = يوجد ملف بإسم "%s" في المكان المستهدف "%s" نفسه -name.messages.new_folder_exists = لا يمكن إعادة التسمية -name.messages.new_folder_exists.description = عفواً, يوجد ملف (أو مجلد) بنفس الإسم "%s" من قبل. -name.messages.error = خطأ -name.messages.no_rename_folder.description = تعذرت إعادة تسمية ملف المخطوطات -name.messages.no_rename_file.description = تعذرت إعادة تسمية "%s" إلى "%s". -name.messages.no_create_file.description = تعذر استحداث الملف "%s"\nفي "%s" +name.messages.problem_renaming = حدثت مشكلة خلال إعادة التسمية +name.messages.starts_with_dot.description = لا يمكن أن يبدأ الإسم بنقطة. +name.messages.invalid_extension.description = اللاحقة ".%s" غير صالحة +name.messages.main_java_extension.description = .%s علامة التبويب الأولى لا يمكن أن تكون لملف من نوع +name.messages.new_sketch_exists = لا +name.messages.new_sketch_exists.description = يوجد ملف بإسم "%s" في المكان المستهدف "%s" نفسه +name.messages.new_folder_exists = لا يمكن إعادة التسمية +name.messages.new_folder_exists.description = عفواً, يوجد ملف (أو مجلد) بنفس الإسم "%s" من قبل. +name.messages.error = خطأ +name.messages.no_rename_folder.description = تعذرت إعادة تسمية ملف المخطوطات +name.messages.no_rename_file.description = تعذرت إعادة تسمية "%s" إلى "%s". +name.messages.no_create_file.description = تعذر استحداث الملف "%s"\nفي "%s" # Delete handler -delete.messages.cannot_delete = لا يمكن الحذف -delete.messages.cannot_delete.description = لا يمكنك حذف مخطوط قبل حفظه -delete.messages.cannot_delete.file = لم أستطع فعل هذا -delete.messages.cannot_delete.file.description = تعذر الحذف -delete.messages.is_read_only = المخطوط للقراءة فقط. -delete.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +delete.messages.cannot_delete = لا يمكن الحذف +delete.messages.cannot_delete.description = لا يمكنك حذف مخطوط قبل حفظه +delete.messages.cannot_delete.file = لم أستطع فعل هذا +delete.messages.cannot_delete.file.description = تعذر الحذف +delete.messages.is_read_only = المخطوط للقراءة فقط. +delete.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. # Save handler -save_file.messages.is_read_only = المخطوط للقراءة فقط. -save_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر. -save_file.messages.sketch_exists = تعذر الحفظ -save_file.messages.sketch_exists.description = يوجد ملف بإسم “%s” سلفاُ. -save_file.messages.tab_exists = نوب -save_file.messages.tab_exists.description = تعذر حفظ المخطوط بإسم "%s" ,لأن المخطوط فيه علامة تبويب بهذا الإسم حالياً. -save_file.messages.recursive_save = نوب نوب نوب -save_file.messages.recursive_save.description = لا يمكنك حفظ مخطوط في ملف داخل نفسه, هذا سيحدث العديد من المشاكل. +save_file.messages.is_read_only = المخطوط للقراءة فقط. +save_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر. +save_file.messages.sketch_exists = تعذر الحفظ +save_file.messages.sketch_exists.description = يوجد ملف بإسم “%s” سلفاُ. +save_file.messages.tab_exists = نوب +save_file.messages.tab_exists.description = تعذر حفظ المخطوط بإسم "%s" ,لأن المخطوط فيه علامة تبويب بهذا الإسم حالياً. +save_file.messages.recursive_save = نوب نوب نوب +save_file.messages.recursive_save.description = لا يمكنك حفظ مخطوط في ملف داخل نفسه, هذا سيحدث العديد من المشاكل. # Add handler -add_file.messages.is_read_only = المخطوط للقراءة فقط. -add_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. -add_file.messages.confirm_replace = هل تريد استبدال النسخة الحالية من %s؟ -add_file.messages.error_adding = حدث خطأ خلال إضافة الملف -add_file.messages.cannot_delete.description = تعذر حذف ملف '%s' -add_file.messages.cannot_add.description = فشلت إضافة '%s' إلى المخطوط -add_file.messages.same_file = لا يمكنك خداعي -add_file.messages.same_file.description = تم سابقاُ نسخ هذا الملف إلى نفس المكان المستهدف. +add_file.messages.is_read_only = المخطوط للقراءة فقط. +add_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +add_file.messages.confirm_replace = هل تريد استبدال النسخة الحالية من %s؟ +add_file.messages.error_adding = حدث خطأ خلال إضافة الملف +add_file.messages.cannot_delete.description = تعذر حذف ملف '%s' +add_file.messages.cannot_add.description = فشلت إضافة '%s' إلى المخطوط +add_file.messages.same_file = لا يمكنك خداعي +add_file.messages.same_file.description = تم سابقاُ نسخ هذا الملف إلى نفس المكان المستهدف. # Temp folder creator -temp_dir.messages.bad_build_folder = ملف بناء المخطوط غير صالح -temp_dir.messages.bad_build_folder.description = تعذر العثور على مكان لبناء المخطوط. +temp_dir.messages.bad_build_folder = ملف بناء المخطوط غير صالح +temp_dir.messages.bad_build_folder.description = تعذر العثور على مكان لبناء المخطوط. # Ensure Existance -ensure_exist.messages.missing_sketch = اختفى المخطوط -ensure_exist.messages.missing_sketch.description = تعذر العثور على ملف المخطوط. \nسيتم إعادة حفظ المخطوط في نفس المكان المحدد, \nلكن كل شيء عدا الشفرة المصدرية سيضيع. -ensure_exist.messages.unrecoverable = تعذرت إعادة الحفظ -ensure_exist.messages.unrecoverable.description = تعذرت إعادة حفظ المخطوط. لتجنب خسارة كل جهد حياتك على هذا الملف, \nقم بنسخ الشفرة المصدرية ولصقها في محرر نصوص آخر, إحتياطاً. +ensure_exist.messages.missing_sketch = اختفى المخطوط +ensure_exist.messages.missing_sketch.description = تعذر العثور على ملف المخطوط. \nسيتم إعادة حفظ المخطوط في نفس المكان المحدد, \nلكن كل شيء عدا الشفرة المصدرية سيضيع. +ensure_exist.messages.unrecoverable = تعذرت إعادة الحفظ +ensure_exist.messages.unrecoverable.description = تعذرت إعادة حفظ المخطوط. لتجنب خسارة كل جهد حياتك على هذا الملف, \nقم بنسخ الشفرة المصدرية ولصقها في محرر نصوص آخر, إحتياطاً. # Check name -check_name.messages.is_name_modified = يجب تعديل اسم المخطوط. يمكن أن تحتوي الأسماء على \nرموز وأرقام بتشفير ASCII (بشرط أن لا تبدأ برقم). \nيجب أن يكون طول الإسم أقل من 64 رمزاً. +check_name.messages.is_name_modified = يجب تعديل اسم المخطوط. يمكن أن تحتوي الأسماء على \nرموز وأرقام بتشفير ASCII (بشرط أن لا تبدأ برقم). \nيجب أن يكون طول الإسم أقل من 64 رمزاً. # --------------------------------------- # Contributions # Contribution Panel -contrib = مدير المشاركات -contrib.manager_title.update = مدير التحديثات -contrib.manager_title.mode = مدير الأوضاع -contrib.manager_title.tool = مدير الأدوات -contrib.manager_title.library = مدير المكتبات -contrib.manager_title.examples = مدير الأمثلة -contrib.category = الفئة: -contrib.filter_your_search = فلترة نتائج البحث.. -contrib.show_only_compatible.mode = إظهار الأوضاع المتوافقة فقط. -contrib.show_only_compatible.tool = إظهار الأدوات المتوافقة فقط. -contrib.show_only_compatible.library = إظهار المكتبات المتوافقة فقط. -contrib.show_only_compatible.examples = إظهار الأمثلة المتوافقة فقط. -contrib.show_only_compatible.update = إظهار التحديثات المتوافقة فقط. -contrib.restart = إعادة تشغيل Processing -contrib.unsaved_changes = يوجد تغييرات غير محفوظة -contrib.unsaved_changes.prompt = هل انت متأكد انك تريد إعادة تشغيل البرنامج قبل حفظ التغييرات أولاً؟ -contrib.messages.remove_restart = يرجى إعادة تشغيل البرنامح لإنهاء حذف هذا العنصر. -contrib.messages.install_restart = يرجى إعادة تشغيل البرنامح لإنهاء تثبيت هذا العنصر. -contrib.messages.update_restart = يرجى إعادة تشغيل البرنامح لإنهاء تحديث هذا العنصر. -contrib.errors.list_download = فشل تحميل قائمة المشاركات المتوفرة. -contrib.errors.list_download.timeout = حدث خطأ خلال تحميل قائمة المشاركات. -contrib.errors.download_and_install = . %s حدث خطأ خلال تحميل وتنزيل -contrib.errors.description_unavailable = لا يوجد وصف. -contrib.errors.malformed_url = الرابط الذي تم تحميله من Processing.org لا يعمل. \nبإمكانك تثبيت المكتبة بشكل يدوي عن طريق زيارة موقع المكتبة الإلكتروني. -contrib.errors.needs_repackage = يجب إعادة حزم %s وفقاً لشروط %s. -contrib.errors.no_contribution_found = تعذر العثور على %s في الملف المحمل. -contrib.errors.overwriting_properties = .properties حصل خلل خلال استبدال محتوى ملف -contrib.errors.install_failed = فشل التثبيت. -contrib.errors.update_on_restart_failed = فشل تحديث %s بعد إعادة التشغيل. -contrib.errors.temporary_directory = فشلت الكتابة في الملف المؤقت. -contrib.errors.contrib_download.timeout = حصلت مشكلة في اتصال الانترنت خلال تحميل %s. -contrib.errors.no_internet_connection = يبدو أنك غير متصل بالإنترنت... -contrib.status.downloading_list = يتم تحميل قائمة المشاركات... -contrib.status.connecting = يتم الاتصال... -contrib.status.done = تم الانتهاء -contrib.all = الكل -contrib.undo = تراجع -contrib.remove = إزالة -contrib.install = تثبيت -contrib.progress.installing = يتم تثبيت -contrib.progress.starting = يتم بدأ -contrib.progress.downloading = يتم تنزيل -contrib.download_error = حدث خطأ خلال تنزيل المشاركات -contrib.unsupported_operating_system = يبدو أن نظام التشغيل الخاص بك غير مدعوم. يرجى زيارة %s\ المكتبة للمزيد من المعلومات. +contrib = مدير المشاركات +contrib.manager_title.update = مدير التحديثات +contrib.manager_title.mode = مدير الأوضاع +contrib.manager_title.tool = مدير الأدوات +contrib.manager_title.library = مدير المكتبات +contrib.manager_title.examples = مدير الأمثلة +contrib.category = الفئة: +contrib.filter_your_search = فلترة نتائج البحث.. +contrib.show_only_compatible.mode = إظهار الأوضاع المتوافقة فقط. +contrib.show_only_compatible.tool = إظهار الأدوات المتوافقة فقط. +contrib.show_only_compatible.library = إظهار المكتبات المتوافقة فقط. +contrib.show_only_compatible.examples = إظهار الأمثلة المتوافقة فقط. +contrib.show_only_compatible.update = إظهار التحديثات المتوافقة فقط. +contrib.restart = إعادة تشغيل Processing +contrib.unsaved_changes = يوجد تغييرات غير محفوظة +contrib.unsaved_changes.prompt = هل انت متأكد انك تريد إعادة تشغيل البرنامج قبل حفظ التغييرات أولاً؟ +contrib.messages.remove_restart = يرجى إعادة تشغيل البرنامح لإنهاء حذف هذا العنصر. +contrib.messages.install_restart = يرجى إعادة تشغيل البرنامح لإنهاء تثبيت هذا العنصر. +contrib.messages.update_restart = يرجى إعادة تشغيل البرنامح لإنهاء تحديث هذا العنصر. +contrib.errors.list_download = فشل تحميل قائمة المشاركات المتوفرة. +contrib.errors.list_download.timeout = حدث خطأ خلال تحميل قائمة المشاركات. +contrib.errors.download_and_install = . %s حدث خطأ خلال تحميل وتنزيل +contrib.errors.description_unavailable = لا يوجد وصف. +contrib.errors.malformed_url = الرابط الذي تم تحميله من Processing.org لا يعمل. \nبإمكانك تثبيت المكتبة بشكل يدوي عن طريق زيارة موقع المكتبة الإلكتروني. +contrib.errors.needs_repackage = يجب إعادة حزم %s وفقاً لشروط %s. +contrib.errors.no_contribution_found = تعذر العثور على %s في الملف المحمل. +contrib.errors.overwriting_properties = .properties حصل خلل خلال استبدال محتوى ملف +contrib.errors.install_failed = فشل التثبيت. +contrib.errors.update_on_restart_failed = فشل تحديث %s بعد إعادة التشغيل. +contrib.errors.temporary_directory = فشلت الكتابة في الملف المؤقت. +contrib.errors.contrib_download.timeout = حصلت مشكلة في اتصال الانترنت خلال تحميل %s. +contrib.errors.no_internet_connection = يبدو أنك غير متصل بالإنترنت... +contrib.status.downloading_list = يتم تحميل قائمة المشاركات... +contrib.status.connecting = يتم الاتصال... +contrib.status.done = تم الانتهاء +contrib.all = الكل +contrib.undo = تراجع +contrib.remove = إزالة +contrib.install = تثبيت +contrib.progress.installing = يتم تثبيت +contrib.progress.starting = يتم بدأ +contrib.progress.downloading = يتم تنزيل +contrib.download_error = حدث خطأ خلال تنزيل المشاركات +contrib.unsupported_operating_system = يبدو أن نظام التشغيل الخاص بك غير مدعوم. يرجى زيارة %s\ المكتبة للمزيد من المعلومات. contrib.category.3d = 3D -contrib.category.animation = رسوم متحركة -contrib.category.data = بيانات ومعطيات -contrib.category.geometry = هندسيات -contrib.category.gui = واجهات مستخدم رسومية -contrib.category.hardware = عتاد مادي -contrib.category.i_o = مدخلات ومخرجات -contrib.category.math = رياضيات -contrib.category.simulation = محاكاة -contrib.category.sound = صوتيات -contrib.category.typography = تخطيط -contrib.category.utilities = خدمات -contrib.category.video_vision = فيديو ورؤية رقمية -contrib.category.other = آخر +contrib.category.animation = رسوم متحركة +contrib.category.data = بيانات ومعطيات +contrib.category.geometry = هندسيات +contrib.category.gui = واجهات مستخدم رسومية +contrib.category.hardware = عتاد مادي +contrib.category.i_o = مدخلات ومخرجات +contrib.category.math = رياضيات +contrib.category.simulation = محاكاة +contrib.category.sound = صوتيات +contrib.category.typography = تخطيط +contrib.category.utilities = خدمات +contrib.category.video_vision = فيديو ورؤية رقمية +contrib.category.other = آخر # Install on Startup -contrib.startup.errors.download_install = %s حدث خطأ خلال تحميل وتثبيت -contrib.startup.errors.temp_dir = فشل النسخ إلى ملف مؤقت خلال عملية تحميل وتنزيل %s -contrib.startup.errors.new_marker = يبدو أن هنالك مشكلة بين مؤشر المشاركات الغير محدثة و %s. قد تحتاج إلى تحديث المشاركة بشكل يدوي. +contrib.startup.errors.download_install = %s حدث خطأ خلال تحميل وتثبيت +contrib.startup.errors.temp_dir = فشل النسخ إلى ملف مؤقت خلال عملية تحميل وتنزيل %s +contrib.startup.errors.new_marker = يبدو أن هنالك مشكلة بين مؤشر المشاركات الغير محدثة و %s. قد تحتاج إلى تحديث المشاركة بشكل يدوي. # Install on Import -contrib.import.dialog.title = المكتبات المفقودة المتوفرة -contrib.import.dialog.primary_text = المكتبات المستوردة التالية متوفرة للتحميل, لكن لم يتم تثبيتها بعد. -contrib.import.dialog.secondary_text = هل تود تثبيتهم الآن؟ -contrib.import.progress.download = ...%s يتم تحميل -contrib.import.progress.install = ...%s يتم تثبيت -contrib.import.progress.done = .%s تم تثبيت -contrib.import.progress.final_list = تم تثبيت المكتبات التالية: -contrib.import.errors.link = يبدو أن رابط التحميل للمكتبة %s لا يعمل. +contrib.import.dialog.title = المكتبات المفقودة المتوفرة +contrib.import.dialog.primary_text = المكتبات المستوردة التالية متوفرة للتحميل, لكن لم يتم تثبيتها بعد. +contrib.import.dialog.secondary_text = هل تود تثبيتهم الآن؟ +contrib.import.progress.download = ...%s يتم تحميل +contrib.import.progress.install = ...%s يتم تثبيت +contrib.import.progress.done = .%s تم تثبيت +contrib.import.progress.final_list = تم تثبيت المكتبات التالية: +contrib.import.errors.link = يبدو أن رابط التحميل للمكتبة %s لا يعمل. # --------------------------------------- # Warnings -warn.delete = حذف -warn.delete.sketch = هل أنت متأكد انك تريد حذف هذا المخطوط؟ -warn.delete.file = هل انت متأكد أنك تود حذف "%s"؟ -warn.cannot_change_mode.title = لا يمكن تغيير الوضع -warn.cannot_change_mode.body = لا يمكنك تغيير الوضع, لأن وضع "%s" غير متوافق مع الوضع الحالي. +warn.delete = حذف +warn.delete.sketch = هل أنت متأكد انك تريد حذف هذا المخطوط؟ +warn.delete.file = هل انت متأكد أنك تود حذف "%s"؟ +warn.cannot_change_mode.title = لا يمكن تغيير الوضع +warn.cannot_change_mode.body = لا يمكنك تغيير الوضع, لأن وضع "%s" غير متوافق مع الوضع الحالي. # --------------------------------------- # Update Check -update_check = تحديث -update_check.updates_available.core = يوجد نسخة جديدة من بروسسنج جاهزة للتحميل. \nهل تود زيارة الموقع الرسمي لتحميلها؟ -update_check.updates_available.contributions = يوجد تحديثات متوفرة لبعض المشاركات المثبتة. \nهل تريد الذهاب إلى مدير المشاركات الآن؟ +update_check = تحديث +update_check.updates_available.core = يوجد نسخة جديدة من بروسسنج جاهزة للتحميل. \nهل تود زيارة الموقع الرسمي لتحميلها؟ +update_check.updates_available.contributions = يوجد تحديثات متوفرة لبعض المشاركات المثبتة. \nهل تريد الذهاب إلى مدير المشاركات الآن؟ # --------------------------------------- # Color Chooser -color_chooser = أداة اختيار الألوان -color_chooser.select = تحديد +color_chooser = أداة اختيار الألوان +color_chooser.select = تحديد # --------------------------------------- # Movie Maker -movie_maker = صانع الأفلام -movie_maker.title = QuickTime صانع أفلام -movie_maker.blurb = This tool creates a QuickTime movie from a sequence of images.

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA (from Processing), or PNG images as the source.

TIFF and TGA images will write more quickly, but require more disk:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
-movie_maker.image_folder_help_label = اسحب ملف يحتوي على الصور إلى الحقل السفلي: -movie_maker.choose_button = اختر... -movie_maker.select_image_folder = اختر ملف الصور... -movie_maker.sound_file_help_label = إلى الحقل السفلي: (.au, .aiff, .wav, .mp3) اسحب ملف يحتوي على ملفات صوت بصيغة -movie_maker.select_sound_file = اختر ملف الصوت... - -movie_maker.create_movie_button = فلم جديد... -movie_maker.save_dialog_prompt = حفظ الفلم ك... -movie_maker.width = العرض -movie_maker.height = الارتفاع -movie_maker.compression = الضغط -movie_maker.compression.animation = رسوم متحركة +movie_maker = صانع الأفلام +movie_maker.title = QuickTime صانع أفلام +movie_maker.blurb = This tool creates a QuickTime movie from a sequence of images.

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA (from Processing), or PNG images as the source.

TIFF and TGA images will write more quickly, but require more disk:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = اسحب ملف يحتوي على الصور إلى الحقل السفلي: +movie_maker.choose_button = اختر... +movie_maker.select_image_folder = اختر ملف الصور... +movie_maker.sound_file_help_label = إلى الحقل السفلي: (.au, .aiff, .wav, .mp3) اسحب ملف يحتوي على ملفات صوت بصيغة +movie_maker.select_sound_file = اختر ملف الصوت... + +movie_maker.create_movie_button = فلم جديد... +movie_maker.save_dialog_prompt = حفظ الفلم ك... +movie_maker.width = العرض +movie_maker.height = الارتفاع +movie_maker.compression = الضغط +movie_maker.compression.animation = رسوم متحركة movie_maker.compression.jpeg = JPEG movie_maker.compression.png = PNG -movie_maker.framerate = تردد الأطر: -movie_maker.orig_size_button = نفس الحجم الأصلي -movie_maker.orig_size_tooltip = قم باختيار هذا المربع إذا كان الملف يحتوي على أطر فيديو بالتشفير والحجم المطلوب. - -movie_maker.error.avoid_tiff = حاول باستخدام صور بلاحقة TGA أو PNG بدل TIFF. -movie_maker.error.badnumbers = يجب أن تكون قيم الطول والعرض أعداد حقيقية أكبر من الصفر, ويحب أن يكون تردد الأطر أكبر من الصفر. -movie_maker.error.cannot_read = .%s تعذرت قراءة -movie_maker.error.cannot_read_maybe_bad = تعذرت قراءة %s, قد يكون الملف سيئاً. -movie_maker.error.movie_failed = .QuickTime فشل انتاج فلم من نوع -movie_maker.error.need_input = يجب عليك تحديد ملف يحتوي على ملفات صوتية, ملفات صور, أو كلاهما. -movie_maker.error.no_images_found = لم يتم العثور على ملفات صور هنا. -movie_maker.error.sorry = عذراً -movie_maker.error.unknown_tga_format = لاحقة الملف %s من نوع .tga غير معروفة. - -movie_maker.progress.creating_file_name = .%s يتم الآن إنتاج -movie_maker.progress.creating_output_file = يتم الآن إنتاج الملف -movie_maker.progress.initializing = بدء العملية... -movie_maker.progress.processing = .%s يتم معالجة +movie_maker.framerate = تردد الأطر: +movie_maker.orig_size_button = نفس الحجم الأصلي +movie_maker.orig_size_tooltip = قم باختيار هذا المربع إذا كان الملف يحتوي على أطر فيديو بالتشفير والحجم المطلوب. + +movie_maker.error.avoid_tiff = حاول باستخدام صور بلاحقة TGA أو PNG بدل TIFF. +movie_maker.error.badnumbers = يجب أن تكون قيم الطول والعرض أعداد حقيقية أكبر من الصفر, ويحب أن يكون تردد الأطر أكبر من الصفر. +movie_maker.error.cannot_read = .%s تعذرت قراءة +movie_maker.error.cannot_read_maybe_bad = تعذرت قراءة %s, قد يكون الملف سيئاً. +movie_maker.error.movie_failed = .QuickTime فشل انتاج فلم من نوع +movie_maker.error.need_input = يجب عليك تحديد ملف يحتوي على ملفات صوتية, ملفات صور, أو كلاهما. +movie_maker.error.no_images_found = لم يتم العثور على ملفات صور هنا. +movie_maker.error.sorry = عذراً +movie_maker.error.unknown_tga_format = لاحقة الملف %s من نوع .tga غير معروفة. + +movie_maker.progress.creating_file_name = .%s يتم الآن إنتاج +movie_maker.progress.creating_output_file = يتم الآن إنتاج الملف +movie_maker.progress.initializing = بدء العملية... +movie_maker.progress.processing = .%s يتم معالجة diff --git a/build/shared/lib/languages/PDE_ca.properties b/build/shared/lib/languages/PDE_ca.properties index cdff9ec65b..db2de1e039 100644 --- a/build/shared/lib/languages/PDE_ca.properties +++ b/build/shared/lib/languages/PDE_ca.properties @@ -188,7 +188,7 @@ save.btn.dont_save = No els desis # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Voleu desar els canvis de l'sketch «%s»? -# Preferences (Frame) +# AppPreferences (Frame) preferences = Preferències preferences.button.width = 80 preferences.restart_required = Reinicieu el Processing per a aplicar els canvis diff --git a/build/shared/lib/languages/PDE_de.properties b/build/shared/lib/languages/PDE_de.properties index c44ec13652..25c27ea5f9 100644 --- a/build/shared/lib/languages/PDE_de.properties +++ b/build/shared/lib/languages/PDE_de.properties @@ -151,7 +151,7 @@ save.btn.dont_save = Nicht speichern # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Änderungen an %s speichern? -# Preferences (Frame) +# AppPreferences (Frame) preferences = Einstellungen preferences.button.width = 110 preferences.requires_restart = nach Neustart von Processing aktiv diff --git a/build/shared/lib/languages/PDE_el.properties b/build/shared/lib/languages/PDE_el.properties index d4c794bde8..8704bce4f5 100644 --- a/build/shared/lib/languages/PDE_el.properties +++ b/build/shared/lib/languages/PDE_el.properties @@ -151,7 +151,7 @@ save.hint = Αν δεν αποθηκεύσετε, οι αλλαγές σας θ save.btn.save = Αποθήκευση save.btn.dont_save = Χωρίς αποθήκευση -# Preferences (Frame) +# AppPreferences (Frame) preferences = Προτιμήσεις preferences.button.width = 80 preferences.requires_restart = χρειάζεται επανεκκίνηση της Processing diff --git a/build/shared/lib/languages/PDE_es.properties b/build/shared/lib/languages/PDE_es.properties index 781a5a261a..7486f437cc 100644 --- a/build/shared/lib/languages/PDE_es.properties +++ b/build/shared/lib/languages/PDE_es.properties @@ -188,7 +188,7 @@ save.btn.dont_save = No guardar # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = ¿Quieres guardar los cambios de «%s»? -# Preferences (Frame) +# AppPreferences (Frame) preferences = Preferencias preferences.button.width = 80 preferences.restart_required = Reinicia Processing para que se apliquen los cambios diff --git a/build/shared/lib/languages/PDE_fr.properties b/build/shared/lib/languages/PDE_fr.properties index 4b43a35d57..54cdb3c108 100644 --- a/build/shared/lib/languages/PDE_fr.properties +++ b/build/shared/lib/languages/PDE_fr.properties @@ -126,7 +126,7 @@ save.hint = Si vous ne sauvegardez pas, vos modifications seront supprimées. save.btn.save = Enregistrer save.btn.dont_save = Ne pas enregistrer -# Preferences (Frame) +# AppPreferences (Frame) preferences = Préférences preferences.button.width = 110 preferences.requires_restart = Nécessite de redémarrer Processing diff --git a/build/shared/lib/languages/PDE_it.properties b/build/shared/lib/languages/PDE_it.properties index 9119de9c14..b4b7125b30 100644 --- a/build/shared/lib/languages/PDE_it.properties +++ b/build/shared/lib/languages/PDE_it.properties @@ -155,7 +155,7 @@ save.btn.dont_save = Non salvare # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Salvare le modifiche di %s? -# Preferences (Frame) +# AppPreferences (Frame) preferences = Preferenze preferences.button.width = 80 preferences.requires_restart = richiede il riavvio di Processing diff --git a/build/shared/lib/languages/PDE_ja.properties b/build/shared/lib/languages/PDE_ja.properties index b85fa2dc7a..5aab9ad466 100644 --- a/build/shared/lib/languages/PDE_ja.properties +++ b/build/shared/lib/languages/PDE_ja.properties @@ -160,7 +160,7 @@ save.btn.dont_save = 保存しない # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = %s への変更を保存しますか? -# Preferences (Frame) +# AppPreferences (Frame) preferences = 設定 preferences.button.width = 120 preferences.requires_restart = Processingの再起動が必要です diff --git a/build/shared/lib/languages/PDE_ko.properties b/build/shared/lib/languages/PDE_ko.properties index 1e449dacc0..ee68fc1010 100644 --- a/build/shared/lib/languages/PDE_ko.properties +++ b/build/shared/lib/languages/PDE_ko.properties @@ -125,7 +125,7 @@ save.hint = 저장하지 않으면 변경 내용은 삭제됩니다. save.btn.save = 저장 save.btn.dont_save = 저장 안 함 -# Preferences (Frame) +# AppPreferences (Frame) preferences = 설정 preferences.button.width = 80 preferences.requires_restart = 프로세싱 재실행 시 적용 diff --git a/build/shared/lib/languages/PDE_nl.properties b/build/shared/lib/languages/PDE_nl.properties index e7f11b0a1f..e94c448350 100644 --- a/build/shared/lib/languages/PDE_nl.properties +++ b/build/shared/lib/languages/PDE_nl.properties @@ -120,7 +120,7 @@ save.hint = Als u niet opslaat, zullen uw wijzigingen verloren gaan. save.btn.save = Opslaan save.btn.dont_save = Niet Opslaan -# Preferences (Frame) +# AppPreferences (Frame) preferences = Instellingen preferences.button.width = 90 preferences.requires_restart = herstart van Processing vereist diff --git a/build/shared/lib/languages/PDE_pt.properties b/build/shared/lib/languages/PDE_pt.properties index 44b5c7f639..4953fda3e3 100644 --- a/build/shared/lib/languages/PDE_pt.properties +++ b/build/shared/lib/languages/PDE_pt.properties @@ -119,7 +119,7 @@ save.hint = Se não guardar as suas alterações serão perdidas. save.btn.save = Guardar save.btn.dont_save = Não Guardar -# Preferences (Frame) +# AppPreferences (Frame) preferences = Preferências preferences.button.width = 80 preferences.requires_restart = requer reiniciar o Processing diff --git a/build/shared/lib/languages/PDE_ru.properties b/build/shared/lib/languages/PDE_ru.properties index ff71d4ce49..93566e7795 100644 --- a/build/shared/lib/languages/PDE_ru.properties +++ b/build/shared/lib/languages/PDE_ru.properties @@ -1,7 +1,7 @@  # --------------------------------------- -# Language: Russian (Русский) (ru) +# Language: Russian (Русский) (ru) # --------------------------------------- @@ -10,120 +10,120 @@ # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = Файл -menu.file.new = Создать -menu.file.open = Открыть... -menu.file.recent = Недавние -menu.file.sketchbook = Рабочая папка... -menu.file.sketchbook.empty = Пустая рабочая папка -menu.file.examples = Примеры... -menu.file.close = Закрыть -menu.file.save = Сохранить -menu.file.save_as = Сохранить как... -menu.file.export_application = Экспорт приложения... -menu.file.page_setup = Настройка страницы -menu.file.print = Печать... -menu.file.preferences = Параметры... -menu.file.quit = Выход +menu.file = Файл +menu.file.new = Создать +menu.file.open = Открыть... +menu.file.recent = Недавние +menu.file.sketchbook = Рабочая папка... +menu.file.sketchbook.empty = Пустая рабочая папка +menu.file.examples = Примеры... +menu.file.close = Закрыть +menu.file.save = Сохранить +menu.file.save_as = Сохранить как... +menu.file.export_application = Экспорт приложения... +menu.file.page_setup = Настройка страницы +menu.file.print = Печать... +menu.file.preferences = Параметры... +menu.file.quit = Выход # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = Правка -menu.edit.undo = Отменить -menu.edit.redo = Повторить -menu.edit.action.addition = добавление -menu.edit.action.deletion = удаление -menu.edit.cut = Вырезать -menu.edit.copy = Копировать -menu.edit.copy_as_html = Скопировать как HTML -menu.edit.paste = Вставить -menu.edit.select_all = Выделить всё -menu.edit.auto_format = Автоформатирование -menu.edit.comment_uncomment = Закомментировать/Раскомментировать -menu.edit.increase_indent = → Увеличить отступ -menu.edit.decrease_indent = ← Уменьшить отступ -menu.edit.find = Найти... -menu.edit.find_next = Найти следущее -menu.edit.find_previous = Найти предыдущее -menu.edit.use_selection_for_find = Найти выделенное +menu.edit = Правка +menu.edit.undo = Отменить +menu.edit.redo = Повторить +menu.edit.action.addition = добавление +menu.edit.action.deletion = удаление +menu.edit.cut = Вырезать +menu.edit.copy = Копировать +menu.edit.copy_as_html = Скопировать как HTML +menu.edit.paste = Вставить +menu.edit.select_all = Выделить всё +menu.edit.auto_format = Автоформатирование +menu.edit.comment_uncomment = Закомментировать/Раскомментировать +menu.edit.increase_indent = → Увеличить отступ +menu.edit.decrease_indent = ← Уменьшить отступ +menu.edit.find = Найти... +menu.edit.find_next = Найти следущее +menu.edit.find_previous = Найти предыдущее +menu.edit.use_selection_for_find = Найти выделенное # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = Запустить -menu.sketch.present = Режим презентации -menu.sketch.tweak = Изменить -menu.sketch.stop = Остановить +menu.sketch.run = Запустить +menu.sketch.present = Режим презентации +menu.sketch.tweak = Изменить +menu.sketch.stop = Остановить # --- -menu.library = Импортировать библиотеку... -menu.library.add_library = Добавить библиотеку... -menu.library.contributed = Вклад сообщества -menu.library.no_core_libraries = отсутствуют основные библиотеки +menu.library = Импортировать библиотеку... +menu.library.add_library = Добавить библиотеку... +menu.library.contributed = Вклад сообщества +menu.library.no_core_libraries = отсутствуют основные библиотеки # --- -menu.sketch = Набросок -menu.sketch.show_sketch_folder = Показать папку с набросками -menu.sketch.add_file = Добавить файл... +menu.sketch = Набросок +menu.sketch.show_sketch_folder = Показать папку с набросками +menu.sketch.add_file = Добавить файл... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = Отладка -menu.debug.enable = Включить отладку -menu.debug.disable = Отключить отладку -#menu.debug.show_debug_toolbar = Показать панель отладки -#menu.debug.debug = Начать отладку -#menu.debug.stop = Остановить отладку +menu.debug = Отладка +menu.debug.enable = Включить отладку +menu.debug.disable = Отключить отладку +#menu.debug.show_debug_toolbar = Показать панель отладки +#menu.debug.debug = Начать отладку +#menu.debug.stop = Остановить отладку # --- -menu.debug.toggle_breakpoint = Поставить/снять точку останова -#menu.debug.list_breakpoints = Список точек останова +menu.debug.toggle_breakpoint = Поставить/снять точку останова +#menu.debug.list_breakpoints = Список точек останова # --- # used for both menus and toolbars -menu.debug.step = Шаг -menu.debug.step_into = Зайти в -menu.debug.step_out = Выйти из -menu.debug.continue = Продолжить +menu.debug.step = Шаг +menu.debug.step_into = Зайти в +menu.debug.step_out = Выйти из +menu.debug.continue = Продолжить # --- -#menu.debug.print_stack_trace = Печать стека вызовов -#menu.debug.print_locals = Печать локальных переменных -#menu.debug.print_fields = Печать полей -#menu.debug.print_source_location = Печатать расположение источника -#menu.debug.print_threads = Друкувати потоки +#menu.debug.print_stack_trace = Печать стека вызовов +#menu.debug.print_locals = Печать локальных переменных +#menu.debug.print_fields = Печать полей +#menu.debug.print_source_location = Печатать расположение источника +#menu.debug.print_threads = Друкувати потоки # --- -#menu.debug.variable_inspector = Инспектор переменных -menu.debug.show_variables = Показать переменные -menu.debug.hide_variables = Спрятать переменные -#menu.debug.show_sketch_outline = Показать рамку наброска -#menu.debug.show_tabs_list = Показать список вкладок +#menu.debug.variable_inspector = Инспектор переменных +menu.debug.show_variables = Показать переменные +menu.debug.hide_variables = Спрятать переменные +#menu.debug.show_sketch_outline = Показать рамку наброска +#menu.debug.show_tabs_list = Показать список вкладок # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = Инструменты -menu.tools.color_selector = Выбрать цвет... -menu.tools.create_font = Создать шрифты... -menu.tools.archive_sketch = Архивировать набросок -menu.tools.fix_the_serial_lbrary = Исправить библиотеку Serial -menu.tools.install_processing_java = Установить "processing-java" -menu.tools.add_tool = Добавить инструмент... +menu.tools = Инструменты +menu.tools.color_selector = Выбрать цвет... +menu.tools.create_font = Создать шрифты... +menu.tools.archive_sketch = Архивировать набросок +menu.tools.fix_the_serial_lbrary = Исправить библиотеку Serial +menu.tools.install_processing_java = Установить "processing-java" +menu.tools.add_tool = Добавить инструмент... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = Помощь -menu.help.welcome = Добро пожаловать в Processing -menu.help.about = О Processing -menu.help.environment = Среда -menu.help.reference = Документация -menu.help.find_in_reference = Найти в документации -menu.help.libraries_reference = Документация библиотек -menu.help.tools_reference = Документация инструментов -menu.help.empty = (пусто) -menu.help.online = Онлайн -menu.help.getting_started = Начало работы (англ.) +menu.help = Помощь +menu.help.welcome = Добро пожаловать в Processing +menu.help.about = О Processing +menu.help.environment = Среда +menu.help.reference = Документация +menu.help.find_in_reference = Найти в документации +menu.help.libraries_reference = Документация библиотек +menu.help.tools_reference = Документация инструментов +menu.help.empty = (пусто) +menu.help.online = Онлайн +menu.help.getting_started = Начало работы (англ.) # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = Решение проблем (англ.) +menu.help.troubleshooting = Решение проблем (англ.) # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = Часто задаваемые вопросы (англ.) +menu.help.faq = Часто задаваемые вопросы (англ.) # menu.help.faq.url = http://wiki.processing.org/w/FAQ -menu.help.foundation = The Processing Foundation (англ.) +menu.help.foundation = The Processing Foundation (англ.) # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = Постетить Processing.org (англ.) +menu.help.visit = Постетить Processing.org (англ.) # menu.help.visit.url = http://processing.org/ @@ -131,477 +131,477 @@ menu.help.visit = Постетить Processing.org (англ.) # Basics # Buttons -prompt.yes = Да -prompt.no = Нет -prompt.cancel = Отменить -prompt.ok = ОК -prompt.browse = Просмотр -prompt.export = Экспорт +prompt.yes = Да +prompt.no = Нет +prompt.cancel = Отменить +prompt.ok = ОК +prompt.browse = Просмотр +prompt.export = Экспорт # --------------------------------------- # Frames # Open (Frame) -open = Открыть в Processing... +open = Открыть в Processing... # Save (Frame) -save = Сохранить папку как... -save.title = Сохранить изменения %s перед закрытием? -save.hint = Несохранённые изменения будут потеряны. -save.btn.save = Сохранить -save.btn.dont_save = Не сохранять +save = Сохранить папку как... +save.title = Сохранить изменения %s перед закрытием? +save.hint = Несохранённые изменения будут потеряны. +save.btn.save = Сохранить +save.btn.dont_save = Не сохранять # Close (Frame) also used to prompt on non-mac machines -close.unsaved_changes = Сохранить изменения в %s? +close.unsaved_changes = Сохранить изменения в %s? -# Preferences (Frame) -preferences = Параметры +# AppPreferences (Frame) +preferences = Параметры preferences.button.width = 95 -preferences.requires_restart = требуется перезапуск Processing -preferences.sketchbook_location = Расположение рабочей папки -preferences.sketchbook_location.popup = Расположение рабочей папки -preferences.language = Язык -preferences.editor_and_console_font = Шрифт редактора и консоли -preferences.editor_and_console_font.tip = Выбрать шрифт для использовании в редакторе и консоли.
Возможно использование только моноширинных шрифтов. -preferences.editor_font_size = Размер шрифта редактора -preferences.console_font_size = Размер шрифта консоли -preferences.zoom = Масштабирование интерфейса -preferences.zoom.auto = По умолчанию -preferences.background_color = Цвет фона в режиме презентации -preferences.background_color.tip = Выбрать фоновый цвет для режима презентации.
Режим презентации используется для полноэкранного просмотра
из меню набросок. -preferences.use_smooth_text = Рисовать сглаженный текст в окне редактора -preferences.enable_complex_text_input = Включить расширенное редактирование текста -preferences.enable_complex_text_input_example = напр. японский -preferences.continuously_check = Проверять на ошибки -preferences.show_warnings = Показать предупреждения -preferences.code_completion = Автодополнение кода -preferences.trigger_with = Запуск с помощью -preferences.cmd_space = Пробел -preferences.suggest_imports = Предлагать импорт -preferences.increase_max_memory = Увеличить лимит памяти для наброска -preferences.delete_previous_folder_on_export = Удалять предыдущую папку при экспорте -preferences.check_for_updates_on_startup = Разрешать проверку обновлений (см. ЧаВо для получения информации о используемых данных) -preferences.run_sketches_on_display = Запускать набросок на мониторе -preferences.run_sketches_on_display.tip = Задаёт монитор, на котором будут запускаться наброски.
Обычно, если окно перемещается, то оно будет перезапущено
на том месте, тем не менее при запуске в полноэкранном режиме
всегда используется выбранный монитор. -preferences.automatically_associate_pde_files = Автоматически ассоциировать файлы .pde с Processing -preferences.launch_programs_in = Запускать программы в -preferences.launch_programs_in.mode = Режим -preferences.file = В файле настроек можно найти больше параметров для настройки -preferences.file.hint = не редактируйте его при запущенном Processing +preferences.requires_restart = требуется перезапуск Processing +preferences.sketchbook_location = Расположение рабочей папки +preferences.sketchbook_location.popup = Расположение рабочей папки +preferences.language = Язык +preferences.editor_and_console_font = Шрифт редактора и консоли +preferences.editor_and_console_font.tip = Выбрать шрифт для использовании в редакторе и консоли.
Возможно использование только моноширинных шрифтов. +preferences.editor_font_size = Размер шрифта редактора +preferences.console_font_size = Размер шрифта консоли +preferences.zoom = Масштабирование интерфейса +preferences.zoom.auto = По умолчанию +preferences.background_color = Цвет фона в режиме презентации +preferences.background_color.tip = Выбрать фоновый цвет для режима презентации.
Режим презентации используется для полноэкранного просмотра
из меню набросок. +preferences.use_smooth_text = Рисовать сглаженный текст в окне редактора +preferences.enable_complex_text_input = Включить расширенное редактирование текста +preferences.enable_complex_text_input_example = напр. японский +preferences.continuously_check = Проверять на ошибки +preferences.show_warnings = Показать предупреждения +preferences.code_completion = Автодополнение кода +preferences.trigger_with = Запуск с помощью +preferences.cmd_space = Пробел +preferences.suggest_imports = Предлагать импорт +preferences.increase_max_memory = Увеличить лимит памяти для наброска +preferences.delete_previous_folder_on_export = Удалять предыдущую папку при экспорте +preferences.check_for_updates_on_startup = Разрешать проверку обновлений (см. ЧаВо для получения информации о используемых данных) +preferences.run_sketches_on_display = Запускать набросок на мониторе +preferences.run_sketches_on_display.tip = Задаёт монитор, на котором будут запускаться наброски.
Обычно, если окно перемещается, то оно будет перезапущено
на том месте, тем не менее при запуске в полноэкранном режиме
всегда используется выбранный монитор. +preferences.automatically_associate_pde_files = Автоматически ассоциировать файлы .pde с Processing +preferences.launch_programs_in = Запускать программы в +preferences.launch_programs_in.mode = Режим +preferences.file = В файле настроек можно найти больше параметров для настройки +preferences.file.hint = не редактируйте его при запущенном Processing # Sketchbook Location (Frame) -sketchbook_location = Выбрать новое раположение рабочей папки +sketchbook_location = Выбрать новое раположение рабочей папки # Sketchbook (Frame) -sketchbook = Рабочая папка -sketchbook.tree = Рабочая папка +sketchbook = Рабочая папка +sketchbook.tree = Рабочая папка # Examples (Frame) -examples.title = Примеры %s -examples.add_examples = Добавить... -examples.libraries = Библиотеки сообщества -examples.core_libraries = Библиотеки -examples.contributed = Примеры сообщества +examples.title = Примеры %s +examples.add_examples = Добавить... +examples.libraries = Библиотеки сообщества +examples.core_libraries = Библиотеки +examples.contributed = Примеры сообщества # Export (Frame) -export = Настройка экспорта -export.platforms = Платформы -export.options = Настройки -export.options.present = Режим презентации -export.options.show_stop_button = Показывать кнопку остановки -export.description.line1 = "Экспорт в приложение" создаёт интерактивное, -export.description.line2 = самостоятельное приложение для выбранных платформ. -export.unsaved_changes = Сохранить изменения перед экспортом? -export.notice.cancel.unsaved_changes = Экспорт отменён, сохраните сперва сделанные изменения. -export.notice.exporting = Экспорт приложения... -export.notice.exporting.done = Экспорт завершён. -export.notice.exporting.error = Ошибка при экспорте. -export.notice.exporting.cancel = Экспорт в приложение отменён. -export.tooltip.macos = Экспорт для macOS доступен только на macOS -export.full_screen = Во весь экран -export.embed_java = Встроенная Java -export.code_signing = Цифровая подпись -export.messages.is_read_only = Скетч доступен только для чтения -export.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nНужно сперва сохранить их в другом месте\nа затем попробовать заново. -export.messages.cannot_export = Экспорт невозможен -export.messages.cannot_export.description = Нельзя экспортировать несохранённый набросок. +export = Настройка экспорта +export.platforms = Платформы +export.options = Настройки +export.options.present = Режим презентации +export.options.show_stop_button = Показывать кнопку остановки +export.description.line1 = "Экспорт в приложение" создаёт интерактивное, +export.description.line2 = самостоятельное приложение для выбранных платформ. +export.unsaved_changes = Сохранить изменения перед экспортом? +export.notice.cancel.unsaved_changes = Экспорт отменён, сохраните сперва сделанные изменения. +export.notice.exporting = Экспорт приложения... +export.notice.exporting.done = Экспорт завершён. +export.notice.exporting.error = Ошибка при экспорте. +export.notice.exporting.cancel = Экспорт в приложение отменён. +export.tooltip.macos = Экспорт для macOS доступен только на macOS +export.full_screen = Во весь экран +export.embed_java = Встроенная Java +export.code_signing = Цифровая подпись +export.messages.is_read_only = Скетч доступен только для чтения +export.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nНужно сперва сохранить их в другом месте\nа затем попробовать заново. +export.messages.cannot_export = Экспорт невозможен +export.messages.cannot_export.description = Нельзя экспортировать несохранённый набросок. # Find (Frame) -find = Поиск -find.find = Найти: -find.replace_with = Заменить на: -find.ignore_case = Игнорировать регистр -find.all_tabs = Во всех вкладках -find.wrap_around = По всему документу -find.btn.replace_all = Заменить всё -find.btn.replace = Заменить -find.btn.replace_and_find = Найти и заменить -find.btn.previous = Предыдущий -find.btn.find = Найти +find = Поиск +find.find = Найти: +find.replace_with = Заменить на: +find.ignore_case = Игнорировать регистр +find.all_tabs = Во всех вкладках +find.wrap_around = По всему документу +find.btn.replace_all = Заменить всё +find.btn.replace = Заменить +find.btn.replace_and_find = Найти и заменить +find.btn.previous = Предыдущий +find.btn.find = Найти # Find in reference (Frame) -find_in_reference = Найти в документации +find_in_reference = Найти в документации # File (Frame) -file = Выбрать +file = Выбрать # Create Font (Frame) -create_font = Создать шрифт -create_font.label = Этот инструмент предназначен для создания пользовательских шрифтов.\nВыберите шрифт, его размер и нажмите "ОК", для создания шрифта.\nОн будет сохранён в папке с наброском. -create_font.size = Размер -create_font.smooth = Сглаживание -create_font.characters = Символы... -create_font.character_selector = Выбор символа -create_font.character_selector.label = В стандартные набор символов включены bitmap-ы для Mac OS\nи Windows Latin. Включение всех символов увеличивает потребление памяти.\nДля улучшения ситуации подключайте необходимые блоки Unicode. -create_font.default_characters = Стандартные символы -create_font.all_characters = Все символы -create_font.specific_unicode = Определённые блоки Unicode -create_font.filename = Имя файла +create_font = Создать шрифт +create_font.label = Этот инструмент предназначен для создания пользовательских шрифтов.\nВыберите шрифт, его размер и нажмите "ОК", для создания шрифта.\nОн будет сохранён в папке с наброском. +create_font.size = Размер +create_font.smooth = Сглаживание +create_font.characters = Символы... +create_font.character_selector = Выбор символа +create_font.character_selector.label = В стандартные набор символов включены bitmap-ы для Mac OS\nи Windows Latin. Включение всех символов увеличивает потребление памяти.\nДля улучшения ситуации подключайте необходимые блоки Unicode. +create_font.default_characters = Стандартные символы +create_font.all_characters = Все символы +create_font.specific_unicode = Определённые блоки Unicode +create_font.filename = Имя файла # Color Selector (Frame) -color_selector = Выбрать цвет +color_selector = Выбрать цвет # Archive Sketch (Frame) -archive_sketch = Архивировать скетч в... +archive_sketch = Архивировать скетч в... # Tweak Mode -tweak_mode = Режим редактирования -tweak_mode.save_before_tweak = Сохраните набросок перед переходом в режим редактирования. -tweak_mode.keep_changes.line1 = Сохранить изменения? -tweak_mode.keep_changes.line2 = Вы изменили настройки наброска. Желаете сохранить? +tweak_mode = Режим редактирования +tweak_mode.save_before_tweak = Сохраните набросок перед переходом в режим редактирования. +tweak_mode.keep_changes.line1 = Сохранить изменения? +tweak_mode.keep_changes.line2 = Вы изменили настройки наброска. Желаете сохранить? # DebugTray -debugger.name = Имя -debugger.value = Значения -debugger.type = Тип +debugger.name = Имя +debugger.value = Значения +debugger.type = Тип # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = Запустить -toolbar.present = Показать -toolbar.stop = Остановить -toolbar.debug = Отладить +toolbar.run = Запустить +toolbar.present = Показать +toolbar.stop = Остановить +toolbar.debug = Отладить # --- -toolbar.new = Новый -toolbar.open = Открыть -toolbar.save = Сохранить -# toolbar.export_application = Экспорт приложения -toolbar.add_mode = Добавить режим... +toolbar.new = Новый +toolbar.open = Открыть +toolbar.save = Сохранить +# toolbar.export_application = Экспорт приложения +toolbar.add_mode = Добавить режим... # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] -#toolbar.debug.continue = Продолжить -#toolbar.debug.step = Шаг -#toolbar.debug.step_into = Зайти в -#toolbar.debug.stop = Остановить -#toolbar.debug.toggle_breakpoints = Поставить/Убрать точку останова -#toolbar.debug.variable_inspector = Экран переменных +#toolbar.debug.continue = Продолжить +#toolbar.debug.step = Шаг +#toolbar.debug.step_into = Зайти в +#toolbar.debug.stop = Остановить +#toolbar.debug.toggle_breakpoints = Поставить/Убрать точку останова +#toolbar.debug.variable_inspector = Экран переменных # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = Новая вкладка -editor.header.rename = Переименовать -editor.header.delete = Удалить -editor.header.previous_tab = Предыдущая вкладка -editor.header.next_tab = Следующая вкладка -editor.header.delete.warning.title = Да, нет. -editor.header.delete.warning.text = Нельзя удалить основную вкладку открытого наброска. +editor.header.new_tab = Новая вкладка +editor.header.rename = Переименовать +editor.header.delete = Удалить +editor.header.previous_tab = Предыдущая вкладка +editor.header.next_tab = Следующая вкладка +editor.header.delete.warning.title = Да, нет. +editor.header.delete.warning.text = Нельзя удалить основную вкладку открытого наброска. # PopUp menu -editor.popup.jump_to_declaration = Перейти к определению -editor.popup.show_usage = Найти использование... -editor.popup.rename = Переименовать... +editor.popup.jump_to_declaration = Перейти к определению +editor.popup.show_usage = Найти использование... +editor.popup.rename = Переименовать... # Tabs -editor.tab.new = Новое имя -editor.tab.new.description = Имя нового файла -editor.tab.rename = Новое имя -editor.tab.rename.description = Новое имя файла +editor.tab.new = Новое имя +editor.tab.new.description = Имя нового файла +editor.tab.rename = Новое имя +editor.tab.rename.description = Новое имя файла # Sketch -editor.sketch.rename.description = Имя нового наброска - -editor.status.autoformat.no_changes = Автоформатирования не требуется. -editor.status.autoformat.finished = Автоформатирование завершено. -editor.status.find_reference.select_word_first = Сначала выделите слово для поиска в документации. -editor.status.find_reference.not_available = Документация для "%s" недоступна. -editor.status.drag_and_drop.files_added.0 = В скетч не добавлено файлов. -editor.status.drag_and_drop.files_added.1 = Файл добавлен в скетч. -editor.status.drag_and_drop.files_added.n = В скетч добавлено %d файла(-ов). -editor.status.saving = Сохранение... -editor.status.saving.done = Сохранение завершено. -editor.status.saving.canceled = Сохранение отменено. -editor.status.printing = Печать... -editor.status.printing.done = Печать завершена. -editor.status.printing.error = Ошибка печати. -editor.status.printing.canceled = Печать отменена. -editor.status.copy_as_html = Код, форматированный в HTML, скопирован в буфер обмена. -editor.status.debug.busy = Отладчик занят... -editor.status.debug.halt = Отладчик остановлен. -editor.status.archiver.create = "%s" создан. -editor.status.archiver.cancel = Архивирование отменено. +editor.sketch.rename.description = Имя нового наброска + +editor.status.autoformat.no_changes = Автоформатирования не требуется. +editor.status.autoformat.finished = Автоформатирование завершено. +editor.status.find_reference.select_word_first = Сначала выделите слово для поиска в документации. +editor.status.find_reference.not_available = Документация для "%s" недоступна. +editor.status.drag_and_drop.files_added.0 = В скетч не добавлено файлов. +editor.status.drag_and_drop.files_added.1 = Файл добавлен в скетч. +editor.status.drag_and_drop.files_added.n = В скетч добавлено %d файла(-ов). +editor.status.saving = Сохранение... +editor.status.saving.done = Сохранение завершено. +editor.status.saving.canceled = Сохранение отменено. +editor.status.printing = Печать... +editor.status.printing.done = Печать завершена. +editor.status.printing.error = Ошибка печати. +editor.status.printing.canceled = Печать отменена. +editor.status.copy_as_html = Код, форматированный в HTML, скопирован в буфер обмена. +editor.status.debug.busy = Отладчик занят... +editor.status.debug.halt = Отладчик остановлен. +editor.status.archiver.create = "%s" создан. +editor.status.archiver.cancel = Архивирование отменено. # Errors -editor.status.warning = Предупреждение -editor.status.error = Ошибка -editor.status.error_on = Ошибка в "%s" -editor.status.missing.default = Пропущен "%c" -editor.status.missing.semicolon = Пропущена ";" -editor.status.missing.left_sq_bracket = Пропущена "[" -editor.status.missing.right_sq_bracket = Пропущена "]" -editor.status.missing.left_paren = Пропущена "(" -editor.status.missing.right_paren = Пропущена ")" -editor.status.missing.left_curly_bracket = Пропущена "{" -editor.status.missing.right_curly_bracket = Пропущена "}" -editor.status.missing.add = Добавьте "%s" -editor.status.bad_curly_quote = Косые кавычки %s не работают. Используйте прямые. Ctrl-T для автозамены. -editor.status.reserved_words = "color" и "int" - зарезервированы и не могут быть использованы в качестве имён переменных -editor.status.undefined_method = Функция "%s(%s)" не определена -editor.status.undefined_constructor = Конструктор "%s(%s)" не определён -editor.status.empty_param = Функция "%s()" не имеет параметров -editor.status.wrong_param = Функция "%s()" ожидает параметры: "%s(%s)" -editor.status.undef_global_var = Глобальная переменная "%s" не определена -editor.status.undef_class = Класс "%s" не определён -editor.status.undef_var = Переменная "%s" не определена -editor.status.undef_name = Имя "%s" не может быть распознано -editor.status.unterm_string_curly = Строковый литерал не заключён в двойные кавычки. Косые кавычки %s не применимы. -editor.status.type_mismatch = Несовпадение типов "%s" и "%s" -editor.status.unused_variable = Локальная переменная "%s" нигде не используется -editor.status.uninitialized_variable = Локальная переменная "%s" не инициализирована -editor.status.no_effect_assignment = Присвоение переменной "%s" не имеет эффекта -editor.status.hiding_enclosing_type = Класс "%s" не может иметь имя наброска +editor.status.warning = Предупреждение +editor.status.error = Ошибка +editor.status.error_on = Ошибка в "%s" +editor.status.missing.default = Пропущен "%c" +editor.status.missing.semicolon = Пропущена ";" +editor.status.missing.left_sq_bracket = Пропущена "[" +editor.status.missing.right_sq_bracket = Пропущена "]" +editor.status.missing.left_paren = Пропущена "(" +editor.status.missing.right_paren = Пропущена ")" +editor.status.missing.left_curly_bracket = Пропущена "{" +editor.status.missing.right_curly_bracket = Пропущена "}" +editor.status.missing.add = Добавьте "%s" +editor.status.bad_curly_quote = Косые кавычки %s не работают. Используйте прямые. Ctrl-T для автозамены. +editor.status.reserved_words = "color" и "int" - зарезервированы и не могут быть использованы в качестве имён переменных +editor.status.undefined_method = Функция "%s(%s)" не определена +editor.status.undefined_constructor = Конструктор "%s(%s)" не определён +editor.status.empty_param = Функция "%s()" не имеет параметров +editor.status.wrong_param = Функция "%s()" ожидает параметры: "%s(%s)" +editor.status.undef_global_var = Глобальная переменная "%s" не определена +editor.status.undef_class = Класс "%s" не определён +editor.status.undef_var = Переменная "%s" не определена +editor.status.undef_name = Имя "%s" не может быть распознано +editor.status.unterm_string_curly = Строковый литерал не заключён в двойные кавычки. Косые кавычки %s не применимы. +editor.status.type_mismatch = Несовпадение типов "%s" и "%s" +editor.status.unused_variable = Локальная переменная "%s" нигде не используется +editor.status.uninitialized_variable = Локальная переменная "%s" не инициализирована +editor.status.no_effect_assignment = Присвоение переменной "%s" не имеет эффекта +editor.status.hiding_enclosing_type = Класс "%s" не может иметь имя наброска # Limited syntax error support, Wikipedia CC BY-SA -editor.status.error.syntax = Синтаксическая ошибка - %s +editor.status.error.syntax = Синтаксическая ошибка - %s # Footer buttons -editor.footer.errors = Ошибки -editor.footer.errors.problem = Проблема -editor.footer.errors.tab = Вкладка -editor.footer.errors.line = Строка -editor.footer.console = Консоль +editor.footer.errors = Ошибки +editor.footer.errors.problem = Проблема +editor.footer.errors.tab = Вкладка +editor.footer.errors.line = Строка +editor.footer.console = Консоль # New handler -new.messages.is_read_only = Набросок только для чтения -new.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +new.messages.is_read_only = Набросок только для чтения +new.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. # Rename handler -rename.messages.is_untitled = Набросок без названия -rename.messages.is_untitled.description = Сперва сохраните набросок, перед\n тем как его переименовывать -rename.messages.is_modified = Сохраните набросок, перед его переименованием. -rename.messages.is_read_only = Набросок только для чтения -rename.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +rename.messages.is_untitled = Набросок без названия +rename.messages.is_untitled.description = Сперва сохраните набросок, перед\n тем как его переименовывать +rename.messages.is_modified = Сохраните набросок, перед его переименованием. +rename.messages.is_read_only = Набросок только для чтения +rename.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. # Naming handler -name.messages.problem_renaming = Проблема переименования -name.messages.starts_with_dot.description = Имя не может начинаться с точки -name.messages.invalid_extension.description = ".%s" не допустимое расширениие. -name.messages.main_java_extension.description = Первая вкладка не может быть %s файлом.\n(Воспользуйтесь другой, "правильной" средой\nпрограммирования?) -name.messages.new_sketch_exists = Переименование невозможно -name.messages.new_sketch_exists.description = Файл "%s" уже существует в\n"%s" -name.messages.new_folder_exists = Переименование невозможно -name.messages.new_folder_exists.description = Набросок(или папка) "%s" уже существует. -name.messages.error = Ошибка -name.messages.no_rename_folder.description = Не удалось переименовать папку наброска. -name.messages.no_rename_file.description = Не удалось переименовать "%s" на "%s" -name.messages.no_create_file.description = Не удалось создать файл "%s"\nв "%s" +name.messages.problem_renaming = Проблема переименования +name.messages.starts_with_dot.description = Имя не может начинаться с точки +name.messages.invalid_extension.description = ".%s" не допустимое расширениие. +name.messages.main_java_extension.description = Первая вкладка не может быть %s файлом.\n(Воспользуйтесь другой, "правильной" средой\nпрограммирования?) +name.messages.new_sketch_exists = Переименование невозможно +name.messages.new_sketch_exists.description = Файл "%s" уже существует в\n"%s" +name.messages.new_folder_exists = Переименование невозможно +name.messages.new_folder_exists.description = Набросок(или папка) "%s" уже существует. +name.messages.error = Ошибка +name.messages.no_rename_folder.description = Не удалось переименовать папку наброска. +name.messages.no_rename_file.description = Не удалось переименовать "%s" на "%s" +name.messages.no_create_file.description = Не удалось создать файл "%s"\nв "%s" # Delete handler -delete.messages.cannot_delete = Нельзя удалить -delete.messages.cannot_delete.description = Нельзя удалить несохранённый набросок. -delete.messages.cannot_delete.file = Не удалось -delete.messages.cannot_delete.file.description = Не получилось удалить -delete.messages.is_read_only = Набросок открыт "только для чтения" -delete.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +delete.messages.cannot_delete = Нельзя удалить +delete.messages.cannot_delete.description = Нельзя удалить несохранённый набросок. +delete.messages.cannot_delete.file = Не удалось +delete.messages.cannot_delete.file.description = Не получилось удалить +delete.messages.is_read_only = Набросок открыт "только для чтения" +delete.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. # Save handler -save_file.messages.is_read_only = Набросок только для чтения -save_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. -save_file.messages.sketch_exists = Набросок уже существует -save_file.messages.sketch_exists.description = Набросок с очищенным именем\n“%s” уже существует. -save_file.messages.tab_exists = Не удалось сохранить -save_file.messages.tab_exists.description = Нельзя сохранить набросок "%s"\n. Вкладка с таким именем уже открыта -save_file.messages.recursive_save = Сохранение в стиле Боргеса -save_file.messages.recursive_save.description = Нельзя сохранить набросок в папку внутри\nсамого себя. Будет циклическая зависимость. +save_file.messages.is_read_only = Набросок только для чтения +save_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +save_file.messages.sketch_exists = Набросок уже существует +save_file.messages.sketch_exists.description = Набросок с очищенным именем\n“%s” уже существует. +save_file.messages.tab_exists = Не удалось сохранить +save_file.messages.tab_exists.description = Нельзя сохранить набросок "%s"\n. Вкладка с таким именем уже открыта +save_file.messages.recursive_save = Сохранение в стиле Боргеса +save_file.messages.recursive_save.description = Нельзя сохранить набросок в папку внутри\nсамого себя. Будет циклическая зависимость. # Add handler -add_file.messages.is_read_only = Набросок "только для чтения" -add_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. -add_file.messages.confirm_replace = Заменить существующюю версию %s? -add_file.messages.error_adding = Ошибка при добавлении файла -add_file.messages.cannot_delete.description = Не получилось удалить существующий файл '%s'. -add_file.messages.cannot_add.description = Не удалось добавить '%s' в набросок. -add_file.messages.same_file = Меня не обдуришь -add_file.messages.same_file.description = Этот файл уже был скопирован в то место\nкуда вы пытаетесь его скопировать.\nНичего не будет сделано. +add_file.messages.is_read_only = Набросок "только для чтения" +add_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +add_file.messages.confirm_replace = Заменить существующюю версию %s? +add_file.messages.error_adding = Ошибка при добавлении файла +add_file.messages.cannot_delete.description = Не получилось удалить существующий файл '%s'. +add_file.messages.cannot_add.description = Не удалось добавить '%s' в набросок. +add_file.messages.same_file = Меня не обдуришь +add_file.messages.same_file.description = Этот файл уже был скопирован в то место\nкуда вы пытаетесь его скопировать.\nНичего не будет сделано. # Temp folder creator -temp_dir.messages.bad_build_folder = Плохая папка сборки -temp_dir.messages.bad_build_folder.description = Не удалось найти место для сборки. +temp_dir.messages.bad_build_folder = Плохая папка сборки +temp_dir.messages.bad_build_folder.description = Не удалось найти место для сборки. # Ensure Existance -ensure_exist.messages.missing_sketch = Набросок не найден -ensure_exist.messages.missing_sketch.description = Папка с наброском не найдена.\nПопробуем сохранить заново, некоторые\nизменения возможно будут утрачены. -ensure_exist.messages.unrecoverable = Не удалось востановить набросок -ensure_exist.messages.unrecoverable.description = Не удалось повторно сохранить набросок. У вас могут возникнуть трудности,\nпри редактировании в внешнем текстовом редакторе. +ensure_exist.messages.missing_sketch = Набросок не найден +ensure_exist.messages.missing_sketch.description = Папка с наброском не найдена.\nПопробуем сохранить заново, некоторые\nизменения возможно будут утрачены. +ensure_exist.messages.unrecoverable = Не удалось востановить набросок +ensure_exist.messages.unrecoverable.description = Не удалось повторно сохранить набросок. У вас могут возникнуть трудности,\nпри редактировании в внешнем текстовом редакторе. # Check name -check_name.messages.is_name_modified = Имя наброска было изменено. Имена набросков могут состоять\nтолько из ASCII-символов и цифр (но не могут начинаться с цифры).\nТакже имя не должно быть больше 64-ёх +check_name.messages.is_name_modified = Имя наброска было изменено. Имена набросков могут состоять\nтолько из ASCII-символов и цифр (но не могут начинаться с цифры).\nТакже имя не должно быть больше 64-ёх # External changes detector -change_detect.reload.title=Вкладка изменена вне приложения -change_detect.reload.question="%s" изменена другим приложением. -change_detect.reload.comment=Оставить или перезагрузить изменения?\nВ любом случае файл будет сохранён в папке с наброском. -change_detect.button.keep=Оставить -change_detect.button.load_new=Перезагрузить -change_detect.delete.title=Вкладка удалена вне программы -change_detect.delete.question="%s" пропала из папки с работами. -change_detect.delete.comment=Хотите пересохранить или удалить набросок? -change_detect.button.discard=Удалить -change_detect.button.resave=Пересохранить +change_detect.reload.title=Вкладка изменена вне приложения +change_detect.reload.question="%s" изменена другим приложением. +change_detect.reload.comment=Оставить или перезагрузить изменения?\nВ любом случае файл будет сохранён в папке с наброском. +change_detect.button.keep=Оставить +change_detect.button.load_new=Перезагрузить +change_detect.delete.title=Вкладка удалена вне программы +change_detect.delete.question="%s" пропала из папки с работами. +change_detect.delete.comment=Хотите пересохранить или удалить набросок? +change_detect.button.discard=Удалить +change_detect.button.resave=Пересохранить # --------------------------------------- # Contributions # Contribution Panel -contrib = Управление расширениями -contrib.manager_title.update = Управление обновлениями -contrib.manager_title.mode = Управление режимами -contrib.manager_title.tool = Управление инструментами -contrib.manager_title.library = Управление библиотеками -contrib.manager_title.examples = Управление примерами -contrib.category = Категория: -contrib.filter_your_search = Фильтр поиска... -contrib.show_only_compatible.mode = Показать только совместимые режимы -contrib.show_only_compatible.tool = Показать только совместимые инструменты -contrib.show_only_compatible.library = Показать только совместимые библиотеки -contrib.show_only_compatible.examples = Показать только совместимые примеры -contrib.show_only_compatible.update = Показать только совместимые обновления -contrib.restart = Перезапустить Processing -contrib.unsaved_changes = Остались несохранённые изменения -contrib.unsaved_changes.prompt = Вы уверены, что хотите перезапустить Processing, не сохранив изменений? -contrib.messages.remove_restart = Перезапустите Processing, для завершения удаления расширения. -contrib.messages.install_restart = Перезапустите Processing, для завершения установки расширения. -contrib.messages.update_restart = Перезапустите Processing, для завершения обновления расширения. -contrib.errors.list_download = Ну удалось загрузить список доступных расширений. -contrib.errors.list_download.timeout = Тайм-аут соединения при загрузке списка расширений. -contrib.errors.download_and_install = Ошибка при загрузке и установке %s. -contrib.errors.description_unavailable = Описание недоступно. -contrib.errors.malformed_url = Ссылка полученная с Processing.org, не рабочая.\nЭту библиотеку всё ещё можно установить вручную\nзагрузив её с сайта. -contrib.errors.needs_repackage = %s требует правильной пересборки %s. -contrib.errors.no_contribution_found = Не удалось найти %s в загруженном файле. -contrib.errors.overwriting_properties = Ошибка сохранения файла .properties. -contrib.errors.install_failed = Установка не удалась. -contrib.errors.update_on_restart_failed = Не удалась установка обновления %s при перезапуске. -contrib.errors.temporary_directory = Не удалась запись во временную папку. -contrib.errors.contrib_download.timeout = Тайм-аут соединения при загрузке %s. -contrib.errors.no_internet_connection = Нет подключения к сети. -contrib.status.downloading_list = Список загрузок расширений... -contrib.status.connecting = Соединение... -contrib.status.done = Готово. -contrib.all = Всё -contrib.undo = Отменить -contrib.remove = Удалить -contrib.install = Установить -contrib.progress.installing = Установка -contrib.progress.starting = Начинаем -contrib.progress.downloading = Загрузка -contrib.download_error = Произошла ошибка при загрузке расширений. -contrib.unsupported_operating_system = Ваша система не поддерживается. Посетите %s для получения подробной информации. +contrib = Управление расширениями +contrib.manager_title.update = Управление обновлениями +contrib.manager_title.mode = Управление режимами +contrib.manager_title.tool = Управление инструментами +contrib.manager_title.library = Управление библиотеками +contrib.manager_title.examples = Управление примерами +contrib.category = Категория: +contrib.filter_your_search = Фильтр поиска... +contrib.show_only_compatible.mode = Показать только совместимые режимы +contrib.show_only_compatible.tool = Показать только совместимые инструменты +contrib.show_only_compatible.library = Показать только совместимые библиотеки +contrib.show_only_compatible.examples = Показать только совместимые примеры +contrib.show_only_compatible.update = Показать только совместимые обновления +contrib.restart = Перезапустить Processing +contrib.unsaved_changes = Остались несохранённые изменения +contrib.unsaved_changes.prompt = Вы уверены, что хотите перезапустить Processing, не сохранив изменений? +contrib.messages.remove_restart = Перезапустите Processing, для завершения удаления расширения. +contrib.messages.install_restart = Перезапустите Processing, для завершения установки расширения. +contrib.messages.update_restart = Перезапустите Processing, для завершения обновления расширения. +contrib.errors.list_download = Ну удалось загрузить список доступных расширений. +contrib.errors.list_download.timeout = Тайм-аут соединения при загрузке списка расширений. +contrib.errors.download_and_install = Ошибка при загрузке и установке %s. +contrib.errors.description_unavailable = Описание недоступно. +contrib.errors.malformed_url = Ссылка полученная с Processing.org, не рабочая.\nЭту библиотеку всё ещё можно установить вручную\nзагрузив её с сайта. +contrib.errors.needs_repackage = %s требует правильной пересборки %s. +contrib.errors.no_contribution_found = Не удалось найти %s в загруженном файле. +contrib.errors.overwriting_properties = Ошибка сохранения файла .properties. +contrib.errors.install_failed = Установка не удалась. +contrib.errors.update_on_restart_failed = Не удалась установка обновления %s при перезапуске. +contrib.errors.temporary_directory = Не удалась запись во временную папку. +contrib.errors.contrib_download.timeout = Тайм-аут соединения при загрузке %s. +contrib.errors.no_internet_connection = Нет подключения к сети. +contrib.status.downloading_list = Список загрузок расширений... +contrib.status.connecting = Соединение... +contrib.status.done = Готово. +contrib.all = Всё +contrib.undo = Отменить +contrib.remove = Удалить +contrib.install = Установить +contrib.progress.installing = Установка +contrib.progress.starting = Начинаем +contrib.progress.downloading = Загрузка +contrib.download_error = Произошла ошибка при загрузке расширений. +contrib.unsupported_operating_system = Ваша система не поддерживается. Посетите %s для получения подробной информации. contrib.category.3d = 3D -contrib.category.animation = Анимация -contrib.category.data = Данные -contrib.category.geometry = Геометрия -contrib.category.gui = Интерфейс -contrib.category.hardware = Аппаратное обеспечение -contrib.category.i_o = Ввод/Вывод -contrib.category.math = Математика -contrib.category.simulation = Симуляция -contrib.category.sound = Звук -contrib.category.typography = Типография -contrib.category.utilities = Утилиты -contrib.category.video_vision = Видео -contrib.category.other = Остальное +contrib.category.animation = Анимация +contrib.category.data = Данные +contrib.category.geometry = Геометрия +contrib.category.gui = Интерфейс +contrib.category.hardware = Аппаратное обеспечение +contrib.category.i_o = Ввод/Вывод +contrib.category.math = Математика +contrib.category.simulation = Симуляция +contrib.category.sound = Звук +contrib.category.typography = Типография +contrib.category.utilities = Утилиты +contrib.category.video_vision = Видео +contrib.category.other = Остальное # Install on Startup -contrib.startup.errors.download_install = Ошибка при загрузке и установке %s -contrib.startup.errors.temp_dir = Не удалась запись во временную папку при загрузке и установке %s -contrib.startup.errors.new_marker = Метка не обновлённых расширений не похожа на %s. Возможно потребуется обновление вручную... +contrib.startup.errors.download_install = Ошибка при загрузке и установке %s +contrib.startup.errors.temp_dir = Не удалась запись во временную папку при загрузке и установке %s +contrib.startup.errors.new_marker = Метка не обновлённых расширений не похожа на %s. Возможно потребуется обновление вручную... # Install on Import -contrib.import.dialog.title = Пропущены доступные бибиотеки -contrib.import.dialog.primary_text = Для следующие импортированных библиотек доступны обновления, которые ещё не установлены. -contrib.import.dialog.secondary_text = Хотите установить их сейчас? -contrib.import.progress.download = Загрузка %s... -contrib.import.progress.install = Установка %s... -contrib.import.progress.done = %s было установлено. -contrib.import.progress.final_list = Были устновлены следующие библиотеки: -contrib.import.errors.link = Ошибка: у библиотеки %s странная ссылка для загрузки. +contrib.import.dialog.title = Пропущены доступные бибиотеки +contrib.import.dialog.primary_text = Для следующие импортированных библиотек доступны обновления, которые ещё не установлены. +contrib.import.dialog.secondary_text = Хотите установить их сейчас? +contrib.import.progress.download = Загрузка %s... +contrib.import.progress.install = Установка %s... +contrib.import.progress.done = %s было установлено. +contrib.import.progress.final_list = Были устновлены следующие библиотеки: +contrib.import.errors.link = Ошибка: у библиотеки %s странная ссылка для загрузки. # --------------------------------------- # Warnings -warn.delete = Удалить -warn.delete.sketch = Вы уверены, что хотите удалить эскиз? -warn.delete.sketch_last = Чтобы сохранить ваши файлы в безопасности, удаление всей папки с наброском не поддерживается в Processing.\nПожалуйста, откройте папку с наброском в проводнике, чтобы удалить её. -warn.delete.file = Вы уверены, что хотите удалить "%s"? -warn.cannot_change_mode.title = Нельзя сменить режим -warn.cannot_change_mode.body = Не получается изменить режим,\nтак как "%s" не совместим с текущим режимом. +warn.delete = Удалить +warn.delete.sketch = Вы уверены, что хотите удалить эскиз? +warn.delete.sketch_last = Чтобы сохранить ваши файлы в безопасности, удаление всей папки с наброском не поддерживается в Processing.\nПожалуйста, откройте папку с наброском в проводнике, чтобы удалить её. +warn.delete.file = Вы уверены, что хотите удалить "%s"? +warn.cannot_change_mode.title = Нельзя сменить режим +warn.cannot_change_mode.body = Не получается изменить режим,\nтак как "%s" не совместим с текущим режимом. # --------------------------------------- # Update Check -update_check = Обновить -update_check.updates_available.core = Доступна новая версия Processing,\nхотите перейти на страницу загрузки Processing? -update_check.updates_available.contributions = Доступны обновления сообщества,\nхотите перейти в менеджер обновлений сообщества? +update_check = Обновить +update_check.updates_available.core = Доступна новая версия Processing,\nхотите перейти на страницу загрузки Processing? +update_check.updates_available.contributions = Доступны обновления сообщества,\nхотите перейти в менеджер обновлений сообщества? # --------------------------------------- # Color Chooser -color_chooser = Выбрать цвет -color_chooser.select = Выбрать +color_chooser = Выбрать цвет +color_chooser.select = Выбрать # --------------------------------------- # Movie Maker -movie_maker = Генератор видео -movie_maker.title = Генератор QuickTime -movie_maker.blurb = Этот инструмент делает QuickTime видео из последовательности изображений.

Для недопущения появления артефактов от пересжатеия изобажений в видео
используйте TIFF, TGA (из Processing) или PNG форматы.

Изображения TIFF и TGA обработаются быстрее, но получившееся видео будет занимать больше места на диске:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG изображения меньше, но набросок будет работать медленно:
saveFrame("frames/####.png");

Код на основе QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. Все права защищены.
-movie_maker.image_folder_help_label = Перетяните папку с изображениями в поле ниже: -movie_maker.choose_button = Выбрать... -movie_maker.select_image_folder = Выбрать папку с изображениями... -movie_maker.sound_file_help_label = Перенесите файл (.au, .aiff, .wav, .mp3) в поле ниже: -movie_maker.select_sound_file = Выбрать звуковой файл... - -movie_maker.create_movie_button = Создать видео... -movie_maker.save_dialog_prompt = Сохранить видео как... -movie_maker.width = Ширина: -movie_maker.height = Высота: -movie_maker.compression = Сжатие: -movie_maker.compression.animation = Анимация +movie_maker = Генератор видео +movie_maker.title = Генератор QuickTime +movie_maker.blurb = Этот инструмент делает QuickTime видео из последовательности изображений.

Для недопущения появления артефактов от пересжатеия изобажений в видео
используйте TIFF, TGA (из Processing) или PNG форматы.

Изображения TIFF и TGA обработаются быстрее, но получившееся видео будет занимать больше места на диске:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG изображения меньше, но набросок будет работать медленно:
saveFrame("frames/####.png");

Код на основе QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. Все права защищены.
+movie_maker.image_folder_help_label = Перетяните папку с изображениями в поле ниже: +movie_maker.choose_button = Выбрать... +movie_maker.select_image_folder = Выбрать папку с изображениями... +movie_maker.sound_file_help_label = Перенесите файл (.au, .aiff, .wav, .mp3) в поле ниже: +movie_maker.select_sound_file = Выбрать звуковой файл... + +movie_maker.create_movie_button = Создать видео... +movie_maker.save_dialog_prompt = Сохранить видео как... +movie_maker.width = Ширина: +movie_maker.height = Высота: +movie_maker.compression = Сжатие: +movie_maker.compression.animation = Анимация movie_maker.compression.jpeg = JPEG movie_maker.compression.png = PNG -movie_maker.framerate = Частота кадров: -movie_maker.orig_size_button = Размер, как у оригинала -movie_maker.orig_size_tooltip = Отметьте флажок, если папка уже содержит видео правильного размера. - -movie_maker.error.avoid_tiff = Попробуйте TGA или PNG вместо TIFF. -movie_maker.error.badnumbers = Ширина и высота должны быть натуральными числами; частота кадров должна быть больше нуля. -movie_maker.error.cannot_read = Не удалось прочитать %s. -movie_maker.error.cannot_read_maybe_bad = Не удалось прочитать %s; файл может быть повреждён. -movie_maker.error.movie_failed = Не удалось создать видео QuickTime. -movie_maker.error.need_input = Нужно сначала выбрать папку с изображениями, звуковыми файлами или всем сразу. -movie_maker.error.no_images_found = Не найдены файлы изображений. -movie_maker.error.sorry = Извините -movie_maker.error.unknown_tga_format = Неизвестный формат .tga для %s. - -movie_maker.progress.creating_file_name = Создаётся %s. -movie_maker.progress.creating_output_file = Создаётся выходной файл -movie_maker.progress.initializing = Инициализация... -movie_maker.progress.processing = Обработка %s. +movie_maker.framerate = Частота кадров: +movie_maker.orig_size_button = Размер, как у оригинала +movie_maker.orig_size_tooltip = Отметьте флажок, если папка уже содержит видео правильного размера. + +movie_maker.error.avoid_tiff = Попробуйте TGA или PNG вместо TIFF. +movie_maker.error.badnumbers = Ширина и высота должны быть натуральными числами; частота кадров должна быть больше нуля. +movie_maker.error.cannot_read = Не удалось прочитать %s. +movie_maker.error.cannot_read_maybe_bad = Не удалось прочитать %s; файл может быть повреждён. +movie_maker.error.movie_failed = Не удалось создать видео QuickTime. +movie_maker.error.need_input = Нужно сначала выбрать папку с изображениями, звуковыми файлами или всем сразу. +movie_maker.error.no_images_found = Не найдены файлы изображений. +movie_maker.error.sorry = Извините +movie_maker.error.unknown_tga_format = Неизвестный формат .tga для %s. + +movie_maker.progress.creating_file_name = Создаётся %s. +movie_maker.progress.creating_output_file = Создаётся выходной файл +movie_maker.progress.initializing = Инициализация... +movie_maker.progress.processing = Обработка %s. diff --git a/build/shared/lib/languages/PDE_tr.properties b/build/shared/lib/languages/PDE_tr.properties index 8b8b7f7f55..073317560a 100644 --- a/build/shared/lib/languages/PDE_tr.properties +++ b/build/shared/lib/languages/PDE_tr.properties @@ -120,7 +120,7 @@ save.hint = Kaydedilmeyen değişiklikler kaybolur save.btn.save = Kaydet save.btn.dont_save = Kaydetme -# Preferences (Frame) +# AppPreferences (Frame) preferences = Tercihler preferences.button.width = 110 preferences.requires_restart = Processing'i yeniden başlatmalısınız diff --git a/build/shared/lib/languages/PDE_uk.properties b/build/shared/lib/languages/PDE_uk.properties index c4d4d6baf6..aeb957f777 100644 --- a/build/shared/lib/languages/PDE_uk.properties +++ b/build/shared/lib/languages/PDE_uk.properties @@ -1,7 +1,7 @@  # --------------------------------------- -# Language: Ukrainian (Українська) (uk) +# Language: Ukrainian (Українська) (uk) # --------------------------------------- @@ -14,143 +14,143 @@ font.family.mono = Source Code Pro # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = Файл -menu.file.new = Створити -menu.file.open = Відкрити... -menu.file.recent = Відкрити останні -menu.file.sketchbook = Ескізник... -menu.file.sketchbook.empty = Очистити ескізник -menu.file.examples = Приклади... -menu.file.close = Закрити -menu.file.save = Зберегти -menu.file.save_as = Зберегти як... -menu.file.export_application = Експортувати застосунок... -menu.file.page_setup = Параметри сторінки -menu.file.print = Друк... -menu.file.preferences = Налаштування... -menu.file.quit = Вийти +menu.file = Файл +menu.file.new = Створити +menu.file.open = Відкрити... +menu.file.recent = Відкрити останні +menu.file.sketchbook = Ескізник... +menu.file.sketchbook.empty = Очистити ескізник +menu.file.examples = Приклади... +menu.file.close = Закрити +menu.file.save = Зберегти +menu.file.save_as = Зберегти як... +menu.file.export_application = Експортувати застосунок... +menu.file.page_setup = Параметри сторінки +menu.file.print = Друк... +menu.file.preferences = Налаштування... +menu.file.quit = Вийти # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = Редагування -menu.edit.undo = Скасувати -menu.edit.redo = Повторити +menu.edit = Редагування +menu.edit.undo = Скасувати +menu.edit.redo = Повторити menu.edit.redo.keystroke.macos = shift meta pressed Z menu.edit.redo.keystroke.windows = ctrl pressed Y menu.edit.redo.keystroke.linux = shift ctrl pressed Z -menu.edit.action.addition = додавання -menu.edit.action.deletion = видалення -menu.edit.cut = Вирізати -menu.edit.copy = Копіювати -menu.edit.copy_as_html = Копіювати як HTML -menu.edit.paste = Вставити -menu.edit.select_all = Виділити все -menu.edit.auto_format = Автоформатування -menu.edit.comment_uncomment = Коментувати/Розкоментувати +menu.edit.action.addition = додавання +menu.edit.action.deletion = видалення +menu.edit.cut = Вирізати +menu.edit.copy = Копіювати +menu.edit.copy_as_html = Копіювати як HTML +menu.edit.paste = Вставити +menu.edit.select_all = Виділити все +menu.edit.auto_format = Автоформатування +menu.edit.comment_uncomment = Коментувати/Розкоментувати menu.edit.comment_uncomment.keystroke.macos = meta pressed SLASH menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH -menu.edit.increase_indent = → Збільшити відступ +menu.edit.increase_indent = → Збільшити відступ menu.edit.increase_indent.keystroke.macos = meta pressed CLOSE_BRACKET menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET -menu.edit.decrease_indent = ← Зменшити відступ +menu.edit.decrease_indent = ← Зменшити відступ menu.edit.decrease_indent.keystroke.macos = meta pressed OPEN_BRACKET menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET -menu.edit.find = Знайти... -menu.edit.find_next = Знайти наступне -menu.edit.find_previous = Знайти попереднє -menu.edit.use_selection_for_find = Шукати виділене +menu.edit.find = Знайти... +menu.edit.find_next = Знайти наступне +menu.edit.find_previous = Знайти попереднє +menu.edit.use_selection_for_find = Шукати виділене # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = Запустити -menu.sketch.present = Режим презентації -menu.sketch.tweak = Модифікувати -menu.sketch.stop = Зупинити +menu.sketch.run = Запустити +menu.sketch.present = Режим презентації +menu.sketch.tweak = Модифікувати +menu.sketch.stop = Зупинити # --- -menu.library = Імпортувати бібліотеку... -# menu.library.add_library = Додати бібліотеку... -menu.library.manage_libraries = Керувати бібліотеками... -menu.library.contributed = Користувацькі -menu.library.no_core_libraries = у режиму немає основних бібліотек +menu.library = Імпортувати бібліотеку... +# menu.library.add_library = Додати бібліотеку... +menu.library.manage_libraries = Керувати бібліотеками... +menu.library.contributed = Користувацькі +menu.library.no_core_libraries = у режиму немає основних бібліотек # --- -menu.sketch = Ескіз -menu.sketch.show_sketch_folder = Показати папку ескізу -menu.sketch.add_file = Додати файл... +menu.sketch = Ескіз +menu.sketch.show_sketch_folder = Показати папку ескізу +menu.sketch.add_file = Додати файл... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = Налагодження -menu.debug.enable = Увімкнути налагоджувач -menu.debug.disable = Вимкнути налагоджувач -#menu.debug.show_debug_toolbar = Показати панель налагодження -#menu.debug.debug = Почати налагодження -#menu.debug.stop = Зупинити налагодження +menu.debug = Налагодження +menu.debug.enable = Увімкнути налагоджувач +menu.debug.disable = Вимкнути налагоджувач +#menu.debug.show_debug_toolbar = Показати панель налагодження +#menu.debug.debug = Почати налагодження +#menu.debug.stop = Зупинити налагодження # --- -menu.debug.toggle_breakpoint = Додати / вилучити точку зупинки -#menu.debug.list_breakpoints = Показати список точок зупинки +menu.debug.toggle_breakpoint = Додати / вилучити точку зупинки +#menu.debug.list_breakpoints = Показати список точок зупинки # --- # used for both menus and toolbars -menu.debug.step = Крок +menu.debug.step = Крок menu.debug.step.keystroke.macos = meta pressed J menu.debug.step.keystroke.windows = ctrl pressed J menu.debug.step.keystroke.linux = ctrl pressed J -menu.debug.step_into = Крок із заходом +menu.debug.step_into = Крок із заходом menu.debug.step_into.keystroke.macos = shift meta pressed J menu.debug.step_into.keystroke.windows = shift ctrl pressed J menu.debug.step_into.keystroke.linux = shift ctrl pressed J -menu.debug.step_out = Крок із виходом +menu.debug.step_out = Крок із виходом menu.debug.step_out.keystroke.macos = meta alt pressed J menu.debug.step_out.keystroke.windows = ctrl alt pressed J menu.debug.step_out.keystroke.linux = ctrl alt pressed J -menu.debug.continue = Продовжити +menu.debug.continue = Продовжити # --- -#menu.debug.print_stack_trace = Друкувати стек викликів -#menu.debug.print_locals = Друкувати локальні змінні -#menu.debug.print_fields = Друкувати поля -#menu.debug.print_source_location = Друкувати розташування джерела -#menu.debug.print_threads = Друкувати потоки +#menu.debug.print_stack_trace = Друкувати стек викликів +#menu.debug.print_locals = Друкувати локальні змінні +#menu.debug.print_fields = Друкувати поля +#menu.debug.print_source_location = Друкувати розташування джерела +#menu.debug.print_threads = Друкувати потоки # --- -#menu.debug.variable_inspector = Інспектор змінних -menu.debug.show_variables = Показати змінні -menu.debug.hide_variables = Приховати змінні -#menu.debug.show_sketch_outline = Показати начерк ескізу -#menu.debug.show_tabs_list = Показати список вкладок +#menu.debug.variable_inspector = Інспектор змінних +menu.debug.show_variables = Показати змінні +menu.debug.hide_variables = Приховати змінні +#menu.debug.show_sketch_outline = Показати начерк ескізу +#menu.debug.show_tabs_list = Показати список вкладок # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = Інструменти -menu.tools.color_selector = Вибрати колір... -menu.tools.create_font = Створити шрифт... -menu.tools.archive_sketch = Архівувати ескіз -menu.tools.fix_the_serial_lbrary = Виправити Serial Library -menu.tools.install_processing_java = Встановити "processing-java" -# menu.tools.add_tool = Додати інструмент... -menu.tools.manage_tools = Керувати інструментами... +menu.tools = Інструменти +menu.tools.color_selector = Вибрати колір... +menu.tools.create_font = Створити шрифт... +menu.tools.archive_sketch = Архівувати ескіз +menu.tools.fix_the_serial_lbrary = Виправити Serial Library +menu.tools.install_processing_java = Встановити "processing-java" +# menu.tools.add_tool = Додати інструмент... +menu.tools.manage_tools = Керувати інструментами... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = Довідка -menu.help.welcome = Ласкаво просимо до Processing -menu.help.about = Про Processing -menu.help.environment = Середовище -menu.help.reference = Документація -menu.help.find_in_reference = Знайти у документації -menu.help.libraries_reference = Документація бібліотек -menu.help.tools_reference = Документація інструментів -menu.help.empty = (порожньо) -menu.help.online = Онлайн -menu.help.getting_started = Перші кроки (англ.) +menu.help = Довідка +menu.help.welcome = Ласкаво просимо до Processing +menu.help.about = Про Processing +menu.help.environment = Середовище +menu.help.reference = Документація +menu.help.find_in_reference = Знайти у документації +menu.help.libraries_reference = Документація бібліотек +menu.help.tools_reference = Документація інструментів +menu.help.empty = (порожньо) +menu.help.online = Онлайн +menu.help.getting_started = Перші кроки (англ.) # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = Вирішення проблем (англ.) +menu.help.troubleshooting = Вирішення проблем (англ.) # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = Часті питання (англ.) +menu.help.faq = Часті питання (англ.) # menu.help.faq.url = http://wiki.processing.org/w/FAQ -menu.help.foundation = The Processing Foundation (англ.) +menu.help.foundation = The Processing Foundation (англ.) # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = Відвідати Processing.org (англ.) +menu.help.visit = Відвідати Processing.org (англ.) # menu.help.visit.url = http://processing.org/ @@ -158,497 +158,497 @@ menu.help.visit = Відвідати Processing.org (англ.) # Basics # Buttons -prompt.yes = Так -prompt.no = Ні -prompt.cancel = Скасувати -prompt.ok = ОК -prompt.browse = Огляд -prompt.export = Експортувати +prompt.yes = Так +prompt.no = Ні +prompt.cancel = Скасувати +prompt.ok = ОК +prompt.browse = Огляд +prompt.export = Експортувати # --------------------------------------- # Frames # Open (Frame) -open = Відкрити ескіз Processing... +open = Відкрити ескіз Processing... # Save (Frame) -save = Зберегти папку ескізу як... -save.title = Зберегти зміни до %s перед закриттям? -save.hint = Якщо не зберегти зміни, їх буде втрачено. -save.btn.save = Зберегти -save.btn.dont_save = Не зберігати +save = Зберегти папку ескізу як... +save.title = Зберегти зміни до %s перед закриттям? +save.hint = Якщо не зберегти зміни, їх буде втрачено. +save.btn.save = Зберегти +save.btn.dont_save = Не зберігати # Close (Frame) also used to prompt on non-macOS machines -close.unsaved_changes = Зберегти зміни до %s? +close.unsaved_changes = Зберегти зміни до %s? -# Preferences (Frame) -preferences = Налаштування +# AppPreferences (Frame) +preferences = Налаштування preferences.button.width = 95 -preferences.requires_restart = потрібен перезапуск Processing -preferences.sketchbook_location = Місцезнаходження ескізника -preferences.sketchbook_location.popup = Місцезнаходження ескізника -preferences.language = Мова -preferences.editor_and_console_font = Шрифт редактора і консолі -preferences.editor_and_console_font.tip = Виберіть шрифт, що використовуватиметься у редакторі та консолі.
Можна використовувати лише моноширинні шрифти. -preferences.editor_font_size = Розмір шрифту редактора -preferences.console_font_size = Розмір шрифту консолі -preferences.zoom = Розмір інтерфейсу -preferences.zoom.auto = Автоматичний -preferences.background_color = Колір фону в режимі презентації -preferences.background_color.tip = Виберіть фоновий колір для режиму презентації.
Режим презентації використовується для повноекранної презентації ескізу
і доступний з меню Ескіз. -preferences.use_smooth_text = Використовувати згладжений текст у вікні редактора -preferences.enable_complex_text_input = Увімкнути введення складного тексту -preferences.enable_complex_text_input_example = напр. японська -preferences.continuously_check = Постійно перевіряти на помилки -preferences.show_warnings = Показувати попередження -preferences.code_completion = Доповнення коду за допомогою -preferences.trigger_with = Запуск за допомогою -preferences.cmd_space = Пробіл -preferences.suggest_imports = Пропонувати інструкції import -preferences.increase_max_memory = Збільшити максимальну доступну пам’ять до -preferences.delete_previous_folder_on_export = Видаляти попередню папку при експортуванні -preferences.check_for_updates_on_startup = Дозволяти перевірку на оновлення (див. ЧаПи щодо інформації, яка передається) -preferences.run_sketches_on_display = Запускати ескізи на моніторі -preferences.run_sketches_on_display.tip = Задає монітор, де спочатку розміщені ескізи.
Якщо вікно ескізу буде переміщено, воно відкриється у тому ж
місці, але у режимі презентації (на повний екран) завжди
використовуватиметься цей монітор. -preferences.automatically_associate_pde_files = Автоматично асоціювати файли .pde з Processing -preferences.launch_programs_in = Запускати програми у режимі +preferences.requires_restart = потрібен перезапуск Processing +preferences.sketchbook_location = Місцезнаходження ескізника +preferences.sketchbook_location.popup = Місцезнаходження ескізника +preferences.language = Мова +preferences.editor_and_console_font = Шрифт редактора і консолі +preferences.editor_and_console_font.tip = Виберіть шрифт, що використовуватиметься у редакторі та консолі.
Можна використовувати лише моноширинні шрифти. +preferences.editor_font_size = Розмір шрифту редактора +preferences.console_font_size = Розмір шрифту консолі +preferences.zoom = Розмір інтерфейсу +preferences.zoom.auto = Автоматичний +preferences.background_color = Колір фону в режимі презентації +preferences.background_color.tip = Виберіть фоновий колір для режиму презентації.
Режим презентації використовується для повноекранної презентації ескізу
і доступний з меню Ескіз. +preferences.use_smooth_text = Використовувати згладжений текст у вікні редактора +preferences.enable_complex_text_input = Увімкнути введення складного тексту +preferences.enable_complex_text_input_example = напр. японська +preferences.continuously_check = Постійно перевіряти на помилки +preferences.show_warnings = Показувати попередження +preferences.code_completion = Доповнення коду за допомогою +preferences.trigger_with = Запуск за допомогою +preferences.cmd_space = Пробіл +preferences.suggest_imports = Пропонувати інструкції import +preferences.increase_max_memory = Збільшити максимальну доступну пам’ять до +preferences.delete_previous_folder_on_export = Видаляти попередню папку при експортуванні +preferences.check_for_updates_on_startup = Дозволяти перевірку на оновлення (див. ЧаПи щодо інформації, яка передається) +preferences.run_sketches_on_display = Запускати ескізи на моніторі +preferences.run_sketches_on_display.tip = Задає монітор, де спочатку розміщені ескізи.
Якщо вікно ескізу буде переміщено, воно відкриється у тому ж
місці, але у режимі презентації (на повний екран) завжди
використовуватиметься цей монітор. +preferences.automatically_associate_pde_files = Автоматично асоціювати файли .pde з Processing +preferences.launch_programs_in = Запускати програми у режимі # Intentionally left blank # In Ukrainian "launch programs in mode X" looks nicer than "launch programs in X mode" preferences.launch_programs_in.mode = -preferences.file = Інші налаштування можна вручну редагувати у файлі -preferences.file.hint = не редагувати, коли Processing запущено! +preferences.file = Інші налаштування можна вручну редагувати у файлі +preferences.file.hint = не редагувати, коли Processing запущено! # Sketchbook Location (Frame) -sketchbook_location = Виберіть нове місцезнаходження ескізника +sketchbook_location = Виберіть нове місцезнаходження ескізника # Sketchbook (Frame) -sketchbook = Ескізник -sketchbook.tree = Ескізник +sketchbook = Ескізник +sketchbook.tree = Ескізник # Examples (Frame) -examples.title = Приклади %s -examples.add_examples = Додати приклади... -examples.libraries = Користувацькі бібліотеки -examples.core_libraries = Бібліотеки -examples.contributed = Користувацькі приклади +examples.title = Приклади %s +examples.add_examples = Додати приклади... +examples.libraries = Користувацькі бібліотеки +examples.core_libraries = Бібліотеки +examples.contributed = Користувацькі приклади # Export (Frame) -export = Налаштування експортування -export.platforms = Платформи -export.options = Налаштування -export.options.present = Режим презентації -export.options.show_stop_button = Показувати кнопку зупинки -export.description.line1 = "Експортування застосунку" створює інтерактивні, -export.description.line2 = незалежні застосунки для обраних платформ. -export.unsaved_changes = Зберегти зміни перед тим, як експортувати? -export.notice.cancel.unsaved_changes = Експортування скасовано, спершу потрібно зберегти зміни. -export.notice.exporting = Експортую застосунок... -export.notice.exporting.done = Експортування завершено. -export.notice.exporting.error = Помилка експортування. -export.notice.exporting.cancel = Експортування застосунку скасовано. -export.tooltip.macos = Експорт для macOS доступний лише на macOS -export.full_screen = Повний екран -export.embed_java = Вбудувати Java -export.include_java = Включати Java у додатку %s -export.code_signing = Цифровий підпис -export.messages.is_read_only = Ескіз лише для читання -export.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. -export.messages.cannot_export = Експортування неможливе -export.messages.cannot_export.description = Не можна експортувати ескіз, який не було збережено. +export = Налаштування експортування +export.platforms = Платформи +export.options = Налаштування +export.options.present = Режим презентації +export.options.show_stop_button = Показувати кнопку зупинки +export.description.line1 = "Експортування застосунку" створює інтерактивні, +export.description.line2 = незалежні застосунки для обраних платформ. +export.unsaved_changes = Зберегти зміни перед тим, як експортувати? +export.notice.cancel.unsaved_changes = Експортування скасовано, спершу потрібно зберегти зміни. +export.notice.exporting = Експортую застосунок... +export.notice.exporting.done = Експортування завершено. +export.notice.exporting.error = Помилка експортування. +export.notice.exporting.cancel = Експортування застосунку скасовано. +export.tooltip.macos = Експорт для macOS доступний лише на macOS +export.full_screen = Повний екран +export.embed_java = Вбудувати Java +export.include_java = Включати Java у додатку %s +export.code_signing = Цифровий підпис +export.messages.is_read_only = Ескіз лише для читання +export.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +export.messages.cannot_export = Експортування неможливе +export.messages.cannot_export.description = Не можна експортувати ескіз, який не було збережено. # Find (Frame) -find = Знайти -find.find = Знайти: -find.replace_with = Замінити на: -find.ignore_case = Не враховувати регістр -find.all_tabs = По всіх вкладках -find.wrap_around = По всьому документу -find.btn.replace_all = Замінити все -find.btn.replace = Замінити -find.btn.replace_and_find = Замінити і знайти далі -find.btn.previous = Назад -find.btn.find = Знайти +find = Знайти +find.find = Знайти: +find.replace_with = Замінити на: +find.ignore_case = Не враховувати регістр +find.all_tabs = По всіх вкладках +find.wrap_around = По всьому документу +find.btn.replace_all = Замінити все +find.btn.replace = Замінити +find.btn.replace_and_find = Замінити і знайти далі +find.btn.previous = Назад +find.btn.find = Знайти # Find in reference (Frame) -find_in_reference = Знайти у документації +find_in_reference = Знайти у документації # File (Frame) -file = Виберіть зображення або інший файл з даними, щоб скопіювати його у ескіз +file = Виберіть зображення або інший файл з даними, щоб скопіювати його у ескіз # Create Font (Frame) -create_font = Створити шрифт -create_font.label = Цей інструмент призначений для створення растрових шрифтів для вашої програми.\nВиберіть шрифт та розмір і натисніть "ОК", щоб згенерувати шрифт.\nЙого буде додано до папки даних поточного ескізу. -create_font.size = Розмір -create_font.smooth = Згладжений -create_font.characters = Символи... -create_font.character_selector = Вибирач символів -create_font.character_selector.label = У стандартні символи включено більшість bitmap-ів для Mac OS\nі Windows Latin. Включення усіх символів вимагає великого\nобсягу пам’яті.\nДля кращої навігації можна обрати конкретні блоки Unicode. -create_font.default_characters = Стандартні символи -create_font.all_characters = Усі символи -create_font.specific_unicode = Конкретні блоки Unicode -create_font.filename = Ім’я файлу +create_font = Створити шрифт +create_font.label = Цей інструмент призначений для створення растрових шрифтів для вашої програми.\nВиберіть шрифт та розмір і натисніть "ОК", щоб згенерувати шрифт.\nЙого буде додано до папки даних поточного ескізу. +create_font.size = Розмір +create_font.smooth = Згладжений +create_font.characters = Символи... +create_font.character_selector = Вибирач символів +create_font.character_selector.label = У стандартні символи включено більшість bitmap-ів для Mac OS\nі Windows Latin. Включення усіх символів вимагає великого\nобсягу пам’яті.\nДля кращої навігації можна обрати конкретні блоки Unicode. +create_font.default_characters = Стандартні символи +create_font.all_characters = Усі символи +create_font.specific_unicode = Конкретні блоки Unicode +create_font.filename = Ім’я файлу # Color Selector (Frame) -color_selector = Вибирач кольору +color_selector = Вибирач кольору # Archive Sketch (Frame) -archive_sketch = Архівувати ескіз як... +archive_sketch = Архівувати ескіз як... # Tweak Mode -tweak_mode = Режим модифікування -tweak_mode.save_before_tweak = Будь ласка, збережіть ескіз перед тим, як запускати його у режимі модифікування. -tweak_mode.keep_changes.line1 = Зберегти змінні? -tweak_mode.keep_changes.line2 = Ви змінили деякі параметри у вашому ескізі. Бажаєте зберегти зміни? +tweak_mode = Режим модифікування +tweak_mode.save_before_tweak = Будь ласка, збережіть ескіз перед тим, як запускати його у режимі модифікування. +tweak_mode.keep_changes.line1 = Зберегти змінні? +tweak_mode.keep_changes.line2 = Ви змінили деякі параметри у вашому ескізі. Бажаєте зберегти зміни? # DebugTray -debugger.name = Ім’я -debugger.value = Значення -debugger.type = Тип +debugger.name = Ім’я +debugger.value = Значення +debugger.type = Тип # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = Запустити -toolbar.present = Презентувати -toolbar.stop = Зупинити -toolbar.debug = Налагоджувати +toolbar.run = Запустити +toolbar.present = Презентувати +toolbar.stop = Зупинити +toolbar.debug = Налагоджувати # --- -toolbar.new = Створити -toolbar.open = Відкрити -toolbar.save = Зберегти -# toolbar.export_application = Експортувати застосунок -toolbar.add_mode = Додати режим... +toolbar.new = Створити +toolbar.open = Відкрити +toolbar.save = Зберегти +# toolbar.export_application = Експортувати застосунок +toolbar.add_mode = Додати режим... # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] -#toolbar.debug.continue = Продовжити -#toolbar.debug.step = Крок -#toolbar.debug.step_into = Крок із заходом -#toolbar.debug.stop = Зупинити -#toolbar.debug.toggle_breakpoints = Додати / вилучити точку зупинки -#toolbar.debug.variable_inspector = Інспектор змінних +#toolbar.debug.continue = Продовжити +#toolbar.debug.step = Крок +#toolbar.debug.step_into = Крок із заходом +#toolbar.debug.stop = Зупинити +#toolbar.debug.toggle_breakpoints = Додати / вилучити точку зупинки +#toolbar.debug.variable_inspector = Інспектор змінних # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = Нова вкладка -editor.header.rename = Перейменувати -editor.header.delete = Видалити -editor.header.previous_tab = Попередня вкладка +editor.header.new_tab = Нова вкладка +editor.header.rename = Перейменувати +editor.header.delete = Видалити +editor.header.previous_tab = Попередня вкладка editor.header.previous_tab.keystroke.macos = meta alt pressed LEFT editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP -editor.header.next_tab = Наступна вкладка +editor.header.next_tab = Наступна вкладка editor.header.next_tab.keystroke.macos = meta alt pressed RIGHT editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN -editor.header.delete.warning.title = Хех, ні. -editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. +editor.header.delete.warning.title = Хех, ні. +editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. # PopUp menu -editor.popup.jump_to_declaration = Перейти до визначення -editor.popup.show_usage = Показати використання... -editor.popup.rename = Перейменувати... +editor.popup.jump_to_declaration = Перейти до визначення +editor.popup.show_usage = Показати використання... +editor.popup.rename = Перейменувати... # Tabs -editor.tab.new = Нове ім’я -editor.tab.new.description = Ім’я нового файлу -editor.tab.rename = Нове ім’я -editor.tab.rename.description = Нове ім’я файлу +editor.tab.new = Нове ім’я +editor.tab.new.description = Ім’я нового файлу +editor.tab.rename = Нове ім’я +editor.tab.rename.description = Нове ім’я файлу # Sketch -editor.sketch.rename.description = Ім’я нового ескізу - -editor.status.autoformat.no_changes = Не потрібно нічого змінювати для автоформатування. -editor.status.autoformat.finished = Автоформатування завершено. -editor.status.find_reference.select_word_first = Спершу виберіть слово, яке потрібно знайти у документації. -editor.status.find_reference.not_available = Документація для "%s" недоступна. -editor.status.drag_and_drop.files_added.0 = До ескізу не додано жодного файлу. -editor.status.drag_and_drop.files_added.1 = До ескізу додано один файл. -editor.status.drag_and_drop.files_added.n = До ескізу додано %d файли(-ів). -editor.status.saving = Зберігаю... -editor.status.saving.done = Збереження завершено. -editor.status.saving.canceled = Збереження скасовано. -editor.status.printing = Друкую... -editor.status.printing.done = Друк завершено. -editor.status.printing.error = Помилка під час друку. -editor.status.printing.canceled = Друк скасовано. -editor.status.copy_as_html = Код, форматований як HTML, скопійовано до буферу обміну. -editor.status.debug.busy = Налагоджувач зайнятий... -editor.status.debug.halt = Налагоджувач зупинено. -editor.status.archiver.create = Архів "%s" створено. -editor.status.archiver.cancel = Архівування ескізу скасовано. +editor.sketch.rename.description = Ім’я нового ескізу + +editor.status.autoformat.no_changes = Не потрібно нічого змінювати для автоформатування. +editor.status.autoformat.finished = Автоформатування завершено. +editor.status.find_reference.select_word_first = Спершу виберіть слово, яке потрібно знайти у документації. +editor.status.find_reference.not_available = Документація для "%s" недоступна. +editor.status.drag_and_drop.files_added.0 = До ескізу не додано жодного файлу. +editor.status.drag_and_drop.files_added.1 = До ескізу додано один файл. +editor.status.drag_and_drop.files_added.n = До ескізу додано %d файли(-ів). +editor.status.saving = Зберігаю... +editor.status.saving.done = Збереження завершено. +editor.status.saving.canceled = Збереження скасовано. +editor.status.printing = Друкую... +editor.status.printing.done = Друк завершено. +editor.status.printing.error = Помилка під час друку. +editor.status.printing.canceled = Друк скасовано. +editor.status.copy_as_html = Код, форматований як HTML, скопійовано до буферу обміну. +editor.status.debug.busy = Налагоджувач зайнятий... +editor.status.debug.halt = Налагоджувач зупинено. +editor.status.archiver.create = Архів "%s" створено. +editor.status.archiver.cancel = Архівування ескізу скасовано. # Errors -editor.status.warning = Попередження -editor.status.error = Помилка -editor.status.error.syntax = Помилка синтаксису - %s -editor.status.error_on = Помилка на "%s" -editor.status.missing.default = Відсутні "%c" -editor.status.missing.semicolon = Відсутня ";" -editor.status.missing.left_sq_bracket = Відсутня "[" -editor.status.missing.right_sq_bracket = Відсутня "]" -editor.status.missing.left_paren = Відсутня "(" -editor.status.missing.right_paren = Відсутня ")" -editor.status.missing.left_curly_bracket = Відсутня "{" -editor.status.missing.right_curly_bracket = Відсутня "}" -editor.status.missing.add = Спробуйте додати "%s" -editor.status.bad_curly_quote = Фігурні лапки %s не працюють. Використовуйте прямі лапки. Ctrl-T для автозаміни. -editor.status.reserved_words = "color" і "int" - зарезервовані ідентифікатори і не можуть бути назвами змінних -editor.status.undefined_method = Функція "%s(%s)" не існує -editor.status.undefined_constructor = Конструктор "%s(%s)" не існує -editor.status.empty_param = Функція "%s()" не очікує параметрів -editor.status.wrong_param = Функція "%s()" очікує такі параметри: "%s(%s)" -editor.status.undef_global_var = Глобальна змінна "%s" не існує -editor.status.undef_class = Клас "%s" не існує -editor.status.undef_var = Змінна "%s" не існує -editor.status.undef_name = Ім’я "%s" не може бути розпізнано -editor.status.unterm_string_curly = Рядковий літерал не оточений прямими лапками. Фігурні лапки %s не працюють. -editor.status.type_mismatch = Неспівпадіння типів "%s" та "%s" -editor.status.unused_variable = Локальна змінна "%s" ніде не використовується -editor.status.uninitialized_variable = Локальна змінна "%s" може бути не ініціалізована -editor.status.no_effect_assignment = Присвоєння змінної "%s" не має чинності -editor.status.hiding_enclosing_type = Клас "%s" не може мати ім'я ескізу або батьківського класу. - -editor.status.bad.assignment = Можлива помилка присвоєння змінної біля '%s'? -editor.status.bad.generic = Можливо, немає типу в дженерику біля '%s'? -editor.status.bad.identifier = Помилка ідентифікатора? Можливо, неправильний ідентифікатор, або змінна починається з цифр біля '%s'? -editor.status.bad.parameter = Помилка визначення параметру чи методу біля '%s'? -editor.status.bad.import = Імпорт тут не дозволений. -editor.status.extraneous = Незакінчений рядок або зайвий код біля '%s'? -editor.status.mismatched = Не вистачає оператора, ; або '}' біля '%s'? -editor.status.missing.name = Не вистачає назви або ; біля '%s'? -editor.status.missing.type = Не вистачає назви, ; або типу '%s'? +editor.status.warning = Попередження +editor.status.error = Помилка +editor.status.error.syntax = Помилка синтаксису - %s +editor.status.error_on = Помилка на "%s" +editor.status.missing.default = Відсутні "%c" +editor.status.missing.semicolon = Відсутня ";" +editor.status.missing.left_sq_bracket = Відсутня "[" +editor.status.missing.right_sq_bracket = Відсутня "]" +editor.status.missing.left_paren = Відсутня "(" +editor.status.missing.right_paren = Відсутня ")" +editor.status.missing.left_curly_bracket = Відсутня "{" +editor.status.missing.right_curly_bracket = Відсутня "}" +editor.status.missing.add = Спробуйте додати "%s" +editor.status.bad_curly_quote = Фігурні лапки %s не працюють. Використовуйте прямі лапки. Ctrl-T для автозаміни. +editor.status.reserved_words = "color" і "int" - зарезервовані ідентифікатори і не можуть бути назвами змінних +editor.status.undefined_method = Функція "%s(%s)" не існує +editor.status.undefined_constructor = Конструктор "%s(%s)" не існує +editor.status.empty_param = Функція "%s()" не очікує параметрів +editor.status.wrong_param = Функція "%s()" очікує такі параметри: "%s(%s)" +editor.status.undef_global_var = Глобальна змінна "%s" не існує +editor.status.undef_class = Клас "%s" не існує +editor.status.undef_var = Змінна "%s" не існує +editor.status.undef_name = Ім’я "%s" не може бути розпізнано +editor.status.unterm_string_curly = Рядковий літерал не оточений прямими лапками. Фігурні лапки %s не працюють. +editor.status.type_mismatch = Неспівпадіння типів "%s" та "%s" +editor.status.unused_variable = Локальна змінна "%s" ніде не використовується +editor.status.uninitialized_variable = Локальна змінна "%s" може бути не ініціалізована +editor.status.no_effect_assignment = Присвоєння змінної "%s" не має чинності +editor.status.hiding_enclosing_type = Клас "%s" не може мати ім'я ескізу або батьківського класу. + +editor.status.bad.assignment = Можлива помилка присвоєння змінної біля '%s'? +editor.status.bad.generic = Можливо, немає типу в дженерику біля '%s'? +editor.status.bad.identifier = Помилка ідентифікатора? Можливо, неправильний ідентифікатор, або змінна починається з цифр біля '%s'? +editor.status.bad.parameter = Помилка визначення параметру чи методу біля '%s'? +editor.status.bad.import = Імпорт тут не дозволений. +editor.status.extraneous = Незакінчений рядок або зайвий код біля '%s'? +editor.status.mismatched = Не вистачає оператора, ; або '}' біля '%s'? +editor.status.missing.name = Не вистачає назви або ; біля '%s'? +editor.status.missing.type = Не вистачає назви, ; або типу '%s'? # Footer buttons -editor.footer.errors = Помилки -editor.footer.errors.problem = Проблема -editor.footer.errors.tab = Вкладка -editor.footer.errors.line = Рядок -editor.footer.console = Консоль +editor.footer.errors = Помилки +editor.footer.errors.problem = Проблема +editor.footer.errors.tab = Вкладка +editor.footer.errors.line = Рядок +editor.footer.console = Консоль # New handler -new.messages.is_read_only = Ескіз лише для читання -new.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +new.messages.is_read_only = Ескіз лише для читання +new.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. # Rename handler -rename.messages.is_untitled = Ескіз безіменний -rename.messages.is_untitled.description = Варто зберегти ескіз\nперед тим, як перейменовувати його -rename.messages.is_modified = Будь ласка, збережіть ескіз перед перейменування. -rename.messages.is_read_only = Ескіз лише для читання -rename.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +rename.messages.is_untitled = Ескіз безіменний +rename.messages.is_untitled.description = Варто зберегти ескіз\nперед тим, як перейменовувати його +rename.messages.is_modified = Будь ласка, збережіть ескіз перед перейменування. +rename.messages.is_read_only = Ескіз лише для читання +rename.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. # Naming handler -name.messages.problem_renaming = Помилка перейменовування -name.messages.starts_with_dot.description = Ім’я не може починатись з крапки. -name.messages.invalid_extension.description = ".%s" не є допустимим розширенням. -name.messages.main_java_extension.description = Перша вкладка не може бути файлом .%s.\n(А не пора тобі перейти на\n"справжнє" середовище програмування?) -name.messages.new_sketch_exists = Перейменування неможливе -name.messages.new_sketch_exists.description = Файл з назвою "%s" вже існує у\n"%s" -name.messages.new_folder_exists = Перейменування неможливе -name.messages.new_folder_exists.description = Ескіз (чи папка) з назвою "%s" вже існує. -name.messages.error = Помилка -name.messages.no_rename_folder.description = Не вдалось перейменувати папку ескізу. -name.messages.no_rename_file.description = Не вдалось перейменувати "%s" на "%s" -name.messages.no_create_file.description = Не вдалось створити файл "%s"\nу "%s" +name.messages.problem_renaming = Помилка перейменовування +name.messages.starts_with_dot.description = Ім’я не може починатись з крапки. +name.messages.invalid_extension.description = ".%s" не є допустимим розширенням. +name.messages.main_java_extension.description = Перша вкладка не може бути файлом .%s.\n(А не пора тобі перейти на\n"справжнє" середовище програмування?) +name.messages.new_sketch_exists = Перейменування неможливе +name.messages.new_sketch_exists.description = Файл з назвою "%s" вже існує у\n"%s" +name.messages.new_folder_exists = Перейменування неможливе +name.messages.new_folder_exists.description = Ескіз (чи папка) з назвою "%s" вже існує. +name.messages.error = Помилка +name.messages.no_rename_folder.description = Не вдалось перейменувати папку ескізу. +name.messages.no_rename_file.description = Не вдалось перейменувати "%s" на "%s" +name.messages.no_create_file.description = Не вдалось створити файл "%s"\nу "%s" # Delete handler -delete.messages.cannot_delete = Видалення неможливе -delete.messages.cannot_delete.description = Не можна видалити ескіз, який не було збережено. -delete.messages.cannot_delete.file = Не вдалось це зробити -delete.messages.cannot_delete.file.description = Не вдалось видалити -delete.messages.is_read_only = Ескіз лише для читання -delete.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +delete.messages.cannot_delete = Видалення неможливе +delete.messages.cannot_delete.description = Не можна видалити ескіз, який не було збережено. +delete.messages.cannot_delete.file = Не вдалось це зробити +delete.messages.cannot_delete.file.description = Не вдалось видалити +delete.messages.is_read_only = Ескіз лише для читання +delete.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. # Save handler -save_file.messages.is_read_only = Ескіз лише для читання -save_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні. -save_file.messages.sketch_exists = Не вдалось зберегти -save_file.messages.sketch_exists.description = Ескіз з очищеним іменем\n“%s” вже існує. -save_file.messages.tab_exists = Не вдалось зберегти -save_file.messages.tab_exists.description = Не можна зберегти ескіз як "%s"\nбо він вже має вкладку з таким іменем. -save_file.messages.recursive_save = Збереження в стилі Боргеса -save_file.messages.recursive_save.description = Не можна зберегти ескіз всередині\nсамого себе. Це викличе нескінченну рекурсію. +save_file.messages.is_read_only = Ескіз лише для читання +save_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні. +save_file.messages.sketch_exists = Не вдалось зберегти +save_file.messages.sketch_exists.description = Ескіз з очищеним іменем\n“%s” вже існує. +save_file.messages.tab_exists = Не вдалось зберегти +save_file.messages.tab_exists.description = Не можна зберегти ескіз як "%s"\nбо він вже має вкладку з таким іменем. +save_file.messages.recursive_save = Збереження в стилі Боргеса +save_file.messages.recursive_save.description = Не можна зберегти ескіз всередині\nсамого себе. Це викличе нескінченну рекурсію. # Add handler -add_file.messages.is_read_only = Ескіз лише для читання -add_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. -add_file.messages.confirm_replace = Замінити існуюче розширення %s? -add_file.messages.error_adding = Помилка при додаванні файлу -add_file.messages.cannot_delete.description = Не вдалось видалити існуючий файл '%s'. -add_file.messages.cannot_add.description = Не вдалось додати '%s' до ескізу. -add_file.messages.same_file = Мене не надуриш -add_file.messages.same_file.description = Цей файл уже скопійовано у\nрозташування, куди ви його копіюєте.\nЯ ніц не зроблю. +add_file.messages.is_read_only = Ескіз лише для читання +add_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +add_file.messages.confirm_replace = Замінити існуюче розширення %s? +add_file.messages.error_adding = Помилка при додаванні файлу +add_file.messages.cannot_delete.description = Не вдалось видалити існуючий файл '%s'. +add_file.messages.cannot_add.description = Не вдалось додати '%s' до ескізу. +add_file.messages.same_file = Мене не надуриш +add_file.messages.same_file.description = Цей файл уже скопійовано у\nрозташування, куди ви його копіюєте.\nЯ ніц не зроблю. # Temp folder creator -temp_dir.messages.bad_build_folder = Погана папка збірки -temp_dir.messages.bad_build_folder.description = Не вдалось знайти розташування для збірки ескізу. +temp_dir.messages.bad_build_folder = Погана папка збірки +temp_dir.messages.bad_build_folder.description = Не вдалось знайти розташування для збірки ескізу. # Ensure Existance -ensure_exist.messages.missing_sketch = Ескіз зник -ensure_exist.messages.missing_sketch.description = Папка ескізу зникла.\nСпробую зберегти у тому ж розташуванні,\nале все, крім коду, зникне. -ensure_exist.messages.unrecoverable = Не вдалось зберегти ескіз -ensure_exist.messages.unrecoverable.description = Не вдалось повторно зберегти ескіз. У вас можуть бути проблеми,\nпора копіювати і вставляти код у інший текстовий редактор. +ensure_exist.messages.missing_sketch = Ескіз зник +ensure_exist.messages.missing_sketch.description = Папка ескізу зникла.\nСпробую зберегти у тому ж розташуванні,\nале все, крім коду, зникне. +ensure_exist.messages.unrecoverable = Не вдалось зберегти ескіз +ensure_exist.messages.unrecoverable.description = Не вдалось повторно зберегти ескіз. У вас можуть бути проблеми,\nпора копіювати і вставляти код у інший текстовий редактор. # Check name -check_name.messages.is_name_modified = Ім’я ескізу потрібно було змінити. Імена ескізів можуть містити\nтільки ASCII-символи і числа (але не можуть починатися з числа).\nКрім того, вони мають бути не довшими за 64 символи. +check_name.messages.is_name_modified = Ім’я ескізу потрібно було змінити. Імена ескізів можуть містити\nтільки ASCII-символи і числа (але не можуть починатися з числа).\nКрім того, вони мають бути не довшими за 64 символи. # External changes detector -change_detect.reload.title=Вкладка змінена ззовні -change_detect.reload.question="%s" була змінена іншою програмою. -change_detect.reload.comment=Бажаєте залишити цю версію чи завантажити зміни ззовні?\nТак чи інакше, файл буде збережено в папці з ескізами. -change_detect.button.keep=Залишити -change_detect.button.load_new=Завантажити зміни ззовні -change_detect.delete.title=Вкладка видалена -change_detect.delete.question="%s" зникла з папки з ескізами. -change_detect.delete.comment=Бажаєте повторно її зберегти чи видалити зі свого ескізу? -change_detect.button.discard=Видалити назавжди -change_detect.button.resave=Повторно зберегти +change_detect.reload.title=Вкладка змінена ззовні +change_detect.reload.question="%s" була змінена іншою програмою. +change_detect.reload.comment=Бажаєте залишити цю версію чи завантажити зміни ззовні?\nТак чи інакше, файл буде збережено в папці з ескізами. +change_detect.button.keep=Залишити +change_detect.button.load_new=Завантажити зміни ззовні +change_detect.delete.title=Вкладка видалена +change_detect.delete.question="%s" зникла з папки з ескізами. +change_detect.delete.comment=Бажаєте повторно її зберегти чи видалити зі свого ескізу? +change_detect.button.discard=Видалити назавжди +change_detect.button.resave=Повторно зберегти # --------------------------------------- # Contributions # Contribution Panel -contrib = Керування внесками -contrib.manager_title.update = Керування оновленнями -contrib.manager_title.mode = Керування режимами -contrib.manager_title.tool = Керування інструментами -contrib.manager_title.library = Керування бібліотеками -contrib.manager_title.examples = Керування прикладами -contrib.category = Категорія: -contrib.filter_your_search = Фільтр пошуку... -contrib.show_only_compatible.mode = Показати лише сумісні режими -contrib.show_only_compatible.tool = Показати лише сумісні інструменти -contrib.show_only_compatible.library = Показати лише сумісні бібліотеки -contrib.show_only_compatible.examples = Показати лише сумісні приклади -contrib.show_only_compatible.update = Показати лише сумісні оновлення -contrib.restart = Перезапустити Processing -contrib.unsaved_changes = Зміни не було збережено -contrib.unsaved_changes.prompt = Ви впевнені, що хочете перезапустити Processing, не зберігаючи зміни? -contrib.messages.remove_restart = Будь ласка, перезапустіть Processing, щоб завершити видалення цього внеску. -contrib.messages.install_restart = Будь ласка, перезапустіть Processing, щоб завершити встановлення цього внеску. -contrib.messages.update_restart = Будь ласка, перезапустіть Processing, щоб завершити оновлення цього внеску. -contrib.errors.list_download = Не вдалось завантажити список встановлених внесків. -contrib.errors.list_download.timeout = Тайм-аут з’єднання під час завантаження списку внесків. -contrib.errors.download_and_install = Помилка при завантаженні чи встановленні %s. -contrib.errors.description_unavailable = Опису немає. -contrib.errors.malformed_url = Посилання, отримане з Processing.org, недійсне.\nЦю бібліотеку все ще можна встановити, відвідавши\nїї сайт. -contrib.errors.needs_repackage = %s потрібно перепакувати за правилами %s. -contrib.errors.no_contribution_found = Не вдалось знайти %s у завантаженому файлі. -contrib.errors.overwriting_properties = Помилка при перезаписуванні файлу .properties. -contrib.errors.install_failed = Встановлення не вдалось. -contrib.errors.update_on_restart_failed = Помилка оновлення під час перезапуску %s. -contrib.errors.temporary_directory = Не вдалось записати у тимчасову папку. -contrib.errors.contrib_download.timeout = Тайм-аут з’єднання під час завантаження %s. -contrib.errors.no_internet_connection = Здається, ви не під’єднані до мережі Інтернет. -contrib.status.downloading_list = Завантаження списку внесків... -contrib.status.connecting = З’єднання... -contrib.status.done = Готово. -contrib.all = Усе -contrib.undo = Скасувати -contrib.remove = Видалити -contrib.install = Встановити -contrib.progress.installing = Встановлюю -contrib.progress.starting = Починаю -contrib.progress.downloading = Завантажую -contrib.download_error = Сталась помилка під час завантаження внеску. -contrib.unsupported_operating_system = Здається, ваша операційна система не підтримується. Відвідайте бібліотеку %s для детальнішої інформації. +contrib = Керування внесками +contrib.manager_title.update = Керування оновленнями +contrib.manager_title.mode = Керування режимами +contrib.manager_title.tool = Керування інструментами +contrib.manager_title.library = Керування бібліотеками +contrib.manager_title.examples = Керування прикладами +contrib.category = Категорія: +contrib.filter_your_search = Фільтр пошуку... +contrib.show_only_compatible.mode = Показати лише сумісні режими +contrib.show_only_compatible.tool = Показати лише сумісні інструменти +contrib.show_only_compatible.library = Показати лише сумісні бібліотеки +contrib.show_only_compatible.examples = Показати лише сумісні приклади +contrib.show_only_compatible.update = Показати лише сумісні оновлення +contrib.restart = Перезапустити Processing +contrib.unsaved_changes = Зміни не було збережено +contrib.unsaved_changes.prompt = Ви впевнені, що хочете перезапустити Processing, не зберігаючи зміни? +contrib.messages.remove_restart = Будь ласка, перезапустіть Processing, щоб завершити видалення цього внеску. +contrib.messages.install_restart = Будь ласка, перезапустіть Processing, щоб завершити встановлення цього внеску. +contrib.messages.update_restart = Будь ласка, перезапустіть Processing, щоб завершити оновлення цього внеску. +contrib.errors.list_download = Не вдалось завантажити список встановлених внесків. +contrib.errors.list_download.timeout = Тайм-аут з’єднання під час завантаження списку внесків. +contrib.errors.download_and_install = Помилка при завантаженні чи встановленні %s. +contrib.errors.description_unavailable = Опису немає. +contrib.errors.malformed_url = Посилання, отримане з Processing.org, недійсне.\nЦю бібліотеку все ще можна встановити, відвідавши\nїї сайт. +contrib.errors.needs_repackage = %s потрібно перепакувати за правилами %s. +contrib.errors.no_contribution_found = Не вдалось знайти %s у завантаженому файлі. +contrib.errors.overwriting_properties = Помилка при перезаписуванні файлу .properties. +contrib.errors.install_failed = Встановлення не вдалось. +contrib.errors.update_on_restart_failed = Помилка оновлення під час перезапуску %s. +contrib.errors.temporary_directory = Не вдалось записати у тимчасову папку. +contrib.errors.contrib_download.timeout = Тайм-аут з’єднання під час завантаження %s. +contrib.errors.no_internet_connection = Здається, ви не під’єднані до мережі Інтернет. +contrib.status.downloading_list = Завантаження списку внесків... +contrib.status.connecting = З’єднання... +contrib.status.done = Готово. +contrib.all = Усе +contrib.undo = Скасувати +contrib.remove = Видалити +contrib.install = Встановити +contrib.progress.installing = Встановлюю +contrib.progress.starting = Починаю +contrib.progress.downloading = Завантажую +contrib.download_error = Сталась помилка під час завантаження внеску. +contrib.unsupported_operating_system = Здається, ваша операційна система не підтримується. Відвідайте бібліотеку %s для детальнішої інформації. contrib.category.3d = 3D -contrib.category.animation = Анімація -contrib.category.data = Дані -contrib.category.geometry = Геометрія -contrib.category.gui = Інтерфейс -contrib.category.hardware = Апаратне забезпечення -contrib.category.i_o = Введення/виведення -contrib.category.math = Математика -contrib.category.simulation = Симуляція -contrib.category.sound = Звук -contrib.category.typography = Типографія -contrib.category.utilities = Утиліти -contrib.category.video_vision = Відео -contrib.category.other = Інше +contrib.category.animation = Анімація +contrib.category.data = Дані +contrib.category.geometry = Геометрія +contrib.category.gui = Інтерфейс +contrib.category.hardware = Апаратне забезпечення +contrib.category.i_o = Введення/виведення +contrib.category.math = Математика +contrib.category.simulation = Симуляція +contrib.category.sound = Звук +contrib.category.typography = Типографія +contrib.category.utilities = Утиліти +contrib.category.video_vision = Відео +contrib.category.other = Інше # Install on Startup -contrib.startup.errors.download_install = Помилка під час завантаження чи встановлення %s -contrib.startup.errors.temp_dir = Не вдалось записати у тимчасову папку під час завантаження чи встановлення %s -contrib.startup.errors.new_marker = Здається, старому маркеру внеску не подобається %s. Можливо, потрібно оновити вручну... +contrib.startup.errors.download_install = Помилка під час завантаження чи встановлення %s +contrib.startup.errors.temp_dir = Не вдалось записати у тимчасову папку під час завантаження чи встановлення %s +contrib.startup.errors.new_marker = Здається, старому маркеру внеску не подобається %s. Можливо, потрібно оновити вручну... # Install on Import -contrib.import.dialog.title = Доступні відсутні бібліотеки -contrib.import.dialog.primary_text = Ці імпортовані бібліотеки доступні для завантаження, але не були встановлені. -contrib.import.dialog.secondary_text = Бажаєте встановити їх зараз? -contrib.import.progress.download = Завантаження %s... -contrib.import.progress.install = Встановлення %s... -contrib.import.progress.done = %s було встановлено. -contrib.import.progress.final_list = Було встановлено такі бібліотеки: -contrib.import.errors.link = Помилка: У бібліотеки %s недійсне посилання завантаження. +contrib.import.dialog.title = Доступні відсутні бібліотеки +contrib.import.dialog.primary_text = Ці імпортовані бібліотеки доступні для завантаження, але не були встановлені. +contrib.import.dialog.secondary_text = Бажаєте встановити їх зараз? +contrib.import.progress.download = Завантаження %s... +contrib.import.progress.install = Встановлення %s... +contrib.import.progress.done = %s було встановлено. +contrib.import.progress.final_list = Було встановлено такі бібліотеки: +contrib.import.errors.link = Помилка: У бібліотеки %s недійсне посилання завантаження. # --------------------------------------- # Warnings -warn.delete = Видалення -warn.delete.sketch = Ви впевнені, що хочете видалити цей ескіз? -warn.delete.sketch_last = Щоб зберегти ваші файли в безпеці, видалення всієї папки ескізу не підтримується в Processing.\nБудь ласка, відкрийте папку ескізу у вашому файловому менеджері, щоб видалити її. -warn.delete.file = Ви впевнені, що хочете видалити "%s"? -warn.cannot_change_mode.title = Зміна режиму неможлива -warn.cannot_change_mode.body = Зміна режиму неможлива,\nоскільки режим "%s" несумісний з поточним режимом. +warn.delete = Видалення +warn.delete.sketch = Ви впевнені, що хочете видалити цей ескіз? +warn.delete.sketch_last = Щоб зберегти ваші файли в безпеці, видалення всієї папки ескізу не підтримується в Processing.\nБудь ласка, відкрийте папку ескізу у вашому файловому менеджері, щоб видалити її. +warn.delete.file = Ви впевнені, що хочете видалити "%s"? +warn.cannot_change_mode.title = Зміна режиму неможлива +warn.cannot_change_mode.body = Зміна режиму неможлива,\nоскільки режим "%s" несумісний з поточним режимом. # --------------------------------------- # Update Check -update_check = Оновлення -update_check.updates_available.core = Доступна нова версія Processing,\nбажаєте відвідати сторінку завантаження Processing? -update_check.updates_available.contributions = Доступні оновлення для деяких встановлених внесків,\nбажаєте відкрити меню керування внесками зараз? +update_check = Оновлення +update_check.updates_available.core = Доступна нова версія Processing,\nбажаєте відвідати сторінку завантаження Processing? +update_check.updates_available.contributions = Доступні оновлення для деяких встановлених внесків,\nбажаєте відкрити меню керування внесками зараз? # --------------------------------------- # Color Chooser -color_chooser = Вибирач кольору -color_chooser.select = Вибрати +color_chooser = Вибирач кольору +color_chooser.select = Вибрати # --------------------------------------- # Movie Maker -movie_maker = Генератор відео -movie_maker.two.title = Генератор відео II: Вендета -movie_maker.two.blurb = Цей інструмент створює MPEG-відео або анімовану GIF з послідовності зображень.

Для уникнення артефактів від повторного стиснення зображень у відео,
використовуйте зображення TIFF, TGA або PNG як джерело.

Зображення TIFF та TGA записуватимуться швидше, але вимагають більше місця на диску:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

Зображення PNG менші, але записуватимуться повільніше:
saveFrame("frames/####.png");

Режим Lossless 4:2:0 все ще не ідеальний через нюанси в MPEG-4.
4:4:4 має бути ідеальним, але менш сумісним з іншими програмами.

Раніше відомий як QuickTime Movie Maker від Werner Randelshofer,
цей інструмент переписаний на FFmpeg для Processing 4.
-movie_maker.image_folder_help_label = Перетягніть папку з файлами зображень у поле внизу: -movie_maker.choose_button = Вибрати... -movie_maker.select_image_folder = Вибрати папку зображень... -movie_maker.sound_file_help_label = Перетягніть звуковий файл (.au, .aiff, .wav, .mp3) у поле внизу: -movie_maker.select_sound_file = Вибрати звуковий файл... - -movie_maker.create_movie_button = Створити відео... -movie_maker.save_dialog_prompt = Зберегти відео як... -movie_maker.width = Ширина: -movie_maker.height = Висота: -movie_maker.compression = Стиснення: -movie_maker.framerate = Частота кадрів: -movie_maker.orig_size_button = Розмір, як в оригіналі -movie_maker.orig_size_tooltip = Відмітьте це, якщо папка вже містить закодовані кадри відео бажаного розміру. - -movie_maker.error.avoid_tiff = Спробуйте зображення TGA чи PNG замість TIFF. -movie_maker.error.badnumbers = Ширина та висота мають бути цілими додатніми числами; частота кадрів має бути додатнім числом. -movie_maker.error.cannot_read = Не вдалось прочитати %s. -movie_maker.error.cannot_read_maybe_bad = Не вдалось прочитати %s; файл може бути недійсним. -movie_maker.error.movie_failed = Не вдалось створити відео QuickTime. -movie_maker.error.need_input = Потрібно зазначити папку з файлами зображень, звуковими файлами, або і тим, і іншим. -movie_maker.error.no_images_found = Не знайдено файлів зображень. -movie_maker.error.sorry = Вибачте -movie_maker.error.unknown_tga_format = Невідомий формат файлу .tga для %s. - -movie_maker.progress.creating_file_name = Створюю %s. -movie_maker.progress.creating_output_file = Створюю вихідний файл -movie_maker.progress.initializing = Ініціалізація... -movie_maker.progress.processing = Обробляю %s. - -movie_maker.progress.handling_frame = Конвертую кадр %s з %s... +movie_maker = Генератор відео +movie_maker.two.title = Генератор відео II: Вендета +movie_maker.two.blurb = Цей інструмент створює MPEG-відео або анімовану GIF з послідовності зображень.

Для уникнення артефактів від повторного стиснення зображень у відео,
використовуйте зображення TIFF, TGA або PNG як джерело.

Зображення TIFF та TGA записуватимуться швидше, але вимагають більше місця на диску:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

Зображення PNG менші, але записуватимуться повільніше:
saveFrame("frames/####.png");

Режим Lossless 4:2:0 все ще не ідеальний через нюанси в MPEG-4.
4:4:4 має бути ідеальним, але менш сумісним з іншими програмами.

Раніше відомий як QuickTime Movie Maker від Werner Randelshofer,
цей інструмент переписаний на FFmpeg для Processing 4.
+movie_maker.image_folder_help_label = Перетягніть папку з файлами зображень у поле внизу: +movie_maker.choose_button = Вибрати... +movie_maker.select_image_folder = Вибрати папку зображень... +movie_maker.sound_file_help_label = Перетягніть звуковий файл (.au, .aiff, .wav, .mp3) у поле внизу: +movie_maker.select_sound_file = Вибрати звуковий файл... + +movie_maker.create_movie_button = Створити відео... +movie_maker.save_dialog_prompt = Зберегти відео як... +movie_maker.width = Ширина: +movie_maker.height = Висота: +movie_maker.compression = Стиснення: +movie_maker.framerate = Частота кадрів: +movie_maker.orig_size_button = Розмір, як в оригіналі +movie_maker.orig_size_tooltip = Відмітьте це, якщо папка вже містить закодовані кадри відео бажаного розміру. + +movie_maker.error.avoid_tiff = Спробуйте зображення TGA чи PNG замість TIFF. +movie_maker.error.badnumbers = Ширина та висота мають бути цілими додатніми числами; частота кадрів має бути додатнім числом. +movie_maker.error.cannot_read = Не вдалось прочитати %s. +movie_maker.error.cannot_read_maybe_bad = Не вдалось прочитати %s; файл може бути недійсним. +movie_maker.error.movie_failed = Не вдалось створити відео QuickTime. +movie_maker.error.need_input = Потрібно зазначити папку з файлами зображень, звуковими файлами, або і тим, і іншим. +movie_maker.error.no_images_found = Не знайдено файлів зображень. +movie_maker.error.sorry = Вибачте +movie_maker.error.unknown_tga_format = Невідомий формат файлу .tga для %s. + +movie_maker.progress.creating_file_name = Створюю %s. +movie_maker.progress.creating_output_file = Створюю вихідний файл +movie_maker.progress.initializing = Ініціалізація... +movie_maker.progress.processing = Обробляю %s. + +movie_maker.progress.handling_frame = Конвертую кадр %s з %s... diff --git a/build/shared/lib/languages/PDE_zh-CN.properties b/build/shared/lib/languages/PDE_zh-CN.properties index 97e3df413e..7aff8d2e8d 100644 --- a/build/shared/lib/languages/PDE_zh-CN.properties +++ b/build/shared/lib/languages/PDE_zh-CN.properties @@ -15,103 +15,103 @@ font.family.mono = Monospaced # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = 文件 -menu.file.new = 新建 -menu.file.open = 打开... -menu.file.recent = 打开最近项目 -menu.file.sketchbook = 速写本... -menu.file.examples = 范例程序... -menu.file.close = 关闭 -menu.file.save = 保存 -menu.file.save_as = 另存为... -menu.file.export_application = 输出程序... -menu.file.page_setup = 页面设置 -menu.file.print = 打印... -menu.file.preferences = 偏好设定... -menu.file.quit = 退出 +menu.file = 文件 +menu.file.new = 新建 +menu.file.open = 打开... +menu.file.recent = 打开最近项目 +menu.file.sketchbook = 速写本... +menu.file.examples = 范例程序... +menu.file.close = 关闭 +menu.file.save = 保存 +menu.file.save_as = 另存为... +menu.file.export_application = 输出程序... +menu.file.page_setup = 页面设置 +menu.file.print = 打印... +menu.file.preferences = 偏好设定... +menu.file.quit = 退出 # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = 编辑 -menu.edit.undo = 撤销 -menu.edit.redo = 重做 -menu.edit.cut = 剪切 -menu.edit.copy = 复制 -menu.edit.copy_as_html = 复制为HTML -menu.edit.paste = 黏贴 -menu.edit.select_all = 全部选择 -menu.edit.auto_format = 自动对齐 -menu.edit.comment_uncomment = 注释/取消注释 -menu.edit.increase_indent = → 增加缩进量 -menu.edit.decrease_indent = ← 减少缩进量 -menu.edit.find = 查找... -menu.edit.find_next = 查找下一个 -menu.edit.find_previous = 查找上一个 -menu.edit.use_selection_for_find = 使用当前选定查找 +menu.edit = 编辑 +menu.edit.undo = 撤销 +menu.edit.redo = 重做 +menu.edit.cut = 剪切 +menu.edit.copy = 复制 +menu.edit.copy_as_html = 复制为HTML +menu.edit.paste = 黏贴 +menu.edit.select_all = 全部选择 +menu.edit.auto_format = 自动对齐 +menu.edit.comment_uncomment = 注释/取消注释 +menu.edit.increase_indent = → 增加缩进量 +menu.edit.decrease_indent = ← 减少缩进量 +menu.edit.find = 查找... +menu.edit.find_next = 查找下一个 +menu.edit.find_previous = 查找上一个 +menu.edit.use_selection_for_find = 使用当前选定查找 # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = 运行 -menu.sketch.present = 展示模式 -menu.sketch.tweak = 调整 -menu.sketch.stop = 停止 +menu.sketch.run = 运行 +menu.sketch.present = 展示模式 +menu.sketch.tweak = 调整 +menu.sketch.stop = 停止 # --- -menu.library = 引用库文件... -menu.library.add_library = 添加库文件... -menu.library.contributed = 第三方贡献库 -menu.library.no_core_libraries = 该模式下无核心库文件 +menu.library = 引用库文件... +menu.library.add_library = 添加库文件... +menu.library.contributed = 第三方贡献库 +menu.library.no_core_libraries = 该模式下无核心库文件 # --- -menu.sketch = 速写本 -menu.sketch.show_sketch_folder = 打开程序目录 -menu.sketch.add_file = 添加文件... +menu.sketch = 速写本 +menu.sketch.show_sketch_folder = 打开程序目录 +menu.sketch.add_file = 添加文件... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = 调试 -menu.debug.enable = 启用调试器 -menu.debug.disable = 禁用调试器 +menu.debug = 调试 +menu.debug.enable = 启用调试器 +menu.debug.disable = 禁用调试器 # --- -menu.debug.toggle_breakpoint = 切换断点 +menu.debug.toggle_breakpoint = 切换断点 # --- # used for both menus and toolbars -menu.debug.step = 单步 (Step) -menu.debug.step_into = 单步进入 (Step Into) -menu.debug.step_out = 单步跳出 (Step Out) -menu.debug.continue = 继续 +menu.debug.step = 单步 (Step) +menu.debug.step_into = 单步进入 (Step Into) +menu.debug.step_out = 单步跳出 (Step Out) +menu.debug.continue = ç»§ç»­ # --- #menu.debug.variable_inspector = Variable Inspector -menu.debug.show_variables = 显示变量 -menu.debug.hide_variables = 隐藏变量 +menu.debug.show_variables = 显示变量 +menu.debug.hide_variables = 隐藏变量 # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = 工具 -menu.tools.color_selector = 颜色选择器... -menu.tools.create_font = 创建字体... -menu.tools.archive_sketch = 速写本压缩输出 -menu.tools.fix_the_serial_lbrary = 修复串口库文件 -menu.tools.install_processing_java = 安装 "processing-java" -menu.tools.add_tool = 添加工具... +menu.tools = 工具 +menu.tools.color_selector = 颜色选择器... +menu.tools.create_font = 创建字体... +menu.tools.archive_sketch = 速写本压缩输出 +menu.tools.fix_the_serial_lbrary = 修复串口库文件 +menu.tools.install_processing_java = 安装 "processing-java" +menu.tools.add_tool = 添加工具... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = 帮助 -menu.help.about = 关于 Processing -menu.help.environment = 开发环境 -menu.help.reference = 参考文档 -menu.help.find_in_reference = 在文档中查询 -menu.help.online = 在线 -menu.help.getting_started = 入门帮助 +menu.help = 帮助 +menu.help.about = 关于 Processing +menu.help.environment = 开发环境 +menu.help.reference = 参考文档 +menu.help.find_in_reference = 在文档中查询 +menu.help.online = 在线 +menu.help.getting_started = 入门帮助 # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = 问题排除 +menu.help.troubleshooting = 问题排除 # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = 常见问题解答 +menu.help.faq = 常见问题解答 # menu.help.faq.url = http://wiki.processing.org/w/FAQ menu.help.foundation = The Processing Foundation # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = 访问 Processing.org +menu.help.visit = 访问 Processing.org # menu.help.visit.url = http://processing.org/ @@ -119,198 +119,198 @@ menu.help.visit = 访问 Processing.org # Basics # Buttons -prompt.yes = 是 -prompt.no = 否 -prompt.cancel = 取消 -prompt.ok = 确认 -prompt.browse = 浏览 -prompt.export = 输出 +prompt.yes = 是 +prompt.no = 否 +prompt.cancel = 取消 +prompt.ok = 确认 +prompt.browse = 浏览 +prompt.export = 输出 # --------------------------------------- # Frames # Open (Frame) -open = 打开 Processing 速写本... +open = 打开 Processing 速写本... # Save (Frame) -save = 保存速写本文件夹为... -save.title = 在关闭前你想要保存该速写本更改内容么? -save.hint = 如果你没保存, 你所有的更改内容将丢失. -save.btn.save = 保存 -save.btn.dont_save = 不保存 - -# Preferences (Frame) -preferences = 偏好设置 +save = 保存速写本文件夹为... +save.title = 在关闭前你想要保存该速写本更改内容么? +save.hint = 如果你没保存, 你所有的更改内容将丢失. +save.btn.save = 保存 +save.btn.dont_save = 不保存 + +# AppPreferences (Frame) +preferences = 偏好设置 preferences.button.width = 80 -preferences.requires_restart = 需要重启 Processing -preferences.sketchbook_location = 速写本位置 -preferences.sketchbook_location.popup = 速写本位置 -preferences.language = 语言 -preferences.editor_and_console_font = 编辑器和控制台字体 +preferences.requires_restart = 需要重启 Processing +preferences.sketchbook_location = 速写本位置 +preferences.sketchbook_location.popup = 速写本位置 +preferences.language = 语言 +preferences.editor_and_console_font = 编辑器和控制台字体 preferences.editor_and_console_font.tip = \ -为编辑器和控制台选择字体.
\ -只允许使用等宽字体,
\ -此列表可能不完全。 -preferences.editor_font_size = 编辑器字体大小 -preferences.console_font_size = 控制台字体大小 -preferences.background_color = 展示模式时的背景颜色 +为编辑器和控制台选择字体.
\ +只允许使用等宽字体,
\ +此列表可能不完全。 +preferences.editor_font_size = 编辑器字体大小 +preferences.console_font_size = 控制台字体大小 +preferences.background_color = 展示模式时的背景颜色 preferences.background_color.tip = \ -选择背景颜色当使用展示模式时.
\ -展示模式通常被用来在全屏模式下展示速写程序,
\ -可从速写本菜单中访问. -preferences.use_smooth_text = 在编辑器窗口中使用平滑字体 -preferences.enable_complex_text_input = 启用复杂字体输入 -preferences.enable_complex_text_input_example = 例如日文 -preferences.continuously_check = 不断检查错误 -preferences.show_warnings = 显示警告 -preferences.code_completion = 代码补全 -preferences.trigger_with = 触发开关 -preferences.cmd_space = 空格 -preferences.increase_max_memory = 增加最大内存至 -preferences.delete_previous_folder_on_export = 当导出时删除先前的文件夹 -preferences.hide_toolbar_background_image = 隐藏标签/工具栏背景图片 -preferences.check_for_updates_on_startup = 在启动时检查有无更新 -preferences.run_sketches_on_display = 在此显示器中运行速写本 +选择背景颜色当使用展示模式时.
\ +展示模式通常被用来在全屏模式下展示速写程序,
\ +可从速写本菜单中访问. +preferences.use_smooth_text = 在编辑器窗口中使用平滑字体 +preferences.enable_complex_text_input = 启用复杂字体输入 +preferences.enable_complex_text_input_example = 例如日文 +preferences.continuously_check = 不断检查错误 +preferences.show_warnings = 显示警告 +preferences.code_completion = 代码补全 +preferences.trigger_with = 触发开关 +preferences.cmd_space = 空格 +preferences.increase_max_memory = 增加最大内存至 +preferences.delete_previous_folder_on_export = 当导出时删除先前的文件夹 +preferences.hide_toolbar_background_image = 隐藏标签/工具栏背景图片 +preferences.check_for_updates_on_startup = 在启动时检查有无更新 +preferences.run_sketches_on_display = 在此显示器中运行速写本 preferences.run_sketches_on_display.tip = \ Sets the display where sketches are initially placed.
\ As usual, if the sketch window is moved, it will re-open
\ at the same location, however when running in present
\ (full screen) mode, this display will always be used. -preferences.automatically_associate_pde_files = 自动关联 .pde 文件通过 Processing -preferences.launch_programs_in = 加载程序的模式 -preferences.launch_programs_in.mode = 模式 -preferences.file = 更多选项可直接编辑该文件 -preferences.file.hint = 请在 Processing 未运行时编辑该文件 +preferences.automatically_associate_pde_files = 自动关联 .pde 文件通过 Processing +preferences.launch_programs_in = 加载程序的模式 +preferences.launch_programs_in.mode = 模式 +preferences.file = 更多选项可直接编辑该文件 +preferences.file.hint = 请在 Processing 未运行时编辑该文件 # Sketchbook Location (Frame) -sketchbook_location = 选择新速写本位置 +sketchbook_location = 选择新速写本位置 # Sketchbook (Frame) sketchbook = Sketchbook sketchbook.tree = Sketchbook # examples (Frame) -examples = 范例程序 +examples = 范例程序 # Export (Frame) -export = 输出选项 -export.platforms = 系统平台 -export.options = 选项 -export.options.fullscreen = 全屏 (展示模式) -export.options.show_stop_button = 显示停止按钮 -export.description.line1 = 为输出程序创建双击事件, -export.description.line2 = 为所选系统创建独立运行程序. +export = 输出选项 +export.platforms = 系统平台 +export.options = 选项 +export.options.fullscreen = 全屏 (展示模式) +export.options.show_stop_button = 显示停止按钮 +export.description.line1 = 为输出程序创建双击事件, +export.description.line2 = 为所选系统创建独立运行程序. # Find (Frame) -find = 搜索 -find.find = 搜索: -find.replace_with = 替换为: -find.ignore_case = 忽略大小写 -find.all_tabs = 所有标签 -find.wrap_around = 循环遍历 -find.btn.replace_all = 全部替换 -find.btn.replace = 替换 -find.btn.find_and_replace = 搜索 & 替换 -find.btn.previous = 上一个 -find.btn.find = 搜索 +find = 搜索 +find.find = 搜索: +find.replace_with = 替换为: +find.ignore_case = 忽略大小写 +find.all_tabs = 所有标签 +find.wrap_around = 循环遍历 +find.btn.replace_all = 全部替换 +find.btn.replace = 替换 +find.btn.find_and_replace = 搜索 & 替换 +find.btn.previous = 上一个 +find.btn.find = 搜索 # Find in reference (Frame) -find_in_reference = 在参考文档中搜索 +find_in_reference = 在参考文档中搜索 # Library Manager (Frame) -library.category = 目录: -library.filter_your_search = 筛查需找... +library.category = 目录: +library.filter_your_search = 筛查需找... # File (Frame) -file = 选择一个图片或其它文件拷贝至你的速写本中 +file = 选择一个图片或其它文件拷贝至你的速写本中 # Create Font (Frame) -create_font = 创建字体 +create_font = 创建字体 # Color Selector (Frame) -color_selector = 颜色选择 +color_selector = 颜色选择 # Archive Sketch (Frame) -archive_sketch = 速写本压缩输出... +archive_sketch = 速写本压缩输出... # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = 运行 -toolbar.present = 展示模式 -toolbar.stop = 停止 +toolbar.run = 运行 +toolbar.present = 展示模式 +toolbar.stop = 停止 # --- -toolbar.new = 新建 -toolbar.open = 打开 -toolbar.save = 保存 -# toolbar.export_application = 导出程序 -toolbar.add_mode = 添加模式... +toolbar.new = 新建 +toolbar.open = 打开 +toolbar.save = 保存 +# toolbar.export_application = 导出程序 +toolbar.add_mode = 添加模式... # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = 新建标签 -editor.header.rename = 重命名 -editor.header.delete = 删除 -editor.header.previous_tab = 前一个标签 -editor.header.next_tab = 后一个标签 -editor.header.delete.warning.title = 这样不行 -editor.header.delete.warning.text = 无法删除最后一个速写本的最后一个标签 +editor.header.new_tab = 新建标签 +editor.header.rename = 重命名 +editor.header.delete = 删除 +editor.header.previous_tab = 前一个标签 +editor.header.next_tab = 后一个标签 +editor.header.delete.warning.title = 这样不行 +editor.header.delete.warning.text = 无法删除最后一个速写本的最后一个标签 # Limited syntax error support, Wikipedia CC BY-SA -editor.status.error = 錯誤 -editor.status.error.syntax = 语法错误 - %s +editor.status.error = 錯誤 +editor.status.error.syntax = 语法错误 - %s # Tabs -editor.tab.new = 新文件名 -editor.tab.new.description = 新文件名称 -editor.tab.rename = 新文件名 -editor.tab.rename.description = 新文件名称 +editor.tab.new = 新文件名 +editor.tab.new.description = 新文件名称 +editor.tab.rename = 新文件名 +editor.tab.rename.description = 新文件名称 # Sketch -editor.sketch.rename.description = 速写本的新名称 - -editor.status.autoformat.no_changes = 自动格式化不需要做更改。 -editor.status.autoformat.finished = 自动格式化完成。 -editor.status.find_reference.select_word_first = 请首先选择要查找的关键字。 -editor.status.find_reference.not_available = 没有找到 "%s" 的引用。 -editor.status.drag_and_drop.files_added.0 = 未将任何文件添加到速写本。 -editor.status.drag_and_drop.files_added.1 = 将 1 个文件添加到速写本。 -editor.status.drag_and_drop.files_added.n = 将 %d 个文件添加到速写本。 -editor.status.saving = 保存中... -editor.status.saving.done = 保存完成. -editor.status.saving.canceled = 取消保存. -editor.status.printing = 打印中... -editor.status.printing.done = 打印完毕. -editor.status.printing.error = 打印时出错. -editor.status.printing.canceled = 取消打印. +editor.sketch.rename.description = 速写本的新名称 + +editor.status.autoformat.no_changes = 自动格式化不需要做更改。 +editor.status.autoformat.finished = 自动格式化完成。 +editor.status.find_reference.select_word_first = 请首先选择要查找的关键字。 +editor.status.find_reference.not_available = 没有找到 "%s" 的引用。 +editor.status.drag_and_drop.files_added.0 = 未将任何文件添加到速写本。 +editor.status.drag_and_drop.files_added.1 = 将 1 个文件添加到速写本。 +editor.status.drag_and_drop.files_added.n = 将 %d 个文件添加到速写本。 +editor.status.saving = 保存中... +editor.status.saving.done = 保存完成. +editor.status.saving.canceled = 取消保存. +editor.status.printing = 打印中... +editor.status.printing.done = 打印完毕. +editor.status.printing.error = 打印时出错. +editor.status.printing.canceled = 取消打印. # --------------------------------------- # Contribution Panel -contrib.undo = 撤销 -contrib.remove = 移除 -contrib.install = 安装 -contrib.progress.starting = 开始 -contrib.progress.downloading = 下载 -contrib.download_error = 下载时出现问题. -contrib.unsupported_operating_system = 你当前的操作系统似乎不被支持. 你应该访问 %s 获取更多信息. +contrib.undo = 撤销 +contrib.remove = 移除 +contrib.install = 安装 +contrib.progress.starting = 开始 +contrib.progress.downloading = 下载 +contrib.download_error = 下载时出现问题. +contrib.unsupported_operating_system = 你当前的操作系统似乎不被支持. 你应该访问 %s 获取更多信息. # --------------------------------------- # Warnings -warn.delete = 删除 -warn.delete.sketch = 你确定要删除该速写本吗? -warn.delete.sketch_folder = 你确定要删除该速写本吗?\n这将删除整个 “%s” 文件夹。 -warn.delete.sketch_last = 为了确保您的文件安全,Processing 不支持删除整个速写本文件夹。\n请在文件管理器中打开速写本文件夹进行删除。 -warn.delete.file = 你确定要删除 "%s" 吗? -warn.delete.sketch_file = 你确定要删除 “%s” 吗? -warn.cannot_change_mode.title = 无法切换模式 -warn.cannot_change_mode.body = 无法切换模式,\n因为 “%s” 模式与当前模式不兼容。 \ No newline at end of file +warn.delete = 删除 +warn.delete.sketch = 你确定要删除该速写本吗? +warn.delete.sketch_folder = 你确定要删除该速写本吗?\n这将删除整个 “%s” 文件夹。 +warn.delete.sketch_last = 为了确保您的文件安全,Processing 不支持删除整个速写本文件夹。\n请在文件管理器中打开速写本文件夹进行删除。 +warn.delete.file = 你确定要删除 "%s" 吗? +warn.delete.sketch_file = 你确定要删除 “%s” 吗? +warn.cannot_change_mode.title = 无法切换模式 +warn.cannot_change_mode.body = 无法切换模式,\n因为 “%s” 模式与当前模式不兼容。 \ No newline at end of file diff --git a/build/shared/lib/languages/PDE_zh-TW.properties b/build/shared/lib/languages/PDE_zh-TW.properties index e3642d0999..85976eb277 100644 --- a/build/shared/lib/languages/PDE_zh-TW.properties +++ b/build/shared/lib/languages/PDE_zh-TW.properties @@ -15,97 +15,97 @@ font.family.mono = Monospaced # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = 檔案(File) -menu.file.new = 新增(New) -menu.file.open = 開啟(Open)... -menu.file.recent = 最近開啟檔案(Recent) -menu.file.sketchbook = 全部程式素描本(Sketchbook)... -menu.file.sketchbook.empty = 空白的程式素描本(Empty Sketchbook) -menu.file.examples = 範例(Examples)... -menu.file.close = 關閉(Close) -menu.file.save = 儲存(Save) -menu.file.save_as = 另存新檔(Save As)... -menu.file.export_application = 匯出應用程式(Export Application)... -menu.file.page_setup = 印列設定(Page Setup) -menu.file.print = 列印(Print)... -menu.file.preferences = 偏好設定(Preferences)... -menu.file.quit = 離開(Quit) +menu.file = 檔案(File) +menu.file.new = 新增(New) +menu.file.open = 開啟(Open)... +menu.file.recent = 最近開啟檔案(Recent) +menu.file.sketchbook = 全部程式素描本(Sketchbook)... +menu.file.sketchbook.empty = 空白的程式素描本(Empty Sketchbook) +menu.file.examples = 範例(Examples)... +menu.file.close = 關閉(Close) +menu.file.save = 儲存(Save) +menu.file.save_as = 另存新檔(Save As)... +menu.file.export_application = 匯出應用程式(Export Application)... +menu.file.page_setup = 印列設定(Page Setup) +menu.file.print = 列印(Print)... +menu.file.preferences = 偏好設定(Preferences)... +menu.file.quit = 離開(Quit) # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = 編輯(Edit) -menu.edit.undo = 還原(Undo) -menu.edit.redo = 重做(Redo) +menu.edit = 編輯(Edit) +menu.edit.undo = 還原(Undo) +menu.edit.redo = 重做(Redo) #menu.edit.redo.keystroke.macosx = shift meta pressed Z #menu.edit.redo.keystroke.windows = ctrl pressed Y #menu.edit.redo.keystroke.linux = shift ctrl pressed Z -menu.edit.action.addition = 增加(addition) -menu.edit.action.deletion = 刪除(deletion) -menu.edit.cut = 剪下(Cut) -menu.edit.copy = 複製(Copy) -menu.edit.copy_as_html = 複製為HTML格式(Copy as HTML) -menu.edit.paste = 貼上(Paste) -menu.edit.select_all = 全選(Select All) -menu.edit.auto_format = 自動排版(Auto Format) -menu.edit.comment_uncomment = 註解程式/取消註解(Comment/Uncomment) +menu.edit.action.addition = 增加(addition) +menu.edit.action.deletion = 刪除(deletion) +menu.edit.cut = 剪下(Cut) +menu.edit.copy = 複製(Copy) +menu.edit.copy_as_html = 複製為HTML格式(Copy as HTML) +menu.edit.paste = 貼上(Paste) +menu.edit.select_all = 全選(Select All) +menu.edit.auto_format = 自動排版(Auto Format) +menu.edit.comment_uncomment = 註解程式/取消註解(Comment/Uncomment) #menu.edit.comment_uncomment.keystroke.macosx = meta pressed SLASH #menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH #menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH -menu.edit.increase_indent = → 往右增加縮排(Increase Indent) +menu.edit.increase_indent = → 往右增加縮排(Increase Indent) #menu.edit.increase_indent.keystroke.macosx = meta pressed CLOSE_BRACKET #menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET #menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET -menu.edit.decrease_indent = ← 往左減少縮排(Decrease Indent) +menu.edit.decrease_indent = ← 往左減少縮排(Decrease Indent) #menu.edit.decrease_indent.keystroke.macosx = meta pressed OPEN_BRACKET #menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET #menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET -menu.edit.find = 尋找(Find)... -menu.edit.find_next = 找下一個(Find Next) -menu.edit.find_previous = 往上找(Find Previous) -menu.edit.use_selection_for_find = 只在範圍中尋找(Use Selection for find) +menu.edit.find = 尋找(Find)... +menu.edit.find_next = 找下一個(Find Next) +menu.edit.find_previous = 往上找(Find Previous) +menu.edit.use_selection_for_find = 只在範圍中尋找(Use Selection for find) # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = 執行(Run) -menu.sketch.present = 全螢幕執行(Present) -menu.sketch.tweak = 分析微調(Tweak) -menu.sketch.stop = 停止(Stop) +menu.sketch.run = 執行(Run) +menu.sketch.present = 全螢幕執行(Present) +menu.sketch.tweak = 分析微調(Tweak) +menu.sketch.stop = 停止(Stop) # --- -menu.library = 使用函式庫(Library)... -menu.library.add_library = 安裝函式庫(Add Library)... -menu.library.contributed = 其他人貢獻的函式庫(Contributed) -menu.library.no_core_libraries = 本模式沒有核心函式庫(No Core Library) +menu.library = 使用函式庫(Library)... +menu.library.add_library = 安裝函式庫(Add Library)... +menu.library.contributed = 其他人貢獻的函式庫(Contributed) +menu.library.no_core_libraries = 本模式沒有核心函式庫(No Core Library) # --- -menu.sketch = 程式素描本(Sketch) -menu.sketch.show_sketch_folder = 開啟程式目錄(Show Sketch Folder) -menu.sketch.add_file = 新增檔案(Add File)... +menu.sketch = 程式素描本(Sketch) +menu.sketch.show_sketch_folder = 開啟程式目錄(Show Sketch Folder) +menu.sketch.add_file = 新增檔案(Add File)... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = 偵錯(Debug) -menu.debug.enable = 開啟Debugger -menu.debug.disable = 關閉Debugger +menu.debug = 偵錯(Debug) +menu.debug.enable = 開啟Debugger +menu.debug.disable = 關閉Debugger #menu.debug.show_debug_toolbar = Show Debug Toolbar #menu.debug.debug = Debug #menu.debug.stop = Stop # --- -menu.debug.toggle_breakpoint = 設定中斷點(Toggle Breakpoint) -#menu.debug.list_breakpoints = 列出全部中斷點(List breakpoints) +menu.debug.toggle_breakpoint = 設定中斷點(Toggle Breakpoint) +#menu.debug.list_breakpoints = 列出全部中斷點(List breakpoints) # --- # used for both menus and toolbars -menu.debug.step = 下一步(Step) +menu.debug.step = 下一步(Step) #menu.debug.step.keystroke.macosx = meta pressed J #menu.debug.step.keystroke.windows = ctrl pressed J #menu.debug.step.keystroke.linux = ctrl pressed J -menu.debug.step_into = 下一步/進入函式(Step Into) +menu.debug.step_into = 下一步/進入函式(Step Into) #menu.debug.step_into.keystroke.macosx = shift meta pressed J #menu.debug.step_into.keystroke.windows = shift ctrl pressed J #menu.debug.step_into.keystroke.linux = shift ctrl pressed J -menu.debug.step_out = 下一步/離開函式(Step Out) +menu.debug.step_out = 下一步/離開函式(Step Out) #menu.debug.step_out.keystroke.macosx = meta alt pressed J #menu.debug.step_out.keystroke.windows = ctrl alt pressed J #menu.debug.step_out.keystroke.linux = ctrl alt pressed J -menu.debug.continue = 繼續(Continue) +menu.debug.continue = 繼續(Continue) # --- #menu.debug.print_stack_trace = Print Stack Trace #menu.debug.print_locals = Print Locals @@ -114,42 +114,42 @@ menu.debug.continue = 繼續(Continue) #menu.debug.print_threads = Print Threads # --- #menu.debug.variable_inspector = Variable Inspector -menu.debug.show_variables = 秀出變數值(Show Variables) -menu.debug.hide_variables = 不秀變數值(Hide Variables) +menu.debug.show_variables = 秀出變數值(Show Variables) +menu.debug.hide_variables = 不秀變數值(Hide Variables) #menu.debug.show_sketch_outline = Show Sketch Outline #menu.debug.show_tabs_list = Show Tabs List # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = 工具(Tool) -menu.tools.color_selector = 顏色選擇器(Color Selector)... -menu.tools.create_font = 建字型檔(Create Font)... -menu.tools.archive_sketch = 壓縮程式專案(Archive Sketch) -menu.tools.fix_the_serial_library = 修復Serial函式庫(Fix the Serial Library) -menu.tools.install_processing_java = 安裝 "processing-java" -menu.tools.add_tool = 新增工具(Add Tool)... +menu.tools = 工具(Tool) +menu.tools.color_selector = 顏色選擇器(Color Selector)... +menu.tools.create_font = 建字型檔(Create Font)... +menu.tools.archive_sketch = 壓縮程式專案(Archive Sketch) +menu.tools.fix_the_serial_library = 修復Serial函式庫(Fix the Serial Library) +menu.tools.install_processing_java = 安裝 "processing-java" +menu.tools.add_tool = 新增工具(Add Tool)... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = 協助(Help) -menu.help.welcome = 歡迎(Welcome to Processing 3) -menu.help.about = 關於(About Processing) -menu.help.environment = 開發環境(Environment) -menu.help.reference = 參考文件(Reference) -menu.help.find_in_reference = 查詢參考文件(Find in Reference) -menu.help.libraries_reference = 函式庫文件(Libraries Reference) -menu.help.tools_reference = 工具的文件(Tools Reference) +menu.help = 協助(Help) +menu.help.welcome = 歡迎(Welcome to Processing 3) +menu.help.about = 關於(About Processing) +menu.help.environment = 開發環境(Environment) +menu.help.reference = 參考文件(Reference) +menu.help.find_in_reference = 查詢參考文件(Find in Reference) +menu.help.libraries_reference = 函式庫文件(Libraries Reference) +menu.help.tools_reference = 工具的文件(Tools Reference) menu.help.empty = (empty) -menu.help.online = 線上(Online) -menu.help.getting_started = 入門教學(Getting Started) +menu.help.online = 線上(Online) +menu.help.getting_started = 入門教學(Getting Started) menu.help.getting_started.url = https://processing.org/tutorials/gettingstarted/ -menu.help.troubleshooting = 問題排除(Trouble Shooting) +menu.help.troubleshooting = 問題排除(Trouble Shooting) menu.help.troubleshooting.url = https://github.com/processing/processing/wiki/troubleshooting -menu.help.faq = 常見問與答(FAQ) +menu.help.faq = 常見問與答(FAQ) menu.help.faq.url = https://github.com/processing/processing/wiki/FAQ -menu.help.foundation = Processing基金會(The Processing Foundation) +menu.help.foundation = Processing基金會(The Processing Foundation) menu.help.foundation.url = https://processingfoundation.org/ -menu.help.visit = 拜訪 Visit Processing.org +menu.help.visit = 拜訪 Visit Processing.org menu.help.visit.url = http://processing.org/ @@ -157,124 +157,124 @@ menu.help.visit.url = http://processing.org/ # Basics # Buttons -prompt.yes = 是(Yes) -prompt.no = 否(No) -prompt.cancel = 取消(Cancel) -prompt.ok = 確認(OK) -prompt.browse = 瀏覽(Browse) -prompt.export = 匯出(Export) +prompt.yes = 是(Yes) +prompt.no = 否(No) +prompt.cancel = 取消(Cancel) +prompt.ok = 確認(OK) +prompt.browse = 瀏覽(Browse) +prompt.export = 匯出(Export) # --------------------------------------- # Frames # Open (Frame) -open = Open Processing Sketch 開啟程式素描本... +open = Open Processing Sketch 開啟程式素描本... # Save (Frame) -save = Save Sketch儲存程式素描本... -save.title = 你想在關閉前將 %s 儲存嗎? -save.hint = 如果Sketch沒有儲存,關閉後你的修改會全部遺失 -save.btn.save = 存檔(Save) -save.btn.dont_save = 不存檔(Don't Save) +save = Save Sketch儲存程式素描本... +save.title = 你想在關閉前將 %s 儲存嗎? +save.hint = 如果Sketch沒有儲存,關閉後你的修改會全部遺失 +save.btn.save = 存檔(Save) +save.btn.dont_save = 不存檔(Don't Save) # Close (Frame) also used to prompt on non-OS X machines -close.unsaved_changes = 要儲存嗎? Save changes to %s? +close.unsaved_changes = 要儲存嗎? Save changes to %s? -# Preferences (Frame) -preferences = 偏好設定Preference +# AppPreferences (Frame) +preferences = 偏好設定Preference preferences.button.width = 80 -preferences.requires_restart = 需重新開啟Requires Restart Processing -preferences.sketchbook_location = 程式素描本的目錄Sketch Location -preferences.sketchbook_location.popup = 程式素描本的目錄Sketch Location -preferences.language = 語言Language -preferences.editor_and_console_font = 程式編輯Edtor及主控台Console的字形 -preferences.editor_and_console_font.tip = 在程式編輯Editor及主控台Console使用的字形
必需使用Monospace等寬字形,這裡的列表可能不完整。 -preferences.editor_font_size = 程式編輯Editor的字型大小 -preferences.console_font_size = 主控台Console的字型大小 -preferences.zoom = 縮放界面的文字比例 -preferences.zoom.auto = 使用系統預設值 -preferences.background_color = 全螢幕執行的背景色彩 -preferences.background_color.tip = 全螢幕執行(Present)的背景色
Present展示模式使用Fullscreen全螢幕執行,
可以在Processing上方選單的Sketch裡找到Present展示模式 -preferences.use_smooth_text = 在程式編輯窗使用平滑(smooth)的字形 -preferences.enable_complex_text_input = 使用複雜語系輸入 -preferences.enable_complex_text_input_example = 例如中文、日文、韓文 -preferences.continuously_check = 持續檢查程式是否錯誤Error -preferences.show_warnings = 顯示警告Warning -preferences.code_completion = 自動補齊程式碼CodeComplete -preferences.trigger_with = 用...觸發 -preferences.cmd_space = Space空白鍵 -preferences.suggest_imports = 自動建議需import的函式庫 -preferences.increase_max_memory = 加大程式可用的Memory到 -preferences.delete_previous_folder_on_export = 匯出應用程式時,刪掉前一版 -preferences.check_for_updates_on_startup = 啟動時檢查是否有新版Processing -preferences.run_sketches_on_display = 多螢幕顯示時,在哪個螢幕執行(Run) -preferences.run_sketches_on_display.tip = 若有多個螢幕,可設定(某個)螢幕,顯示Run視窗。
執行時,若把Run視窗移到其他螢幕,下次保留在同一位置。
若用全螢幕執行(Sketch-Present),就會在設定的螢幕顯示。 -preferences.automatically_associate_pde_files = 預設使用Processing來開啟.pde檔 -preferences.launch_programs_in = 啟動Processing時使用 -preferences.launch_programs_in.mode = 模式 -preferences.file = 直接編輯下面的設定檔,可設定更多的選項 -preferences.file.hint = 不要在執行Processing同時修改設定檔,以免衝突 +preferences.requires_restart = 需重新開啟Requires Restart Processing +preferences.sketchbook_location = 程式素描本的目錄Sketch Location +preferences.sketchbook_location.popup = 程式素描本的目錄Sketch Location +preferences.language = 語言Language +preferences.editor_and_console_font = 程式編輯Edtor及主控台Console的字形 +preferences.editor_and_console_font.tip = 在程式編輯Editor及主控台Console使用的字形
必需使用Monospace等寬字形,這裡的列表可能不完整。 +preferences.editor_font_size = 程式編輯Editor的字型大小 +preferences.console_font_size = 主控台Console的字型大小 +preferences.zoom = 縮放界面的文字比例 +preferences.zoom.auto = 使用系統預設值 +preferences.background_color = 全螢幕執行的背景色彩 +preferences.background_color.tip = 全螢幕執行(Present)的背景色
Present展示模式使用Fullscreen全螢幕執行,
可以在Processing上方選單的Sketch裡找到Present展示模式 +preferences.use_smooth_text = 在程式編輯窗使用平滑(smooth)的字形 +preferences.enable_complex_text_input = 使用複雜語系輸入 +preferences.enable_complex_text_input_example = 例如中文、日文、韓文 +preferences.continuously_check = 持續檢查程式是否錯誤Error +preferences.show_warnings = 顯示警告Warning +preferences.code_completion = 自動補齊程式碼CodeComplete +preferences.trigger_with = 用...觸發 +preferences.cmd_space = Space空白鍵 +preferences.suggest_imports = 自動建議需import的函式庫 +preferences.increase_max_memory = 加大程式可用的Memory到 +preferences.delete_previous_folder_on_export = 匯出應用程式時,刪掉前一版 +preferences.check_for_updates_on_startup = 啟動時檢查是否有新版Processing +preferences.run_sketches_on_display = 多螢幕顯示時,在哪個螢幕執行(Run) +preferences.run_sketches_on_display.tip = 若有多個螢幕,可設定(某個)螢幕,顯示Run視窗。
執行時,若把Run視窗移到其他螢幕,下次保留在同一位置。
若用全螢幕執行(Sketch-Present),就會在設定的螢幕顯示。 +preferences.automatically_associate_pde_files = 預設使用Processing來開啟.pde檔 +preferences.launch_programs_in = 啟動Processing時使用 +preferences.launch_programs_in.mode = 模式 +preferences.file = 直接編輯下面的設定檔,可設定更多的選項 +preferences.file.hint = 不要在執行Processing同時修改設定檔,以免衝突 # Sketchbook Location (Frame) -sketchbook_location = 選擇新的Sketchbook目錄 +sketchbook_location = 選擇新的Sketchbook目錄 # Sketchbook (Frame) -sketchbook = Sketchbook全部的程式素描本 -sketchbook.tree = Sketchbook全部的程式素描本 +sketchbook = Sketchbook全部的程式素描本 +sketchbook.tree = Sketchbook全部的程式素描本 -# examples (Frame) 這裡是跳出的視窗,所以英文放前面 -examples = 範例Examples -examples.add_examples = Add Examples...增加範例 -examples.libraries = Contributed Libraries第三方貢獻的函式庫 -examples.core_libraries = Libraries核心函式庫 -examples.contributed = Contributed Examples第三方貢獻的範例 +# examples (Frame) 這裡是跳出的視窗,所以英文放前面 +examples = 範例Examples +examples.add_examples = Add Examples...增加範例 +examples.libraries = Contributed Libraries第三方貢獻的函式庫 +examples.core_libraries = Libraries核心函式庫 +examples.contributed = Contributed Examples第三方貢獻的範例 # Export (Frame) -export = 匯出設定 Export Options -export.platforms = 選定平台 Platform -export.options = 匯出選項 Options -export.options.present = Presentation Mode(全螢幕) -export.options.show_stop_button = Show a Stop Button 要有關閉的按鈕 -export.description = 匯出應用程式後,可以點2下執行。\n並可在選定平台「獨立執行」。 -export.unsaved_changes = 在Export匯出前需先將程式存檔。
你要先存檔嗎? -export.notice.cancel.unsaved_changes = 因Export匯出前需先將程式存檔, 所以取消Export匯出。 -export.notice.exporting = 正在匯出(應用程式)... -export.notice.exporting.done = 順利匯出(應用程式) -export.notice.exporting.error = 匯出過程出現錯誤 -export.notice.exporting.cancel = 你取消匯出 -export.tooltip.macosx = macOS 匯出的程式只能在 macOS 裡執行 -export.full_screen = 是否要全螢幕 Full Screen -export.embed_java = 是否要嵌入Embed Java -export.include_java = 將Java放進你匯出的 %s 應用程式 -export.code_signing = 程式碼簽章 Code Signing -export.messages.is_read_only = 因程式碼Read-Only無法存檔 -export.messages.is_read_only.description = 有些檔案被設成read-only(可能是其他應用程式正在開啟)。\n所以你需要再試一次,改存在其他目錄裡。 -export.messages.cannot_export = 無法匯出應用程式 -export.messages.cannot_export.description = 若沒將sketch存檔,就無法Export匯出應用程式。 +export = 匯出設定 Export Options +export.platforms = 選定平台 Platform +export.options = 匯出選項 Options +export.options.present = Presentation Mode(全螢幕) +export.options.show_stop_button = Show a Stop Button 要有關閉的按鈕 +export.description = 匯出應用程式後,可以點2下執行。\n並可在選定平台「獨立執行」。 +export.unsaved_changes = 在Export匯出前需先將程式存檔。
你要先存檔嗎? +export.notice.cancel.unsaved_changes = 因Export匯出前需先將程式存檔, 所以取消Export匯出。 +export.notice.exporting = 正在匯出(應用程式)... +export.notice.exporting.done = 順利匯出(應用程式) +export.notice.exporting.error = 匯出過程出現錯誤 +export.notice.exporting.cancel = 你取消匯出 +export.tooltip.macosx = macOS 匯出的程式只能在 macOS 裡執行 +export.full_screen = 是否要全螢幕 Full Screen +export.embed_java = 是否要嵌入Embed Java +export.include_java = 將Java放進你匯出的 %s 應用程式 +export.code_signing = 程式碼簽章 Code Signing +export.messages.is_read_only = 因程式碼Read-Only無法存檔 +export.messages.is_read_only.description = 有些檔案被設成read-only(可能是其他應用程式正在開啟)。\n所以你需要再試一次,改存在其他目錄裡。 +export.messages.cannot_export = 無法匯出應用程式 +export.messages.cannot_export.description = 若沒將sketch存檔,就無法Export匯出應用程式。 # Find (Frame) -find = 尋找 Find -find.find = 尋找 Find -find.replace_with = 替代 Replace -find.ignore_case = 忽略大小寫 Ignore Case -find.all_tabs = 在全部Tab中尋找 All Tabs -find.wrap_around = 找完從頭再找 Wrap Around -find.btn.replace_all = 全部取代 Replace All -find.btn.replace = 取代 Replace -find.btn.find_and_replace = 尋找&取代 Find & Replace -find.btn.previous = 往前找 Previous -find.btn.find = 尋找 Find +find = 尋找 Find +find.find = 尋找 Find +find.replace_with = 替代 Replace +find.ignore_case = 忽略大小寫 Ignore Case +find.all_tabs = 在全部Tab中尋找 All Tabs +find.wrap_around = 找完從頭再找 Wrap Around +find.btn.replace_all = 全部取代 Replace All +find.btn.replace = 取代 Replace +find.btn.find_and_replace = 尋找&取代 Find & Replace +find.btn.previous = 往前找 Previous +find.btn.find = 尋找 Find # Find in reference (Frame) -find_in_reference = 在參考文件裡找選取的字... +find_in_reference = 在參考文件裡找選取的字... # File (Frame) -file = 選一個圖檔或要放到data目錄的檔案,會copy到你的data目錄中 +file = 選一個圖檔或要放到data目錄的檔案,會copy到你的data目錄中 # Create Font (Frame) -create_font = 新建字型Create Font... -create_font.label = Use this tool to create bitmap fonts for your(待查) program.\nSelect a font and size, and click 'OK' to generate the font.\nIt will be added to the data folder of the current sketch. +create_font = 新建字型Create Font... +create_font.label = Use this tool to create bitmap fonts for your(待查) program.\nSelect a font and size, and click 'OK' to generate the font.\nIt will be added to the data folder of the current sketch. create_font.size = Size create_font.smooth = Smooth create_font.characters = Characters... @@ -286,10 +286,10 @@ create_font.specific_unicode = Specific Unicode Blocks create_font.filename = Filename # Color Selector (Frame) -color_selector = 色彩選擇器(Color Selector)... +color_selector = 色彩選擇器(Color Selector)... # Archive Sketch (Frame) -archive_sketch = 壓縮程式專案Archive Sketch... +archive_sketch = 壓縮程式專案Archive Sketch... # Tweak Mode tweak_mode = Tweak Mode @@ -298,24 +298,24 @@ tweak_mode.keep_changes.line1 = Keep the changes? tweak_mode.keep_changes.line2 = You changed some values in your sketch. Would you like to keep the changes? # DebugTray -debugger.name = Name變數名 -debugger.value = Value變數值 -debugger.type = Type變數型別 +debugger.name = Name變數名 +debugger.value = Value變數值 +debugger.type = Type變數型別 # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = 執行(Run) -toolbar.present = 全螢幕執行(Present) -toolbar.stop = 停止執行(Stop) -toolbar.debug = 偵錯(Debug) +toolbar.run = 執行(Run) +toolbar.present = 全螢幕執行(Present) +toolbar.stop = 停止執行(Stop) +toolbar.debug = 偵錯(Debug) # --- -toolbar.new = 新增(New) -toolbar.open = 開啟(Open) -toolbar.save = 儲存(Save) -toolbar.export_application = 匯出單一應用程式(Export Application) -toolbar.add_mode = 增加新模式(Add Mode) +toolbar.new = 新增(New) +toolbar.open = 開啟(Open) +toolbar.save = 儲存(Save) +toolbar.export_application = 匯出單一應用程式(Export Application) +toolbar.add_mode = 增加新模式(Add Mode) # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] #toolbar.debug.continue = Continue @@ -330,48 +330,48 @@ toolbar.add_mode = 增加新模式(Add Mode) # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = 新增分頁(New Tab) -editor.header.rename = 重新命名分頁(Rename Tab) -editor.header.delete = 刪除分頁(Delete Tab) -editor.header.previous_tab = 前一個分頁(Previous Tab) +editor.header.new_tab = 新增分頁(New Tab) +editor.header.rename = 重新命名分頁(Rename Tab) +editor.header.delete = 刪除分頁(Delete Tab) +editor.header.previous_tab = 前一個分頁(Previous Tab) #editor.header.previous_tab.keystroke.macosx = meta alt pressed LEFT #editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP #editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP -editor.header.next_tab = 下一個分頁(Next Tab) +editor.header.next_tab = 下一個分頁(Next Tab) #editor.header.next_tab.keystroke.macosx = meta alt pressed RIGHT #editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN #editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN -editor.header.delete.warning.title = 警告! 不能刪除! -editor.header.delete.warning.text = 你不能刪除這個Tab分頁 +editor.header.delete.warning.title = 警告! 不能刪除! +editor.header.delete.warning.text = 你不能刪除這個Tab分頁 # PopUp menu -editor.popup.jump_to_declaration = 跳到變數宣告(Jump to Declaration) -editor.popup.show_usage = 變數哪裡使用(Show Usage...) -editor.popup.rename = 變數重新命名(Rename...) +editor.popup.jump_to_declaration = 跳到變數宣告(Jump to Declaration) +editor.popup.show_usage = 變數哪裡使用(Show Usage...) +editor.popup.rename = 變數重新命名(Rename...) # Tabs -editor.tab.new = 新的分頁檔案 -editor.tab.new.description = 新的分頁檔案名 -editor.tab.rename = 新的分頁檔案改名為 -editor.tab.rename.description = 新的分頁檔案名 +editor.tab.new = 新的分頁檔案 +editor.tab.new.description = 新的分頁檔案名 +editor.tab.rename = 新的分頁檔案改名為 +editor.tab.rename.description = 新的分頁檔案名 # Sketch -editor.sketch.rename.description = 程式重新命名 - -editor.status.autoformat.no_changes = 自動排版後,沒任何修改。 -editor.status.autoformat.finished = 自動排版完成。 -editor.status.find_reference.select_word_first = 要先反白關鍵字,才能找它的參考文件。 -editor.status.find_reference.not_available = 找不到"%s"的參考文件。 -editor.status.drag_and_drop.files_added.0 = 沒有檔案被加到程式速寫本中。 -editor.status.drag_and_drop.files_added.1 = 有1個檔案被加到程式速寫本中。 -editor.status.drag_and_drop.files_added.n = 有%d個檔案被加到程式速寫本中。 -editor.status.saving = 儲存中Saving... -editor.status.saving.done = 儲存完成Done. -editor.status.saving.canceled = 取消儲存Canceled. -editor.status.printing = 列印中Printing... -editor.status.printing.done = 列印完成Done. -editor.status.printing.error = 列印時出錯Error. -editor.status.printing.canceled = 取消列印Canceled. +editor.sketch.rename.description = 程式重新命名 + +editor.status.autoformat.no_changes = 自動排版後,沒任何修改。 +editor.status.autoformat.finished = 自動排版完成。 +editor.status.find_reference.select_word_first = 要先反白關鍵字,才能找它的參考文件。 +editor.status.find_reference.not_available = 找不到"%s"的參考文件。 +editor.status.drag_and_drop.files_added.0 = 沒有檔案被加到程式速寫本中。 +editor.status.drag_and_drop.files_added.1 = 有1個檔案被加到程式速寫本中。 +editor.status.drag_and_drop.files_added.n = 有%d個檔案被加到程式速寫本中。 +editor.status.saving = 儲存中Saving... +editor.status.saving.done = 儲存完成Done. +editor.status.saving.canceled = 取消儲存Canceled. +editor.status.printing = 列印中Printing... +editor.status.printing.done = 列印完成Done. +editor.status.printing.error = 列印時出錯Error. +editor.status.printing.canceled = 取消列印Canceled. editor.status.copy_as_html = Code formatted as HTML has been copied to the clipboard. editor.status.debug.busy = Debugger busy... editor.status.debug.halt = Debugger halted. @@ -452,7 +452,7 @@ delete.messages.is_read_only.description = Some files are marked "read-only", so save_file.messages.is_read_only = Sketch is read-only save_file.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save this sketch to another location. save_file.messages.sketch_exists = Cannot Save -save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. +save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. save_file.messages.tab_exists = Nope save_file.messages.tab_exists.description = You cannot save the sketch as "%s"\nbecause the sketch already has a tab with that name. save_file.messages.recursive_save = How very Borges of you @@ -532,15 +532,15 @@ contrib.errors.no_internet_connection = You do not seem to be connected to the I contrib.status.downloading_list = Downloading contribution list... contrib.status.connecting = Connecting... contrib.status.done = Done. -contrib.all = 全部All -contrib.undo = 還原Undo -contrib.remove = 移除Renove -contrib.install = 安裝Install -contrib.progress.installing = 安裝中 Installing... -contrib.progress.starting = 準備開始Starting... -contrib.progress.downloading = 下載中Downloading... -contrib.download_error = 下載出現問題Download Error. -contrib.unsupported_operating_system = 你的作業系統沒有支援這個功能。你可查查 %s 相關文件. +contrib.all = 全部All +contrib.undo = 還原Undo +contrib.remove = 移除Renove +contrib.install = 安裝Install +contrib.progress.installing = 安裝中 Installing... +contrib.progress.starting = 準備開始Starting... +contrib.progress.downloading = 下載中Downloading... +contrib.download_error = 下載出現問題Download Error. +contrib.unsupported_operating_system = 你的作業系統沒有支援這個功能。你可查查 %s 相關文件. contrib.category.3d = 3D contrib.category.animation = Animation contrib.category.data = Data @@ -562,75 +562,75 @@ contrib.startup.errors.temp_dir = Could not write to temporary directory during contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update... # Install on Import -contrib.import.dialog.title = 缺的Library可下載哦! Missing Libraries Available -contrib.import.dialog.primary_text = 下面是你import想使用, 但還沒安裝的library, 可下載安裝它們。The following imported libraries are available for download, but have not been installed. -contrib.import.dialog.secondary_text = 你想要安裝它們嗎? Would you like to install them now? -contrib.import.progress.download = 下載中Downloading %s... -contrib.import.progress.install = 安裝中Installing %s... -contrib.import.progress.done = %s 已經安裝好了。 -contrib.import.progress.final_list = 下面列的libraries已安裝好: -contrib.import.errors.link = 錯誤Error: 這個library %s 的下載網址有問題。 +contrib.import.dialog.title = 缺的Library可下載哦! Missing Libraries Available +contrib.import.dialog.primary_text = 下面是你import想使用, 但還沒安裝的library, 可下載安裝它們。The following imported libraries are available for download, but have not been installed. +contrib.import.dialog.secondary_text = 你想要安裝它們嗎? Would you like to install them now? +contrib.import.progress.download = 下載中Downloading %s... +contrib.import.progress.install = 安裝中Installing %s... +contrib.import.progress.done = %s 已經安裝好了。 +contrib.import.progress.final_list = 下面列的libraries已安裝好: +contrib.import.errors.link = 錯誤Error: 這個library %s 的下載網址有問題。 # --------------------------------------- # Warnings -warn.delete = 刪除Delete... -warn.delete.sketch = 確定要刪除程式嗎? -warn.delete.file = 確定要刪除檔案 "%s" 嗎? -warn.delete.sketch_file = 您確定要刪除「%s」嗎? -warn.delete.sketch_last = 為了保護您的檔案安全,Processing 不支援刪除整個程式素描本資料夾。\n請在檔案總管中開啟該資料夾進行刪除。 -warn.cannot_change_mode.title = 無法切換模式 -warn.cannot_change_mode.body = 無法切換模式,\n因為「%s」模式與當前模式不相容。 +warn.delete = 刪除Delete... +warn.delete.sketch = 確定要刪除程式嗎? +warn.delete.file = 確定要刪除檔案 "%s" 嗎? +warn.delete.sketch_file = 您確定要刪除「%s」嗎? +warn.delete.sketch_last = 為了保護您的檔案安全,Processing 不支援刪除整個程式素描本資料夾。\n請在檔案總管中開啟該資料夾進行刪除。 +warn.cannot_change_mode.title = 無法切換模式 +warn.cannot_change_mode.body = 無法切換模式,\n因為「%s」模式與當前模式不相容。 # --------------------------------------- # Update Check -update_check = 線上更新Update -update_check.updates_available.core = 線上更新時找到新版Processing\n你想要從Processing官網下載最新版嗎? -update_check.updates_available.contributions = 你安裝的第三方貢獻Contributions有線上更新\n你想要開啟Contribution Manager去線上更新嗎? +update_check = 線上更新Update +update_check.updates_available.core = 線上更新時找到新版Processing\n你想要從Processing官網下載最新版嗎? +update_check.updates_available.contributions = 你安裝的第三方貢獻Contributions有線上更新\n你想要開啟Contribution Manager去線上更新嗎? # --------------------------------------- # Color Chooser -color_chooser = 色彩選擇器(Color Selector) -color_chooser.select = 選擇(Select) +color_chooser = 色彩選擇器(Color Selector) +color_chooser.select = 選擇(Select) # --------------------------------------- # Movie Maker -movie_maker = 圖片建出影片(Movie Maker) +movie_maker = 圖片建出影片(Movie Maker) movie_maker.title = QuickTime Movie Maker -movie_maker.blurb = 這個工具可以從一堆連續的圖片, 製作出QuickTime影片。

為了避免圖片壓縮造成不連續小瑕疵,
請在Processing存圖時使用TIFF, TGA, PNG來當連續圖片。

使用TIFF 或TGA圖檔可以快速製作影片,但需要大量的硬碟空間:
saveFrame("frames/####.tif");可存TIFF圖檔
saveFrame("frames/####.tga");可存TGA圖檔

PNG圖檔會比較小,不過程式在執行時會比較慢:
saveFrame("frames/####.png");可存PNG圖檔

這裡使用的程式是使用QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
-movie_maker.image_folder_help_label = 可在檔案總管裡直接將image目錄drag拖曳到下面欄位: -movie_maker.choose_button = 手動選擇目錄Choose... +movie_maker.blurb = 這個工具可以從一堆連續的圖片, 製作出QuickTime影片。

為了避免圖片壓縮造成不連續小瑕疵,
請在Processing存圖時使用TIFF, TGA, PNG來當連續圖片。

使用TIFF 或TGA圖檔可以快速製作影片,但需要大量的硬碟空間:
saveFrame("frames/####.tif");可存TIFF圖檔
saveFrame("frames/####.tga");可存TGA圖檔

PNG圖檔會比較小,不過程式在執行時會比較慢:
saveFrame("frames/####.png");可存PNG圖檔

這裡使用的程式是使用QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = 可在檔案總管裡直接將image目錄drag拖曳到下面欄位: +movie_maker.choose_button = 手動選擇目錄Choose... movie_maker.select_image_folder = Select image folder... -movie_maker.sound_file_help_label = 可在檔案總管裡直接將sound檔案drag拖曳到下面欄位(.au, .aiff, .wav, .mp3): -movie_maker.select_sound_file = 請選擇一個sound聲音檔... - -movie_maker.create_movie_button = 開始製作影片Create movie... -movie_maker.save_dialog_prompt = 將影片存檔成Save movie as... -movie_maker.width = 寬度Width: -movie_maker.height = 高度Height -movie_maker.compression = 壓縮方式Compression: +movie_maker.sound_file_help_label = 可在檔案總管裡直接將sound檔案drag拖曳到下面欄位(.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = 請選擇一個sound聲音檔... + +movie_maker.create_movie_button = 開始製作影片Create movie... +movie_maker.save_dialog_prompt = 將影片存檔成Save movie as... +movie_maker.width = 寬度Width: +movie_maker.height = 高度Height +movie_maker.compression = 壓縮方式Compression: movie_maker.compression.animation = Animation movie_maker.compression.jpeg = JPEG movie_maker.compression.png = PNG -movie_maker.framerate = 每秒幾張圖Framerate: -movie_maker.orig_size_button = 影片size與圖片相同Same size as originals -movie_maker.orig_size_tooltip = 如果勾選,表示image目錄的圖檔已是影片要使用的長寬大小。 - -movie_maker.error.avoid_tiff = 有TIFF問題,請改用TGA或PNG圖檔。 -movie_maker.error.badnumbers = 欄位有問題,寬度Width、高度height必須是比0大的整數; 每秒framerate必須是比0大的數。 -movie_maker.error.cannot_read = 無法讀取 %s. -movie_maker.error.cannot_read_maybe_bad = 無法讀取 %s; 它可能已損壞。 -movie_maker.error.movie_failed = 製作QuickTime影片時失敗。 -movie_maker.error.need_input = 你必須要設定好image目錄、sound聲音檔案。 -movie_maker.error.no_images_found = 找不到image圖檔。 +movie_maker.framerate = 每秒幾張圖Framerate: +movie_maker.orig_size_button = 影片size與圖片相同Same size as originals +movie_maker.orig_size_tooltip = 如果勾選,表示image目錄的圖檔已是影片要使用的長寬大小。 + +movie_maker.error.avoid_tiff = 有TIFF問題,請改用TGA或PNG圖檔。 +movie_maker.error.badnumbers = 欄位有問題,寬度Width、高度height必須是比0大的整數; 每秒framerate必須是比0大的數。 +movie_maker.error.cannot_read = 無法讀取 %s. +movie_maker.error.cannot_read_maybe_bad = 無法讀取 %s; 它可能已損壞。 +movie_maker.error.movie_failed = 製作QuickTime影片時失敗。 +movie_maker.error.need_input = 你必須要設定好image目錄、sound聲音檔案。 +movie_maker.error.no_images_found = 找不到image圖檔。 movie_maker.error.sorry = Sorry -movie_maker.error.unknown_tga_format = 這個 .tga檔案的格式無法辨識%s +movie_maker.error.unknown_tga_format = 這個 .tga檔案的格式無法辨識%s -movie_maker.progress.creating_file_name = 製作中 %s -movie_maker.progress.creating_output_file = 製作output檔案中 -movie_maker.progress.initializing = 初始化Initializing... -movie_maker.progress.processing = 處理中Processing %s. +movie_maker.progress.creating_file_name = 製作中 %s +movie_maker.progress.creating_output_file = 製作output檔案中 +movie_maker.progress.initializing = 初始化Initializing... +movie_maker.progress.processing = 處理中Processing %s. diff --git a/java/build.gradle.kts b/java/build.gradle.kts index 0f8e052780..d2b74abc4f 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -24,6 +24,7 @@ sourceSets{ dependencies{ implementation(project(":app")) + implementation(project(":app:utils")) implementation(project(":core")) implementation(project(":java:preprocessor")) diff --git a/java/src/processing/mode/java/ASTUtils.java b/java/src/processing/mode/java/ASTUtils.java index bc57f1e45f..ad358cd94a 100644 --- a/java/src/processing/mode/java/ASTUtils.java +++ b/java/src/processing/mode/java/ASTUtils.java @@ -17,13 +17,13 @@ import java.util.List; import java.util.stream.IntStream; -import processing.app.Messages; +import processing.app.AppMessages; public class ASTUtils { public static ASTNode getASTNodeAt(ASTNode root, int startJavaOffset, int stopJavaOffset) { - Messages.log("* getASTNodeAt"); + AppMessages.log("* getASTNodeAt"); int length = stopJavaOffset - startJavaOffset; @@ -33,16 +33,16 @@ public static ASTNode getASTNodeAt(ASTNode root, int startJavaOffset, int stopJa node = f.getCoveringNode(); } if (node == null) { - Messages.log("no node found"); + AppMessages.log("no node found"); } else { - Messages.log("found " + node.getClass().getSimpleName()); + AppMessages.log("found " + node.getClass().getSimpleName()); } return node; } public static SimpleName getSimpleNameAt(ASTNode root, int startJavaOffset, int stopJavaOffset) { - Messages.log("* getSimpleNameAt"); + AppMessages.log("* getSimpleNameAt"); // Find node at offset ASTNode node = getASTNodeAt(root, startJavaOffset, stopJavaOffset); @@ -76,9 +76,9 @@ public static SimpleName getSimpleNameAt(ASTNode root, int startJavaOffset, int } if (result == null) { - Messages.log("no simple name found"); + AppMessages.log("no simple name found"); } else { - Messages.log("found " + node); + AppMessages.log("found " + node); } return result; } diff --git a/java/src/processing/mode/java/ASTViewer.java b/java/src/processing/mode/java/ASTViewer.java index d3f3728dea..c343db270f 100644 --- a/java/src/processing/mode/java/ASTViewer.java +++ b/java/src/processing/mode/java/ASTViewer.java @@ -19,7 +19,7 @@ import org.eclipse.jdt.core.dom.ASTVisitor; import org.eclipse.jdt.core.dom.CompilationUnit; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.ui.ZoomTreeCellRenderer; @@ -95,7 +95,7 @@ void dispose() { void buildAndUpdateTree(PreprocSketch ps) { CompilationUnit cu = ps.compilationUnit; if (cu.types().isEmpty()){ - Messages.err("No Type found in CU"); + AppMessages.err("No Type found in CU"); return; } diff --git a/java/src/processing/mode/java/Commander.java b/java/src/processing/mode/java/Commander.java index 2a2ee9bc0c..d74e3a3041 100644 --- a/java/src/processing/mode/java/Commander.java +++ b/java/src/processing/mode/java/Commander.java @@ -30,17 +30,16 @@ import processing.app.Base; import processing.app.Platform; -import processing.app.Preferences; import processing.app.RunnerListener; import processing.app.Sketch; import processing.mode.java.preproc.SketchException; -import processing.app.Util; +import processing.utils.Util; import processing.app.contrib.ModeContribution; import processing.core.PApplet; import processing.data.StringDict; import processing.mode.java.runner.Runner; - +import processing.utils.Preferences; /** * Class to handle running Processing from the command line. */ diff --git a/java/src/processing/mode/java/CompileErrorMessageSimplifier.java b/java/src/processing/mode/java/CompileErrorMessageSimplifier.java index 1fe4465251..c18c327b73 100644 --- a/java/src/processing/mode/java/CompileErrorMessageSimplifier.java +++ b/java/src/processing/mode/java/CompileErrorMessageSimplifier.java @@ -30,7 +30,7 @@ import org.eclipse.jdt.internal.compiler.problem.DefaultProblem; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.core.PApplet; import processing.data.StringList; @@ -57,7 +57,7 @@ private static void prepareConstantsList() { if (Modifier.isStatic(field.getModifiers())) try { if (DEBUG) { - Messages.log(field.getName() + " :" + field.get(null)); + AppMessages.log(field.getName() + " :" + field.get(null)); } Object val = field.get(null); if (val instanceof Integer) { @@ -69,7 +69,7 @@ private static void prepareConstantsList() { } } if (DEBUG) { - Messages.log("Total items: " + constantsMap.size()); + AppMessages.log("Total items: " + constantsMap.size()); } } @@ -91,13 +91,13 @@ public static String getSimplifiedErrorMessage(IProblem iprob, String badCode) { String[] args = iprob.getArguments(); if (DEBUG) { - Messages.log("Simplifying message: " + iprob.getMessage() + + AppMessages.log("Simplifying message: " + iprob.getMessage() + " ID: " + getIDName(iprob.getID())); - Messages.log("Arg count: " + args.length); + AppMessages.log("Arg count: " + args.length); for (String arg : args) { - Messages.log("Arg " + arg); + AppMessages.log("Arg " + arg); } - Messages.log("Bad code: " + badCode); + AppMessages.log("Bad code: " + badCode); } String result = null; @@ -292,7 +292,7 @@ public static String getSimplifiedErrorMessage(IProblem iprob, String badCode) { } if (DEBUG) { - Messages.log("Simplified Error Msg: " + result); + AppMessages.log("Simplified Error Msg: " + result); } return result; diff --git a/java/src/processing/mode/java/Compiler.java b/java/src/processing/mode/java/Compiler.java index 3e97931699..a94e0982c6 100644 --- a/java/src/processing/mode/java/Compiler.java +++ b/java/src/processing/mode/java/Compiler.java @@ -23,10 +23,10 @@ package processing.mode.java; -import processing.app.*; import processing.app.ui.Editor; import processing.core.*; import processing.mode.java.preproc.SketchException; +import processing.utils.Util; import java.io.*; import java.lang.reflect.Method; diff --git a/java/src/processing/mode/java/CompletionGenerator.java b/java/src/processing/mode/java/CompletionGenerator.java index 549bfc3aa0..7602c41d4e 100644 --- a/java/src/processing/mode/java/CompletionGenerator.java +++ b/java/src/processing/mode/java/CompletionGenerator.java @@ -56,7 +56,7 @@ import org.eclipse.jdt.core.dom.VariableDeclarationFragment; import org.eclipse.jdt.core.dom.VariableDeclarationStatement; -import processing.app.Messages; +import processing.app.AppMessages; import com.google.classpath.ClassPath; import com.google.classpath.RegExpResourceFilter; @@ -1376,7 +1376,7 @@ static private SimpleType extracTypeInfo(ASTNode node) { static Type extracTypeInfo2(ASTNode node) { - Messages.log("* extracTypeInfo2"); + AppMessages.log("* extracTypeInfo2"); if (node == null) return null; switch (node.getNodeType()) { @@ -1541,7 +1541,7 @@ else if (className.endsWith("Type")) static private void log(Object object) { - Messages.log(object == null ? "null" : object.toString()); + AppMessages.log(object == null ? "null" : object.toString()); } @@ -1569,7 +1569,7 @@ static private List trimCandidates(String newWord, List preparePredictions(final PreprocSketch ps, final String pdePhrase, final int lineNumber) { - Messages.log("* preparePredictions"); + AppMessages.log("* preparePredictions"); if (ps.compilationUnit.types().size() == 0) { return new ArrayList<>(); @@ -1635,7 +1635,7 @@ public List preparePredictions(final PreprocSketch ps, ASTNode testnode = parser.createAST(null); //Base.loge("PREDICTION PARSER PROBLEMS: " + parser); // Find closest ASTNode of the document to this word - Messages.err("Typed: " + phrase + "|" + " temp Node type: " + testnode.getClass().getSimpleName()); + AppMessages.err("Typed: " + phrase + "|" + " temp Node type: " + testnode.getClass().getSimpleName()); if(testnode instanceof MethodInvocation){ MethodInvocation mi = (MethodInvocation)testnode; log(mi.getName() + "," + mi.getExpression() + "," + mi.typeArguments().size()); @@ -1647,7 +1647,7 @@ public List preparePredictions(final PreprocSketch ps, // Make sure nearestNode is not NULL if couldn't find a closest node nearestNode = astRootNode; } - Messages.err(lineNumber + " Nearest ASTNode to PRED " + AppMessages.err(lineNumber + " Nearest ASTNode to PRED " + getNodeAsString(nearestNode)); candidates = new ArrayList<>(); @@ -1655,7 +1655,7 @@ public List preparePredictions(final PreprocSketch ps, // Determine the expression typed if (testnode instanceof SimpleName && !noCompare) { - Messages.err("One word expression " + getNodeAsString(testnode)); + AppMessages.err("One word expression " + getNodeAsString(testnode)); //==> Simple one word exprssion - so is just an identifier // Bottom up traversal of the AST to look for possible definitions at @@ -1735,7 +1735,7 @@ public List preparePredictions(final PreprocSketch ps, } else { // ==> Complex expression of type blah.blah2().doIt,etc // Have to resolve it by carefully traversing AST of testNode - Messages.err("Complex expression " + getNodeAsString(testnode)); + AppMessages.err("Complex expression " + getNodeAsString(testnode)); log("candidates empty"); ASTNode childExpr = getChildExpression(testnode); log("Parent expression : " + getParentExpression(testnode)); @@ -1766,7 +1766,7 @@ public List preparePredictions(final PreprocSketch ps, public static DefaultListModel filterPredictions(List candidates) { - Messages.log("* filterPredictions"); + AppMessages.log("* filterPredictions"); DefaultListModel defListModel = new DefaultListModel<>(); if (candidates.isEmpty()) return defListModel; diff --git a/java/src/processing/mode/java/CompletionPanel.java b/java/src/processing/mode/java/CompletionPanel.java index 2ba1eb29ef..c76865540b 100644 --- a/java/src/processing/mode/java/CompletionPanel.java +++ b/java/src/processing/mode/java/CompletionPanel.java @@ -41,8 +41,7 @@ import javax.swing.ListSelectionModel; import javax.swing.border.EmptyBorder; -import processing.app.Base; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Mode; import processing.app.syntax.JEditTextArea; import processing.app.ui.Theme; @@ -235,7 +234,7 @@ protected boolean insertSelection(int completionSource) { } JavaTextArea textArea = editor.getJavaTextArea(); - Messages.err(subWord + " <= sub word, Inserting suggestion=> " + + AppMessages.err(subWord + " <= sub word, Inserting suggestion=> " + selectedSuggestion + " Current sub: " + currentSubWord); if (currentSubWord.length() > 0) { textArea.getDocument().remove(caretPos - currentSubWordLen, @@ -287,7 +286,7 @@ private String fetchCurrentSubWord() { int x = ta.getCaretPosition() - ta.getLineStartOffset(line) - 1, x1 = x - 1; if (x >= s.length() || x < 0) return null; //TODO: Does this check cause problems? Verify. - Messages.log(" x char: " + s.charAt(x)); + AppMessages.log(" x char: " + s.charAt(x)); String word = String.valueOf(s.charAt(x)); if (s.trim().length() == 1) { @@ -418,11 +417,11 @@ public Component getListCellRendererComponent(JList list, Object value, break; default: - Messages.log("(CustomListRenderer)Unknown CompletionCandidate type " + cc.getType()); + AppMessages.log("(CustomListRenderer)Unknown CompletionCandidate type " + cc.getType()); break; } } else { - Messages.log("(CustomListRenderer)Unknown CompletionCandidate object " + value); + AppMessages.log("(CustomListRenderer)Unknown CompletionCandidate object " + value); } return label; } diff --git a/java/src/processing/mode/java/InspectMode.java b/java/src/processing/mode/java/InspectMode.java index 3e18a28b48..9d75f1c187 100644 --- a/java/src/processing/mode/java/InspectMode.java +++ b/java/src/processing/mode/java/InspectMode.java @@ -22,7 +22,7 @@ import org.eclipse.jdt.core.dom.VariableDeclaration; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Platform; @@ -149,20 +149,20 @@ private void handleInspect(PreprocSketch ps, int tabIndex, int offset) { SimpleName simpleName = getSimpleNameAt(root, javaOffset, javaOffset); if (simpleName == null) { - Messages.log("no simple name found at click location"); + AppMessages.log("no simple name found at click location"); return; } IBinding binding = resolveBinding(simpleName); if (binding == null) { - Messages.log("binding not resolved"); + AppMessages.log("binding not resolved"); return; } String key = binding.getKey(); ASTNode decl = ps.compilationUnit.findDeclaringNode(key); if (decl == null) { - Messages.log("decl not found, showing usage instead"); + AppMessages.log("decl not found, showing usage instead"); usage.findUsageAndUpdateTree(ps, binding); return; } @@ -174,14 +174,14 @@ private void handleInspect(PreprocSketch ps, int tabIndex, int offset) { case IBinding.VARIABLE: declName = ((VariableDeclaration) decl).getName(); break; } if (declName == null) { - Messages.log("decl name not found " + decl); + AppMessages.log("decl name not found " + decl); return; } if (declName.equals(simpleName)) { usage.findUsageAndUpdateTree(ps, binding); } else { - Messages.log("found declaration, offset " + decl.getStartPosition() + ", name: " + declName); + AppMessages.log("found declaration, offset " + decl.getStartPosition() + ", name: " + declName); SketchInterval si = ps.mapJavaToSketch(declName); if (!ps.inRange(si)) return; EventQueue.invokeLater(() -> { diff --git a/java/src/processing/mode/java/JavaBuild.java b/java/src/processing/mode/java/JavaBuild.java index aed0bc1327..c541a04cc7 100644 --- a/java/src/processing/mode/java/JavaBuild.java +++ b/java/src/processing/mode/java/JavaBuild.java @@ -47,6 +47,7 @@ import processing.mode.java.preproc.PdePreprocessor; import processing.mode.java.preproc.PreprocessorResult; import processing.mode.java.preproc.SketchException; +import processing.utils.Util; public class JavaBuild { @@ -577,7 +578,7 @@ protected boolean exportApplication() throws IOException, SketchException { // if name != exportSketchName, then that's weirdness // BUG unfortunately, that can also be a bug in the preproc :( if (!sketch.getMainName().equals(foundName)) { - Messages.showWarning("Error during export", + AppMessages.showWarning("Error during export", "Main tab is named " + sketch.getMainName() + " but the\n" + "sketch name in the code was " + foundName, null); return false; @@ -667,7 +668,7 @@ protected boolean exportApplication(File destFolder, boolean embedJava) throws IOException, SketchException { for (Library library : importedLibraries) { if (library.isUnsupported(exportVariant)) { - Messages.showWarning("Quibbles 'n Bits", + AppMessages.showWarning("Quibbles 'n Bits", "The application will not be exported for\n" + Platform.getSupportedVariants().get(exportVariant) + " because " + library.getName() + "\n" + diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 815792955d..fc20634595 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -29,7 +29,6 @@ import java.net.HttpURLConnection; import java.net.URL; import java.nio.file.Files; -import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -63,6 +62,9 @@ import processing.mode.java.tweak.SketchParser; import processing.mode.java.tweak.TweakClient; +import processing.utils.Util; +import processing.utils.Preferences; + public class JavaEditor extends Editor { JavaMode jmode; @@ -228,7 +230,7 @@ public JMenu buildFileMenu() { // weird for untitled sketches (that live in a temp folder) and // read-only sketches (that live in the examples folder). // TODO Better explanation? And some localization too. - Messages.showMessage("Save First", "Please first save the sketch."); + AppMessages.showMessage("Save First", "Please first save the sketch."); } else { handleExportApplication(); } @@ -237,7 +239,7 @@ public JMenu buildFileMenu() { var exportPDEZ = new JMenuItem(Language.text("menu.file.export_pdez")); exportPDEZ.addActionListener(e -> { if (sketch.isUntitled() || sketch.isReadOnly()) { - Messages.showMessage("Save First", "Please first save the sketch."); + AppMessages.showMessage("Save First", "Please first save the sketch."); } else { handleExportPDEZ(); } @@ -258,7 +260,7 @@ public JMenu buildSketchMenu() { JMenuItem stopItem = new JMenuItem(Language.text("menu.sketch.stop")); stopItem.addActionListener(e -> { if (isDebuggerEnabled()) { - Messages.log("Invoked 'Stop' menu item"); + AppMessages.log("Invoked 'Stop' menu item"); debugger.stopDebug(); } else { handleStop(); @@ -290,7 +292,7 @@ public JMenu buildHelpMenu() { try { new Welcome(base); } catch (IOException ioe) { - Messages.showWarning("Unwelcome Error", + AppMessages.showWarning("Unwelcome Error", "Please report this error to\n" + "https://github.com/processing/processing4/issues", ioe); } @@ -517,7 +519,7 @@ public void handleExportPDEZ() { try { Platform.deleteFile(target.toFile()); } catch (IOException e) { - Messages.showError("Export Error", "Could not delete existing file: " + target, e); + AppMessages.showError("Export Error", "Could not delete existing file: " + target, e); } } @@ -562,14 +564,14 @@ public void handleExportPDEZ() { protected boolean handleExportCheckModified() { if (sketch.isReadOnly()) { // if the files are read-only, need to first do a "save as". - Messages.showMessage(Language.text("export.messages.is_read_only"), + AppMessages.showMessage(Language.text("export.messages.is_read_only"), Language.text("export.messages.is_read_only.description")); return false; } // don't allow if untitled if (sketch.isUntitled()) { - Messages.showMessage(Language.text("export.messages.cannot_export"), + AppMessages.showMessage(Language.text("export.messages.cannot_export"), Language.text("export.messages.cannot_export.description")); return false; } @@ -627,7 +629,7 @@ public void handleTweak() { autoSave(); if (sketch.isModified()) { - Messages.showMessage(Language.text("menu.file.save"), + AppMessages.showMessage(Language.text("menu.file.save"), Language.text("tweak_mode.save_before_tweak")); return; } @@ -850,7 +852,7 @@ public void showReference(String name) { useReferenceServer = true; } catch (IOException e) { - Messages.showWarning("Reference Server Problem", "Error while starting the documentation server."); + AppMessages.showWarning("Reference Server Problem", "Error while starting the documentation server."); } } else { @@ -920,7 +922,7 @@ private void downloadReference() { // download canceled } catch (IOException e) { - Messages.showWarning("Error downloading reference", + AppMessages.showWarning("Error downloading reference", "Could not download the reference. Try again later.", e); } } @@ -1062,7 +1064,7 @@ protected void addBreakpointComments(String tabFilename) { // this method gets called twice when saving sketch for the first time // once with new name and another with old(causing NPE). Keep an eye out // for potential issues. See #2675. TODO: - Messages.err("Illegal tab name to addBreakpointComments() " + tabFilename); + AppMessages.err("Illegal tab name to addBreakpointComments() " + tabFilename); return; } List bps = debugger.getBreakpoints(tab.getFileName()); @@ -1085,7 +1087,7 @@ protected void addBreakpointComments(String tabFilename) { tab.setProgram(code); tab.save(); } catch (IOException ex) { - Messages.err(null, ex); + AppMessages.err(null, ex); } } @@ -1258,7 +1260,7 @@ protected void downloadImports() { for (AvailableContribution ac : installLibsHeaders) { libList.append("\n • ").append(ac.getName()); } - int option = Messages.showYesNoQuestion(this, + int option = AppMessages.showYesNoQuestion(this, Language.text("contrib.import.dialog.title"), Language.text("contrib.import.dialog.primary_text"), libList.toString()); @@ -1829,7 +1831,7 @@ private void showImportSuggestion(String[] list, int x, int y) { if (classList.getSelectedValue() != null) { try { String t = classList.getSelectedValue().trim(); - Messages.log(t); + AppMessages.log(t); int x1 = t.indexOf('('); String impString = "import " + t.substring(x1 + 1, t.indexOf(')')) + ";\n"; int ct = getSketch().getCurrentCodeIndex(); @@ -1837,7 +1839,7 @@ private void showImportSuggestion(String[] list, int x, int y) { getTextArea().getDocument().insertString(0, impString, null); getSketch().setCurrentCode(ct); } catch (BadLocationException ble) { - Messages.log("Failed to insert import"); + AppMessages.log("Failed to insert import"); ble.printStackTrace(); } } @@ -1875,7 +1877,7 @@ public void applyPreferences() { if (jmode != null) { jmode.loadPreferences(); - Messages.log("Applying prefs"); + AppMessages.log("Applying prefs"); // trigger it once to refresh UI //pdex.preferencesChanged(); errorChecker.preferencesChanged(); @@ -1913,7 +1915,7 @@ protected void stopTweakMode(List> handles) { if (modified) { // ask to keep the values - if (Messages.showYesNoQuestion(this, Language.text("tweak_mode"), + if (AppMessages.showYesNoQuestion(this, Language.text("tweak_mode"), Language.text("tweak_mode.keep_changes.line1"), Language.text("tweak_mode.keep_changes.line2")) == JOptionPane.YES_OPTION) { for (int i = 0; i < sketch.getCodeCount(); i++) { @@ -1939,7 +1941,7 @@ protected void stopTweakMode(List> handles) { try { sketch.save(); } catch (IOException e) { - Messages.showWarning("Error", "Could not save the modified sketch.", e); + AppMessages.showWarning("Error", "Could not save the modified sketch.", e); } // repaint the editor header (show the modified tabs) diff --git a/java/src/processing/mode/java/JavaMode.java b/java/src/processing/mode/java/JavaMode.java index ca448368eb..d5ffbef14b 100644 --- a/java/src/processing/mode/java/JavaMode.java +++ b/java/src/processing/mode/java/JavaMode.java @@ -37,6 +37,8 @@ import processing.mode.java.runner.Runner; import processing.mode.java.tweak.SketchParser; +import processing.utils.Preferences; + public class JavaMode extends Mode { @@ -256,7 +258,7 @@ static boolean checkSuggestion(String mapName, String impName) { public void loadPreferences() { - Messages.log("Load PDEX prefs"); + AppMessages.log("Load PDEX prefs"); errorCheckEnabled = Preferences.getBoolean(prefErrorCheck); warningsEnabled = Preferences.getBoolean(prefWarnings); @@ -275,7 +277,7 @@ public void loadPreferences() { public void savePreferences() { - Messages.log("Saving PDEX prefs"); + AppMessages.log("Saving PDEX prefs"); Preferences.setBoolean(prefErrorCheck, errorCheckEnabled); Preferences.setBoolean(prefWarnings, warningsEnabled); diff --git a/java/src/processing/mode/java/JavaTextArea.java b/java/src/processing/mode/java/JavaTextArea.java index ecab00eed1..be3b945a3a 100644 --- a/java/src/processing/mode/java/JavaTextArea.java +++ b/java/src/processing/mode/java/JavaTextArea.java @@ -33,7 +33,7 @@ import javax.swing.DefaultListModel; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Platform; import processing.app.syntax.PdeTextArea; import processing.app.syntax.TextAreaDefaults; @@ -84,7 +84,7 @@ public void processKeyEvent(KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { if (suggestion != null){ if (suggestion.isVisible()){ - Messages.log("ESC key"); + AppMessages.log("ESC key"); hideSuggestion(); evt.consume(); return; @@ -125,12 +125,12 @@ public void processKeyEvent(KeyEvent evt) { } break; case KeyEvent.VK_BACK_SPACE: - Messages.log("BK Key"); + AppMessages.log("BK Key"); break; case KeyEvent.VK_SPACE: if (suggestion != null) { if (suggestion.isVisible()) { - Messages.log("Space bar, hide completion list"); + AppMessages.log("Space bar, hide completion list"); suggestion.setInvisible(); } } @@ -156,7 +156,7 @@ private void processControlSpace(final KeyEvent event) { if (event.getKeyCode() == KeyEvent.VK_SPACE && event.isControlDown()) { // Provide completions only if it's enabled if (JavaMode.codeCompletionsEnabled) { - Messages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); + AppMessages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); fetchPhrase(); } } @@ -180,7 +180,7 @@ private void processCompletionKeys(final KeyEvent event) { } else if (keyChar == '.') { if (JavaMode.codeCompletionsEnabled) { - Messages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); + AppMessages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); fetchPhrase(); } } else if (keyChar == ' ') { // Trigger on Ctrl-Space @@ -191,7 +191,7 @@ private void processCompletionKeys(final KeyEvent event) { // Removed for https://github.com/processing/processing/issues/3847 //try { // getDocument().remove(getCaretPosition() - 1, 1); // Remove the typed space - Messages.log("[KeyEvent]" + event.getKeyChar() + " |Prediction started"); + AppMessages.log("[KeyEvent]" + event.getKeyChar() + " |Prediction started"); fetchPhrase(); //} catch (BadLocationException e) { // e.printStackTrace(); @@ -214,7 +214,7 @@ private void prepareSuggestions(final KeyEvent evt) { if (JavaMode.codeCompletionsEnabled && (JavaMode.ccTriggerEnabled || (suggestion != null && suggestion.isVisible()))) { - Messages.log("[KeyEvent]" + evt.getKeyChar() + " |Prediction started"); + AppMessages.log("[KeyEvent]" + evt.getKeyChar() + " |Prediction started"); fetchPhrase(); } } @@ -290,9 +290,9 @@ protected void fetchPhrase() { DefaultListModel defListModel = null; try { - Messages.log("phrase parse start"); + AppMessages.log("phrase parse start"); phrase = parsePhrase(text); - Messages.log("phrase: " + phrase); + AppMessages.log("phrase: " + phrase); if (phrase != null) { List candidates; @@ -308,7 +308,7 @@ protected void fetchPhrase() { if (candidates != null && !candidates.isEmpty()) { Collections.sort(candidates); defListModel = CompletionGenerator.filterPredictions(candidates); - Messages.log("Got: " + candidates.size() + " candidates, " + defListModel.size() + " filtered"); + AppMessages.log("Got: " + candidates.size() + " candidates, " + defListModel.size() + " filtered"); } } @@ -321,12 +321,12 @@ protected void fetchPhrase() { suggestionRunning = false; if (suggestionRequested) { - Messages.log("completion invalidated"); + AppMessages.log("completion invalidated"); fetchPhrase(); return; } - Messages.log("completion finishing"); + AppMessages.log("completion finishing"); if (finalDefListModel != null) { showSuggestion(finalDefListModel, finalPhrase); @@ -335,7 +335,7 @@ protected void fetchPhrase() { } }); } catch (Exception e) { - Messages.err("error while preparing suggestions", e); + AppMessages.err("error while preparing suggestions", e); } }); } @@ -493,7 +493,7 @@ public static String parsePhrase(final String lineText) { // Extract phrase String phrase = lineText.substring(position).trim(); - Messages.log(phrase); + AppMessages.log(phrase); if (phrase.length() == 0 || Character.isDigit(phrase.charAt(0))) { return null; // Can't suggest for numbers or empty phrases @@ -525,7 +525,7 @@ protected void showSuggestion(DefaultListModel listModel, S e.printStackTrace(); } } else { - Messages.log("TextArea: No suggestions to show."); + AppMessages.log("TextArea: No suggestions to show."); } } diff --git a/java/src/processing/mode/java/PreprocService.java b/java/src/processing/mode/java/PreprocService.java index 4f91505613..07bb3cf139 100644 --- a/java/src/processing/mode/java/PreprocService.java +++ b/java/src/processing/mode/java/PreprocService.java @@ -53,10 +53,10 @@ import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.dom.FileASTRequestor; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.Sketch; import processing.app.SketchCode; -import processing.app.Util; +import processing.utils.Util; import processing.mode.java.preproc.*; import processing.mode.java.preproc.TextTransform.OffsetMapper; import processing.data.IntList; @@ -117,7 +117,7 @@ private void mainLoop() { running = true; PreprocSketch prevResult = null; CompletableFuture runningCallbacks = null; - Messages.log("Hi!"); + AppMessages.log("Hi!"); while (running) { try { try { @@ -127,7 +127,7 @@ private void mainLoop() { break; } - Messages.log("Starting"); + AppMessages.log("Starting"); prevResult = preprocessSketch(prevResult); @@ -143,15 +143,15 @@ private void mainLoop() { synchronized (requestLock) { if (requestQueue.isEmpty()) { runningCallbacks = lastCallback; - Messages.log("Done"); + AppMessages.log("Done"); preprocessingTask.complete(prevResult); } } } catch (Exception e) { - Messages.err("problem in preprocessor service loop", e); + AppMessages.err("problem in preprocessor service loop", e); } } - Messages.log("Bye!"); + AppMessages.log("Bye!"); } /** @@ -188,7 +188,7 @@ public void notifySketchChanged() { * Indicate to this service that the sketch libraries have changed. */ public void notifyLibrariesChanged() { - Messages.log("notified libraries changed"); + AppMessages.log("notified libraries changed"); librariesChanged.set(true); notifySketchChanged(); } @@ -197,7 +197,7 @@ public void notifyLibrariesChanged() { * Indicate to this service that the folder housing sketch code has changed. */ public void notifyCodeFolderChanged() { - Messages.log("notified code folder changed"); + AppMessages.log("notified code folder changed"); codeFolderChanged.set(true); notifySketchChanged(); } @@ -216,7 +216,7 @@ private CompletableFuture registerCallback(Consumer callback) .thenAcceptBothAsync(lastCallback, (ps, a) -> callback.accept(ps)) // Make sure exception in callback won't cancel whole callback chain .handleAsync((res, e) -> { - if (e != null) Messages.err("exception in callback", e); + if (e != null) AppMessages.err("exception in callback", e); return res; }); return lastCallback; @@ -304,7 +304,7 @@ private void fireListeners(PreprocSketch ps) { try { listener.accept(ps); } catch (Exception e) { - Messages.err("error when firing preprocessing listener", e); + AppMessages.err("error when firing preprocessing listener", e); } } } diff --git a/java/src/processing/mode/java/RuntimePathBuilder.java b/java/src/processing/mode/java/RuntimePathBuilder.java index f60471e0af..408de3aa73 100644 --- a/java/src/processing/mode/java/RuntimePathBuilder.java +++ b/java/src/processing/mode/java/RuntimePathBuilder.java @@ -38,6 +38,7 @@ import processing.app.*; import processing.mode.java.preproc.ImportStatement; +import processing.utils.Util; /** @@ -321,7 +322,7 @@ private void prepareSketchClassPath(PreprocSketch.Builder result, JavaMode mode, try { return Paths.get(path).toUri().toURL(); } catch (MalformedURLException e) { - Messages.err("malformed URL when preparing sketch classloader", e); + AppMessages.err("malformed URL when preparing sketch classloader", e); return null; } }) diff --git a/java/src/processing/mode/java/debug/ArrayFieldNode.java b/java/src/processing/mode/java/debug/ArrayFieldNode.java index ef9fbc55d2..f95a0f8d30 100644 --- a/java/src/processing/mode/java/debug/ArrayFieldNode.java +++ b/java/src/processing/mode/java/debug/ArrayFieldNode.java @@ -26,7 +26,7 @@ import com.sun.jdi.InvalidTypeException; import com.sun.jdi.Value; -import processing.app.Messages; +import processing.app.AppMessages; /** * Specialized {@link VariableNode} for representing single fields in an array. @@ -53,7 +53,7 @@ public void setValue(Value value) { try { array.setValue(index, value); } catch (InvalidTypeException | ClassNotLoadedException ex) { - Messages.err(null, ex); + AppMessages.err(null, ex); } this.value = value; } diff --git a/java/src/processing/mode/java/debug/Debugger.java b/java/src/processing/mode/java/debug/Debugger.java index 0136793200..be4191a7cd 100644 --- a/java/src/processing/mode/java/debug/Debugger.java +++ b/java/src/processing/mode/java/debug/Debugger.java @@ -46,7 +46,7 @@ import javax.swing.tree.DefaultMutableTreeNode; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.RunnerListenerEdtAdapter; import processing.app.Sketch; import processing.app.SketchCode; @@ -177,7 +177,7 @@ public void actionPerformed(ActionEvent e) { Toolkit.newJMenuItem(Language.text("menu.debug.toggle_breakpoint"), 'B'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Messages.log("Invoked 'Toggle Breakpoint' menu item"); + AppMessages.log("Invoked 'Toggle Breakpoint' menu item"); // TODO wouldn't getCaretLine() do the same thing with less effort? //toggleBreakpoint(editor.getCurrentLineID().lineIdx()); toggleBreakpoint(editor.getTextArea().getCaretLine()); @@ -375,7 +375,7 @@ public synchronized void startDebug() { public synchronized void stopDebug() { inspector.lock(); if (runtime != null) { - Messages.log("closing runtime"); + AppMessages.log("closing runtime"); for (LineBreakpoint bp : breakpoints) { bp.detach(); @@ -1538,24 +1538,24 @@ protected void stopTrackingLineChanges() { private void log(String msg, Object... args) { if (args != null && args.length != 0) { - Messages.logf(getClass().getName() + " " + msg, args); + AppMessages.logf(getClass().getName() + " " + msg, args); } else { - Messages.log(getClass().getName() + " " + msg); + AppMessages.log(getClass().getName() + " " + msg); } } private void loge(String msg, Throwable t) { if (t != null) { - Messages.err(getClass().getName() + " " + msg, t); + AppMessages.err(getClass().getName() + " " + msg, t); } else { - Messages.err(getClass().getName() + " " + msg); + AppMessages.err(getClass().getName() + " " + msg); } } static private void logitse(Throwable t) { - Messages.err("incompatible thread state?", t); + AppMessages.err("incompatible thread state?", t); } @@ -1605,9 +1605,9 @@ public void run() { // for (Event e : eventSet) { System.out.println("VM Event: " + e.toString()); } } } catch (VMDisconnectedException e) { - Messages.log("VMEventReader quit on VM disconnect"); + AppMessages.log("VMEventReader quit on VM disconnect"); } catch (Exception e) { - Messages.err("VMEventReader quit", e); + AppMessages.err("VMEventReader quit", e); } } } diff --git a/java/src/processing/mode/java/debug/FieldNode.java b/java/src/processing/mode/java/debug/FieldNode.java index 70b85054d6..c4f48ea8ed 100644 --- a/java/src/processing/mode/java/debug/FieldNode.java +++ b/java/src/processing/mode/java/debug/FieldNode.java @@ -27,7 +27,7 @@ import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; -import processing.app.Messages; +import processing.app.AppMessages; /** @@ -56,9 +56,9 @@ public void setValue(Value value) { try { obj.setValue(field, value); } catch (InvalidTypeException ite) { - Messages.err(null, ite); + AppMessages.err(null, ite); } catch (ClassNotLoadedException cnle) { - Messages.err(null, cnle); + AppMessages.err(null, cnle); } this.value = value; } diff --git a/java/src/processing/mode/java/debug/LineBreakpoint.java b/java/src/processing/mode/java/debug/LineBreakpoint.java index e7327446f5..d5e4d48ab0 100644 --- a/java/src/processing/mode/java/debug/LineBreakpoint.java +++ b/java/src/processing/mode/java/debug/LineBreakpoint.java @@ -23,7 +23,7 @@ import java.util.List; -import processing.app.Messages; +import processing.app.AppMessages; import com.sun.jdi.AbsentInformationException; import com.sun.jdi.Location; @@ -58,7 +58,7 @@ public LineBreakpoint(LineID line, Debugger dbg) { this.dbg = dbg; this.className = className(); set(); // activate the breakpoint (show highlight, attach if debugger is running) - Messages.log("LBP Created " + toString() + " class: " + this.className); + AppMessages.log("LBP Created " + toString() + " class: " + this.className); } @@ -131,7 +131,7 @@ protected boolean attach(ReferenceType theClass) { log("attached breakpoint to " + line + " -> " + javaLine); return true; } catch (AbsentInformationException ex) { - Messages.err(null, ex); + AppMessages.err(null, ex); } return false; } @@ -246,9 +246,9 @@ static public String parseTopLevelClassName(String name) { private void log(String msg, Object... args) { if (args != null && args.length != 0) { - Messages.logf(getClass().getName() + " " + msg, args); + AppMessages.logf(getClass().getName() + " " + msg, args); } else { - Messages.log(getClass().getName() + " " + msg); + AppMessages.log(getClass().getName() + " " + msg); } } } diff --git a/java/src/processing/mode/java/debug/LineID.java b/java/src/processing/mode/java/debug/LineID.java index 34b0711a81..22d6328367 100644 --- a/java/src/processing/mode/java/debug/LineID.java +++ b/java/src/processing/mode/java/debug/LineID.java @@ -31,7 +31,7 @@ import javax.swing.text.Element; import javax.swing.text.Position; -import processing.app.Messages; +import processing.app.AppMessages; /** @@ -151,7 +151,7 @@ public synchronized void startTracking(Document doc) { this.doc = doc; doc.addDocumentListener(this); } catch (BadLocationException ex) { - Messages.err(null, ex); + AppMessages.err(null, ex); pos = null; this.doc = null; } diff --git a/java/src/processing/mode/java/debug/LocalVariableNode.java b/java/src/processing/mode/java/debug/LocalVariableNode.java index 5b97ba82a5..6829cca9a5 100644 --- a/java/src/processing/mode/java/debug/LocalVariableNode.java +++ b/java/src/processing/mode/java/debug/LocalVariableNode.java @@ -27,7 +27,7 @@ import com.sun.jdi.StackFrame; import com.sun.jdi.Value; -import processing.app.Messages; +import processing.app.AppMessages; /** @@ -52,7 +52,7 @@ public void setValue(Value value) { try { frame.setValue(var, value); } catch (InvalidTypeException | ClassNotLoadedException ex) { - Messages.err(null, ex); + AppMessages.err(null, ex); } this.value = value; } diff --git a/java/src/processing/mode/java/debug/VariableInspector.java b/java/src/processing/mode/java/debug/VariableInspector.java index 619e4d47ba..a58a630c97 100644 --- a/java/src/processing/mode/java/debug/VariableInspector.java +++ b/java/src/processing/mode/java/debug/VariableInspector.java @@ -37,7 +37,7 @@ import com.sun.jdi.Value; import processing.app.Language; -import processing.app.Messages; +import processing.app.AppMessages; import processing.app.ui.Toolkit; import processing.mode.java.JavaEditor; @@ -271,12 +271,12 @@ public void setValueFor(Object o, int i, Object o1) { break; } } catch (NumberFormatException ex) { - Messages.log(getClass().getName() + " invalid value entered for " + + AppMessages.log(getClass().getName() + " invalid value entered for " + var.getName() + " -> " + stringValue); } if (value != null) { var.setValue(value); - Messages.log(getClass().getName() + " new value set: " + var.getStringValue()); + AppMessages.log(getClass().getName() + " new value set: " + var.getStringValue()); } } diff --git a/java/src/processing/mode/java/lsp/PdeAdapter.java b/java/src/processing/mode/java/lsp/PdeAdapter.java index f4f1f450d2..6b0fc2bd53 100644 --- a/java/src/processing/mode/java/lsp/PdeAdapter.java +++ b/java/src/processing/mode/java/lsp/PdeAdapter.java @@ -32,7 +32,6 @@ import processing.app.Base; import processing.app.contrib.ModeContribution; import processing.app.Platform; -import processing.app.Preferences; import processing.app.Problem; import processing.app.Sketch; import processing.app.SketchCode; @@ -45,6 +44,8 @@ import processing.mode.java.PreprocService; import processing.mode.java.PreprocSketch; +import processing.utils.Preferences; + import static java.util.Arrays.copyOfRange; class PdeAdapter { diff --git a/java/src/processing/mode/java/runner/Runner.java b/java/src/processing/mode/java/runner/Runner.java index b4dc517707..ea3dae03ec 100644 --- a/java/src/processing/mode/java/runner/Runner.java +++ b/java/src/processing/mode/java/runner/Runner.java @@ -45,6 +45,8 @@ import com.sun.jdi.request.*; import processing.mode.java.preproc.SketchException; +import processing.utils.Preferences; + /** * Runs a compiled sketch. As of release 0136, all sketches are run externally @@ -253,19 +255,19 @@ public boolean launchVirtualMachine(boolean present, String[] args) { // while (!available) { while (true) { try { - Messages.log("attempting to attach to VM"); + AppMessages.log("attempting to attach to VM"); synchronized (cancelLock) { vm = connector.attach(arguments); if (cancelled && vm != null) { // cancelled and connected to the VM, handle closing now - Messages.log("aborting, launch cancelled"); + AppMessages.log("aborting, launch cancelled"); close(); return false; } } // vm = connector.attach(arguments); if (vm != null) { - Messages.log("attached to the VM"); + AppMessages.log("attached to the VM"); // generateTrace(); // available = true; return true; @@ -273,17 +275,17 @@ public boolean launchVirtualMachine(boolean present, String[] args) { } catch (ConnectException ce) { // This will fire ConnectException (socket not available) until // the VM finishes starting up and opens its socket for us. - Messages.log("socket for VM not ready"); + AppMessages.log("socket for VM not ready"); // System.out.println("waiting"); // e.printStackTrace(); try { Thread.sleep(100); } catch (InterruptedException ie) { - Messages.err("interrupted", ie); + AppMessages.err("interrupted", ie); // ie.printStackTrace(sketchErr); } } catch (IOException e) { - Messages.err("while attaching to VM", e); + AppMessages.err("while attaching to VM", e); } } // } catch (IOException exc) { @@ -540,7 +542,7 @@ protected void launchJava(final String[] args) { if (errorStrings != null && errorStrings.length > 1) { if (errorStrings[0].contains("Invalid maximum heap size")) { - Messages.showWarning("Way Too High", + AppMessages.showWarning("Way Too High", "Please lower the value for \u201Cmaximum available memory\u201D in the\n" + "Preferences window. For more information, read Help \u2192 Troubleshooting.", null); } else { @@ -691,7 +693,7 @@ protected Connector findConnector(String connectorName) { return connector; } } - Messages.showError("Compiler Error", + AppMessages.showError("Compiler Error", "findConnector() failed to find " + connectorName + " inside Runner", null); return null; // Not reachable diff --git a/settings.gradle.kts b/settings.gradle.kts index 4bdcd880e8..7eacb06877 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,6 +3,7 @@ include( "core", "core:examples", "app", + "app:utils", "java", "java:preprocessor", "java:libraries:dxf", From 50766f406aa7feaaa5f925919b8b47eeab11216d Mon Sep 17 00:00:00 2001 From: Ahmed Maged Date: Tue, 3 Jun 2025 14:35:46 +0200 Subject: [PATCH 2/5] fix corrupted PDE.properties --- build/shared/lib/languages/PDE.properties | 2 +- build/shared/lib/languages/PDE_ar.properties | 876 ++++++++--------- build/shared/lib/languages/PDE_ca.properties | 2 +- build/shared/lib/languages/PDE_de.properties | 2 +- build/shared/lib/languages/PDE_el.properties | 2 +- build/shared/lib/languages/PDE_es.properties | 2 +- build/shared/lib/languages/PDE_fr.properties | 2 +- build/shared/lib/languages/PDE_it.properties | 2 +- build/shared/lib/languages/PDE_ja.properties | 2 +- build/shared/lib/languages/PDE_ko.properties | 2 +- build/shared/lib/languages/PDE_nl.properties | 2 +- build/shared/lib/languages/PDE_pt.properties | 2 +- build/shared/lib/languages/PDE_ru.properties | 902 ++++++++--------- build/shared/lib/languages/PDE_tr.properties | 2 +- build/shared/lib/languages/PDE_uk.properties | 928 +++++++++--------- .../shared/lib/languages/PDE_zh-CN.properties | 388 ++++---- .../shared/lib/languages/PDE_zh-TW.properties | 538 +++++----- 17 files changed, 1828 insertions(+), 1828 deletions(-) diff --git a/build/shared/lib/languages/PDE.properties b/build/shared/lib/languages/PDE.properties index e26137c8f4..9d03f33c08 100644 --- a/build/shared/lib/languages/PDE.properties +++ b/build/shared/lib/languages/PDE.properties @@ -197,7 +197,7 @@ save.btn.dont_save = Don’t Save # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Save changes to %s? -# AppPreferences (Frame) +# Preferences (Frame) preferences = Preferences preferences.button.width = 80 preferences.restart_required = Restart Processing to apply changes diff --git a/build/shared/lib/languages/PDE_ar.properties b/build/shared/lib/languages/PDE_ar.properties index 3e66aafa18..8f15db5c39 100644 --- a/build/shared/lib/languages/PDE_ar.properties +++ b/build/shared/lib/languages/PDE_ar.properties @@ -1,7 +1,7 @@  # --------------------------------------- -# Language: Arabic (ar) | العربية +# Language: Arabic (ar) | العربية # --------------------------------------- @@ -15,120 +15,120 @@ font.family.mono = Monospaced # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = ملف -menu.file.new = جديد -menu.file.open = افتح... -menu.file.recent = فتح من الملفات الأخيرة -menu.file.sketchbook = دفتر المخطوطات... -menu.file.sketchbook.empty = دفتر مخطوطات فارغ -menu.file.examples = أمثلة... -menu.file.close = إغلاق -menu.file.save = حفظ -menu.file.save_as = حفظ ك... -menu.file.export_application = تصدير التطبيق... -menu.file.page_setup = إعدادات الصفحة -menu.file.print = طباعة -menu.file.preferences = إعدادات... -menu.file.quit = خروج +menu.file = ملف +menu.file.new = جديد +menu.file.open = افتح... +menu.file.recent = فتح من الملفات الأخيرة +menu.file.sketchbook = دفتر المخطوطات... +menu.file.sketchbook.empty = دفتر مخطوطات فارغ +menu.file.examples = أمثلة... +menu.file.close = إغلاق +menu.file.save = حفظ +menu.file.save_as = حفظ ك... +menu.file.export_application = تصدير التطبيق... +menu.file.page_setup = إعدادات الصفحة +menu.file.print = طباعة +menu.file.preferences = إعدادات... +menu.file.quit = خروج # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = تعديل -menu.edit.undo = تراجع -menu.edit.redo = إعادة -menu.edit.action.addition = إضافة -menu.edit.action.deletion = حذف -menu.edit.cut = قص -menu.edit.copy = نسخ -menu.edit.copy_as_html = نسخ ك HTML -menu.edit.paste = لصق -menu.edit.select_all = تحديد الكل -menu.edit.auto_format = فرمتة تلقائية -menu.edit.comment_uncomment = تعليق/إلغاء التعليق -menu.edit.increase_indent = زيادة المسافة البادئة → -menu.edit.decrease_indent = انقاص المسافة البادئة ← -menu.edit.find = بحث... -menu.edit.find_next = النتيجة التالية -menu.edit.find_previous = النتيجة السابقة -menu.edit.use_selection_for_find = ابحث عن المحدد +menu.edit = تعديل +menu.edit.undo = تراجع +menu.edit.redo = إعادة +menu.edit.action.addition = إضافة +menu.edit.action.deletion = حذف +menu.edit.cut = قص +menu.edit.copy = نسخ +menu.edit.copy_as_html = نسخ ك HTML +menu.edit.paste = لصق +menu.edit.select_all = تحديد الكل +menu.edit.auto_format = فرمتة تلقائية +menu.edit.comment_uncomment = تعليق/إلغاء التعليق +menu.edit.increase_indent = زيادة المسافة البادئة → +menu.edit.decrease_indent = انقاص المسافة البادئة ← +menu.edit.find = بحث... +menu.edit.find_next = النتيجة التالية +menu.edit.find_previous = النتيجة السابقة +menu.edit.use_selection_for_find = ابحث عن المحدد # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = تشغيل -menu.sketch.present = تقديم -menu.sketch.tweak = تعديل -menu.sketch.stop = إيقاف +menu.sketch.run = تشغيل +menu.sketch.present = تقديم +menu.sketch.tweak = تعديل +menu.sketch.stop = إيقاف # --- -menu.library = استيراد مكتبة... -menu.library.add_library = إضافة مكتبة... -menu.library.contributed = مساهمات -menu.library.no_core_libraries = لا يوجد مكتبات أساسية لهذا الوضع +menu.library = استيراد مكتبة... +menu.library.add_library = إضافة مكتبة... +menu.library.contributed = مساهمات +menu.library.no_core_libraries = لا يوجد مكتبات أساسية لهذا الوضع # --- -menu.sketch = المخطوط -menu.sketch.show_sketch_folder = إظهار ملف المخطوطات -menu.sketch.add_file = إضافة ملف.. +menu.sketch = المخطوط +menu.sketch.show_sketch_folder = إظهار ملف المخطوطات +menu.sketch.add_file = إضافة ملف.. # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = تنقيح -menu.debug.enable = تفعيل أداة التنقيح -menu.debug.disable = تعطيل أداة التنقيح -#menu.debug.show_debug_toolbar = إظهار شريط أدواة التنقيح -#menu.debug.debug = تنقيح -#menu.debug.stop = توقف +menu.debug = تنقيح +menu.debug.enable = تفعيل أداة التنقيح +menu.debug.disable = تعطيل أداة التنقيح +#menu.debug.show_debug_toolbar = إظهار شريط أدواة التنقيح +#menu.debug.debug = تنقيح +#menu.debug.stop = توقف # --- -menu.debug.toggle_breakpoint = تبديل حالة نقطة الوقوف -#menu.debug.list_breakpoints = قائمة نقاط الوقوف +menu.debug.toggle_breakpoint = تبديل حالة نقطة الوقوف +#menu.debug.list_breakpoints = قائمة نقاط الوقوف # --- # used for both menus and toolbars -menu.debug.step = تقدم -menu.debug.step_into = تقدم إلى الأمام -menu.debug.step_out = تقدم إلى الخلف -menu.debug.continue = استمر +menu.debug.step = تقدم +menu.debug.step_into = تقدم إلى الأمام +menu.debug.step_out = تقدم إلى الخلف +menu.debug.continue = استمر # --- -#menu.debug.print_stack_trace = طباعة أثر المكدس -#menu.debug.print_locals = طباعة المتغيرات المحلية -#menu.debug.print_fields = طباعة الحقول -#menu.debug.print_source_location = طباعة مكان المصدر -#menu.debug.print_threads = طباعة شرط التعليمات +#menu.debug.print_stack_trace = طباعة أثر المكدس +#menu.debug.print_locals = طباعة المتغيرات المحلية +#menu.debug.print_fields = طباعة الحقول +#menu.debug.print_source_location = طباعة مكان المصدر +#menu.debug.print_threads = طباعة شرط التعليمات # --- -#menu.debug.variable_inspector = مظهر المتغيرات -menu.debug.show_variables = إظهار المتغيرات -menu.debug.hide_variables = إخفاء المتغيرات -#menu.debug.show_sketch_outline = إظهار موجز المخطوط -#menu.debug.show_tabs_list = إظهار قائمة علامات التبويب +#menu.debug.variable_inspector = مظهر المتغيرات +menu.debug.show_variables = إظهار المتغيرات +menu.debug.hide_variables = إخفاء المتغيرات +#menu.debug.show_sketch_outline = إظهار موجز المخطوط +#menu.debug.show_tabs_list = إظهار قائمة علامات التبويب # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = أدوات -menu.tools.color_selector = أداة اختيار الألوان... -menu.tools.create_font = أداة صناعة الخطوط -menu.tools.archive_sketch = أرشفة المخطوط -menu.tools.fix_the_serial_lbrary = إصلاح مكتبة الاتصالات التسلسلية -menu.tools.install_processing_java = تثبيت"processing-java" -menu.tools.add_tool = أضف أداة +menu.tools = أدوات +menu.tools.color_selector = أداة اختيار الألوان... +menu.tools.create_font = أداة صناعة الخطوط +menu.tools.archive_sketch = أرشفة المخطوط +menu.tools.fix_the_serial_lbrary = إصلاح مكتبة الاتصالات التسلسلية +menu.tools.install_processing_java = تثبيت"processing-java" +menu.tools.add_tool = أضف أداة # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = مساعدة -menu.help.welcome = مرحباً بكم في Processing -menu.help.about = عن Processing -menu.help.environment = البيئة -menu.help.reference = مراجع -menu.help.find_in_reference = إبحث في مرجع -menu.help.libraries_reference = مرجع المكتبات -menu.help.tools_reference = مرجع الأدوات -menu.help.empty = (فارغ) -menu.help.online = متصل -menu.help.getting_started = البدء +menu.help = مساعدة +menu.help.welcome = مرحباً بكم في Processing +menu.help.about = عن Processing +menu.help.environment = البيئة +menu.help.reference = مراجع +menu.help.find_in_reference = إبحث في مرجع +menu.help.libraries_reference = مرجع المكتبات +menu.help.tools_reference = مرجع الأدوات +menu.help.empty = (فارغ) +menu.help.online = متصل +menu.help.getting_started = البدء # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = اكتشاف الأخطاء وإصلاحها +menu.help.troubleshooting = اكتشاف الأخطاء وإصلاحها # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = الأسئلة الشائعة +menu.help.faq = الأسئلة الشائعة # menu.help.faq.url = http://wiki.processing.org/w/FAQ -menu.help.foundation = Processing مؤسسة +menu.help.foundation = Processing مؤسسة # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = Processing.org زيارة +menu.help.visit = Processing.org زيارة # menu.help.visit.url = http://processing.org/ @@ -136,462 +136,462 @@ menu.help.visit = Processing.org زيارة # Basics # Buttons -prompt.yes = نعم -prompt.no = لا -prompt.cancel = إلغاء -prompt.ok = موافق -prompt.browse = تصفح -prompt.export = تصدير +prompt.yes = نعم +prompt.no = لا +prompt.cancel = إلغاء +prompt.ok = موافق +prompt.browse = تصفح +prompt.export = تصدير # --------------------------------------- # Frames # Open (Frame) -open = فتح مخطوط بروسسنج... +open = فتح مخطوط بروسسنج... # Save (Frame) -save = حفظ ملف المخطوطات ك... -save.title = هل تريد حفظ التغييرات على %s قبل الإغلاق؟ -save.hint = في حال عدم الحفظ, ستفقد كل التغييرات على الملف -save.btn.save = حفظ -save.btn.dont_save = عدم الحفظ +save = حفظ ملف المخطوطات ك... +save.title = هل تريد حفظ التغييرات على %s قبل الإغلاق؟ +save.hint = في حال عدم الحفظ, ستفقد كل التغييرات على الملف +save.btn.save = حفظ +save.btn.dont_save = عدم الحفظ # Close (Frame) also used to prompt on non-macOS machines -close.unsaved_changes = ؟%s هل تريد حفظ التغييرات على +close.unsaved_changes = ؟%s هل تريد حفظ التغييرات على -# AppPreferences (Frame) -preferences = الإعدادات +# Preferences (Frame) +preferences = الإعدادات preferences.button.width = 80 -preferences.requires_restart = تلزم إعادة تشغيل Processing -preferences.sketchbook_location = موقع دفتر المخطوطات -preferences.sketchbook_location.popup = موقع دفتر المخطوطات -preferences.language = اللغة -preferences.editor_and_console_font = خط المحرر ووحدة الأوامر -preferences.editor_and_console_font.tip = .اختر خطاً لاستخدامه في المحرر ووحدة الأوامر.
يمكن استخدام الخطوط ذات الفراغات الموحدة فقط -preferences.editor_font_size = حجم خط المحرر -preferences.console_font_size = حجم خط وحدة الأوامر -preferences.zoom = حجم الواجهة -preferences.zoom.auto = تلقائي -preferences.background_color = لون الخلفية خلال وضعية التقديم -preferences.background_color.tip = اختر لون خلفية لاستخدامها في وضعية التقديم.
وضعية التقديم تقوم بعرض المخطوطة على ملء الشاشة.
يمكن تشغيل وضعية التقديم من نافذة المخطوط. -preferences.use_smooth_text = استخدام خط سلس في نافذة المحرر -preferences.enable_complex_text_input = تفعيل وضعية الإدخال المعقدة -preferences.enable_complex_text_input_example = يقصد هنا اللغة اليابانية -preferences.continuously_check = تحقق من الأخطاء بشكل دائم -preferences.show_warnings = أظهر التحذيرات -preferences.code_completion = إكمال شفرة المصدر باستخدام -preferences.trigger_with = تفعيل باستخدام -preferences.cmd_space = فراغ -preferences.suggest_imports = اقتراح أوامر استيراد المكتبات -preferences.increase_max_memory = زيادة الذاكرة المتاحة إلى -preferences.delete_previous_folder_on_export = حذف الملف السابق بعد التصدير -preferences.check_for_updates_on_startup = السماح بالبحث التلقائي عن التحديثات (راجع الأسئلة الشائعة لتفاصيل عن المعلومات المشاركة) -preferences.run_sketches_on_display = تشغيل المخطوط على الشاشة. -preferences.run_sketches_on_display.tip = لتحديد الشاشة التي ستستخدم لعرض المخطوط.
كالعادة, إذا تم تحريك النافذة, سيعاد فتحها في المرة القادمة
في نفس هذا المكان. لكن في حال تشغيل المخطوط في وضعية
العرض (الشاشة الملئة), سيتم استخدام هذه الشاشة المحددة للعرض. -preferences.automatically_associate_pde_files = تلقائياً مع بروسسنج .pde ربط الملفات بلاحقة -preferences.launch_programs_in = بدء البرنامج في -preferences.launch_programs_in.mode = الوضع -preferences.file = يمكن تعديل المزيد من الإعدادات في الملف -preferences.file.hint = قم بالتعديل عندما يكون Processing غير مفعل +preferences.requires_restart = تلزم إعادة تشغيل Processing +preferences.sketchbook_location = موقع دفتر المخطوطات +preferences.sketchbook_location.popup = موقع دفتر المخطوطات +preferences.language = اللغة +preferences.editor_and_console_font = خط المحرر ووحدة الأوامر +preferences.editor_and_console_font.tip = .اختر خطاً لاستخدامه في المحرر ووحدة الأوامر.
يمكن استخدام الخطوط ذات الفراغات الموحدة فقط +preferences.editor_font_size = حجم خط المحرر +preferences.console_font_size = حجم خط وحدة الأوامر +preferences.zoom = حجم الواجهة +preferences.zoom.auto = تلقائي +preferences.background_color = لون الخلفية خلال وضعية التقديم +preferences.background_color.tip = اختر لون خلفية لاستخدامها في وضعية التقديم.
وضعية التقديم تقوم بعرض المخطوطة على ملء الشاشة.
يمكن تشغيل وضعية التقديم من نافذة المخطوط. +preferences.use_smooth_text = استخدام خط سلس في نافذة المحرر +preferences.enable_complex_text_input = تفعيل وضعية الإدخال المعقدة +preferences.enable_complex_text_input_example = يقصد هنا اللغة اليابانية +preferences.continuously_check = تحقق من الأخطاء بشكل دائم +preferences.show_warnings = أظهر التحذيرات +preferences.code_completion = إكمال شفرة المصدر باستخدام +preferences.trigger_with = تفعيل باستخدام +preferences.cmd_space = فراغ +preferences.suggest_imports = اقتراح أوامر استيراد المكتبات +preferences.increase_max_memory = زيادة الذاكرة المتاحة إلى +preferences.delete_previous_folder_on_export = حذف الملف السابق بعد التصدير +preferences.check_for_updates_on_startup = السماح بالبحث التلقائي عن التحديثات (راجع الأسئلة الشائعة لتفاصيل عن المعلومات المشاركة) +preferences.run_sketches_on_display = تشغيل المخطوط على الشاشة. +preferences.run_sketches_on_display.tip = لتحديد الشاشة التي ستستخدم لعرض المخطوط.
كالعادة, إذا تم تحريك النافذة, سيعاد فتحها في المرة القادمة
في نفس هذا المكان. لكن في حال تشغيل المخطوط في وضعية
العرض (الشاشة الملئة), سيتم استخدام هذه الشاشة المحددة للعرض. +preferences.automatically_associate_pde_files = تلقائياً مع بروسسنج .pde ربط الملفات بلاحقة +preferences.launch_programs_in = بدء البرنامج في +preferences.launch_programs_in.mode = الوضع +preferences.file = يمكن تعديل المزيد من الإعدادات في الملف +preferences.file.hint = قم بالتعديل عندما يكون Processing غير مفعل # Sketchbook Location (Frame) -sketchbook_location = اختر مكان جديد لكتاب المخطوطات +sketchbook_location = اختر مكان جديد لكتاب المخطوطات # Sketchbook (Frame) -sketchbook = كتاب مخطوطات -sketchbook.tree = كتاب مخطوطات +sketchbook = كتاب مخطوطات +sketchbook.tree = كتاب مخطوطات # Examples (Frame) -examples.title = أمثلة %s -examples.add_examples = أضف أمثلة... -examples.libraries = المكتبات المشاركة -examples.core_libraries = المكتبات -examples.contributed = الأمثلة المشاركة +examples.title = أمثلة %s +examples.add_examples = أضف أمثلة... +examples.libraries = المكتبات المشاركة +examples.core_libraries = المكتبات +examples.contributed = الأمثلة المشاركة # Export (Frame) -export = خيارات التصدير -export.platforms = المنصات -export.options = الخيارات -export.options.present = وضعية التقديم -export.options.show_stop_button = إظهار زر التوقف -export.description.line1 = خيار "التصدير إلى تطبيق" ينتج برامج قابلة للتنفيذ, -export.description.line2 = برنامج منفصل لمنصات محددة. -export.unsaved_changes = حفظ التغييرات قبل التصدير؟ -export.notice.cancel.unsaved_changes = تم إلغاء التصدير. يجب حفظ التغييرات أولاً. -export.notice.exporting = يتم تصدير التطبيق -export.notice.exporting.done = تم التصدير. -export.notice.exporting.error = حصل خطأ خلال التصدير. -export.notice.exporting.cancel = تم إلغاء عملية التصدير. -export.tooltip.macos = macOS متاح فقط على macOS التصدير ل -export.full_screen = ملء الشاشة -export.embed_java = تضمين جافا -export.code_signing = توقيع الشفرة المصدرية -export.messages.is_read_only = هذا المخطوط للقراءة فقط -export.messages.is_read_only.description = بعض الملفات محددة ك "للقراءة فقط", \nستحتاج لإعادة حفظ المخطوطات في مكان آخر, \nوالمحاولة لاحقاً. -export.messages.cannot_export = لا يمكن التصدير -export.messages.cannot_export.description = لا يمكنك تصدير مخطوط لم يحفظ بعد. +export = خيارات التصدير +export.platforms = المنصات +export.options = الخيارات +export.options.present = وضعية التقديم +export.options.show_stop_button = إظهار زر التوقف +export.description.line1 = خيار "التصدير إلى تطبيق" ينتج برامج قابلة للتنفيذ, +export.description.line2 = برنامج منفصل لمنصات محددة. +export.unsaved_changes = حفظ التغييرات قبل التصدير؟ +export.notice.cancel.unsaved_changes = تم إلغاء التصدير. يجب حفظ التغييرات أولاً. +export.notice.exporting = يتم تصدير التطبيق +export.notice.exporting.done = تم التصدير. +export.notice.exporting.error = حصل خطأ خلال التصدير. +export.notice.exporting.cancel = تم إلغاء عملية التصدير. +export.tooltip.macos = macOS متاح فقط على macOS التصدير ل +export.full_screen = ملء الشاشة +export.embed_java = تضمين جافا +export.code_signing = توقيع الشفرة المصدرية +export.messages.is_read_only = هذا المخطوط للقراءة فقط +export.messages.is_read_only.description = بعض الملفات محددة ك "للقراءة فقط", \nستحتاج لإعادة حفظ المخطوطات في مكان آخر, \nوالمحاولة لاحقاً. +export.messages.cannot_export = لا يمكن التصدير +export.messages.cannot_export.description = لا يمكنك تصدير مخطوط لم يحفظ بعد. # Find (Frame) -find = البحث -find.find = ابحث عن: -find.replace_with = استبدل ب: -find.ignore_case = تجاهل الحالة (لا يلزم للغة العربية) -find.all_tabs = جميع علامات التبويب -find.wrap_around = طي النص حول -find.btn.replace_all = استبدال الكل -find.btn.replace = استبدال -find.btn.replace_and_find = استبدال وبحث -find.btn.previous = سابق -find.btn.find = ابحث +find = البحث +find.find = ابحث عن: +find.replace_with = استبدل ب: +find.ignore_case = تجاهل الحالة (لا يلزم للغة العربية) +find.all_tabs = جميع علامات التبويب +find.wrap_around = طي النص حول +find.btn.replace_all = استبدال الكل +find.btn.replace = استبدال +find.btn.replace_and_find = استبدال وبحث +find.btn.previous = سابق +find.btn.find = ابحث # Find in reference (Frame) -find_in_reference = البحث في المرجع +find_in_reference = البحث في المرجع # File (Frame) -file = اختر صورة أو ملفات بيانات أخرى ليتم نسخها إلى مخطوطتك +file = اختر صورة أو ملفات بيانات أخرى ليتم نسخها إلى مخطوطتك # Create Font (Frame) -create_font = اصنع خط جديد -create_font.label = استخدم هذه الأداة لتوليد خطوط لبرنامحك. \nاختر الخط والحجم المطلوب, وانقر على موافق لتوليد الخط. \nستتم إضافة الخط إلى ملف البيانات الخاص بالمخطوط الحالي. -create_font.size = الحجم -create_font.smooth = سلس -create_font.characters = الأحرف... -create_font.character_selector = أداة اختيار الأحرف -create_font.character_selector.label = الرموز الافتراضية ستتضمن أغلب الأشكال اللاتينية اللازمة لنظم تشغيل وينودوز وماك. \nتضمين جميع الرموز سيتطلب مساحة ذاكرة أكبر. \nلمزيد من التحكم, يمكنك اختيار أقسام معينة من تشفير يونيكود. -create_font.default_characters = الأحرف الافتراضية -create_font.all_characters = كل الأحرف -create_font.specific_unicode = مجموعات يونيكود محددة -create_font.filename = اسم الملف +create_font = اصنع خط جديد +create_font.label = استخدم هذه الأداة لتوليد خطوط لبرنامحك. \nاختر الخط والحجم المطلوب, وانقر على موافق لتوليد الخط. \nستتم إضافة الخط إلى ملف البيانات الخاص بالمخطوط الحالي. +create_font.size = الحجم +create_font.smooth = سلس +create_font.characters = الأحرف... +create_font.character_selector = أداة اختيار الأحرف +create_font.character_selector.label = الرموز الافتراضية ستتضمن أغلب الأشكال اللاتينية اللازمة لنظم تشغيل وينودوز وماك. \nتضمين جميع الرموز سيتطلب مساحة ذاكرة أكبر. \nلمزيد من التحكم, يمكنك اختيار أقسام معينة من تشفير يونيكود. +create_font.default_characters = الأحرف الافتراضية +create_font.all_characters = كل الأحرف +create_font.specific_unicode = مجموعات يونيكود محددة +create_font.filename = اسم الملف # Color Selector (Frame) -color_selector = أداة اختيار الألوان +color_selector = أداة اختيار الألوان # Archive Sketch (Frame) -archive_sketch = أرشف المخطوط بإسم... +archive_sketch = أرشف المخطوط بإسم... # Tweak Mode -tweak_mode = وضع التعديل -tweak_mode.save_before_tweak = يرجى حفظ التغييرات قبل تفعيل وضع التعديل. -tweak_mode.keep_changes.line1 = هل تريد اللإبقاء على التغييرات؟ -tweak_mode.keep_changes.line2 = لقد تم تغيير بعض القيم في مخطوطتك. هل تريد حفظ التغييرات؟ +tweak_mode = وضع التعديل +tweak_mode.save_before_tweak = يرجى حفظ التغييرات قبل تفعيل وضع التعديل. +tweak_mode.keep_changes.line1 = هل تريد اللإبقاء على التغييرات؟ +tweak_mode.keep_changes.line2 = لقد تم تغيير بعض القيم في مخطوطتك. هل تريد حفظ التغييرات؟ # DebugTray -debugger.name = الإسم -debugger.value = القيمة -debugger.type = النوع +debugger.name = الإسم +debugger.value = القيمة +debugger.type = النوع # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = تشغيل -toolbar.present = عرض -toolbar.stop = توقف -toolbar.debug = تنقيح +toolbar.run = تشغيل +toolbar.present = عرض +toolbar.stop = توقف +toolbar.debug = تنقيح # --- -toolbar.new = جديد -toolbar.open = فتح -toolbar.save = حفظ -# toolbar.export_application = تصدير التطبيق -toolbar.add_mode = إضافة وضع جديد... +toolbar.new = جديد +toolbar.open = فتح +toolbar.save = حفظ +# toolbar.export_application = تصدير التطبيق +toolbar.add_mode = إضافة وضع جديد... # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] -#toolbar.debug.continue = الاستمرار -#toolbar.debug.step = خطوة -#toolbar.debug.step_into = تقدم نحو -#toolbar.debug.stop = توقف -#toolbar.debug.toggle_breakpoints = تبديل حالة نقطة التوقف -#toolbar.debug.variable_inspector = مظهر المتغيرات +#toolbar.debug.continue = الاستمرار +#toolbar.debug.step = خطوة +#toolbar.debug.step_into = تقدم نحو +#toolbar.debug.stop = توقف +#toolbar.debug.toggle_breakpoints = تبديل حالة نقطة التوقف +#toolbar.debug.variable_inspector = مظهر المتغيرات # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = علامة تبويب حديدة -editor.header.rename = إعادة تسمية -editor.header.delete = حذف -editor.header.previous_tab = علامة التبويب السابقة -editor.header.next_tab = علامة التبويب اللاحقة -editor.header.delete.warning.title = هممم, لا. -editor.header.delete.warning.text = لا يمكنك حذف علامة التبويت الخاصة بالمخطوط الوحيد المفتوح. +editor.header.new_tab = علامة تبويب حديدة +editor.header.rename = إعادة تسمية +editor.header.delete = حذف +editor.header.previous_tab = علامة التبويب السابقة +editor.header.next_tab = علامة التبويب اللاحقة +editor.header.delete.warning.title = هممم, لا. +editor.header.delete.warning.text = لا يمكنك حذف علامة التبويت الخاصة بالمخطوط الوحيد المفتوح. # PopUp menu -editor.popup.jump_to_declaration = القفز إلى التعريف. -editor.popup.show_usage = أظهر الاستخدام -editor.popup.rename = إعادة تسمية +editor.popup.jump_to_declaration = القفز إلى التعريف. +editor.popup.show_usage = أظهر الاستخدام +editor.popup.rename = إعادة تسمية # Tabs -editor.tab.new = إسم جديد -editor.tab.new.description = إسم الملف الجديد -editor.tab.rename = إسم جديد -editor.tab.rename.description = إسم الملف الجديد +editor.tab.new = إسم جديد +editor.tab.new.description = إسم الملف الجديد +editor.tab.rename = إسم جديد +editor.tab.rename.description = إسم الملف الجديد # Sketch -editor.sketch.rename.description = إسم المخطوط الجديد - -editor.status.autoformat.no_changes = لم تلزم أية تغييرات من الفرمتة التلقائية -editor.status.autoformat.finished = إنتهت الفرمتة التلقائية. -editor.status.find_reference.select_word_first = اختر كلمة ليتم البحث عنها. -editor.status.find_reference.not_available = تعذر العثور على "%s" في المراجع. -editor.status.drag_and_drop.files_added.0 = لم تتم إضافة أية مخطوطات إلى الملف. -editor.status.drag_and_drop.files_added.1 = تم إضافة ملف واحد إلى المخطوط -editor.status.drag_and_drop.files_added.n = تم إضافة %d ملف إلى المخطوط. -editor.status.saving = يتم الحفظ... -editor.status.saving.done = تم الحفظ... -editor.status.saving.canceled = تم إلغاء الحفظ. -editor.status.printing = تتم الطباعة... -editor.status.printing.done = تمت الطباعة. -editor.status.printing.error = حدث خطأ خلال الطباعة. -editor.status.printing.canceled = تم إلغاء الطباعة. -editor.status.copy_as_html = تم نسخ شفرة مصدرية بتشفير HTML إلى لوح المقصوصات. -editor.status.debug.busy = أداة التنقيح مشغولة. -editor.status.debug.halt = أداة التنقيح متوقفة. -editor.status.archiver.create = ."%s" تم إنشاء الأرشيف -editor.status.archiver.cancel = تم إلغاء أرشفة المخطوط. +editor.sketch.rename.description = إسم المخطوط الجديد + +editor.status.autoformat.no_changes = لم تلزم أية تغييرات من الفرمتة التلقائية +editor.status.autoformat.finished = إنتهت الفرمتة التلقائية. +editor.status.find_reference.select_word_first = اختر كلمة ليتم البحث عنها. +editor.status.find_reference.not_available = تعذر العثور على "%s" في المراجع. +editor.status.drag_and_drop.files_added.0 = لم تتم إضافة أية مخطوطات إلى الملف. +editor.status.drag_and_drop.files_added.1 = تم إضافة ملف واحد إلى المخطوط +editor.status.drag_and_drop.files_added.n = تم إضافة %d ملف إلى المخطوط. +editor.status.saving = يتم الحفظ... +editor.status.saving.done = تم الحفظ... +editor.status.saving.canceled = تم إلغاء الحفظ. +editor.status.printing = تتم الطباعة... +editor.status.printing.done = تمت الطباعة. +editor.status.printing.error = حدث خطأ خلال الطباعة. +editor.status.printing.canceled = تم إلغاء الطباعة. +editor.status.copy_as_html = تم نسخ شفرة مصدرية بتشفير HTML إلى لوح المقصوصات. +editor.status.debug.busy = أداة التنقيح مشغولة. +editor.status.debug.halt = أداة التنقيح متوقفة. +editor.status.archiver.create = ."%s" تم إنشاء الأرشيف +editor.status.archiver.cancel = تم إلغاء أرشفة المخطوط. # Errors -editor.status.warning = تحذير -editor.status.error = خطأ -editor.status.error_on = "%s" خطأ في -editor.status.missing.default = "%c" ينقص -editor.status.missing.semicolon = ";" تنقص فاصلة منقوطة -editor.status.missing.left_sq_bracket = يوجد قوص مربع يساري ناقص "[" -editor.status.missing.right_sq_bracket = يوجد قوص مربع يميني ناقص "]" -editor.status.missing.left_paren = يوجد قوص يساري ناقص "(" -editor.status.missing.right_paren = يوجد قوص يميني ناقص ")" -editor.status.missing.left_curly_bracket = يوجد قوص مجعد يساري ناقص "{" -editor.status.missing.right_curly_bracket = يوجد قوص مجعد يميني ناقص "}" -editor.status.missing.add = قد تحتاج لإضافة "%s" -editor.status.reserved_words = "color" و "int" من الكلمات المحجوزة ولا يمكن استخدامهما كأسماء متغيرات -editor.status.undefined_method = الدالة "%s(%s)" غير معرفة -editor.status.undefined_constructor = الباني "%s(%s)" غير معرف -editor.status.empty_param = الدالة "%s()" لا تحتاج لأية معطيات -editor.status.wrong_param = "%s(%s)" الدالة "%s()" تحتاج معطيات بشكل -editor.status.undef_global_var = المتغير العالمي "%s" غير موجود -editor.status.undef_class = الصنف "%s" غير موجود -editor.status.undef_var = المتغير "%s" غير موجود -editor.status.undef_name = تعذر العثور على الإسم "%s" -editor.status.type_mismatch = الأنواع غير متطابقة. "%s" لا يطابق "%s". -editor.status.unused_variable = قيمة المتغير المحلي "%s" غير مستخدمة -editor.status.uninitialized_variable = لم يتم تعريف المتغير المحلي "%s" -editor.status.no_effect_assignment = الإسناد للمتغير "%s" ليس لديه أي مفعول -editor.status.hiding_enclosing_type = لا يمكن أن يكون إسم الصنف "%s" كإسم المخطوط أو إسم الصنف المحتوي +editor.status.warning = تحذير +editor.status.error = خطأ +editor.status.error_on = "%s" خطأ في +editor.status.missing.default = "%c" ينقص +editor.status.missing.semicolon = ";" تنقص فاصلة منقوطة +editor.status.missing.left_sq_bracket = يوجد قوص مربع يساري ناقص "[" +editor.status.missing.right_sq_bracket = يوجد قوص مربع يميني ناقص "]" +editor.status.missing.left_paren = يوجد قوص يساري ناقص "(" +editor.status.missing.right_paren = يوجد قوص يميني ناقص ")" +editor.status.missing.left_curly_bracket = يوجد قوص مجعد يساري ناقص "{" +editor.status.missing.right_curly_bracket = يوجد قوص مجعد يميني ناقص "}" +editor.status.missing.add = قد تحتاج لإضافة "%s" +editor.status.reserved_words = "color" و "int" من الكلمات المحجوزة ولا يمكن استخدامهما كأسماء متغيرات +editor.status.undefined_method = الدالة "%s(%s)" غير معرفة +editor.status.undefined_constructor = الباني "%s(%s)" غير معرف +editor.status.empty_param = الدالة "%s()" لا تحتاج لأية معطيات +editor.status.wrong_param = "%s(%s)" الدالة "%s()" تحتاج معطيات بشكل +editor.status.undef_global_var = المتغير العالمي "%s" غير موجود +editor.status.undef_class = الصنف "%s" غير موجود +editor.status.undef_var = المتغير "%s" غير موجود +editor.status.undef_name = تعذر العثور على الإسم "%s" +editor.status.type_mismatch = الأنواع غير متطابقة. "%s" لا يطابق "%s". +editor.status.unused_variable = قيمة المتغير المحلي "%s" غير مستخدمة +editor.status.uninitialized_variable = لم يتم تعريف المتغير المحلي "%s" +editor.status.no_effect_assignment = الإسناد للمتغير "%s" ليس لديه أي مفعول +editor.status.hiding_enclosing_type = لا يمكن أن يكون إسم الصنف "%s" كإسم المخطوط أو إسم الصنف المحتوي # Limited syntax error support, Wikipedia CC BY-SA -editor.status.error.syntax = خطأ قواعدي - %s +editor.status.error.syntax = خطأ قواعدي - %s # Footer buttons -editor.footer.errors = أخطاء -editor.footer.errors.problem = مشاكل -editor.footer.errors.tab = علامات تبويب -editor.footer.errors.line = سطر -editor.footer.console = لوحة أوامر +editor.footer.errors = أخطاء +editor.footer.errors.problem = مشاكل +editor.footer.errors.tab = علامات تبويب +editor.footer.errors.line = سطر +editor.footer.console = لوحة أوامر # New handler -new.messages.is_read_only = المخطوط للقراءة فقط. -new.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +new.messages.is_read_only = المخطوط للقراءة فقط. +new.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. # Rename handler -rename.messages.is_untitled = المخطوط غير مسمى -rename.messages.is_untitled.description = ألا تريد حفظ المخطوط قبل إعادة التسمية؟ -rename.messages.is_modified = يرجى حفظ المخطوط قبل إعادة التسمية. -rename.messages.is_read_only = المخطوط للقراءة فقط. -rename.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +rename.messages.is_untitled = المخطوط غير مسمى +rename.messages.is_untitled.description = ألا تريد حفظ المخطوط قبل إعادة التسمية؟ +rename.messages.is_modified = يرجى حفظ المخطوط قبل إعادة التسمية. +rename.messages.is_read_only = المخطوط للقراءة فقط. +rename.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. # Naming handler -name.messages.problem_renaming = حدثت مشكلة خلال إعادة التسمية -name.messages.starts_with_dot.description = لا يمكن أن يبدأ الإسم بنقطة. -name.messages.invalid_extension.description = اللاحقة ".%s" غير صالحة -name.messages.main_java_extension.description = .%s علامة التبويب الأولى لا يمكن أن تكون لملف من نوع -name.messages.new_sketch_exists = لا -name.messages.new_sketch_exists.description = يوجد ملف بإسم "%s" في المكان المستهدف "%s" نفسه -name.messages.new_folder_exists = لا يمكن إعادة التسمية -name.messages.new_folder_exists.description = عفواً, يوجد ملف (أو مجلد) بنفس الإسم "%s" من قبل. -name.messages.error = خطأ -name.messages.no_rename_folder.description = تعذرت إعادة تسمية ملف المخطوطات -name.messages.no_rename_file.description = تعذرت إعادة تسمية "%s" إلى "%s". -name.messages.no_create_file.description = تعذر استحداث الملف "%s"\nفي "%s" +name.messages.problem_renaming = حدثت مشكلة خلال إعادة التسمية +name.messages.starts_with_dot.description = لا يمكن أن يبدأ الإسم بنقطة. +name.messages.invalid_extension.description = اللاحقة ".%s" غير صالحة +name.messages.main_java_extension.description = .%s علامة التبويب الأولى لا يمكن أن تكون لملف من نوع +name.messages.new_sketch_exists = لا +name.messages.new_sketch_exists.description = يوجد ملف بإسم "%s" في المكان المستهدف "%s" نفسه +name.messages.new_folder_exists = لا يمكن إعادة التسمية +name.messages.new_folder_exists.description = عفواً, يوجد ملف (أو مجلد) بنفس الإسم "%s" من قبل. +name.messages.error = خطأ +name.messages.no_rename_folder.description = تعذرت إعادة تسمية ملف المخطوطات +name.messages.no_rename_file.description = تعذرت إعادة تسمية "%s" إلى "%s". +name.messages.no_create_file.description = تعذر استحداث الملف "%s"\nفي "%s" # Delete handler -delete.messages.cannot_delete = لا يمكن الحذف -delete.messages.cannot_delete.description = لا يمكنك حذف مخطوط قبل حفظه -delete.messages.cannot_delete.file = لم أستطع فعل هذا -delete.messages.cannot_delete.file.description = تعذر الحذف -delete.messages.is_read_only = المخطوط للقراءة فقط. -delete.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +delete.messages.cannot_delete = لا يمكن الحذف +delete.messages.cannot_delete.description = لا يمكنك حذف مخطوط قبل حفظه +delete.messages.cannot_delete.file = لم أستطع فعل هذا +delete.messages.cannot_delete.file.description = تعذر الحذف +delete.messages.is_read_only = المخطوط للقراءة فقط. +delete.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. # Save handler -save_file.messages.is_read_only = المخطوط للقراءة فقط. -save_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر. -save_file.messages.sketch_exists = تعذر الحفظ -save_file.messages.sketch_exists.description = يوجد ملف بإسم “%s” سلفاُ. -save_file.messages.tab_exists = نوب -save_file.messages.tab_exists.description = تعذر حفظ المخطوط بإسم "%s" ,لأن المخطوط فيه علامة تبويب بهذا الإسم حالياً. -save_file.messages.recursive_save = نوب نوب نوب -save_file.messages.recursive_save.description = لا يمكنك حفظ مخطوط في ملف داخل نفسه, هذا سيحدث العديد من المشاكل. +save_file.messages.is_read_only = المخطوط للقراءة فقط. +save_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر. +save_file.messages.sketch_exists = تعذر الحفظ +save_file.messages.sketch_exists.description = يوجد ملف بإسم “%s” سلفاُ. +save_file.messages.tab_exists = نوب +save_file.messages.tab_exists.description = تعذر حفظ المخطوط بإسم "%s" ,لأن المخطوط فيه علامة تبويب بهذا الإسم حالياً. +save_file.messages.recursive_save = نوب نوب نوب +save_file.messages.recursive_save.description = لا يمكنك حفظ مخطوط في ملف داخل نفسه, هذا سيحدث العديد من المشاكل. # Add handler -add_file.messages.is_read_only = المخطوط للقراءة فقط. -add_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. -add_file.messages.confirm_replace = هل تريد استبدال النسخة الحالية من %s؟ -add_file.messages.error_adding = حدث خطأ خلال إضافة الملف -add_file.messages.cannot_delete.description = تعذر حذف ملف '%s' -add_file.messages.cannot_add.description = فشلت إضافة '%s' إلى المخطوط -add_file.messages.same_file = لا يمكنك خداعي -add_file.messages.same_file.description = تم سابقاُ نسخ هذا الملف إلى نفس المكان المستهدف. +add_file.messages.is_read_only = المخطوط للقراءة فقط. +add_file.messages.is_read_only.description = بعض الملفات للقراءة فقط. ستحتاج \nلإعادة حفظ الملف في مكان آخر, \nثم المحاولة لاحقاً. +add_file.messages.confirm_replace = هل تريد استبدال النسخة الحالية من %s؟ +add_file.messages.error_adding = حدث خطأ خلال إضافة الملف +add_file.messages.cannot_delete.description = تعذر حذف ملف '%s' +add_file.messages.cannot_add.description = فشلت إضافة '%s' إلى المخطوط +add_file.messages.same_file = لا يمكنك خداعي +add_file.messages.same_file.description = تم سابقاُ نسخ هذا الملف إلى نفس المكان المستهدف. # Temp folder creator -temp_dir.messages.bad_build_folder = ملف بناء المخطوط غير صالح -temp_dir.messages.bad_build_folder.description = تعذر العثور على مكان لبناء المخطوط. +temp_dir.messages.bad_build_folder = ملف بناء المخطوط غير صالح +temp_dir.messages.bad_build_folder.description = تعذر العثور على مكان لبناء المخطوط. # Ensure Existance -ensure_exist.messages.missing_sketch = اختفى المخطوط -ensure_exist.messages.missing_sketch.description = تعذر العثور على ملف المخطوط. \nسيتم إعادة حفظ المخطوط في نفس المكان المحدد, \nلكن كل شيء عدا الشفرة المصدرية سيضيع. -ensure_exist.messages.unrecoverable = تعذرت إعادة الحفظ -ensure_exist.messages.unrecoverable.description = تعذرت إعادة حفظ المخطوط. لتجنب خسارة كل جهد حياتك على هذا الملف, \nقم بنسخ الشفرة المصدرية ولصقها في محرر نصوص آخر, إحتياطاً. +ensure_exist.messages.missing_sketch = اختفى المخطوط +ensure_exist.messages.missing_sketch.description = تعذر العثور على ملف المخطوط. \nسيتم إعادة حفظ المخطوط في نفس المكان المحدد, \nلكن كل شيء عدا الشفرة المصدرية سيضيع. +ensure_exist.messages.unrecoverable = تعذرت إعادة الحفظ +ensure_exist.messages.unrecoverable.description = تعذرت إعادة حفظ المخطوط. لتجنب خسارة كل جهد حياتك على هذا الملف, \nقم بنسخ الشفرة المصدرية ولصقها في محرر نصوص آخر, إحتياطاً. # Check name -check_name.messages.is_name_modified = يجب تعديل اسم المخطوط. يمكن أن تحتوي الأسماء على \nرموز وأرقام بتشفير ASCII (بشرط أن لا تبدأ برقم). \nيجب أن يكون طول الإسم أقل من 64 رمزاً. +check_name.messages.is_name_modified = يجب تعديل اسم المخطوط. يمكن أن تحتوي الأسماء على \nرموز وأرقام بتشفير ASCII (بشرط أن لا تبدأ برقم). \nيجب أن يكون طول الإسم أقل من 64 رمزاً. # --------------------------------------- # Contributions # Contribution Panel -contrib = مدير المشاركات -contrib.manager_title.update = مدير التحديثات -contrib.manager_title.mode = مدير الأوضاع -contrib.manager_title.tool = مدير الأدوات -contrib.manager_title.library = مدير المكتبات -contrib.manager_title.examples = مدير الأمثلة -contrib.category = الفئة: -contrib.filter_your_search = فلترة نتائج البحث.. -contrib.show_only_compatible.mode = إظهار الأوضاع المتوافقة فقط. -contrib.show_only_compatible.tool = إظهار الأدوات المتوافقة فقط. -contrib.show_only_compatible.library = إظهار المكتبات المتوافقة فقط. -contrib.show_only_compatible.examples = إظهار الأمثلة المتوافقة فقط. -contrib.show_only_compatible.update = إظهار التحديثات المتوافقة فقط. -contrib.restart = إعادة تشغيل Processing -contrib.unsaved_changes = يوجد تغييرات غير محفوظة -contrib.unsaved_changes.prompt = هل انت متأكد انك تريد إعادة تشغيل البرنامج قبل حفظ التغييرات أولاً؟ -contrib.messages.remove_restart = يرجى إعادة تشغيل البرنامح لإنهاء حذف هذا العنصر. -contrib.messages.install_restart = يرجى إعادة تشغيل البرنامح لإنهاء تثبيت هذا العنصر. -contrib.messages.update_restart = يرجى إعادة تشغيل البرنامح لإنهاء تحديث هذا العنصر. -contrib.errors.list_download = فشل تحميل قائمة المشاركات المتوفرة. -contrib.errors.list_download.timeout = حدث خطأ خلال تحميل قائمة المشاركات. -contrib.errors.download_and_install = . %s حدث خطأ خلال تحميل وتنزيل -contrib.errors.description_unavailable = لا يوجد وصف. -contrib.errors.malformed_url = الرابط الذي تم تحميله من Processing.org لا يعمل. \nبإمكانك تثبيت المكتبة بشكل يدوي عن طريق زيارة موقع المكتبة الإلكتروني. -contrib.errors.needs_repackage = يجب إعادة حزم %s وفقاً لشروط %s. -contrib.errors.no_contribution_found = تعذر العثور على %s في الملف المحمل. -contrib.errors.overwriting_properties = .properties حصل خلل خلال استبدال محتوى ملف -contrib.errors.install_failed = فشل التثبيت. -contrib.errors.update_on_restart_failed = فشل تحديث %s بعد إعادة التشغيل. -contrib.errors.temporary_directory = فشلت الكتابة في الملف المؤقت. -contrib.errors.contrib_download.timeout = حصلت مشكلة في اتصال الانترنت خلال تحميل %s. -contrib.errors.no_internet_connection = يبدو أنك غير متصل بالإنترنت... -contrib.status.downloading_list = يتم تحميل قائمة المشاركات... -contrib.status.connecting = يتم الاتصال... -contrib.status.done = تم الانتهاء -contrib.all = الكل -contrib.undo = تراجع -contrib.remove = إزالة -contrib.install = تثبيت -contrib.progress.installing = يتم تثبيت -contrib.progress.starting = يتم بدأ -contrib.progress.downloading = يتم تنزيل -contrib.download_error = حدث خطأ خلال تنزيل المشاركات -contrib.unsupported_operating_system = يبدو أن نظام التشغيل الخاص بك غير مدعوم. يرجى زيارة %s\ المكتبة للمزيد من المعلومات. +contrib = مدير المشاركات +contrib.manager_title.update = مدير التحديثات +contrib.manager_title.mode = مدير الأوضاع +contrib.manager_title.tool = مدير الأدوات +contrib.manager_title.library = مدير المكتبات +contrib.manager_title.examples = مدير الأمثلة +contrib.category = الفئة: +contrib.filter_your_search = فلترة نتائج البحث.. +contrib.show_only_compatible.mode = إظهار الأوضاع المتوافقة فقط. +contrib.show_only_compatible.tool = إظهار الأدوات المتوافقة فقط. +contrib.show_only_compatible.library = إظهار المكتبات المتوافقة فقط. +contrib.show_only_compatible.examples = إظهار الأمثلة المتوافقة فقط. +contrib.show_only_compatible.update = إظهار التحديثات المتوافقة فقط. +contrib.restart = إعادة تشغيل Processing +contrib.unsaved_changes = يوجد تغييرات غير محفوظة +contrib.unsaved_changes.prompt = هل انت متأكد انك تريد إعادة تشغيل البرنامج قبل حفظ التغييرات أولاً؟ +contrib.messages.remove_restart = يرجى إعادة تشغيل البرنامح لإنهاء حذف هذا العنصر. +contrib.messages.install_restart = يرجى إعادة تشغيل البرنامح لإنهاء تثبيت هذا العنصر. +contrib.messages.update_restart = يرجى إعادة تشغيل البرنامح لإنهاء تحديث هذا العنصر. +contrib.errors.list_download = فشل تحميل قائمة المشاركات المتوفرة. +contrib.errors.list_download.timeout = حدث خطأ خلال تحميل قائمة المشاركات. +contrib.errors.download_and_install = . %s حدث خطأ خلال تحميل وتنزيل +contrib.errors.description_unavailable = لا يوجد وصف. +contrib.errors.malformed_url = الرابط الذي تم تحميله من Processing.org لا يعمل. \nبإمكانك تثبيت المكتبة بشكل يدوي عن طريق زيارة موقع المكتبة الإلكتروني. +contrib.errors.needs_repackage = يجب إعادة حزم %s وفقاً لشروط %s. +contrib.errors.no_contribution_found = تعذر العثور على %s في الملف المحمل. +contrib.errors.overwriting_properties = .properties حصل خلل خلال استبدال محتوى ملف +contrib.errors.install_failed = فشل التثبيت. +contrib.errors.update_on_restart_failed = فشل تحديث %s بعد إعادة التشغيل. +contrib.errors.temporary_directory = فشلت الكتابة في الملف المؤقت. +contrib.errors.contrib_download.timeout = حصلت مشكلة في اتصال الانترنت خلال تحميل %s. +contrib.errors.no_internet_connection = يبدو أنك غير متصل بالإنترنت... +contrib.status.downloading_list = يتم تحميل قائمة المشاركات... +contrib.status.connecting = يتم الاتصال... +contrib.status.done = تم الانتهاء +contrib.all = الكل +contrib.undo = تراجع +contrib.remove = إزالة +contrib.install = تثبيت +contrib.progress.installing = يتم تثبيت +contrib.progress.starting = يتم بدأ +contrib.progress.downloading = يتم تنزيل +contrib.download_error = حدث خطأ خلال تنزيل المشاركات +contrib.unsupported_operating_system = يبدو أن نظام التشغيل الخاص بك غير مدعوم. يرجى زيارة %s\ المكتبة للمزيد من المعلومات. contrib.category.3d = 3D -contrib.category.animation = رسوم متحركة -contrib.category.data = بيانات ومعطيات -contrib.category.geometry = هندسيات -contrib.category.gui = واجهات مستخدم رسومية -contrib.category.hardware = عتاد مادي -contrib.category.i_o = مدخلات ومخرجات -contrib.category.math = رياضيات -contrib.category.simulation = محاكاة -contrib.category.sound = صوتيات -contrib.category.typography = تخطيط -contrib.category.utilities = خدمات -contrib.category.video_vision = فيديو ورؤية رقمية -contrib.category.other = آخر +contrib.category.animation = رسوم متحركة +contrib.category.data = بيانات ومعطيات +contrib.category.geometry = هندسيات +contrib.category.gui = واجهات مستخدم رسومية +contrib.category.hardware = عتاد مادي +contrib.category.i_o = مدخلات ومخرجات +contrib.category.math = رياضيات +contrib.category.simulation = محاكاة +contrib.category.sound = صوتيات +contrib.category.typography = تخطيط +contrib.category.utilities = خدمات +contrib.category.video_vision = فيديو ورؤية رقمية +contrib.category.other = آخر # Install on Startup -contrib.startup.errors.download_install = %s حدث خطأ خلال تحميل وتثبيت -contrib.startup.errors.temp_dir = فشل النسخ إلى ملف مؤقت خلال عملية تحميل وتنزيل %s -contrib.startup.errors.new_marker = يبدو أن هنالك مشكلة بين مؤشر المشاركات الغير محدثة و %s. قد تحتاج إلى تحديث المشاركة بشكل يدوي. +contrib.startup.errors.download_install = %s حدث خطأ خلال تحميل وتثبيت +contrib.startup.errors.temp_dir = فشل النسخ إلى ملف مؤقت خلال عملية تحميل وتنزيل %s +contrib.startup.errors.new_marker = يبدو أن هنالك مشكلة بين مؤشر المشاركات الغير محدثة و %s. قد تحتاج إلى تحديث المشاركة بشكل يدوي. # Install on Import -contrib.import.dialog.title = المكتبات المفقودة المتوفرة -contrib.import.dialog.primary_text = المكتبات المستوردة التالية متوفرة للتحميل, لكن لم يتم تثبيتها بعد. -contrib.import.dialog.secondary_text = هل تود تثبيتهم الآن؟ -contrib.import.progress.download = ...%s يتم تحميل -contrib.import.progress.install = ...%s يتم تثبيت -contrib.import.progress.done = .%s تم تثبيت -contrib.import.progress.final_list = تم تثبيت المكتبات التالية: -contrib.import.errors.link = يبدو أن رابط التحميل للمكتبة %s لا يعمل. +contrib.import.dialog.title = المكتبات المفقودة المتوفرة +contrib.import.dialog.primary_text = المكتبات المستوردة التالية متوفرة للتحميل, لكن لم يتم تثبيتها بعد. +contrib.import.dialog.secondary_text = هل تود تثبيتهم الآن؟ +contrib.import.progress.download = ...%s يتم تحميل +contrib.import.progress.install = ...%s يتم تثبيت +contrib.import.progress.done = .%s تم تثبيت +contrib.import.progress.final_list = تم تثبيت المكتبات التالية: +contrib.import.errors.link = يبدو أن رابط التحميل للمكتبة %s لا يعمل. # --------------------------------------- # Warnings -warn.delete = حذف -warn.delete.sketch = هل أنت متأكد انك تريد حذف هذا المخطوط؟ -warn.delete.file = هل انت متأكد أنك تود حذف "%s"؟ -warn.cannot_change_mode.title = لا يمكن تغيير الوضع -warn.cannot_change_mode.body = لا يمكنك تغيير الوضع, لأن وضع "%s" غير متوافق مع الوضع الحالي. +warn.delete = حذف +warn.delete.sketch = هل أنت متأكد انك تريد حذف هذا المخطوط؟ +warn.delete.file = هل انت متأكد أنك تود حذف "%s"؟ +warn.cannot_change_mode.title = لا يمكن تغيير الوضع +warn.cannot_change_mode.body = لا يمكنك تغيير الوضع, لأن وضع "%s" غير متوافق مع الوضع الحالي. # --------------------------------------- # Update Check -update_check = تحديث -update_check.updates_available.core = يوجد نسخة جديدة من بروسسنج جاهزة للتحميل. \nهل تود زيارة الموقع الرسمي لتحميلها؟ -update_check.updates_available.contributions = يوجد تحديثات متوفرة لبعض المشاركات المثبتة. \nهل تريد الذهاب إلى مدير المشاركات الآن؟ +update_check = تحديث +update_check.updates_available.core = يوجد نسخة جديدة من بروسسنج جاهزة للتحميل. \nهل تود زيارة الموقع الرسمي لتحميلها؟ +update_check.updates_available.contributions = يوجد تحديثات متوفرة لبعض المشاركات المثبتة. \nهل تريد الذهاب إلى مدير المشاركات الآن؟ # --------------------------------------- # Color Chooser -color_chooser = أداة اختيار الألوان -color_chooser.select = تحديد +color_chooser = أداة اختيار الألوان +color_chooser.select = تحديد # --------------------------------------- # Movie Maker -movie_maker = صانع الأفلام -movie_maker.title = QuickTime صانع أفلام -movie_maker.blurb = This tool creates a QuickTime movie from a sequence of images.

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA (from Processing), or PNG images as the source.

TIFF and TGA images will write more quickly, but require more disk:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
-movie_maker.image_folder_help_label = اسحب ملف يحتوي على الصور إلى الحقل السفلي: -movie_maker.choose_button = اختر... -movie_maker.select_image_folder = اختر ملف الصور... -movie_maker.sound_file_help_label = إلى الحقل السفلي: (.au, .aiff, .wav, .mp3) اسحب ملف يحتوي على ملفات صوت بصيغة -movie_maker.select_sound_file = اختر ملف الصوت... - -movie_maker.create_movie_button = فلم جديد... -movie_maker.save_dialog_prompt = حفظ الفلم ك... -movie_maker.width = العرض -movie_maker.height = الارتفاع -movie_maker.compression = الضغط -movie_maker.compression.animation = رسوم متحركة +movie_maker = صانع الأفلام +movie_maker.title = QuickTime صانع أفلام +movie_maker.blurb = This tool creates a QuickTime movie from a sequence of images.

To avoid artifacts caused by re-compressing images as video,
use TIFF, TGA (from Processing), or PNG images as the source.

TIFF and TGA images will write more quickly, but require more disk:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG images are smaller, but your sketch will run more slowly:
saveFrame("frames/####.png");

This code is based on QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = اسحب ملف يحتوي على الصور إلى الحقل السفلي: +movie_maker.choose_button = اختر... +movie_maker.select_image_folder = اختر ملف الصور... +movie_maker.sound_file_help_label = إلى الحقل السفلي: (.au, .aiff, .wav, .mp3) اسحب ملف يحتوي على ملفات صوت بصيغة +movie_maker.select_sound_file = اختر ملف الصوت... + +movie_maker.create_movie_button = فلم جديد... +movie_maker.save_dialog_prompt = حفظ الفلم ك... +movie_maker.width = العرض +movie_maker.height = الارتفاع +movie_maker.compression = الضغط +movie_maker.compression.animation = رسوم متحركة movie_maker.compression.jpeg = JPEG movie_maker.compression.png = PNG -movie_maker.framerate = تردد الأطر: -movie_maker.orig_size_button = نفس الحجم الأصلي -movie_maker.orig_size_tooltip = قم باختيار هذا المربع إذا كان الملف يحتوي على أطر فيديو بالتشفير والحجم المطلوب. - -movie_maker.error.avoid_tiff = حاول باستخدام صور بلاحقة TGA أو PNG بدل TIFF. -movie_maker.error.badnumbers = يجب أن تكون قيم الطول والعرض أعداد حقيقية أكبر من الصفر, ويحب أن يكون تردد الأطر أكبر من الصفر. -movie_maker.error.cannot_read = .%s تعذرت قراءة -movie_maker.error.cannot_read_maybe_bad = تعذرت قراءة %s, قد يكون الملف سيئاً. -movie_maker.error.movie_failed = .QuickTime فشل انتاج فلم من نوع -movie_maker.error.need_input = يجب عليك تحديد ملف يحتوي على ملفات صوتية, ملفات صور, أو كلاهما. -movie_maker.error.no_images_found = لم يتم العثور على ملفات صور هنا. -movie_maker.error.sorry = عذراً -movie_maker.error.unknown_tga_format = لاحقة الملف %s من نوع .tga غير معروفة. - -movie_maker.progress.creating_file_name = .%s يتم الآن إنتاج -movie_maker.progress.creating_output_file = يتم الآن إنتاج الملف -movie_maker.progress.initializing = بدء العملية... -movie_maker.progress.processing = .%s يتم معالجة +movie_maker.framerate = تردد الأطر: +movie_maker.orig_size_button = نفس الحجم الأصلي +movie_maker.orig_size_tooltip = قم باختيار هذا المربع إذا كان الملف يحتوي على أطر فيديو بالتشفير والحجم المطلوب. + +movie_maker.error.avoid_tiff = حاول باستخدام صور بلاحقة TGA أو PNG بدل TIFF. +movie_maker.error.badnumbers = يجب أن تكون قيم الطول والعرض أعداد حقيقية أكبر من الصفر, ويحب أن يكون تردد الأطر أكبر من الصفر. +movie_maker.error.cannot_read = .%s تعذرت قراءة +movie_maker.error.cannot_read_maybe_bad = تعذرت قراءة %s, قد يكون الملف سيئاً. +movie_maker.error.movie_failed = .QuickTime فشل انتاج فلم من نوع +movie_maker.error.need_input = يجب عليك تحديد ملف يحتوي على ملفات صوتية, ملفات صور, أو كلاهما. +movie_maker.error.no_images_found = لم يتم العثور على ملفات صور هنا. +movie_maker.error.sorry = عذراً +movie_maker.error.unknown_tga_format = لاحقة الملف %s من نوع .tga غير معروفة. + +movie_maker.progress.creating_file_name = .%s يتم الآن إنتاج +movie_maker.progress.creating_output_file = يتم الآن إنتاج الملف +movie_maker.progress.initializing = بدء العملية... +movie_maker.progress.processing = .%s يتم معالجة diff --git a/build/shared/lib/languages/PDE_ca.properties b/build/shared/lib/languages/PDE_ca.properties index db2de1e039..cdff9ec65b 100644 --- a/build/shared/lib/languages/PDE_ca.properties +++ b/build/shared/lib/languages/PDE_ca.properties @@ -188,7 +188,7 @@ save.btn.dont_save = No els desis # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Voleu desar els canvis de l'sketch «%s»? -# AppPreferences (Frame) +# Preferences (Frame) preferences = Preferències preferences.button.width = 80 preferences.restart_required = Reinicieu el Processing per a aplicar els canvis diff --git a/build/shared/lib/languages/PDE_de.properties b/build/shared/lib/languages/PDE_de.properties index 25c27ea5f9..c44ec13652 100644 --- a/build/shared/lib/languages/PDE_de.properties +++ b/build/shared/lib/languages/PDE_de.properties @@ -151,7 +151,7 @@ save.btn.dont_save = Nicht speichern # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Änderungen an %s speichern? -# AppPreferences (Frame) +# Preferences (Frame) preferences = Einstellungen preferences.button.width = 110 preferences.requires_restart = nach Neustart von Processing aktiv diff --git a/build/shared/lib/languages/PDE_el.properties b/build/shared/lib/languages/PDE_el.properties index 8704bce4f5..d4c794bde8 100644 --- a/build/shared/lib/languages/PDE_el.properties +++ b/build/shared/lib/languages/PDE_el.properties @@ -151,7 +151,7 @@ save.hint = Αν δεν αποθηκεύσετε, οι αλλαγές σας θ save.btn.save = Αποθήκευση save.btn.dont_save = Χωρίς αποθήκευση -# AppPreferences (Frame) +# Preferences (Frame) preferences = Προτιμήσεις preferences.button.width = 80 preferences.requires_restart = χρειάζεται επανεκκίνηση της Processing diff --git a/build/shared/lib/languages/PDE_es.properties b/build/shared/lib/languages/PDE_es.properties index 7486f437cc..781a5a261a 100644 --- a/build/shared/lib/languages/PDE_es.properties +++ b/build/shared/lib/languages/PDE_es.properties @@ -188,7 +188,7 @@ save.btn.dont_save = No guardar # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = ¿Quieres guardar los cambios de «%s»? -# AppPreferences (Frame) +# Preferences (Frame) preferences = Preferencias preferences.button.width = 80 preferences.restart_required = Reinicia Processing para que se apliquen los cambios diff --git a/build/shared/lib/languages/PDE_fr.properties b/build/shared/lib/languages/PDE_fr.properties index 54cdb3c108..4b43a35d57 100644 --- a/build/shared/lib/languages/PDE_fr.properties +++ b/build/shared/lib/languages/PDE_fr.properties @@ -126,7 +126,7 @@ save.hint = Si vous ne sauvegardez pas, vos modifications seront supprimées. save.btn.save = Enregistrer save.btn.dont_save = Ne pas enregistrer -# AppPreferences (Frame) +# Preferences (Frame) preferences = Préférences preferences.button.width = 110 preferences.requires_restart = Nécessite de redémarrer Processing diff --git a/build/shared/lib/languages/PDE_it.properties b/build/shared/lib/languages/PDE_it.properties index b4b7125b30..9119de9c14 100644 --- a/build/shared/lib/languages/PDE_it.properties +++ b/build/shared/lib/languages/PDE_it.properties @@ -155,7 +155,7 @@ save.btn.dont_save = Non salvare # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = Salvare le modifiche di %s? -# AppPreferences (Frame) +# Preferences (Frame) preferences = Preferenze preferences.button.width = 80 preferences.requires_restart = richiede il riavvio di Processing diff --git a/build/shared/lib/languages/PDE_ja.properties b/build/shared/lib/languages/PDE_ja.properties index 5aab9ad466..b85fa2dc7a 100644 --- a/build/shared/lib/languages/PDE_ja.properties +++ b/build/shared/lib/languages/PDE_ja.properties @@ -160,7 +160,7 @@ save.btn.dont_save = 保存しない # Close (Frame) also used to prompt on non-macOS machines close.unsaved_changes = %s への変更を保存しますか? -# AppPreferences (Frame) +# Preferences (Frame) preferences = 設定 preferences.button.width = 120 preferences.requires_restart = Processingの再起動が必要です diff --git a/build/shared/lib/languages/PDE_ko.properties b/build/shared/lib/languages/PDE_ko.properties index ee68fc1010..1e449dacc0 100644 --- a/build/shared/lib/languages/PDE_ko.properties +++ b/build/shared/lib/languages/PDE_ko.properties @@ -125,7 +125,7 @@ save.hint = 저장하지 않으면 변경 내용은 삭제됩니다. save.btn.save = 저장 save.btn.dont_save = 저장 안 함 -# AppPreferences (Frame) +# Preferences (Frame) preferences = 설정 preferences.button.width = 80 preferences.requires_restart = 프로세싱 재실행 시 적용 diff --git a/build/shared/lib/languages/PDE_nl.properties b/build/shared/lib/languages/PDE_nl.properties index e94c448350..e7f11b0a1f 100644 --- a/build/shared/lib/languages/PDE_nl.properties +++ b/build/shared/lib/languages/PDE_nl.properties @@ -120,7 +120,7 @@ save.hint = Als u niet opslaat, zullen uw wijzigingen verloren gaan. save.btn.save = Opslaan save.btn.dont_save = Niet Opslaan -# AppPreferences (Frame) +# Preferences (Frame) preferences = Instellingen preferences.button.width = 90 preferences.requires_restart = herstart van Processing vereist diff --git a/build/shared/lib/languages/PDE_pt.properties b/build/shared/lib/languages/PDE_pt.properties index 4953fda3e3..44b5c7f639 100644 --- a/build/shared/lib/languages/PDE_pt.properties +++ b/build/shared/lib/languages/PDE_pt.properties @@ -119,7 +119,7 @@ save.hint = Se não guardar as suas alterações serão perdidas. save.btn.save = Guardar save.btn.dont_save = Não Guardar -# AppPreferences (Frame) +# Preferences (Frame) preferences = Preferências preferences.button.width = 80 preferences.requires_restart = requer reiniciar o Processing diff --git a/build/shared/lib/languages/PDE_ru.properties b/build/shared/lib/languages/PDE_ru.properties index 93566e7795..ff71d4ce49 100644 --- a/build/shared/lib/languages/PDE_ru.properties +++ b/build/shared/lib/languages/PDE_ru.properties @@ -1,7 +1,7 @@  # --------------------------------------- -# Language: Russian (Русский) (ru) +# Language: Russian (Русский) (ru) # --------------------------------------- @@ -10,120 +10,120 @@ # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = Файл -menu.file.new = Создать -menu.file.open = Открыть... -menu.file.recent = Недавние -menu.file.sketchbook = Рабочая папка... -menu.file.sketchbook.empty = Пустая рабочая папка -menu.file.examples = Примеры... -menu.file.close = Закрыть -menu.file.save = Сохранить -menu.file.save_as = Сохранить как... -menu.file.export_application = Экспорт приложения... -menu.file.page_setup = Настройка страницы -menu.file.print = Печать... -menu.file.preferences = Параметры... -menu.file.quit = Выход +menu.file = Файл +menu.file.new = Создать +menu.file.open = Открыть... +menu.file.recent = Недавние +menu.file.sketchbook = Рабочая папка... +menu.file.sketchbook.empty = Пустая рабочая папка +menu.file.examples = Примеры... +menu.file.close = Закрыть +menu.file.save = Сохранить +menu.file.save_as = Сохранить как... +menu.file.export_application = Экспорт приложения... +menu.file.page_setup = Настройка страницы +menu.file.print = Печать... +menu.file.preferences = Параметры... +menu.file.quit = Выход # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = Правка -menu.edit.undo = Отменить -menu.edit.redo = Повторить -menu.edit.action.addition = добавление -menu.edit.action.deletion = удаление -menu.edit.cut = Вырезать -menu.edit.copy = Копировать -menu.edit.copy_as_html = Скопировать как HTML -menu.edit.paste = Вставить -menu.edit.select_all = Выделить всё -menu.edit.auto_format = Автоформатирование -menu.edit.comment_uncomment = Закомментировать/Раскомментировать -menu.edit.increase_indent = → Увеличить отступ -menu.edit.decrease_indent = ← Уменьшить отступ -menu.edit.find = Найти... -menu.edit.find_next = Найти следущее -menu.edit.find_previous = Найти предыдущее -menu.edit.use_selection_for_find = Найти выделенное +menu.edit = Правка +menu.edit.undo = Отменить +menu.edit.redo = Повторить +menu.edit.action.addition = добавление +menu.edit.action.deletion = удаление +menu.edit.cut = Вырезать +menu.edit.copy = Копировать +menu.edit.copy_as_html = Скопировать как HTML +menu.edit.paste = Вставить +menu.edit.select_all = Выделить всё +menu.edit.auto_format = Автоформатирование +menu.edit.comment_uncomment = Закомментировать/Раскомментировать +menu.edit.increase_indent = → Увеличить отступ +menu.edit.decrease_indent = ← Уменьшить отступ +menu.edit.find = Найти... +menu.edit.find_next = Найти следущее +menu.edit.find_previous = Найти предыдущее +menu.edit.use_selection_for_find = Найти выделенное # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = Запустить -menu.sketch.present = Режим презентации -menu.sketch.tweak = Изменить -menu.sketch.stop = Остановить +menu.sketch.run = Запустить +menu.sketch.present = Режим презентации +menu.sketch.tweak = Изменить +menu.sketch.stop = Остановить # --- -menu.library = Импортировать библиотеку... -menu.library.add_library = Добавить библиотеку... -menu.library.contributed = Вклад сообщества -menu.library.no_core_libraries = отсутствуют основные библиотеки +menu.library = Импортировать библиотеку... +menu.library.add_library = Добавить библиотеку... +menu.library.contributed = Вклад сообщества +menu.library.no_core_libraries = отсутствуют основные библиотеки # --- -menu.sketch = Набросок -menu.sketch.show_sketch_folder = Показать папку с набросками -menu.sketch.add_file = Добавить файл... +menu.sketch = Набросок +menu.sketch.show_sketch_folder = Показать папку с набросками +menu.sketch.add_file = Добавить файл... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = Отладка -menu.debug.enable = Включить отладку -menu.debug.disable = Отключить отладку -#menu.debug.show_debug_toolbar = Показать панель отладки -#menu.debug.debug = Начать отладку -#menu.debug.stop = Остановить отладку +menu.debug = Отладка +menu.debug.enable = Включить отладку +menu.debug.disable = Отключить отладку +#menu.debug.show_debug_toolbar = Показать панель отладки +#menu.debug.debug = Начать отладку +#menu.debug.stop = Остановить отладку # --- -menu.debug.toggle_breakpoint = Поставить/снять точку останова -#menu.debug.list_breakpoints = Список точек останова +menu.debug.toggle_breakpoint = Поставить/снять точку останова +#menu.debug.list_breakpoints = Список точек останова # --- # used for both menus and toolbars -menu.debug.step = Шаг -menu.debug.step_into = Зайти в -menu.debug.step_out = Выйти из -menu.debug.continue = Продолжить +menu.debug.step = Шаг +menu.debug.step_into = Зайти в +menu.debug.step_out = Выйти из +menu.debug.continue = Продолжить # --- -#menu.debug.print_stack_trace = Печать стека вызовов -#menu.debug.print_locals = Печать локальных переменных -#menu.debug.print_fields = Печать полей -#menu.debug.print_source_location = Печатать расположение источника -#menu.debug.print_threads = Друкувати потоки +#menu.debug.print_stack_trace = Печать стека вызовов +#menu.debug.print_locals = Печать локальных переменных +#menu.debug.print_fields = Печать полей +#menu.debug.print_source_location = Печатать расположение источника +#menu.debug.print_threads = Друкувати потоки # --- -#menu.debug.variable_inspector = Инспектор переменных -menu.debug.show_variables = Показать переменные -menu.debug.hide_variables = Спрятать переменные -#menu.debug.show_sketch_outline = Показать рамку наброска -#menu.debug.show_tabs_list = Показать список вкладок +#menu.debug.variable_inspector = Инспектор переменных +menu.debug.show_variables = Показать переменные +menu.debug.hide_variables = Спрятать переменные +#menu.debug.show_sketch_outline = Показать рамку наброска +#menu.debug.show_tabs_list = Показать список вкладок # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = Инструменты -menu.tools.color_selector = Выбрать цвет... -menu.tools.create_font = Создать шрифты... -menu.tools.archive_sketch = Архивировать набросок -menu.tools.fix_the_serial_lbrary = Исправить библиотеку Serial -menu.tools.install_processing_java = Установить "processing-java" -menu.tools.add_tool = Добавить инструмент... +menu.tools = Инструменты +menu.tools.color_selector = Выбрать цвет... +menu.tools.create_font = Создать шрифты... +menu.tools.archive_sketch = Архивировать набросок +menu.tools.fix_the_serial_lbrary = Исправить библиотеку Serial +menu.tools.install_processing_java = Установить "processing-java" +menu.tools.add_tool = Добавить инструмент... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = Помощь -menu.help.welcome = Добро пожаловать в Processing -menu.help.about = О Processing -menu.help.environment = Среда -menu.help.reference = Документация -menu.help.find_in_reference = Найти в документации -menu.help.libraries_reference = Документация библиотек -menu.help.tools_reference = Документация инструментов -menu.help.empty = (пусто) -menu.help.online = Онлайн -menu.help.getting_started = Начало работы (англ.) +menu.help = Помощь +menu.help.welcome = Добро пожаловать в Processing +menu.help.about = О Processing +menu.help.environment = Среда +menu.help.reference = Документация +menu.help.find_in_reference = Найти в документации +menu.help.libraries_reference = Документация библиотек +menu.help.tools_reference = Документация инструментов +menu.help.empty = (пусто) +menu.help.online = Онлайн +menu.help.getting_started = Начало работы (англ.) # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = Решение проблем (англ.) +menu.help.troubleshooting = Решение проблем (англ.) # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = Часто задаваемые вопросы (англ.) +menu.help.faq = Часто задаваемые вопросы (англ.) # menu.help.faq.url = http://wiki.processing.org/w/FAQ -menu.help.foundation = The Processing Foundation (англ.) +menu.help.foundation = The Processing Foundation (англ.) # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = Постетить Processing.org (англ.) +menu.help.visit = Постетить Processing.org (англ.) # menu.help.visit.url = http://processing.org/ @@ -131,477 +131,477 @@ menu.help.visit = Постетить Processing.org (ан # Basics # Buttons -prompt.yes = Да -prompt.no = Нет -prompt.cancel = Отменить -prompt.ok = ОК -prompt.browse = Просмотр -prompt.export = Экспорт +prompt.yes = Да +prompt.no = Нет +prompt.cancel = Отменить +prompt.ok = ОК +prompt.browse = Просмотр +prompt.export = Экспорт # --------------------------------------- # Frames # Open (Frame) -open = Открыть в Processing... +open = Открыть в Processing... # Save (Frame) -save = Сохранить папку как... -save.title = Сохранить изменения %s перед закрытием? -save.hint = Несохранённые изменения будут потеряны. -save.btn.save = Сохранить -save.btn.dont_save = Не сохранять +save = Сохранить папку как... +save.title = Сохранить изменения %s перед закрытием? +save.hint = Несохранённые изменения будут потеряны. +save.btn.save = Сохранить +save.btn.dont_save = Не сохранять # Close (Frame) also used to prompt on non-mac machines -close.unsaved_changes = Сохранить изменения в %s? +close.unsaved_changes = Сохранить изменения в %s? -# AppPreferences (Frame) -preferences = Параметры +# Preferences (Frame) +preferences = Параметры preferences.button.width = 95 -preferences.requires_restart = требуется перезапуск Processing -preferences.sketchbook_location = Расположение рабочей папки -preferences.sketchbook_location.popup = Расположение рабочей папки -preferences.language = Язык -preferences.editor_and_console_font = Шрифт редактора и консоли -preferences.editor_and_console_font.tip = Выбрать шрифт для использовании в редакторе и консоли.
Возможно использование только моноширинных шрифтов. -preferences.editor_font_size = Размер шрифта редактора -preferences.console_font_size = Размер шрифта консоли -preferences.zoom = Масштабирование интерфейса -preferences.zoom.auto = По умолчанию -preferences.background_color = Цвет фона в режиме презентации -preferences.background_color.tip = Выбрать фоновый цвет для режима презентации.
Режим презентации используется для полноэкранного просмотра
из меню набросок. -preferences.use_smooth_text = Рисовать сглаженный текст в окне редактора -preferences.enable_complex_text_input = Включить расширенное редактирование текста -preferences.enable_complex_text_input_example = напр. японский -preferences.continuously_check = Проверять на ошибки -preferences.show_warnings = Показать предупреждения -preferences.code_completion = Автодополнение кода -preferences.trigger_with = Запуск с помощью -preferences.cmd_space = Пробел -preferences.suggest_imports = Предлагать импорт -preferences.increase_max_memory = Увеличить лимит памяти для наброска -preferences.delete_previous_folder_on_export = Удалять предыдущую папку при экспорте -preferences.check_for_updates_on_startup = Разрешать проверку обновлений (см. ЧаВо для получения информации о используемых данных) -preferences.run_sketches_on_display = Запускать набросок на мониторе -preferences.run_sketches_on_display.tip = Задаёт монитор, на котором будут запускаться наброски.
Обычно, если окно перемещается, то оно будет перезапущено
на том месте, тем не менее при запуске в полноэкранном режиме
всегда используется выбранный монитор. -preferences.automatically_associate_pde_files = Автоматически ассоциировать файлы .pde с Processing -preferences.launch_programs_in = Запускать программы в -preferences.launch_programs_in.mode = Режим -preferences.file = В файле настроек можно найти больше параметров для настройки -preferences.file.hint = не редактируйте его при запущенном Processing +preferences.requires_restart = требуется перезапуск Processing +preferences.sketchbook_location = Расположение рабочей папки +preferences.sketchbook_location.popup = Расположение рабочей папки +preferences.language = Язык +preferences.editor_and_console_font = Шрифт редактора и консоли +preferences.editor_and_console_font.tip = Выбрать шрифт для использовании в редакторе и консоли.
Возможно использование только моноширинных шрифтов. +preferences.editor_font_size = Размер шрифта редактора +preferences.console_font_size = Размер шрифта консоли +preferences.zoom = Масштабирование интерфейса +preferences.zoom.auto = По умолчанию +preferences.background_color = Цвет фона в режиме презентации +preferences.background_color.tip = Выбрать фоновый цвет для режима презентации.
Режим презентации используется для полноэкранного просмотра
из меню набросок. +preferences.use_smooth_text = Рисовать сглаженный текст в окне редактора +preferences.enable_complex_text_input = Включить расширенное редактирование текста +preferences.enable_complex_text_input_example = напр. японский +preferences.continuously_check = Проверять на ошибки +preferences.show_warnings = Показать предупреждения +preferences.code_completion = Автодополнение кода +preferences.trigger_with = Запуск с помощью +preferences.cmd_space = Пробел +preferences.suggest_imports = Предлагать импорт +preferences.increase_max_memory = Увеличить лимит памяти для наброска +preferences.delete_previous_folder_on_export = Удалять предыдущую папку при экспорте +preferences.check_for_updates_on_startup = Разрешать проверку обновлений (см. ЧаВо для получения информации о используемых данных) +preferences.run_sketches_on_display = Запускать набросок на мониторе +preferences.run_sketches_on_display.tip = Задаёт монитор, на котором будут запускаться наброски.
Обычно, если окно перемещается, то оно будет перезапущено
на том месте, тем не менее при запуске в полноэкранном режиме
всегда используется выбранный монитор. +preferences.automatically_associate_pde_files = Автоматически ассоциировать файлы .pde с Processing +preferences.launch_programs_in = Запускать программы в +preferences.launch_programs_in.mode = Режим +preferences.file = В файле настроек можно найти больше параметров для настройки +preferences.file.hint = не редактируйте его при запущенном Processing # Sketchbook Location (Frame) -sketchbook_location = Выбрать новое раположение рабочей папки +sketchbook_location = Выбрать новое раположение рабочей папки # Sketchbook (Frame) -sketchbook = Рабочая папка -sketchbook.tree = Рабочая папка +sketchbook = Рабочая папка +sketchbook.tree = Рабочая папка # Examples (Frame) -examples.title = Примеры %s -examples.add_examples = Добавить... -examples.libraries = Библиотеки сообщества -examples.core_libraries = Библиотеки -examples.contributed = Примеры сообщества +examples.title = Примеры %s +examples.add_examples = Добавить... +examples.libraries = Библиотеки сообщества +examples.core_libraries = Библиотеки +examples.contributed = Примеры сообщества # Export (Frame) -export = Настройка экспорта -export.platforms = Платформы -export.options = Настройки -export.options.present = Режим презентации -export.options.show_stop_button = Показывать кнопку остановки -export.description.line1 = "Экспорт в приложение" создаёт интерактивное, -export.description.line2 = самостоятельное приложение для выбранных платформ. -export.unsaved_changes = Сохранить изменения перед экспортом? -export.notice.cancel.unsaved_changes = Экспорт отменён, сохраните сперва сделанные изменения. -export.notice.exporting = Экспорт приложения... -export.notice.exporting.done = Экспорт завершён. -export.notice.exporting.error = Ошибка при экспорте. -export.notice.exporting.cancel = Экспорт в приложение отменён. -export.tooltip.macos = Экспорт для macOS доступен только на macOS -export.full_screen = Во весь экран -export.embed_java = Встроенная Java -export.code_signing = Цифровая подпись -export.messages.is_read_only = Скетч доступен только для чтения -export.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nНужно сперва сохранить их в другом месте\nа затем попробовать заново. -export.messages.cannot_export = Экспорт невозможен -export.messages.cannot_export.description = Нельзя экспортировать несохранённый набросок. +export = Настройка экспорта +export.platforms = Платформы +export.options = Настройки +export.options.present = Режим презентации +export.options.show_stop_button = Показывать кнопку остановки +export.description.line1 = "Экспорт в приложение" создаёт интерактивное, +export.description.line2 = самостоятельное приложение для выбранных платформ. +export.unsaved_changes = Сохранить изменения перед экспортом? +export.notice.cancel.unsaved_changes = Экспорт отменён, сохраните сперва сделанные изменения. +export.notice.exporting = Экспорт приложения... +export.notice.exporting.done = Экспорт завершён. +export.notice.exporting.error = Ошибка при экспорте. +export.notice.exporting.cancel = Экспорт в приложение отменён. +export.tooltip.macos = Экспорт для macOS доступен только на macOS +export.full_screen = Во весь экран +export.embed_java = Встроенная Java +export.code_signing = Цифровая подпись +export.messages.is_read_only = Скетч доступен только для чтения +export.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nНужно сперва сохранить их в другом месте\nа затем попробовать заново. +export.messages.cannot_export = Экспорт невозможен +export.messages.cannot_export.description = Нельзя экспортировать несохранённый набросок. # Find (Frame) -find = Поиск -find.find = Найти: -find.replace_with = Заменить на: -find.ignore_case = Игнорировать регистр -find.all_tabs = Во всех вкладках -find.wrap_around = По всему документу -find.btn.replace_all = Заменить всё -find.btn.replace = Заменить -find.btn.replace_and_find = Найти и заменить -find.btn.previous = Предыдущий -find.btn.find = Найти +find = Поиск +find.find = Найти: +find.replace_with = Заменить на: +find.ignore_case = Игнорировать регистр +find.all_tabs = Во всех вкладках +find.wrap_around = По всему документу +find.btn.replace_all = Заменить всё +find.btn.replace = Заменить +find.btn.replace_and_find = Найти и заменить +find.btn.previous = Предыдущий +find.btn.find = Найти # Find in reference (Frame) -find_in_reference = Найти в документации +find_in_reference = Найти в документации # File (Frame) -file = Выбрать +file = Выбрать # Create Font (Frame) -create_font = Создать шрифт -create_font.label = Этот инструмент предназначен для создания пользовательских шрифтов.\nВыберите шрифт, его размер и нажмите "ОК", для создания шрифта.\nОн будет сохранён в папке с наброском. -create_font.size = Размер -create_font.smooth = Сглаживание -create_font.characters = Символы... -create_font.character_selector = Выбор символа -create_font.character_selector.label = В стандартные набор символов включены bitmap-ы для Mac OS\nи Windows Latin. Включение всех символов увеличивает потребление памяти.\nДля улучшения ситуации подключайте необходимые блоки Unicode. -create_font.default_characters = Стандартные символы -create_font.all_characters = Все символы -create_font.specific_unicode = Определённые блоки Unicode -create_font.filename = Имя файла +create_font = Создать шрифт +create_font.label = Этот инструмент предназначен для создания пользовательских шрифтов.\nВыберите шрифт, его размер и нажмите "ОК", для создания шрифта.\nОн будет сохранён в папке с наброском. +create_font.size = Размер +create_font.smooth = Сглаживание +create_font.characters = Символы... +create_font.character_selector = Выбор символа +create_font.character_selector.label = В стандартные набор символов включены bitmap-ы для Mac OS\nи Windows Latin. Включение всех символов увеличивает потребление памяти.\nДля улучшения ситуации подключайте необходимые блоки Unicode. +create_font.default_characters = Стандартные символы +create_font.all_characters = Все символы +create_font.specific_unicode = Определённые блоки Unicode +create_font.filename = Имя файла # Color Selector (Frame) -color_selector = Выбрать цвет +color_selector = Выбрать цвет # Archive Sketch (Frame) -archive_sketch = Архивировать скетч в... +archive_sketch = Архивировать скетч в... # Tweak Mode -tweak_mode = Режим редактирования -tweak_mode.save_before_tweak = Сохраните набросок перед переходом в режим редактирования. -tweak_mode.keep_changes.line1 = Сохранить изменения? -tweak_mode.keep_changes.line2 = Вы изменили настройки наброска. Желаете сохранить? +tweak_mode = Режим редактирования +tweak_mode.save_before_tweak = Сохраните набросок перед переходом в режим редактирования. +tweak_mode.keep_changes.line1 = Сохранить изменения? +tweak_mode.keep_changes.line2 = Вы изменили настройки наброска. Желаете сохранить? # DebugTray -debugger.name = Имя -debugger.value = Значения -debugger.type = Тип +debugger.name = Имя +debugger.value = Значения +debugger.type = Тип # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = Запустить -toolbar.present = Показать -toolbar.stop = Остановить -toolbar.debug = Отладить +toolbar.run = Запустить +toolbar.present = Показать +toolbar.stop = Остановить +toolbar.debug = Отладить # --- -toolbar.new = Новый -toolbar.open = Открыть -toolbar.save = Сохранить -# toolbar.export_application = Экспорт приложения -toolbar.add_mode = Добавить режим... +toolbar.new = Новый +toolbar.open = Открыть +toolbar.save = Сохранить +# toolbar.export_application = Экспорт приложения +toolbar.add_mode = Добавить режим... # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] -#toolbar.debug.continue = Продолжить -#toolbar.debug.step = Шаг -#toolbar.debug.step_into = Зайти в -#toolbar.debug.stop = Остановить -#toolbar.debug.toggle_breakpoints = Поставить/Убрать точку останова -#toolbar.debug.variable_inspector = Экран переменных +#toolbar.debug.continue = Продолжить +#toolbar.debug.step = Шаг +#toolbar.debug.step_into = Зайти в +#toolbar.debug.stop = Остановить +#toolbar.debug.toggle_breakpoints = Поставить/Убрать точку останова +#toolbar.debug.variable_inspector = Экран переменных # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = Новая вкладка -editor.header.rename = Переименовать -editor.header.delete = Удалить -editor.header.previous_tab = Предыдущая вкладка -editor.header.next_tab = Следующая вкладка -editor.header.delete.warning.title = Да, нет. -editor.header.delete.warning.text = Нельзя удалить основную вкладку открытого наброска. +editor.header.new_tab = Новая вкладка +editor.header.rename = Переименовать +editor.header.delete = Удалить +editor.header.previous_tab = Предыдущая вкладка +editor.header.next_tab = Следующая вкладка +editor.header.delete.warning.title = Да, нет. +editor.header.delete.warning.text = Нельзя удалить основную вкладку открытого наброска. # PopUp menu -editor.popup.jump_to_declaration = Перейти к определению -editor.popup.show_usage = Найти использование... -editor.popup.rename = Переименовать... +editor.popup.jump_to_declaration = Перейти к определению +editor.popup.show_usage = Найти использование... +editor.popup.rename = Переименовать... # Tabs -editor.tab.new = Новое имя -editor.tab.new.description = Имя нового файла -editor.tab.rename = Новое имя -editor.tab.rename.description = Новое имя файла +editor.tab.new = Новое имя +editor.tab.new.description = Имя нового файла +editor.tab.rename = Новое имя +editor.tab.rename.description = Новое имя файла # Sketch -editor.sketch.rename.description = Имя нового наброска - -editor.status.autoformat.no_changes = Автоформатирования не требуется. -editor.status.autoformat.finished = Автоформатирование завершено. -editor.status.find_reference.select_word_first = Сначала выделите слово для поиска в документации. -editor.status.find_reference.not_available = Документация для "%s" недоступна. -editor.status.drag_and_drop.files_added.0 = В скетч не добавлено файлов. -editor.status.drag_and_drop.files_added.1 = Файл добавлен в скетч. -editor.status.drag_and_drop.files_added.n = В скетч добавлено %d файла(-ов). -editor.status.saving = Сохранение... -editor.status.saving.done = Сохранение завершено. -editor.status.saving.canceled = Сохранение отменено. -editor.status.printing = Печать... -editor.status.printing.done = Печать завершена. -editor.status.printing.error = Ошибка печати. -editor.status.printing.canceled = Печать отменена. -editor.status.copy_as_html = Код, форматированный в HTML, скопирован в буфер обмена. -editor.status.debug.busy = Отладчик занят... -editor.status.debug.halt = Отладчик остановлен. -editor.status.archiver.create = "%s" создан. -editor.status.archiver.cancel = Архивирование отменено. +editor.sketch.rename.description = Имя нового наброска + +editor.status.autoformat.no_changes = Автоформатирования не требуется. +editor.status.autoformat.finished = Автоформатирование завершено. +editor.status.find_reference.select_word_first = Сначала выделите слово для поиска в документации. +editor.status.find_reference.not_available = Документация для "%s" недоступна. +editor.status.drag_and_drop.files_added.0 = В скетч не добавлено файлов. +editor.status.drag_and_drop.files_added.1 = Файл добавлен в скетч. +editor.status.drag_and_drop.files_added.n = В скетч добавлено %d файла(-ов). +editor.status.saving = Сохранение... +editor.status.saving.done = Сохранение завершено. +editor.status.saving.canceled = Сохранение отменено. +editor.status.printing = Печать... +editor.status.printing.done = Печать завершена. +editor.status.printing.error = Ошибка печати. +editor.status.printing.canceled = Печать отменена. +editor.status.copy_as_html = Код, форматированный в HTML, скопирован в буфер обмена. +editor.status.debug.busy = Отладчик занят... +editor.status.debug.halt = Отладчик остановлен. +editor.status.archiver.create = "%s" создан. +editor.status.archiver.cancel = Архивирование отменено. # Errors -editor.status.warning = Предупреждение -editor.status.error = Ошибка -editor.status.error_on = Ошибка в "%s" -editor.status.missing.default = Пропущен "%c" -editor.status.missing.semicolon = Пропущена ";" -editor.status.missing.left_sq_bracket = Пропущена "[" -editor.status.missing.right_sq_bracket = Пропущена "]" -editor.status.missing.left_paren = Пропущена "(" -editor.status.missing.right_paren = Пропущена ")" -editor.status.missing.left_curly_bracket = Пропущена "{" -editor.status.missing.right_curly_bracket = Пропущена "}" -editor.status.missing.add = Добавьте "%s" -editor.status.bad_curly_quote = Косые кавычки %s не работают. Используйте прямые. Ctrl-T для автозамены. -editor.status.reserved_words = "color" и "int" - зарезервированы и не могут быть использованы в качестве имён переменных -editor.status.undefined_method = Функция "%s(%s)" не определена -editor.status.undefined_constructor = Конструктор "%s(%s)" не определён -editor.status.empty_param = Функция "%s()" не имеет параметров -editor.status.wrong_param = Функция "%s()" ожидает параметры: "%s(%s)" -editor.status.undef_global_var = Глобальная переменная "%s" не определена -editor.status.undef_class = Класс "%s" не определён -editor.status.undef_var = Переменная "%s" не определена -editor.status.undef_name = Имя "%s" не может быть распознано -editor.status.unterm_string_curly = Строковый литерал не заключён в двойные кавычки. Косые кавычки %s не применимы. -editor.status.type_mismatch = Несовпадение типов "%s" и "%s" -editor.status.unused_variable = Локальная переменная "%s" нигде не используется -editor.status.uninitialized_variable = Локальная переменная "%s" не инициализирована -editor.status.no_effect_assignment = Присвоение переменной "%s" не имеет эффекта -editor.status.hiding_enclosing_type = Класс "%s" не может иметь имя наброска +editor.status.warning = Предупреждение +editor.status.error = Ошибка +editor.status.error_on = Ошибка в "%s" +editor.status.missing.default = Пропущен "%c" +editor.status.missing.semicolon = Пропущена ";" +editor.status.missing.left_sq_bracket = Пропущена "[" +editor.status.missing.right_sq_bracket = Пропущена "]" +editor.status.missing.left_paren = Пропущена "(" +editor.status.missing.right_paren = Пропущена ")" +editor.status.missing.left_curly_bracket = Пропущена "{" +editor.status.missing.right_curly_bracket = Пропущена "}" +editor.status.missing.add = Добавьте "%s" +editor.status.bad_curly_quote = Косые кавычки %s не работают. Используйте прямые. Ctrl-T для автозамены. +editor.status.reserved_words = "color" и "int" - зарезервированы и не могут быть использованы в качестве имён переменных +editor.status.undefined_method = Функция "%s(%s)" не определена +editor.status.undefined_constructor = Конструктор "%s(%s)" не определён +editor.status.empty_param = Функция "%s()" не имеет параметров +editor.status.wrong_param = Функция "%s()" ожидает параметры: "%s(%s)" +editor.status.undef_global_var = Глобальная переменная "%s" не определена +editor.status.undef_class = Класс "%s" не определён +editor.status.undef_var = Переменная "%s" не определена +editor.status.undef_name = Имя "%s" не может быть распознано +editor.status.unterm_string_curly = Строковый литерал не заключён в двойные кавычки. Косые кавычки %s не применимы. +editor.status.type_mismatch = Несовпадение типов "%s" и "%s" +editor.status.unused_variable = Локальная переменная "%s" нигде не используется +editor.status.uninitialized_variable = Локальная переменная "%s" не инициализирована +editor.status.no_effect_assignment = Присвоение переменной "%s" не имеет эффекта +editor.status.hiding_enclosing_type = Класс "%s" не может иметь имя наброска # Limited syntax error support, Wikipedia CC BY-SA -editor.status.error.syntax = Синтаксическая ошибка - %s +editor.status.error.syntax = Синтаксическая ошибка - %s # Footer buttons -editor.footer.errors = Ошибки -editor.footer.errors.problem = Проблема -editor.footer.errors.tab = Вкладка -editor.footer.errors.line = Строка -editor.footer.console = Консоль +editor.footer.errors = Ошибки +editor.footer.errors.problem = Проблема +editor.footer.errors.tab = Вкладка +editor.footer.errors.line = Строка +editor.footer.console = Консоль # New handler -new.messages.is_read_only = Набросок только для чтения -new.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +new.messages.is_read_only = Набросок только для чтения +new.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. # Rename handler -rename.messages.is_untitled = Набросок без названия -rename.messages.is_untitled.description = Сперва сохраните набросок, перед\n тем как его переименовывать -rename.messages.is_modified = Сохраните набросок, перед его переименованием. -rename.messages.is_read_only = Набросок только для чтения -rename.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +rename.messages.is_untitled = Набросок без названия +rename.messages.is_untitled.description = Сперва сохраните набросок, перед\n тем как его переименовывать +rename.messages.is_modified = Сохраните набросок, перед его переименованием. +rename.messages.is_read_only = Набросок только для чтения +rename.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. # Naming handler -name.messages.problem_renaming = Проблема переименования -name.messages.starts_with_dot.description = Имя не может начинаться с точки -name.messages.invalid_extension.description = ".%s" не допустимое расширениие. -name.messages.main_java_extension.description = Первая вкладка не может быть %s файлом.\n(Воспользуйтесь другой, "правильной" средой\nпрограммирования?) -name.messages.new_sketch_exists = Переименование невозможно -name.messages.new_sketch_exists.description = Файл "%s" уже существует в\n"%s" -name.messages.new_folder_exists = Переименование невозможно -name.messages.new_folder_exists.description = Набросок(или папка) "%s" уже существует. -name.messages.error = Ошибка -name.messages.no_rename_folder.description = Не удалось переименовать папку наброска. -name.messages.no_rename_file.description = Не удалось переименовать "%s" на "%s" -name.messages.no_create_file.description = Не удалось создать файл "%s"\nв "%s" +name.messages.problem_renaming = Проблема переименования +name.messages.starts_with_dot.description = Имя не может начинаться с точки +name.messages.invalid_extension.description = ".%s" не допустимое расширениие. +name.messages.main_java_extension.description = Первая вкладка не может быть %s файлом.\n(Воспользуйтесь другой, "правильной" средой\nпрограммирования?) +name.messages.new_sketch_exists = Переименование невозможно +name.messages.new_sketch_exists.description = Файл "%s" уже существует в\n"%s" +name.messages.new_folder_exists = Переименование невозможно +name.messages.new_folder_exists.description = Набросок(или папка) "%s" уже существует. +name.messages.error = Ошибка +name.messages.no_rename_folder.description = Не удалось переименовать папку наброска. +name.messages.no_rename_file.description = Не удалось переименовать "%s" на "%s" +name.messages.no_create_file.description = Не удалось создать файл "%s"\nв "%s" # Delete handler -delete.messages.cannot_delete = Нельзя удалить -delete.messages.cannot_delete.description = Нельзя удалить несохранённый набросок. -delete.messages.cannot_delete.file = Не удалось -delete.messages.cannot_delete.file.description = Не получилось удалить -delete.messages.is_read_only = Набросок открыт "только для чтения" -delete.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +delete.messages.cannot_delete = Нельзя удалить +delete.messages.cannot_delete.description = Нельзя удалить несохранённый набросок. +delete.messages.cannot_delete.file = Не удалось +delete.messages.cannot_delete.file.description = Не получилось удалить +delete.messages.is_read_only = Набросок открыт "только для чтения" +delete.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. # Save handler -save_file.messages.is_read_only = Набросок только для чтения -save_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. -save_file.messages.sketch_exists = Набросок уже существует -save_file.messages.sketch_exists.description = Набросок с очищенным именем\n“%s” уже существует. -save_file.messages.tab_exists = Не удалось сохранить -save_file.messages.tab_exists.description = Нельзя сохранить набросок "%s"\n. Вкладка с таким именем уже открыта -save_file.messages.recursive_save = Сохранение в стиле Боргеса -save_file.messages.recursive_save.description = Нельзя сохранить набросок в папку внутри\nсамого себя. Будет циклическая зависимость. +save_file.messages.is_read_only = Набросок только для чтения +save_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +save_file.messages.sketch_exists = Набросок уже существует +save_file.messages.sketch_exists.description = Набросок с очищенным именем\n“%s” уже существует. +save_file.messages.tab_exists = Не удалось сохранить +save_file.messages.tab_exists.description = Нельзя сохранить набросок "%s"\n. Вкладка с таким именем уже открыта +save_file.messages.recursive_save = Сохранение в стиле Боргеса +save_file.messages.recursive_save.description = Нельзя сохранить набросок в папку внутри\nсамого себя. Будет циклическая зависимость. # Add handler -add_file.messages.is_read_only = Набросок "только для чтения" -add_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. -add_file.messages.confirm_replace = Заменить существующюю версию %s? -add_file.messages.error_adding = Ошибка при добавлении файла -add_file.messages.cannot_delete.description = Не получилось удалить существующий файл '%s'. -add_file.messages.cannot_add.description = Не удалось добавить '%s' в набросок. -add_file.messages.same_file = Меня не обдуришь -add_file.messages.same_file.description = Этот файл уже был скопирован в то место\nкуда вы пытаетесь его скопировать.\nНичего не будет сделано. +add_file.messages.is_read_only = Набросок "только для чтения" +add_file.messages.is_read_only.description = Некоторые файлы помечены "только для чтения".\nСохраните их в другом месте и попробуйте снова. +add_file.messages.confirm_replace = Заменить существующюю версию %s? +add_file.messages.error_adding = Ошибка при добавлении файла +add_file.messages.cannot_delete.description = Не получилось удалить существующий файл '%s'. +add_file.messages.cannot_add.description = Не удалось добавить '%s' в набросок. +add_file.messages.same_file = Меня не обдуришь +add_file.messages.same_file.description = Этот файл уже был скопирован в то место\nкуда вы пытаетесь его скопировать.\nНичего не будет сделано. # Temp folder creator -temp_dir.messages.bad_build_folder = Плохая папка сборки -temp_dir.messages.bad_build_folder.description = Не удалось найти место для сборки. +temp_dir.messages.bad_build_folder = Плохая папка сборки +temp_dir.messages.bad_build_folder.description = Не удалось найти место для сборки. # Ensure Existance -ensure_exist.messages.missing_sketch = Набросок не найден -ensure_exist.messages.missing_sketch.description = Папка с наброском не найдена.\nПопробуем сохранить заново, некоторые\nизменения возможно будут утрачены. -ensure_exist.messages.unrecoverable = Не удалось востановить набросок -ensure_exist.messages.unrecoverable.description = Не удалось повторно сохранить набросок. У вас могут возникнуть трудности,\nпри редактировании в внешнем текстовом редакторе. +ensure_exist.messages.missing_sketch = Набросок не найден +ensure_exist.messages.missing_sketch.description = Папка с наброском не найдена.\nПопробуем сохранить заново, некоторые\nизменения возможно будут утрачены. +ensure_exist.messages.unrecoverable = Не удалось востановить набросок +ensure_exist.messages.unrecoverable.description = Не удалось повторно сохранить набросок. У вас могут возникнуть трудности,\nпри редактировании в внешнем текстовом редакторе. # Check name -check_name.messages.is_name_modified = Имя наброска было изменено. Имена набросков могут состоять\nтолько из ASCII-символов и цифр (но не могут начинаться с цифры).\nТакже имя не должно быть больше 64-ёх +check_name.messages.is_name_modified = Имя наброска было изменено. Имена набросков могут состоять\nтолько из ASCII-символов и цифр (но не могут начинаться с цифры).\nТакже имя не должно быть больше 64-ёх # External changes detector -change_detect.reload.title=Вкладка изменена вне приложения -change_detect.reload.question="%s" изменена другим приложением. -change_detect.reload.comment=Оставить или перезагрузить изменения?\nВ любом случае файл будет сохранён в папке с наброском. -change_detect.button.keep=Оставить -change_detect.button.load_new=Перезагрузить -change_detect.delete.title=Вкладка удалена вне программы -change_detect.delete.question="%s" пропала из папки с работами. -change_detect.delete.comment=Хотите пересохранить или удалить набросок? -change_detect.button.discard=Удалить -change_detect.button.resave=Пересохранить +change_detect.reload.title=Вкладка изменена вне приложения +change_detect.reload.question="%s" изменена другим приложением. +change_detect.reload.comment=Оставить или перезагрузить изменения?\nВ любом случае файл будет сохранён в папке с наброском. +change_detect.button.keep=Оставить +change_detect.button.load_new=Перезагрузить +change_detect.delete.title=Вкладка удалена вне программы +change_detect.delete.question="%s" пропала из папки с работами. +change_detect.delete.comment=Хотите пересохранить или удалить набросок? +change_detect.button.discard=Удалить +change_detect.button.resave=Пересохранить # --------------------------------------- # Contributions # Contribution Panel -contrib = Управление расширениями -contrib.manager_title.update = Управление обновлениями -contrib.manager_title.mode = Управление режимами -contrib.manager_title.tool = Управление инструментами -contrib.manager_title.library = Управление библиотеками -contrib.manager_title.examples = Управление примерами -contrib.category = Категория: -contrib.filter_your_search = Фильтр поиска... -contrib.show_only_compatible.mode = Показать только совместимые режимы -contrib.show_only_compatible.tool = Показать только совместимые инструменты -contrib.show_only_compatible.library = Показать только совместимые библиотеки -contrib.show_only_compatible.examples = Показать только совместимые примеры -contrib.show_only_compatible.update = Показать только совместимые обновления -contrib.restart = Перезапустить Processing -contrib.unsaved_changes = Остались несохранённые изменения -contrib.unsaved_changes.prompt = Вы уверены, что хотите перезапустить Processing, не сохранив изменений? -contrib.messages.remove_restart = Перезапустите Processing, для завершения удаления расширения. -contrib.messages.install_restart = Перезапустите Processing, для завершения установки расширения. -contrib.messages.update_restart = Перезапустите Processing, для завершения обновления расширения. -contrib.errors.list_download = Ну удалось загрузить список доступных расширений. -contrib.errors.list_download.timeout = Тайм-аут соединения при загрузке списка расширений. -contrib.errors.download_and_install = Ошибка при загрузке и установке %s. -contrib.errors.description_unavailable = Описание недоступно. -contrib.errors.malformed_url = Ссылка полученная с Processing.org, не рабочая.\nЭту библиотеку всё ещё можно установить вручную\nзагрузив её с сайта. -contrib.errors.needs_repackage = %s требует правильной пересборки %s. -contrib.errors.no_contribution_found = Не удалось найти %s в загруженном файле. -contrib.errors.overwriting_properties = Ошибка сохранения файла .properties. -contrib.errors.install_failed = Установка не удалась. -contrib.errors.update_on_restart_failed = Не удалась установка обновления %s при перезапуске. -contrib.errors.temporary_directory = Не удалась запись во временную папку. -contrib.errors.contrib_download.timeout = Тайм-аут соединения при загрузке %s. -contrib.errors.no_internet_connection = Нет подключения к сети. -contrib.status.downloading_list = Список загрузок расширений... -contrib.status.connecting = Соединение... -contrib.status.done = Готово. -contrib.all = Всё -contrib.undo = Отменить -contrib.remove = Удалить -contrib.install = Установить -contrib.progress.installing = Установка -contrib.progress.starting = Начинаем -contrib.progress.downloading = Загрузка -contrib.download_error = Произошла ошибка при загрузке расширений. -contrib.unsupported_operating_system = Ваша система не поддерживается. Посетите %s для получения подробной информации. +contrib = Управление расширениями +contrib.manager_title.update = Управление обновлениями +contrib.manager_title.mode = Управление режимами +contrib.manager_title.tool = Управление инструментами +contrib.manager_title.library = Управление библиотеками +contrib.manager_title.examples = Управление примерами +contrib.category = Категория: +contrib.filter_your_search = Фильтр поиска... +contrib.show_only_compatible.mode = Показать только совместимые режимы +contrib.show_only_compatible.tool = Показать только совместимые инструменты +contrib.show_only_compatible.library = Показать только совместимые библиотеки +contrib.show_only_compatible.examples = Показать только совместимые примеры +contrib.show_only_compatible.update = Показать только совместимые обновления +contrib.restart = Перезапустить Processing +contrib.unsaved_changes = Остались несохранённые изменения +contrib.unsaved_changes.prompt = Вы уверены, что хотите перезапустить Processing, не сохранив изменений? +contrib.messages.remove_restart = Перезапустите Processing, для завершения удаления расширения. +contrib.messages.install_restart = Перезапустите Processing, для завершения установки расширения. +contrib.messages.update_restart = Перезапустите Processing, для завершения обновления расширения. +contrib.errors.list_download = Ну удалось загрузить список доступных расширений. +contrib.errors.list_download.timeout = Тайм-аут соединения при загрузке списка расширений. +contrib.errors.download_and_install = Ошибка при загрузке и установке %s. +contrib.errors.description_unavailable = Описание недоступно. +contrib.errors.malformed_url = Ссылка полученная с Processing.org, не рабочая.\nЭту библиотеку всё ещё можно установить вручную\nзагрузив её с сайта. +contrib.errors.needs_repackage = %s требует правильной пересборки %s. +contrib.errors.no_contribution_found = Не удалось найти %s в загруженном файле. +contrib.errors.overwriting_properties = Ошибка сохранения файла .properties. +contrib.errors.install_failed = Установка не удалась. +contrib.errors.update_on_restart_failed = Не удалась установка обновления %s при перезапуске. +contrib.errors.temporary_directory = Не удалась запись во временную папку. +contrib.errors.contrib_download.timeout = Тайм-аут соединения при загрузке %s. +contrib.errors.no_internet_connection = Нет подключения к сети. +contrib.status.downloading_list = Список загрузок расширений... +contrib.status.connecting = Соединение... +contrib.status.done = Готово. +contrib.all = Всё +contrib.undo = Отменить +contrib.remove = Удалить +contrib.install = Установить +contrib.progress.installing = Установка +contrib.progress.starting = Начинаем +contrib.progress.downloading = Загрузка +contrib.download_error = Произошла ошибка при загрузке расширений. +contrib.unsupported_operating_system = Ваша система не поддерживается. Посетите %s для получения подробной информации. contrib.category.3d = 3D -contrib.category.animation = Анимация -contrib.category.data = Данные -contrib.category.geometry = Геометрия -contrib.category.gui = Интерфейс -contrib.category.hardware = Аппаратное обеспечение -contrib.category.i_o = Ввод/Вывод -contrib.category.math = Математика -contrib.category.simulation = Симуляция -contrib.category.sound = Звук -contrib.category.typography = Типография -contrib.category.utilities = Утилиты -contrib.category.video_vision = Видео -contrib.category.other = Остальное +contrib.category.animation = Анимация +contrib.category.data = Данные +contrib.category.geometry = Геометрия +contrib.category.gui = Интерфейс +contrib.category.hardware = Аппаратное обеспечение +contrib.category.i_o = Ввод/Вывод +contrib.category.math = Математика +contrib.category.simulation = Симуляция +contrib.category.sound = Звук +contrib.category.typography = Типография +contrib.category.utilities = Утилиты +contrib.category.video_vision = Видео +contrib.category.other = Остальное # Install on Startup -contrib.startup.errors.download_install = Ошибка при загрузке и установке %s -contrib.startup.errors.temp_dir = Не удалась запись во временную папку при загрузке и установке %s -contrib.startup.errors.new_marker = Метка не обновлённых расширений не похожа на %s. Возможно потребуется обновление вручную... +contrib.startup.errors.download_install = Ошибка при загрузке и установке %s +contrib.startup.errors.temp_dir = Не удалась запись во временную папку при загрузке и установке %s +contrib.startup.errors.new_marker = Метка не обновлённых расширений не похожа на %s. Возможно потребуется обновление вручную... # Install on Import -contrib.import.dialog.title = Пропущены доступные бибиотеки -contrib.import.dialog.primary_text = Для следующие импортированных библиотек доступны обновления, которые ещё не установлены. -contrib.import.dialog.secondary_text = Хотите установить их сейчас? -contrib.import.progress.download = Загрузка %s... -contrib.import.progress.install = Установка %s... -contrib.import.progress.done = %s было установлено. -contrib.import.progress.final_list = Были устновлены следующие библиотеки: -contrib.import.errors.link = Ошибка: у библиотеки %s странная ссылка для загрузки. +contrib.import.dialog.title = Пропущены доступные бибиотеки +contrib.import.dialog.primary_text = Для следующие импортированных библиотек доступны обновления, которые ещё не установлены. +contrib.import.dialog.secondary_text = Хотите установить их сейчас? +contrib.import.progress.download = Загрузка %s... +contrib.import.progress.install = Установка %s... +contrib.import.progress.done = %s было установлено. +contrib.import.progress.final_list = Были устновлены следующие библиотеки: +contrib.import.errors.link = Ошибка: у библиотеки %s странная ссылка для загрузки. # --------------------------------------- # Warnings -warn.delete = Удалить -warn.delete.sketch = Вы уверены, что хотите удалить эскиз? -warn.delete.sketch_last = Чтобы сохранить ваши файлы в безопасности, удаление всей папки с наброском не поддерживается в Processing.\nПожалуйста, откройте папку с наброском в проводнике, чтобы удалить её. -warn.delete.file = Вы уверены, что хотите удалить "%s"? -warn.cannot_change_mode.title = Нельзя сменить режим -warn.cannot_change_mode.body = Не получается изменить режим,\nтак как "%s" не совместим с текущим режимом. +warn.delete = Удалить +warn.delete.sketch = Вы уверены, что хотите удалить эскиз? +warn.delete.sketch_last = Чтобы сохранить ваши файлы в безопасности, удаление всей папки с наброском не поддерживается в Processing.\nПожалуйста, откройте папку с наброском в проводнике, чтобы удалить её. +warn.delete.file = Вы уверены, что хотите удалить "%s"? +warn.cannot_change_mode.title = Нельзя сменить режим +warn.cannot_change_mode.body = Не получается изменить режим,\nтак как "%s" не совместим с текущим режимом. # --------------------------------------- # Update Check -update_check = Обновить -update_check.updates_available.core = Доступна новая версия Processing,\nхотите перейти на страницу загрузки Processing? -update_check.updates_available.contributions = Доступны обновления сообщества,\nхотите перейти в менеджер обновлений сообщества? +update_check = Обновить +update_check.updates_available.core = Доступна новая версия Processing,\nхотите перейти на страницу загрузки Processing? +update_check.updates_available.contributions = Доступны обновления сообщества,\nхотите перейти в менеджер обновлений сообщества? # --------------------------------------- # Color Chooser -color_chooser = Выбрать цвет -color_chooser.select = Выбрать +color_chooser = Выбрать цвет +color_chooser.select = Выбрать # --------------------------------------- # Movie Maker -movie_maker = Генератор видео -movie_maker.title = Генератор QuickTime -movie_maker.blurb = Этот инструмент делает QuickTime видео из последовательности изображений.

Для недопущения появления артефактов от пересжатеия изобажений в видео
используйте TIFF, TGA (из Processing) или PNG форматы.

Изображения TIFF и TGA обработаются быстрее, но получившееся видео будет занимать больше места на диске:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG изображения меньше, но набросок будет работать медленно:
saveFrame("frames/####.png");

Код на основе QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. Все права защищены.
-movie_maker.image_folder_help_label = Перетяните папку с изображениями в поле ниже: -movie_maker.choose_button = Выбрать... -movie_maker.select_image_folder = Выбрать папку с изображениями... -movie_maker.sound_file_help_label = Перенесите файл (.au, .aiff, .wav, .mp3) в поле ниже: -movie_maker.select_sound_file = Выбрать звуковой файл... - -movie_maker.create_movie_button = Создать видео... -movie_maker.save_dialog_prompt = Сохранить видео как... -movie_maker.width = Ширина: -movie_maker.height = Высота: -movie_maker.compression = Сжатие: -movie_maker.compression.animation = Анимация +movie_maker = Генератор видео +movie_maker.title = Генератор QuickTime +movie_maker.blurb = Этот инструмент делает QuickTime видео из последовательности изображений.

Для недопущения появления артефактов от пересжатеия изобажений в видео
используйте TIFF, TGA (из Processing) или PNG форматы.

Изображения TIFF и TGA обработаются быстрее, но получившееся видео будет занимать больше места на диске:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

PNG изображения меньше, но набросок будет работать медленно:
saveFrame("frames/####.png");

Код на основе QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. Все права защищены.
+movie_maker.image_folder_help_label = Перетяните папку с изображениями в поле ниже: +movie_maker.choose_button = Выбрать... +movie_maker.select_image_folder = Выбрать папку с изображениями... +movie_maker.sound_file_help_label = Перенесите файл (.au, .aiff, .wav, .mp3) в поле ниже: +movie_maker.select_sound_file = Выбрать звуковой файл... + +movie_maker.create_movie_button = Создать видео... +movie_maker.save_dialog_prompt = Сохранить видео как... +movie_maker.width = Ширина: +movie_maker.height = Высота: +movie_maker.compression = Сжатие: +movie_maker.compression.animation = Анимация movie_maker.compression.jpeg = JPEG movie_maker.compression.png = PNG -movie_maker.framerate = Частота кадров: -movie_maker.orig_size_button = Размер, как у оригинала -movie_maker.orig_size_tooltip = Отметьте флажок, если папка уже содержит видео правильного размера. - -movie_maker.error.avoid_tiff = Попробуйте TGA или PNG вместо TIFF. -movie_maker.error.badnumbers = Ширина и высота должны быть натуральными числами; частота кадров должна быть больше нуля. -movie_maker.error.cannot_read = Не удалось прочитать %s. -movie_maker.error.cannot_read_maybe_bad = Не удалось прочитать %s; файл может быть повреждён. -movie_maker.error.movie_failed = Не удалось создать видео QuickTime. -movie_maker.error.need_input = Нужно сначала выбрать папку с изображениями, звуковыми файлами или всем сразу. -movie_maker.error.no_images_found = Не найдены файлы изображений. -movie_maker.error.sorry = Извините -movie_maker.error.unknown_tga_format = Неизвестный формат .tga для %s. - -movie_maker.progress.creating_file_name = Создаётся %s. -movie_maker.progress.creating_output_file = Создаётся выходной файл -movie_maker.progress.initializing = Инициализация... -movie_maker.progress.processing = Обработка %s. +movie_maker.framerate = Частота кадров: +movie_maker.orig_size_button = Размер, как у оригинала +movie_maker.orig_size_tooltip = Отметьте флажок, если папка уже содержит видео правильного размера. + +movie_maker.error.avoid_tiff = Попробуйте TGA или PNG вместо TIFF. +movie_maker.error.badnumbers = Ширина и высота должны быть натуральными числами; частота кадров должна быть больше нуля. +movie_maker.error.cannot_read = Не удалось прочитать %s. +movie_maker.error.cannot_read_maybe_bad = Не удалось прочитать %s; файл может быть повреждён. +movie_maker.error.movie_failed = Не удалось создать видео QuickTime. +movie_maker.error.need_input = Нужно сначала выбрать папку с изображениями, звуковыми файлами или всем сразу. +movie_maker.error.no_images_found = Не найдены файлы изображений. +movie_maker.error.sorry = Извините +movie_maker.error.unknown_tga_format = Неизвестный формат .tga для %s. + +movie_maker.progress.creating_file_name = Создаётся %s. +movie_maker.progress.creating_output_file = Создаётся выходной файл +movie_maker.progress.initializing = Инициализация... +movie_maker.progress.processing = Обработка %s. diff --git a/build/shared/lib/languages/PDE_tr.properties b/build/shared/lib/languages/PDE_tr.properties index 073317560a..8b8b7f7f55 100644 --- a/build/shared/lib/languages/PDE_tr.properties +++ b/build/shared/lib/languages/PDE_tr.properties @@ -120,7 +120,7 @@ save.hint = Kaydedilmeyen değişiklikler kaybolur save.btn.save = Kaydet save.btn.dont_save = Kaydetme -# AppPreferences (Frame) +# Preferences (Frame) preferences = Tercihler preferences.button.width = 110 preferences.requires_restart = Processing'i yeniden başlatmalısınız diff --git a/build/shared/lib/languages/PDE_uk.properties b/build/shared/lib/languages/PDE_uk.properties index aeb957f777..c4d4d6baf6 100644 --- a/build/shared/lib/languages/PDE_uk.properties +++ b/build/shared/lib/languages/PDE_uk.properties @@ -1,7 +1,7 @@  # --------------------------------------- -# Language: Ukrainian (Українська) (uk) +# Language: Ukrainian (Українська) (uk) # --------------------------------------- @@ -14,143 +14,143 @@ font.family.mono = Source Code Pro # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = Файл -menu.file.new = Створити -menu.file.open = Відкрити... -menu.file.recent = Відкрити останні -menu.file.sketchbook = Ескізник... -menu.file.sketchbook.empty = Очистити ескізник -menu.file.examples = Приклади... -menu.file.close = Закрити -menu.file.save = Зберегти -menu.file.save_as = Зберегти як... -menu.file.export_application = Експортувати застосунок... -menu.file.page_setup = Параметри сторінки -menu.file.print = Друк... -menu.file.preferences = Налаштування... -menu.file.quit = Вийти +menu.file = Файл +menu.file.new = Створити +menu.file.open = Відкрити... +menu.file.recent = Відкрити останні +menu.file.sketchbook = Ескізник... +menu.file.sketchbook.empty = Очистити ескізник +menu.file.examples = Приклади... +menu.file.close = Закрити +menu.file.save = Зберегти +menu.file.save_as = Зберегти як... +menu.file.export_application = Експортувати застосунок... +menu.file.page_setup = Параметри сторінки +menu.file.print = Друк... +menu.file.preferences = Налаштування... +menu.file.quit = Вийти # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = Редагування -menu.edit.undo = Скасувати -menu.edit.redo = Повторити +menu.edit = Редагування +menu.edit.undo = Скасувати +menu.edit.redo = Повторити menu.edit.redo.keystroke.macos = shift meta pressed Z menu.edit.redo.keystroke.windows = ctrl pressed Y menu.edit.redo.keystroke.linux = shift ctrl pressed Z -menu.edit.action.addition = додавання -menu.edit.action.deletion = видалення -menu.edit.cut = Вирізати -menu.edit.copy = Копіювати -menu.edit.copy_as_html = Копіювати як HTML -menu.edit.paste = Вставити -menu.edit.select_all = Виділити все -menu.edit.auto_format = Автоформатування -menu.edit.comment_uncomment = Коментувати/Розкоментувати +menu.edit.action.addition = додавання +menu.edit.action.deletion = видалення +menu.edit.cut = Вирізати +menu.edit.copy = Копіювати +menu.edit.copy_as_html = Копіювати як HTML +menu.edit.paste = Вставити +menu.edit.select_all = Виділити все +menu.edit.auto_format = Автоформатування +menu.edit.comment_uncomment = Коментувати/Розкоментувати menu.edit.comment_uncomment.keystroke.macos = meta pressed SLASH menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH -menu.edit.increase_indent = → Збільшити відступ +menu.edit.increase_indent = → Збільшити відступ menu.edit.increase_indent.keystroke.macos = meta pressed CLOSE_BRACKET menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET -menu.edit.decrease_indent = ← Зменшити відступ +menu.edit.decrease_indent = ← Зменшити відступ menu.edit.decrease_indent.keystroke.macos = meta pressed OPEN_BRACKET menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET -menu.edit.find = Знайти... -menu.edit.find_next = Знайти наступне -menu.edit.find_previous = Знайти попереднє -menu.edit.use_selection_for_find = Шукати виділене +menu.edit.find = Знайти... +menu.edit.find_next = Знайти наступне +menu.edit.find_previous = Знайти попереднє +menu.edit.use_selection_for_find = Шукати виділене # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = Запустити -menu.sketch.present = Режим презентації -menu.sketch.tweak = Модифікувати -menu.sketch.stop = Зупинити +menu.sketch.run = Запустити +menu.sketch.present = Режим презентації +menu.sketch.tweak = Модифікувати +menu.sketch.stop = Зупинити # --- -menu.library = Імпортувати бібліотеку... -# menu.library.add_library = Додати бібліотеку... -menu.library.manage_libraries = Керувати бібліотеками... -menu.library.contributed = Користувацькі -menu.library.no_core_libraries = у режиму немає основних бібліотек +menu.library = Імпортувати бібліотеку... +# menu.library.add_library = Додати бібліотеку... +menu.library.manage_libraries = Керувати бібліотеками... +menu.library.contributed = Користувацькі +menu.library.no_core_libraries = у режиму немає основних бібліотек # --- -menu.sketch = Ескіз -menu.sketch.show_sketch_folder = Показати папку ескізу -menu.sketch.add_file = Додати файл... +menu.sketch = Ескіз +menu.sketch.show_sketch_folder = Показати папку ескізу +menu.sketch.add_file = Додати файл... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = Налагодження -menu.debug.enable = Увімкнути налагоджувач -menu.debug.disable = Вимкнути налагоджувач -#menu.debug.show_debug_toolbar = Показати панель налагодження -#menu.debug.debug = Почати налагодження -#menu.debug.stop = Зупинити налагодження +menu.debug = Налагодження +menu.debug.enable = Увімкнути налагоджувач +menu.debug.disable = Вимкнути налагоджувач +#menu.debug.show_debug_toolbar = Показати панель налагодження +#menu.debug.debug = Почати налагодження +#menu.debug.stop = Зупинити налагодження # --- -menu.debug.toggle_breakpoint = Додати / вилучити точку зупинки -#menu.debug.list_breakpoints = Показати список точок зупинки +menu.debug.toggle_breakpoint = Додати / вилучити точку зупинки +#menu.debug.list_breakpoints = Показати список точок зупинки # --- # used for both menus and toolbars -menu.debug.step = Крок +menu.debug.step = Крок menu.debug.step.keystroke.macos = meta pressed J menu.debug.step.keystroke.windows = ctrl pressed J menu.debug.step.keystroke.linux = ctrl pressed J -menu.debug.step_into = Крок із заходом +menu.debug.step_into = Крок із заходом menu.debug.step_into.keystroke.macos = shift meta pressed J menu.debug.step_into.keystroke.windows = shift ctrl pressed J menu.debug.step_into.keystroke.linux = shift ctrl pressed J -menu.debug.step_out = Крок із виходом +menu.debug.step_out = Крок із виходом menu.debug.step_out.keystroke.macos = meta alt pressed J menu.debug.step_out.keystroke.windows = ctrl alt pressed J menu.debug.step_out.keystroke.linux = ctrl alt pressed J -menu.debug.continue = Продовжити +menu.debug.continue = Продовжити # --- -#menu.debug.print_stack_trace = Друкувати стек викликів -#menu.debug.print_locals = Друкувати локальні змінні -#menu.debug.print_fields = Друкувати поля -#menu.debug.print_source_location = Друкувати розташування джерела -#menu.debug.print_threads = Друкувати потоки +#menu.debug.print_stack_trace = Друкувати стек викликів +#menu.debug.print_locals = Друкувати локальні змінні +#menu.debug.print_fields = Друкувати поля +#menu.debug.print_source_location = Друкувати розташування джерела +#menu.debug.print_threads = Друкувати потоки # --- -#menu.debug.variable_inspector = Інспектор змінних -menu.debug.show_variables = Показати змінні -menu.debug.hide_variables = Приховати змінні -#menu.debug.show_sketch_outline = Показати начерк ескізу -#menu.debug.show_tabs_list = Показати список вкладок +#menu.debug.variable_inspector = Інспектор змінних +menu.debug.show_variables = Показати змінні +menu.debug.hide_variables = Приховати змінні +#menu.debug.show_sketch_outline = Показати начерк ескізу +#menu.debug.show_tabs_list = Показати список вкладок # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = Інструменти -menu.tools.color_selector = Вибрати колір... -menu.tools.create_font = Створити шрифт... -menu.tools.archive_sketch = Архівувати ескіз -menu.tools.fix_the_serial_lbrary = Виправити Serial Library -menu.tools.install_processing_java = Встановити "processing-java" -# menu.tools.add_tool = Додати інструмент... -menu.tools.manage_tools = Керувати інструментами... +menu.tools = Інструменти +menu.tools.color_selector = Вибрати колір... +menu.tools.create_font = Створити шрифт... +menu.tools.archive_sketch = Архівувати ескіз +menu.tools.fix_the_serial_lbrary = Виправити Serial Library +menu.tools.install_processing_java = Встановити "processing-java" +# menu.tools.add_tool = Додати інструмент... +menu.tools.manage_tools = Керувати інструментами... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = Довідка -menu.help.welcome = Ласкаво просимо до Processing -menu.help.about = Про Processing -menu.help.environment = Середовище -menu.help.reference = Документація -menu.help.find_in_reference = Знайти у документації -menu.help.libraries_reference = Документація бібліотек -menu.help.tools_reference = Документація інструментів -menu.help.empty = (порожньо) -menu.help.online = Онлайн -menu.help.getting_started = Перші кроки (англ.) +menu.help = Довідка +menu.help.welcome = Ласкаво просимо до Processing +menu.help.about = Про Processing +menu.help.environment = Середовище +menu.help.reference = Документація +menu.help.find_in_reference = Знайти у документації +menu.help.libraries_reference = Документація бібліотек +menu.help.tools_reference = Документація інструментів +menu.help.empty = (порожньо) +menu.help.online = Онлайн +menu.help.getting_started = Перші кроки (англ.) # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = Вирішення проблем (англ.) +menu.help.troubleshooting = Вирішення проблем (англ.) # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = Часті питання (англ.) +menu.help.faq = Часті питання (англ.) # menu.help.faq.url = http://wiki.processing.org/w/FAQ -menu.help.foundation = The Processing Foundation (англ.) +menu.help.foundation = The Processing Foundation (англ.) # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = Відвідати Processing.org (англ.) +menu.help.visit = Відвідати Processing.org (англ.) # menu.help.visit.url = http://processing.org/ @@ -158,497 +158,497 @@ menu.help.visit = Відвідати Processing.org (ан # Basics # Buttons -prompt.yes = Так -prompt.no = Ні -prompt.cancel = Скасувати -prompt.ok = ОК -prompt.browse = Огляд -prompt.export = Експортувати +prompt.yes = Так +prompt.no = Ні +prompt.cancel = Скасувати +prompt.ok = ОК +prompt.browse = Огляд +prompt.export = Експортувати # --------------------------------------- # Frames # Open (Frame) -open = Відкрити ескіз Processing... +open = Відкрити ескіз Processing... # Save (Frame) -save = Зберегти папку ескізу як... -save.title = Зберегти зміни до %s перед закриттям? -save.hint = Якщо не зберегти зміни, їх буде втрачено. -save.btn.save = Зберегти -save.btn.dont_save = Не зберігати +save = Зберегти папку ескізу як... +save.title = Зберегти зміни до %s перед закриттям? +save.hint = Якщо не зберегти зміни, їх буде втрачено. +save.btn.save = Зберегти +save.btn.dont_save = Не зберігати # Close (Frame) also used to prompt on non-macOS machines -close.unsaved_changes = Зберегти зміни до %s? +close.unsaved_changes = Зберегти зміни до %s? -# AppPreferences (Frame) -preferences = Налаштування +# Preferences (Frame) +preferences = Налаштування preferences.button.width = 95 -preferences.requires_restart = потрібен перезапуск Processing -preferences.sketchbook_location = Місцезнаходження ескізника -preferences.sketchbook_location.popup = Місцезнаходження ескізника -preferences.language = Мова -preferences.editor_and_console_font = Шрифт редактора і консолі -preferences.editor_and_console_font.tip = Виберіть шрифт, що використовуватиметься у редакторі та консолі.
Можна використовувати лише моноширинні шрифти. -preferences.editor_font_size = Розмір шрифту редактора -preferences.console_font_size = Розмір шрифту консолі -preferences.zoom = Розмір інтерфейсу -preferences.zoom.auto = Автоматичний -preferences.background_color = Колір фону в режимі презентації -preferences.background_color.tip = Виберіть фоновий колір для режиму презентації.
Режим презентації використовується для повноекранної презентації ескізу
і доступний з меню Ескіз. -preferences.use_smooth_text = Використовувати згладжений текст у вікні редактора -preferences.enable_complex_text_input = Увімкнути введення складного тексту -preferences.enable_complex_text_input_example = напр. японська -preferences.continuously_check = Постійно перевіряти на помилки -preferences.show_warnings = Показувати попередження -preferences.code_completion = Доповнення коду за допомогою -preferences.trigger_with = Запуск за допомогою -preferences.cmd_space = Пробіл -preferences.suggest_imports = Пропонувати інструкції import -preferences.increase_max_memory = Збільшити максимальну доступну пам’ять до -preferences.delete_previous_folder_on_export = Видаляти попередню папку при експортуванні -preferences.check_for_updates_on_startup = Дозволяти перевірку на оновлення (див. ЧаПи щодо інформації, яка передається) -preferences.run_sketches_on_display = Запускати ескізи на моніторі -preferences.run_sketches_on_display.tip = Задає монітор, де спочатку розміщені ескізи.
Якщо вікно ескізу буде переміщено, воно відкриється у тому ж
місці, але у режимі презентації (на повний екран) завжди
використовуватиметься цей монітор. -preferences.automatically_associate_pde_files = Автоматично асоціювати файли .pde з Processing -preferences.launch_programs_in = Запускати програми у режимі +preferences.requires_restart = потрібен перезапуск Processing +preferences.sketchbook_location = Місцезнаходження ескізника +preferences.sketchbook_location.popup = Місцезнаходження ескізника +preferences.language = Мова +preferences.editor_and_console_font = Шрифт редактора і консолі +preferences.editor_and_console_font.tip = Виберіть шрифт, що використовуватиметься у редакторі та консолі.
Можна використовувати лише моноширинні шрифти. +preferences.editor_font_size = Розмір шрифту редактора +preferences.console_font_size = Розмір шрифту консолі +preferences.zoom = Розмір інтерфейсу +preferences.zoom.auto = Автоматичний +preferences.background_color = Колір фону в режимі презентації +preferences.background_color.tip = Виберіть фоновий колір для режиму презентації.
Режим презентації використовується для повноекранної презентації ескізу
і доступний з меню Ескіз. +preferences.use_smooth_text = Використовувати згладжений текст у вікні редактора +preferences.enable_complex_text_input = Увімкнути введення складного тексту +preferences.enable_complex_text_input_example = напр. японська +preferences.continuously_check = Постійно перевіряти на помилки +preferences.show_warnings = Показувати попередження +preferences.code_completion = Доповнення коду за допомогою +preferences.trigger_with = Запуск за допомогою +preferences.cmd_space = Пробіл +preferences.suggest_imports = Пропонувати інструкції import +preferences.increase_max_memory = Збільшити максимальну доступну пам’ять до +preferences.delete_previous_folder_on_export = Видаляти попередню папку при експортуванні +preferences.check_for_updates_on_startup = Дозволяти перевірку на оновлення (див. ЧаПи щодо інформації, яка передається) +preferences.run_sketches_on_display = Запускати ескізи на моніторі +preferences.run_sketches_on_display.tip = Задає монітор, де спочатку розміщені ескізи.
Якщо вікно ескізу буде переміщено, воно відкриється у тому ж
місці, але у режимі презентації (на повний екран) завжди
використовуватиметься цей монітор. +preferences.automatically_associate_pde_files = Автоматично асоціювати файли .pde з Processing +preferences.launch_programs_in = Запускати програми у режимі # Intentionally left blank # In Ukrainian "launch programs in mode X" looks nicer than "launch programs in X mode" preferences.launch_programs_in.mode = -preferences.file = Інші налаштування можна вручну редагувати у файлі -preferences.file.hint = не редагувати, коли Processing запущено! +preferences.file = Інші налаштування можна вручну редагувати у файлі +preferences.file.hint = не редагувати, коли Processing запущено! # Sketchbook Location (Frame) -sketchbook_location = Виберіть нове місцезнаходження ескізника +sketchbook_location = Виберіть нове місцезнаходження ескізника # Sketchbook (Frame) -sketchbook = Ескізник -sketchbook.tree = Ескізник +sketchbook = Ескізник +sketchbook.tree = Ескізник # Examples (Frame) -examples.title = Приклади %s -examples.add_examples = Додати приклади... -examples.libraries = Користувацькі бібліотеки -examples.core_libraries = Бібліотеки -examples.contributed = Користувацькі приклади +examples.title = Приклади %s +examples.add_examples = Додати приклади... +examples.libraries = Користувацькі бібліотеки +examples.core_libraries = Бібліотеки +examples.contributed = Користувацькі приклади # Export (Frame) -export = Налаштування експортування -export.platforms = Платформи -export.options = Налаштування -export.options.present = Режим презентації -export.options.show_stop_button = Показувати кнопку зупинки -export.description.line1 = "Експортування застосунку" створює інтерактивні, -export.description.line2 = незалежні застосунки для обраних платформ. -export.unsaved_changes = Зберегти зміни перед тим, як експортувати? -export.notice.cancel.unsaved_changes = Експортування скасовано, спершу потрібно зберегти зміни. -export.notice.exporting = Експортую застосунок... -export.notice.exporting.done = Експортування завершено. -export.notice.exporting.error = Помилка експортування. -export.notice.exporting.cancel = Експортування застосунку скасовано. -export.tooltip.macos = Експорт для macOS доступний лише на macOS -export.full_screen = Повний екран -export.embed_java = Вбудувати Java -export.include_java = Включати Java у додатку %s -export.code_signing = Цифровий підпис -export.messages.is_read_only = Ескіз лише для читання -export.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. -export.messages.cannot_export = Експортування неможливе -export.messages.cannot_export.description = Не можна експортувати ескіз, який не було збережено. +export = Налаштування експортування +export.platforms = Платформи +export.options = Налаштування +export.options.present = Режим презентації +export.options.show_stop_button = Показувати кнопку зупинки +export.description.line1 = "Експортування застосунку" створює інтерактивні, +export.description.line2 = незалежні застосунки для обраних платформ. +export.unsaved_changes = Зберегти зміни перед тим, як експортувати? +export.notice.cancel.unsaved_changes = Експортування скасовано, спершу потрібно зберегти зміни. +export.notice.exporting = Експортую застосунок... +export.notice.exporting.done = Експортування завершено. +export.notice.exporting.error = Помилка експортування. +export.notice.exporting.cancel = Експортування застосунку скасовано. +export.tooltip.macos = Експорт для macOS доступний лише на macOS +export.full_screen = Повний екран +export.embed_java = Вбудувати Java +export.include_java = Включати Java у додатку %s +export.code_signing = Цифровий підпис +export.messages.is_read_only = Ескіз лише для читання +export.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +export.messages.cannot_export = Експортування неможливе +export.messages.cannot_export.description = Не можна експортувати ескіз, який не було збережено. # Find (Frame) -find = Знайти -find.find = Знайти: -find.replace_with = Замінити на: -find.ignore_case = Не враховувати регістр -find.all_tabs = По всіх вкладках -find.wrap_around = По всьому документу -find.btn.replace_all = Замінити все -find.btn.replace = Замінити -find.btn.replace_and_find = Замінити і знайти далі -find.btn.previous = Назад -find.btn.find = Знайти +find = Знайти +find.find = Знайти: +find.replace_with = Замінити на: +find.ignore_case = Не враховувати регістр +find.all_tabs = По всіх вкладках +find.wrap_around = По всьому документу +find.btn.replace_all = Замінити все +find.btn.replace = Замінити +find.btn.replace_and_find = Замінити і знайти далі +find.btn.previous = Назад +find.btn.find = Знайти # Find in reference (Frame) -find_in_reference = Знайти у документації +find_in_reference = Знайти у документації # File (Frame) -file = Виберіть зображення або інший файл з даними, щоб скопіювати його у ескіз +file = Виберіть зображення або інший файл з даними, щоб скопіювати його у ескіз # Create Font (Frame) -create_font = Створити шрифт -create_font.label = Цей інструмент призначений для створення растрових шрифтів для вашої програми.\nВиберіть шрифт та розмір і натисніть "ОК", щоб згенерувати шрифт.\nЙого буде додано до папки даних поточного ескізу. -create_font.size = Розмір -create_font.smooth = Згладжений -create_font.characters = Символи... -create_font.character_selector = Вибирач символів -create_font.character_selector.label = У стандартні символи включено більшість bitmap-ів для Mac OS\nі Windows Latin. Включення усіх символів вимагає великого\nобсягу пам’яті.\nДля кращої навігації можна обрати конкретні блоки Unicode. -create_font.default_characters = Стандартні символи -create_font.all_characters = Усі символи -create_font.specific_unicode = Конкретні блоки Unicode -create_font.filename = Ім’я файлу +create_font = Створити шрифт +create_font.label = Цей інструмент призначений для створення растрових шрифтів для вашої програми.\nВиберіть шрифт та розмір і натисніть "ОК", щоб згенерувати шрифт.\nЙого буде додано до папки даних поточного ескізу. +create_font.size = Розмір +create_font.smooth = Згладжений +create_font.characters = Символи... +create_font.character_selector = Вибирач символів +create_font.character_selector.label = У стандартні символи включено більшість bitmap-ів для Mac OS\nі Windows Latin. Включення усіх символів вимагає великого\nобсягу пам’яті.\nДля кращої навігації можна обрати конкретні блоки Unicode. +create_font.default_characters = Стандартні символи +create_font.all_characters = Усі символи +create_font.specific_unicode = Конкретні блоки Unicode +create_font.filename = Ім’я файлу # Color Selector (Frame) -color_selector = Вибирач кольору +color_selector = Вибирач кольору # Archive Sketch (Frame) -archive_sketch = Архівувати ескіз як... +archive_sketch = Архівувати ескіз як... # Tweak Mode -tweak_mode = Режим модифікування -tweak_mode.save_before_tweak = Будь ласка, збережіть ескіз перед тим, як запускати його у режимі модифікування. -tweak_mode.keep_changes.line1 = Зберегти змінні? -tweak_mode.keep_changes.line2 = Ви змінили деякі параметри у вашому ескізі. Бажаєте зберегти зміни? +tweak_mode = Режим модифікування +tweak_mode.save_before_tweak = Будь ласка, збережіть ескіз перед тим, як запускати його у режимі модифікування. +tweak_mode.keep_changes.line1 = Зберегти змінні? +tweak_mode.keep_changes.line2 = Ви змінили деякі параметри у вашому ескізі. Бажаєте зберегти зміни? # DebugTray -debugger.name = Ім’я -debugger.value = Значення -debugger.type = Тип +debugger.name = Ім’я +debugger.value = Значення +debugger.type = Тип # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = Запустити -toolbar.present = Презентувати -toolbar.stop = Зупинити -toolbar.debug = Налагоджувати +toolbar.run = Запустити +toolbar.present = Презентувати +toolbar.stop = Зупинити +toolbar.debug = Налагоджувати # --- -toolbar.new = Створити -toolbar.open = Відкрити -toolbar.save = Зберегти -# toolbar.export_application = Експортувати застосунок -toolbar.add_mode = Додати режим... +toolbar.new = Створити +toolbar.open = Відкрити +toolbar.save = Зберегти +# toolbar.export_application = Експортувати застосунок +toolbar.add_mode = Додати режим... # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] -#toolbar.debug.continue = Продовжити -#toolbar.debug.step = Крок -#toolbar.debug.step_into = Крок із заходом -#toolbar.debug.stop = Зупинити -#toolbar.debug.toggle_breakpoints = Додати / вилучити точку зупинки -#toolbar.debug.variable_inspector = Інспектор змінних +#toolbar.debug.continue = Продовжити +#toolbar.debug.step = Крок +#toolbar.debug.step_into = Крок із заходом +#toolbar.debug.stop = Зупинити +#toolbar.debug.toggle_breakpoints = Додати / вилучити точку зупинки +#toolbar.debug.variable_inspector = Інспектор змінних # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = Нова вкладка -editor.header.rename = Перейменувати -editor.header.delete = Видалити -editor.header.previous_tab = Попередня вкладка +editor.header.new_tab = Нова вкладка +editor.header.rename = Перейменувати +editor.header.delete = Видалити +editor.header.previous_tab = Попередня вкладка editor.header.previous_tab.keystroke.macos = meta alt pressed LEFT editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP -editor.header.next_tab = Наступна вкладка +editor.header.next_tab = Наступна вкладка editor.header.next_tab.keystroke.macos = meta alt pressed RIGHT editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN -editor.header.delete.warning.title = Хех, ні. -editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. +editor.header.delete.warning.title = Хех, ні. +editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. # PopUp menu -editor.popup.jump_to_declaration = Перейти до визначення -editor.popup.show_usage = Показати використання... -editor.popup.rename = Перейменувати... +editor.popup.jump_to_declaration = Перейти до визначення +editor.popup.show_usage = Показати використання... +editor.popup.rename = Перейменувати... # Tabs -editor.tab.new = Нове ім’я -editor.tab.new.description = Ім’я нового файлу -editor.tab.rename = Нове ім’я -editor.tab.rename.description = Нове ім’я файлу +editor.tab.new = Нове ім’я +editor.tab.new.description = Ім’я нового файлу +editor.tab.rename = Нове ім’я +editor.tab.rename.description = Нове ім’я файлу # Sketch -editor.sketch.rename.description = Ім’я нового ескізу - -editor.status.autoformat.no_changes = Не потрібно нічого змінювати для автоформатування. -editor.status.autoformat.finished = Автоформатування завершено. -editor.status.find_reference.select_word_first = Спершу виберіть слово, яке потрібно знайти у документації. -editor.status.find_reference.not_available = Документація для "%s" недоступна. -editor.status.drag_and_drop.files_added.0 = До ескізу не додано жодного файлу. -editor.status.drag_and_drop.files_added.1 = До ескізу додано один файл. -editor.status.drag_and_drop.files_added.n = До ескізу додано %d файли(-ів). -editor.status.saving = Зберігаю... -editor.status.saving.done = Збереження завершено. -editor.status.saving.canceled = Збереження скасовано. -editor.status.printing = Друкую... -editor.status.printing.done = Друк завершено. -editor.status.printing.error = Помилка під час друку. -editor.status.printing.canceled = Друк скасовано. -editor.status.copy_as_html = Код, форматований як HTML, скопійовано до буферу обміну. -editor.status.debug.busy = Налагоджувач зайнятий... -editor.status.debug.halt = Налагоджувач зупинено. -editor.status.archiver.create = Архів "%s" створено. -editor.status.archiver.cancel = Архівування ескізу скасовано. +editor.sketch.rename.description = Ім’я нового ескізу + +editor.status.autoformat.no_changes = Не потрібно нічого змінювати для автоформатування. +editor.status.autoformat.finished = Автоформатування завершено. +editor.status.find_reference.select_word_first = Спершу виберіть слово, яке потрібно знайти у документації. +editor.status.find_reference.not_available = Документація для "%s" недоступна. +editor.status.drag_and_drop.files_added.0 = До ескізу не додано жодного файлу. +editor.status.drag_and_drop.files_added.1 = До ескізу додано один файл. +editor.status.drag_and_drop.files_added.n = До ескізу додано %d файли(-ів). +editor.status.saving = Зберігаю... +editor.status.saving.done = Збереження завершено. +editor.status.saving.canceled = Збереження скасовано. +editor.status.printing = Друкую... +editor.status.printing.done = Друк завершено. +editor.status.printing.error = Помилка під час друку. +editor.status.printing.canceled = Друк скасовано. +editor.status.copy_as_html = Код, форматований як HTML, скопійовано до буферу обміну. +editor.status.debug.busy = Налагоджувач зайнятий... +editor.status.debug.halt = Налагоджувач зупинено. +editor.status.archiver.create = Архів "%s" створено. +editor.status.archiver.cancel = Архівування ескізу скасовано. # Errors -editor.status.warning = Попередження -editor.status.error = Помилка -editor.status.error.syntax = Помилка синтаксису - %s -editor.status.error_on = Помилка на "%s" -editor.status.missing.default = Відсутні "%c" -editor.status.missing.semicolon = Відсутня ";" -editor.status.missing.left_sq_bracket = Відсутня "[" -editor.status.missing.right_sq_bracket = Відсутня "]" -editor.status.missing.left_paren = Відсутня "(" -editor.status.missing.right_paren = Відсутня ")" -editor.status.missing.left_curly_bracket = Відсутня "{" -editor.status.missing.right_curly_bracket = Відсутня "}" -editor.status.missing.add = Спробуйте додати "%s" -editor.status.bad_curly_quote = Фігурні лапки %s не працюють. Використовуйте прямі лапки. Ctrl-T для автозаміни. -editor.status.reserved_words = "color" і "int" - зарезервовані ідентифікатори і не можуть бути назвами змінних -editor.status.undefined_method = Функція "%s(%s)" не існує -editor.status.undefined_constructor = Конструктор "%s(%s)" не існує -editor.status.empty_param = Функція "%s()" не очікує параметрів -editor.status.wrong_param = Функція "%s()" очікує такі параметри: "%s(%s)" -editor.status.undef_global_var = Глобальна змінна "%s" не існує -editor.status.undef_class = Клас "%s" не існує -editor.status.undef_var = Змінна "%s" не існує -editor.status.undef_name = Ім’я "%s" не може бути розпізнано -editor.status.unterm_string_curly = Рядковий літерал не оточений прямими лапками. Фігурні лапки %s не працюють. -editor.status.type_mismatch = Неспівпадіння типів "%s" та "%s" -editor.status.unused_variable = Локальна змінна "%s" ніде не використовується -editor.status.uninitialized_variable = Локальна змінна "%s" може бути не ініціалізована -editor.status.no_effect_assignment = Присвоєння змінної "%s" не має чинності -editor.status.hiding_enclosing_type = Клас "%s" не може мати ім'я ескізу або батьківського класу. - -editor.status.bad.assignment = Можлива помилка присвоєння змінної біля '%s'? -editor.status.bad.generic = Можливо, немає типу в дженерику біля '%s'? -editor.status.bad.identifier = Помилка ідентифікатора? Можливо, неправильний ідентифікатор, або змінна починається з цифр біля '%s'? -editor.status.bad.parameter = Помилка визначення параметру чи методу біля '%s'? -editor.status.bad.import = Імпорт тут не дозволений. -editor.status.extraneous = Незакінчений рядок або зайвий код біля '%s'? -editor.status.mismatched = Не вистачає оператора, ; або '}' біля '%s'? -editor.status.missing.name = Не вистачає назви або ; біля '%s'? -editor.status.missing.type = Не вистачає назви, ; або типу '%s'? +editor.status.warning = Попередження +editor.status.error = Помилка +editor.status.error.syntax = Помилка синтаксису - %s +editor.status.error_on = Помилка на "%s" +editor.status.missing.default = Відсутні "%c" +editor.status.missing.semicolon = Відсутня ";" +editor.status.missing.left_sq_bracket = Відсутня "[" +editor.status.missing.right_sq_bracket = Відсутня "]" +editor.status.missing.left_paren = Відсутня "(" +editor.status.missing.right_paren = Відсутня ")" +editor.status.missing.left_curly_bracket = Відсутня "{" +editor.status.missing.right_curly_bracket = Відсутня "}" +editor.status.missing.add = Спробуйте додати "%s" +editor.status.bad_curly_quote = Фігурні лапки %s не працюють. Використовуйте прямі лапки. Ctrl-T для автозаміни. +editor.status.reserved_words = "color" і "int" - зарезервовані ідентифікатори і не можуть бути назвами змінних +editor.status.undefined_method = Функція "%s(%s)" не існує +editor.status.undefined_constructor = Конструктор "%s(%s)" не існує +editor.status.empty_param = Функція "%s()" не очікує параметрів +editor.status.wrong_param = Функція "%s()" очікує такі параметри: "%s(%s)" +editor.status.undef_global_var = Глобальна змінна "%s" не існує +editor.status.undef_class = Клас "%s" не існує +editor.status.undef_var = Змінна "%s" не існує +editor.status.undef_name = Ім’я "%s" не може бути розпізнано +editor.status.unterm_string_curly = Рядковий літерал не оточений прямими лапками. Фігурні лапки %s не працюють. +editor.status.type_mismatch = Неспівпадіння типів "%s" та "%s" +editor.status.unused_variable = Локальна змінна "%s" ніде не використовується +editor.status.uninitialized_variable = Локальна змінна "%s" може бути не ініціалізована +editor.status.no_effect_assignment = Присвоєння змінної "%s" не має чинності +editor.status.hiding_enclosing_type = Клас "%s" не може мати ім'я ескізу або батьківського класу. + +editor.status.bad.assignment = Можлива помилка присвоєння змінної біля '%s'? +editor.status.bad.generic = Можливо, немає типу в дженерику біля '%s'? +editor.status.bad.identifier = Помилка ідентифікатора? Можливо, неправильний ідентифікатор, або змінна починається з цифр біля '%s'? +editor.status.bad.parameter = Помилка визначення параметру чи методу біля '%s'? +editor.status.bad.import = Імпорт тут не дозволений. +editor.status.extraneous = Незакінчений рядок або зайвий код біля '%s'? +editor.status.mismatched = Не вистачає оператора, ; або '}' біля '%s'? +editor.status.missing.name = Не вистачає назви або ; біля '%s'? +editor.status.missing.type = Не вистачає назви, ; або типу '%s'? # Footer buttons -editor.footer.errors = Помилки -editor.footer.errors.problem = Проблема -editor.footer.errors.tab = Вкладка -editor.footer.errors.line = Рядок -editor.footer.console = Консоль +editor.footer.errors = Помилки +editor.footer.errors.problem = Проблема +editor.footer.errors.tab = Вкладка +editor.footer.errors.line = Рядок +editor.footer.console = Консоль # New handler -new.messages.is_read_only = Ескіз лише для читання -new.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +new.messages.is_read_only = Ескіз лише для читання +new.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. # Rename handler -rename.messages.is_untitled = Ескіз безіменний -rename.messages.is_untitled.description = Варто зберегти ескіз\nперед тим, як перейменовувати його -rename.messages.is_modified = Будь ласка, збережіть ескіз перед перейменування. -rename.messages.is_read_only = Ескіз лише для читання -rename.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +rename.messages.is_untitled = Ескіз безіменний +rename.messages.is_untitled.description = Варто зберегти ескіз\nперед тим, як перейменовувати його +rename.messages.is_modified = Будь ласка, збережіть ескіз перед перейменування. +rename.messages.is_read_only = Ескіз лише для читання +rename.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. # Naming handler -name.messages.problem_renaming = Помилка перейменовування -name.messages.starts_with_dot.description = Ім’я не може починатись з крапки. -name.messages.invalid_extension.description = ".%s" не є допустимим розширенням. -name.messages.main_java_extension.description = Перша вкладка не може бути файлом .%s.\n(А не пора тобі перейти на\n"справжнє" середовище програмування?) -name.messages.new_sketch_exists = Перейменування неможливе -name.messages.new_sketch_exists.description = Файл з назвою "%s" вже існує у\n"%s" -name.messages.new_folder_exists = Перейменування неможливе -name.messages.new_folder_exists.description = Ескіз (чи папка) з назвою "%s" вже існує. -name.messages.error = Помилка -name.messages.no_rename_folder.description = Не вдалось перейменувати папку ескізу. -name.messages.no_rename_file.description = Не вдалось перейменувати "%s" на "%s" -name.messages.no_create_file.description = Не вдалось створити файл "%s"\nу "%s" +name.messages.problem_renaming = Помилка перейменовування +name.messages.starts_with_dot.description = Ім’я не може починатись з крапки. +name.messages.invalid_extension.description = ".%s" не є допустимим розширенням. +name.messages.main_java_extension.description = Перша вкладка не може бути файлом .%s.\n(А не пора тобі перейти на\n"справжнє" середовище програмування?) +name.messages.new_sketch_exists = Перейменування неможливе +name.messages.new_sketch_exists.description = Файл з назвою "%s" вже існує у\n"%s" +name.messages.new_folder_exists = Перейменування неможливе +name.messages.new_folder_exists.description = Ескіз (чи папка) з назвою "%s" вже існує. +name.messages.error = Помилка +name.messages.no_rename_folder.description = Не вдалось перейменувати папку ескізу. +name.messages.no_rename_file.description = Не вдалось перейменувати "%s" на "%s" +name.messages.no_create_file.description = Не вдалось створити файл "%s"\nу "%s" # Delete handler -delete.messages.cannot_delete = Видалення неможливе -delete.messages.cannot_delete.description = Не можна видалити ескіз, який не було збережено. -delete.messages.cannot_delete.file = Не вдалось це зробити -delete.messages.cannot_delete.file.description = Не вдалось видалити -delete.messages.is_read_only = Ескіз лише для читання -delete.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +delete.messages.cannot_delete = Видалення неможливе +delete.messages.cannot_delete.description = Не можна видалити ескіз, який не було збережено. +delete.messages.cannot_delete.file = Не вдалось це зробити +delete.messages.cannot_delete.file.description = Не вдалось видалити +delete.messages.is_read_only = Ескіз лише для читання +delete.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. # Save handler -save_file.messages.is_read_only = Ескіз лише для читання -save_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні. -save_file.messages.sketch_exists = Не вдалось зберегти -save_file.messages.sketch_exists.description = Ескіз з очищеним іменем\n“%s” вже існує. -save_file.messages.tab_exists = Не вдалось зберегти -save_file.messages.tab_exists.description = Не можна зберегти ескіз як "%s"\nбо він вже має вкладку з таким іменем. -save_file.messages.recursive_save = Збереження в стилі Боргеса -save_file.messages.recursive_save.description = Не можна зберегти ескіз всередині\nсамого себе. Це викличе нескінченну рекурсію. +save_file.messages.is_read_only = Ескіз лише для читання +save_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні. +save_file.messages.sketch_exists = Не вдалось зберегти +save_file.messages.sketch_exists.description = Ескіз з очищеним іменем\n“%s” вже існує. +save_file.messages.tab_exists = Не вдалось зберегти +save_file.messages.tab_exists.description = Не можна зберегти ескіз як "%s"\nбо він вже має вкладку з таким іменем. +save_file.messages.recursive_save = Збереження в стилі Боргеса +save_file.messages.recursive_save.description = Не можна зберегти ескіз всередині\nсамого себе. Це викличе нескінченну рекурсію. # Add handler -add_file.messages.is_read_only = Ескіз лише для читання -add_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. -add_file.messages.confirm_replace = Замінити існуюче розширення %s? -add_file.messages.error_adding = Помилка при додаванні файлу -add_file.messages.cannot_delete.description = Не вдалось видалити існуючий файл '%s'. -add_file.messages.cannot_add.description = Не вдалось додати '%s' до ескізу. -add_file.messages.same_file = Мене не надуриш -add_file.messages.same_file.description = Цей файл уже скопійовано у\nрозташування, куди ви його копіюєте.\nЯ ніц не зроблю. +add_file.messages.is_read_only = Ескіз лише для читання +add_file.messages.is_read_only.description = Деякі файли позначено як "лише для читання".\nЗбережіть ескіз у іншому розташуванні та\nспробуйте знову. +add_file.messages.confirm_replace = Замінити існуюче розширення %s? +add_file.messages.error_adding = Помилка при додаванні файлу +add_file.messages.cannot_delete.description = Не вдалось видалити існуючий файл '%s'. +add_file.messages.cannot_add.description = Не вдалось додати '%s' до ескізу. +add_file.messages.same_file = Мене не надуриш +add_file.messages.same_file.description = Цей файл уже скопійовано у\nрозташування, куди ви його копіюєте.\nЯ ніц не зроблю. # Temp folder creator -temp_dir.messages.bad_build_folder = Погана папка збірки -temp_dir.messages.bad_build_folder.description = Не вдалось знайти розташування для збірки ескізу. +temp_dir.messages.bad_build_folder = Погана папка збірки +temp_dir.messages.bad_build_folder.description = Не вдалось знайти розташування для збірки ескізу. # Ensure Existance -ensure_exist.messages.missing_sketch = Ескіз зник -ensure_exist.messages.missing_sketch.description = Папка ескізу зникла.\nСпробую зберегти у тому ж розташуванні,\nале все, крім коду, зникне. -ensure_exist.messages.unrecoverable = Не вдалось зберегти ескіз -ensure_exist.messages.unrecoverable.description = Не вдалось повторно зберегти ескіз. У вас можуть бути проблеми,\nпора копіювати і вставляти код у інший текстовий редактор. +ensure_exist.messages.missing_sketch = Ескіз зник +ensure_exist.messages.missing_sketch.description = Папка ескізу зникла.\nСпробую зберегти у тому ж розташуванні,\nале все, крім коду, зникне. +ensure_exist.messages.unrecoverable = Не вдалось зберегти ескіз +ensure_exist.messages.unrecoverable.description = Не вдалось повторно зберегти ескіз. У вас можуть бути проблеми,\nпора копіювати і вставляти код у інший текстовий редактор. # Check name -check_name.messages.is_name_modified = Ім’я ескізу потрібно було змінити. Імена ескізів можуть містити\nтільки ASCII-символи і числа (але не можуть починатися з числа).\nКрім того, вони мають бути не довшими за 64 символи. +check_name.messages.is_name_modified = Ім’я ескізу потрібно було змінити. Імена ескізів можуть містити\nтільки ASCII-символи і числа (але не можуть починатися з числа).\nКрім того, вони мають бути не довшими за 64 символи. # External changes detector -change_detect.reload.title=Вкладка змінена ззовні -change_detect.reload.question="%s" була змінена іншою програмою. -change_detect.reload.comment=Бажаєте залишити цю версію чи завантажити зміни ззовні?\nТак чи інакше, файл буде збережено в папці з ескізами. -change_detect.button.keep=Залишити -change_detect.button.load_new=Завантажити зміни ззовні -change_detect.delete.title=Вкладка видалена -change_detect.delete.question="%s" зникла з папки з ескізами. -change_detect.delete.comment=Бажаєте повторно її зберегти чи видалити зі свого ескізу? -change_detect.button.discard=Видалити назавжди -change_detect.button.resave=Повторно зберегти +change_detect.reload.title=Вкладка змінена ззовні +change_detect.reload.question="%s" була змінена іншою програмою. +change_detect.reload.comment=Бажаєте залишити цю версію чи завантажити зміни ззовні?\nТак чи інакше, файл буде збережено в папці з ескізами. +change_detect.button.keep=Залишити +change_detect.button.load_new=Завантажити зміни ззовні +change_detect.delete.title=Вкладка видалена +change_detect.delete.question="%s" зникла з папки з ескізами. +change_detect.delete.comment=Бажаєте повторно її зберегти чи видалити зі свого ескізу? +change_detect.button.discard=Видалити назавжди +change_detect.button.resave=Повторно зберегти # --------------------------------------- # Contributions # Contribution Panel -contrib = Керування внесками -contrib.manager_title.update = Керування оновленнями -contrib.manager_title.mode = Керування режимами -contrib.manager_title.tool = Керування інструментами -contrib.manager_title.library = Керування бібліотеками -contrib.manager_title.examples = Керування прикладами -contrib.category = Категорія: -contrib.filter_your_search = Фільтр пошуку... -contrib.show_only_compatible.mode = Показати лише сумісні режими -contrib.show_only_compatible.tool = Показати лише сумісні інструменти -contrib.show_only_compatible.library = Показати лише сумісні бібліотеки -contrib.show_only_compatible.examples = Показати лише сумісні приклади -contrib.show_only_compatible.update = Показати лише сумісні оновлення -contrib.restart = Перезапустити Processing -contrib.unsaved_changes = Зміни не було збережено -contrib.unsaved_changes.prompt = Ви впевнені, що хочете перезапустити Processing, не зберігаючи зміни? -contrib.messages.remove_restart = Будь ласка, перезапустіть Processing, щоб завершити видалення цього внеску. -contrib.messages.install_restart = Будь ласка, перезапустіть Processing, щоб завершити встановлення цього внеску. -contrib.messages.update_restart = Будь ласка, перезапустіть Processing, щоб завершити оновлення цього внеску. -contrib.errors.list_download = Не вдалось завантажити список встановлених внесків. -contrib.errors.list_download.timeout = Тайм-аут з’єднання під час завантаження списку внесків. -contrib.errors.download_and_install = Помилка при завантаженні чи встановленні %s. -contrib.errors.description_unavailable = Опису немає. -contrib.errors.malformed_url = Посилання, отримане з Processing.org, недійсне.\nЦю бібліотеку все ще можна встановити, відвідавши\nїї сайт. -contrib.errors.needs_repackage = %s потрібно перепакувати за правилами %s. -contrib.errors.no_contribution_found = Не вдалось знайти %s у завантаженому файлі. -contrib.errors.overwriting_properties = Помилка при перезаписуванні файлу .properties. -contrib.errors.install_failed = Встановлення не вдалось. -contrib.errors.update_on_restart_failed = Помилка оновлення під час перезапуску %s. -contrib.errors.temporary_directory = Не вдалось записати у тимчасову папку. -contrib.errors.contrib_download.timeout = Тайм-аут з’єднання під час завантаження %s. -contrib.errors.no_internet_connection = Здається, ви не під’єднані до мережі Інтернет. -contrib.status.downloading_list = Завантаження списку внесків... -contrib.status.connecting = З’єднання... -contrib.status.done = Готово. -contrib.all = Усе -contrib.undo = Скасувати -contrib.remove = Видалити -contrib.install = Встановити -contrib.progress.installing = Встановлюю -contrib.progress.starting = Починаю -contrib.progress.downloading = Завантажую -contrib.download_error = Сталась помилка під час завантаження внеску. -contrib.unsupported_operating_system = Здається, ваша операційна система не підтримується. Відвідайте бібліотеку %s для детальнішої інформації. +contrib = Керування внесками +contrib.manager_title.update = Керування оновленнями +contrib.manager_title.mode = Керування режимами +contrib.manager_title.tool = Керування інструментами +contrib.manager_title.library = Керування бібліотеками +contrib.manager_title.examples = Керування прикладами +contrib.category = Категорія: +contrib.filter_your_search = Фільтр пошуку... +contrib.show_only_compatible.mode = Показати лише сумісні режими +contrib.show_only_compatible.tool = Показати лише сумісні інструменти +contrib.show_only_compatible.library = Показати лише сумісні бібліотеки +contrib.show_only_compatible.examples = Показати лише сумісні приклади +contrib.show_only_compatible.update = Показати лише сумісні оновлення +contrib.restart = Перезапустити Processing +contrib.unsaved_changes = Зміни не було збережено +contrib.unsaved_changes.prompt = Ви впевнені, що хочете перезапустити Processing, не зберігаючи зміни? +contrib.messages.remove_restart = Будь ласка, перезапустіть Processing, щоб завершити видалення цього внеску. +contrib.messages.install_restart = Будь ласка, перезапустіть Processing, щоб завершити встановлення цього внеску. +contrib.messages.update_restart = Будь ласка, перезапустіть Processing, щоб завершити оновлення цього внеску. +contrib.errors.list_download = Не вдалось завантажити список встановлених внесків. +contrib.errors.list_download.timeout = Тайм-аут з’єднання під час завантаження списку внесків. +contrib.errors.download_and_install = Помилка при завантаженні чи встановленні %s. +contrib.errors.description_unavailable = Опису немає. +contrib.errors.malformed_url = Посилання, отримане з Processing.org, недійсне.\nЦю бібліотеку все ще можна встановити, відвідавши\nїї сайт. +contrib.errors.needs_repackage = %s потрібно перепакувати за правилами %s. +contrib.errors.no_contribution_found = Не вдалось знайти %s у завантаженому файлі. +contrib.errors.overwriting_properties = Помилка при перезаписуванні файлу .properties. +contrib.errors.install_failed = Встановлення не вдалось. +contrib.errors.update_on_restart_failed = Помилка оновлення під час перезапуску %s. +contrib.errors.temporary_directory = Не вдалось записати у тимчасову папку. +contrib.errors.contrib_download.timeout = Тайм-аут з’єднання під час завантаження %s. +contrib.errors.no_internet_connection = Здається, ви не під’єднані до мережі Інтернет. +contrib.status.downloading_list = Завантаження списку внесків... +contrib.status.connecting = З’єднання... +contrib.status.done = Готово. +contrib.all = Усе +contrib.undo = Скасувати +contrib.remove = Видалити +contrib.install = Встановити +contrib.progress.installing = Встановлюю +contrib.progress.starting = Починаю +contrib.progress.downloading = Завантажую +contrib.download_error = Сталась помилка під час завантаження внеску. +contrib.unsupported_operating_system = Здається, ваша операційна система не підтримується. Відвідайте бібліотеку %s для детальнішої інформації. contrib.category.3d = 3D -contrib.category.animation = Анімація -contrib.category.data = Дані -contrib.category.geometry = Геометрія -contrib.category.gui = Інтерфейс -contrib.category.hardware = Апаратне забезпечення -contrib.category.i_o = Введення/виведення -contrib.category.math = Математика -contrib.category.simulation = Симуляція -contrib.category.sound = Звук -contrib.category.typography = Типографія -contrib.category.utilities = Утиліти -contrib.category.video_vision = Відео -contrib.category.other = Інше +contrib.category.animation = Анімація +contrib.category.data = Дані +contrib.category.geometry = Геометрія +contrib.category.gui = Інтерфейс +contrib.category.hardware = Апаратне забезпечення +contrib.category.i_o = Введення/виведення +contrib.category.math = Математика +contrib.category.simulation = Симуляція +contrib.category.sound = Звук +contrib.category.typography = Типографія +contrib.category.utilities = Утиліти +contrib.category.video_vision = Відео +contrib.category.other = Інше # Install on Startup -contrib.startup.errors.download_install = Помилка під час завантаження чи встановлення %s -contrib.startup.errors.temp_dir = Не вдалось записати у тимчасову папку під час завантаження чи встановлення %s -contrib.startup.errors.new_marker = Здається, старому маркеру внеску не подобається %s. Можливо, потрібно оновити вручну... +contrib.startup.errors.download_install = Помилка під час завантаження чи встановлення %s +contrib.startup.errors.temp_dir = Не вдалось записати у тимчасову папку під час завантаження чи встановлення %s +contrib.startup.errors.new_marker = Здається, старому маркеру внеску не подобається %s. Можливо, потрібно оновити вручну... # Install on Import -contrib.import.dialog.title = Доступні відсутні бібліотеки -contrib.import.dialog.primary_text = Ці імпортовані бібліотеки доступні для завантаження, але не були встановлені. -contrib.import.dialog.secondary_text = Бажаєте встановити їх зараз? -contrib.import.progress.download = Завантаження %s... -contrib.import.progress.install = Встановлення %s... -contrib.import.progress.done = %s було встановлено. -contrib.import.progress.final_list = Було встановлено такі бібліотеки: -contrib.import.errors.link = Помилка: У бібліотеки %s недійсне посилання завантаження. +contrib.import.dialog.title = Доступні відсутні бібліотеки +contrib.import.dialog.primary_text = Ці імпортовані бібліотеки доступні для завантаження, але не були встановлені. +contrib.import.dialog.secondary_text = Бажаєте встановити їх зараз? +contrib.import.progress.download = Завантаження %s... +contrib.import.progress.install = Встановлення %s... +contrib.import.progress.done = %s було встановлено. +contrib.import.progress.final_list = Було встановлено такі бібліотеки: +contrib.import.errors.link = Помилка: У бібліотеки %s недійсне посилання завантаження. # --------------------------------------- # Warnings -warn.delete = Видалення -warn.delete.sketch = Ви впевнені, що хочете видалити цей ескіз? -warn.delete.sketch_last = Щоб зберегти ваші файли в безпеці, видалення всієї папки ескізу не підтримується в Processing.\nБудь ласка, відкрийте папку ескізу у вашому файловому менеджері, щоб видалити її. -warn.delete.file = Ви впевнені, що хочете видалити "%s"? -warn.cannot_change_mode.title = Зміна режиму неможлива -warn.cannot_change_mode.body = Зміна режиму неможлива,\nоскільки режим "%s" несумісний з поточним режимом. +warn.delete = Видалення +warn.delete.sketch = Ви впевнені, що хочете видалити цей ескіз? +warn.delete.sketch_last = Щоб зберегти ваші файли в безпеці, видалення всієї папки ескізу не підтримується в Processing.\nБудь ласка, відкрийте папку ескізу у вашому файловому менеджері, щоб видалити її. +warn.delete.file = Ви впевнені, що хочете видалити "%s"? +warn.cannot_change_mode.title = Зміна режиму неможлива +warn.cannot_change_mode.body = Зміна режиму неможлива,\nоскільки режим "%s" несумісний з поточним режимом. # --------------------------------------- # Update Check -update_check = Оновлення -update_check.updates_available.core = Доступна нова версія Processing,\nбажаєте відвідати сторінку завантаження Processing? -update_check.updates_available.contributions = Доступні оновлення для деяких встановлених внесків,\nбажаєте відкрити меню керування внесками зараз? +update_check = Оновлення +update_check.updates_available.core = Доступна нова версія Processing,\nбажаєте відвідати сторінку завантаження Processing? +update_check.updates_available.contributions = Доступні оновлення для деяких встановлених внесків,\nбажаєте відкрити меню керування внесками зараз? # --------------------------------------- # Color Chooser -color_chooser = Вибирач кольору -color_chooser.select = Вибрати +color_chooser = Вибирач кольору +color_chooser.select = Вибрати # --------------------------------------- # Movie Maker -movie_maker = Генератор відео -movie_maker.two.title = Генератор відео II: Вендета -movie_maker.two.blurb = Цей інструмент створює MPEG-відео або анімовану GIF з послідовності зображень.

Для уникнення артефактів від повторного стиснення зображень у відео,
використовуйте зображення TIFF, TGA або PNG як джерело.

Зображення TIFF та TGA записуватимуться швидше, але вимагають більше місця на диску:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

Зображення PNG менші, але записуватимуться повільніше:
saveFrame("frames/####.png");

Режим Lossless 4:2:0 все ще не ідеальний через нюанси в MPEG-4.
4:4:4 має бути ідеальним, але менш сумісним з іншими програмами.

Раніше відомий як QuickTime Movie Maker від Werner Randelshofer,
цей інструмент переписаний на FFmpeg для Processing 4.
-movie_maker.image_folder_help_label = Перетягніть папку з файлами зображень у поле внизу: -movie_maker.choose_button = Вибрати... -movie_maker.select_image_folder = Вибрати папку зображень... -movie_maker.sound_file_help_label = Перетягніть звуковий файл (.au, .aiff, .wav, .mp3) у поле внизу: -movie_maker.select_sound_file = Вибрати звуковий файл... - -movie_maker.create_movie_button = Створити відео... -movie_maker.save_dialog_prompt = Зберегти відео як... -movie_maker.width = Ширина: -movie_maker.height = Висота: -movie_maker.compression = Стиснення: -movie_maker.framerate = Частота кадрів: -movie_maker.orig_size_button = Розмір, як в оригіналі -movie_maker.orig_size_tooltip = Відмітьте це, якщо папка вже містить закодовані кадри відео бажаного розміру. - -movie_maker.error.avoid_tiff = Спробуйте зображення TGA чи PNG замість TIFF. -movie_maker.error.badnumbers = Ширина та висота мають бути цілими додатніми числами; частота кадрів має бути додатнім числом. -movie_maker.error.cannot_read = Не вдалось прочитати %s. -movie_maker.error.cannot_read_maybe_bad = Не вдалось прочитати %s; файл може бути недійсним. -movie_maker.error.movie_failed = Не вдалось створити відео QuickTime. -movie_maker.error.need_input = Потрібно зазначити папку з файлами зображень, звуковими файлами, або і тим, і іншим. -movie_maker.error.no_images_found = Не знайдено файлів зображень. -movie_maker.error.sorry = Вибачте -movie_maker.error.unknown_tga_format = Невідомий формат файлу .tga для %s. - -movie_maker.progress.creating_file_name = Створюю %s. -movie_maker.progress.creating_output_file = Створюю вихідний файл -movie_maker.progress.initializing = Ініціалізація... -movie_maker.progress.processing = Обробляю %s. - -movie_maker.progress.handling_frame = Конвертую кадр %s з %s... +movie_maker = Генератор відео +movie_maker.two.title = Генератор відео II: Вендета +movie_maker.two.blurb = Цей інструмент створює MPEG-відео або анімовану GIF з послідовності зображень.

Для уникнення артефактів від повторного стиснення зображень у відео,
використовуйте зображення TIFF, TGA або PNG як джерело.

Зображення TIFF та TGA записуватимуться швидше, але вимагають більше місця на диску:
saveFrame("frames/####.tif");
saveFrame("frames/####.tga");

Зображення PNG менші, але записуватимуться повільніше:
saveFrame("frames/####.png");

Режим Lossless 4:2:0 все ще не ідеальний через нюанси в MPEG-4.
4:4:4 має бути ідеальним, але менш сумісним з іншими програмами.

Раніше відомий як QuickTime Movie Maker від Werner Randelshofer,
цей інструмент переписаний на FFmpeg для Processing 4.
+movie_maker.image_folder_help_label = Перетягніть папку з файлами зображень у поле внизу: +movie_maker.choose_button = Вибрати... +movie_maker.select_image_folder = Вибрати папку зображень... +movie_maker.sound_file_help_label = Перетягніть звуковий файл (.au, .aiff, .wav, .mp3) у поле внизу: +movie_maker.select_sound_file = Вибрати звуковий файл... + +movie_maker.create_movie_button = Створити відео... +movie_maker.save_dialog_prompt = Зберегти відео як... +movie_maker.width = Ширина: +movie_maker.height = Висота: +movie_maker.compression = Стиснення: +movie_maker.framerate = Частота кадрів: +movie_maker.orig_size_button = Розмір, як в оригіналі +movie_maker.orig_size_tooltip = Відмітьте це, якщо папка вже містить закодовані кадри відео бажаного розміру. + +movie_maker.error.avoid_tiff = Спробуйте зображення TGA чи PNG замість TIFF. +movie_maker.error.badnumbers = Ширина та висота мають бути цілими додатніми числами; частота кадрів має бути додатнім числом. +movie_maker.error.cannot_read = Не вдалось прочитати %s. +movie_maker.error.cannot_read_maybe_bad = Не вдалось прочитати %s; файл може бути недійсним. +movie_maker.error.movie_failed = Не вдалось створити відео QuickTime. +movie_maker.error.need_input = Потрібно зазначити папку з файлами зображень, звуковими файлами, або і тим, і іншим. +movie_maker.error.no_images_found = Не знайдено файлів зображень. +movie_maker.error.sorry = Вибачте +movie_maker.error.unknown_tga_format = Невідомий формат файлу .tga для %s. + +movie_maker.progress.creating_file_name = Створюю %s. +movie_maker.progress.creating_output_file = Створюю вихідний файл +movie_maker.progress.initializing = Ініціалізація... +movie_maker.progress.processing = Обробляю %s. + +movie_maker.progress.handling_frame = Конвертую кадр %s з %s... diff --git a/build/shared/lib/languages/PDE_zh-CN.properties b/build/shared/lib/languages/PDE_zh-CN.properties index 7aff8d2e8d..97e3df413e 100644 --- a/build/shared/lib/languages/PDE_zh-CN.properties +++ b/build/shared/lib/languages/PDE_zh-CN.properties @@ -15,103 +15,103 @@ font.family.mono = Monospaced # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = 文件 -menu.file.new = 新建 -menu.file.open = 打开... -menu.file.recent = 打开最近项目 -menu.file.sketchbook = 速写本... -menu.file.examples = 范例程序... -menu.file.close = 关闭 -menu.file.save = 保存 -menu.file.save_as = 另存为... -menu.file.export_application = 输出程序... -menu.file.page_setup = 页面设置 -menu.file.print = 打印... -menu.file.preferences = 偏好设定... -menu.file.quit = 退出 +menu.file = 文件 +menu.file.new = 新建 +menu.file.open = 打开... +menu.file.recent = 打开最近项目 +menu.file.sketchbook = 速写本... +menu.file.examples = 范例程序... +menu.file.close = 关闭 +menu.file.save = 保存 +menu.file.save_as = 另存为... +menu.file.export_application = 输出程序... +menu.file.page_setup = 页面设置 +menu.file.print = 打印... +menu.file.preferences = 偏好设定... +menu.file.quit = 退出 # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = 编辑 -menu.edit.undo = 撤销 -menu.edit.redo = 重做 -menu.edit.cut = 剪切 -menu.edit.copy = 复制 -menu.edit.copy_as_html = 复制为HTML -menu.edit.paste = 黏贴 -menu.edit.select_all = 全部选择 -menu.edit.auto_format = 自动对齐 -menu.edit.comment_uncomment = 注释/取消注释 -menu.edit.increase_indent = → 增加缩进量 -menu.edit.decrease_indent = ← 减少缩进量 -menu.edit.find = 查找... -menu.edit.find_next = 查找下一个 -menu.edit.find_previous = 查找上一个 -menu.edit.use_selection_for_find = 使用当前选定查找 +menu.edit = 编辑 +menu.edit.undo = 撤销 +menu.edit.redo = 重做 +menu.edit.cut = 剪切 +menu.edit.copy = 复制 +menu.edit.copy_as_html = 复制为HTML +menu.edit.paste = 黏贴 +menu.edit.select_all = 全部选择 +menu.edit.auto_format = 自动对齐 +menu.edit.comment_uncomment = 注释/取消注释 +menu.edit.increase_indent = → 增加缩进量 +menu.edit.decrease_indent = ← 减少缩进量 +menu.edit.find = 查找... +menu.edit.find_next = 查找下一个 +menu.edit.find_previous = 查找上一个 +menu.edit.use_selection_for_find = 使用当前选定查找 # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = 运行 -menu.sketch.present = 展示模式 -menu.sketch.tweak = 调整 -menu.sketch.stop = 停止 +menu.sketch.run = 运行 +menu.sketch.present = 展示模式 +menu.sketch.tweak = 调整 +menu.sketch.stop = 停止 # --- -menu.library = 引用库文件... -menu.library.add_library = 添加库文件... -menu.library.contributed = 第三方贡献库 -menu.library.no_core_libraries = 该模式下无核心库文件 +menu.library = 引用库文件... +menu.library.add_library = 添加库文件... +menu.library.contributed = 第三方贡献库 +menu.library.no_core_libraries = 该模式下无核心库文件 # --- -menu.sketch = 速写本 -menu.sketch.show_sketch_folder = 打开程序目录 -menu.sketch.add_file = 添加文件... +menu.sketch = 速写本 +menu.sketch.show_sketch_folder = 打开程序目录 +menu.sketch.add_file = 添加文件... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = 调试 -menu.debug.enable = 启用调试器 -menu.debug.disable = 禁用调试器 +menu.debug = 调试 +menu.debug.enable = 启用调试器 +menu.debug.disable = 禁用调试器 # --- -menu.debug.toggle_breakpoint = 切换断点 +menu.debug.toggle_breakpoint = 切换断点 # --- # used for both menus and toolbars -menu.debug.step = 单步 (Step) -menu.debug.step_into = 单步进入 (Step Into) -menu.debug.step_out = 单步跳出 (Step Out) -menu.debug.continue = ç»§ç»­ +menu.debug.step = 单步 (Step) +menu.debug.step_into = 单步进入 (Step Into) +menu.debug.step_out = 单步跳出 (Step Out) +menu.debug.continue = 继续 # --- #menu.debug.variable_inspector = Variable Inspector -menu.debug.show_variables = 显示变量 -menu.debug.hide_variables = 隐藏变量 +menu.debug.show_variables = 显示变量 +menu.debug.hide_variables = 隐藏变量 # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = 工具 -menu.tools.color_selector = 颜色选择器... -menu.tools.create_font = 创建字体... -menu.tools.archive_sketch = 速写本压缩输出 -menu.tools.fix_the_serial_lbrary = 修复串口库文件 -menu.tools.install_processing_java = 安装 "processing-java" -menu.tools.add_tool = 添加工具... +menu.tools = 工具 +menu.tools.color_selector = 颜色选择器... +menu.tools.create_font = 创建字体... +menu.tools.archive_sketch = 速写本压缩输出 +menu.tools.fix_the_serial_lbrary = 修复串口库文件 +menu.tools.install_processing_java = 安装 "processing-java" +menu.tools.add_tool = 添加工具... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = 帮助 -menu.help.about = 关于 Processing -menu.help.environment = 开发环境 -menu.help.reference = 参考文档 -menu.help.find_in_reference = 在文档中查询 -menu.help.online = 在线 -menu.help.getting_started = 入门帮助 +menu.help = 帮助 +menu.help.about = 关于 Processing +menu.help.environment = 开发环境 +menu.help.reference = 参考文档 +menu.help.find_in_reference = 在文档中查询 +menu.help.online = 在线 +menu.help.getting_started = 入门帮助 # menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ -menu.help.troubleshooting = 问题排除 +menu.help.troubleshooting = 问题排除 # menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting -menu.help.faq = 常见问题解答 +menu.help.faq = 常见问题解答 # menu.help.faq.url = http://wiki.processing.org/w/FAQ menu.help.foundation = The Processing Foundation # menu.help.foundation.url = http://processing.org/foundation/ -menu.help.visit = 访问 Processing.org +menu.help.visit = 访问 Processing.org # menu.help.visit.url = http://processing.org/ @@ -119,198 +119,198 @@ menu.help.visit = 访问 Processing.org # Basics # Buttons -prompt.yes = 是 -prompt.no = 否 -prompt.cancel = 取消 -prompt.ok = 确认 -prompt.browse = 浏览 -prompt.export = 输出 +prompt.yes = 是 +prompt.no = 否 +prompt.cancel = 取消 +prompt.ok = 确认 +prompt.browse = 浏览 +prompt.export = 输出 # --------------------------------------- # Frames # Open (Frame) -open = 打开 Processing 速写本... +open = 打开 Processing 速写本... # Save (Frame) -save = 保存速写本文件夹为... -save.title = 在关闭前你想要保存该速写本更改内容么? -save.hint = 如果你没保存, 你所有的更改内容将丢失. -save.btn.save = 保存 -save.btn.dont_save = 不保存 - -# AppPreferences (Frame) -preferences = 偏好设置 +save = 保存速写本文件夹为... +save.title = 在关闭前你想要保存该速写本更改内容么? +save.hint = 如果你没保存, 你所有的更改内容将丢失. +save.btn.save = 保存 +save.btn.dont_save = 不保存 + +# Preferences (Frame) +preferences = 偏好设置 preferences.button.width = 80 -preferences.requires_restart = 需要重启 Processing -preferences.sketchbook_location = 速写本位置 -preferences.sketchbook_location.popup = 速写本位置 -preferences.language = 语言 -preferences.editor_and_console_font = 编辑器和控制台字体 +preferences.requires_restart = 需要重启 Processing +preferences.sketchbook_location = 速写本位置 +preferences.sketchbook_location.popup = 速写本位置 +preferences.language = 语言 +preferences.editor_and_console_font = 编辑器和控制台字体 preferences.editor_and_console_font.tip = \ -为编辑器和控制台选择字体.
\ -只允许使用等宽字体,
\ -此列表可能不完全。 -preferences.editor_font_size = 编辑器字体大小 -preferences.console_font_size = 控制台字体大小 -preferences.background_color = 展示模式时的背景颜色 +为编辑器和控制台选择字体.
\ +只允许使用等宽字体,
\ +此列表可能不完全。 +preferences.editor_font_size = 编辑器字体大小 +preferences.console_font_size = 控制台字体大小 +preferences.background_color = 展示模式时的背景颜色 preferences.background_color.tip = \ -选择背景颜色当使用展示模式时.
\ -展示模式通常被用来在全屏模式下展示速写程序,
\ -可从速写本菜单中访问. -preferences.use_smooth_text = 在编辑器窗口中使用平滑字体 -preferences.enable_complex_text_input = 启用复杂字体输入 -preferences.enable_complex_text_input_example = 例如日文 -preferences.continuously_check = 不断检查错误 -preferences.show_warnings = 显示警告 -preferences.code_completion = 代码补全 -preferences.trigger_with = 触发开关 -preferences.cmd_space = 空格 -preferences.increase_max_memory = 增加最大内存至 -preferences.delete_previous_folder_on_export = 当导出时删除先前的文件夹 -preferences.hide_toolbar_background_image = 隐藏标签/工具栏背景图片 -preferences.check_for_updates_on_startup = 在启动时检查有无更新 -preferences.run_sketches_on_display = 在此显示器中运行速写本 +选择背景颜色当使用展示模式时.
\ +展示模式通常被用来在全屏模式下展示速写程序,
\ +可从速写本菜单中访问. +preferences.use_smooth_text = 在编辑器窗口中使用平滑字体 +preferences.enable_complex_text_input = 启用复杂字体输入 +preferences.enable_complex_text_input_example = 例如日文 +preferences.continuously_check = 不断检查错误 +preferences.show_warnings = 显示警告 +preferences.code_completion = 代码补全 +preferences.trigger_with = 触发开关 +preferences.cmd_space = 空格 +preferences.increase_max_memory = 增加最大内存至 +preferences.delete_previous_folder_on_export = 当导出时删除先前的文件夹 +preferences.hide_toolbar_background_image = 隐藏标签/工具栏背景图片 +preferences.check_for_updates_on_startup = 在启动时检查有无更新 +preferences.run_sketches_on_display = 在此显示器中运行速写本 preferences.run_sketches_on_display.tip = \ Sets the display where sketches are initially placed.
\ As usual, if the sketch window is moved, it will re-open
\ at the same location, however when running in present
\ (full screen) mode, this display will always be used. -preferences.automatically_associate_pde_files = 自动关联 .pde 文件通过 Processing -preferences.launch_programs_in = 加载程序的模式 -preferences.launch_programs_in.mode = 模式 -preferences.file = 更多选项可直接编辑该文件 -preferences.file.hint = 请在 Processing 未运行时编辑该文件 +preferences.automatically_associate_pde_files = 自动关联 .pde 文件通过 Processing +preferences.launch_programs_in = 加载程序的模式 +preferences.launch_programs_in.mode = 模式 +preferences.file = 更多选项可直接编辑该文件 +preferences.file.hint = 请在 Processing 未运行时编辑该文件 # Sketchbook Location (Frame) -sketchbook_location = 选择新速写本位置 +sketchbook_location = 选择新速写本位置 # Sketchbook (Frame) sketchbook = Sketchbook sketchbook.tree = Sketchbook # examples (Frame) -examples = 范例程序 +examples = 范例程序 # Export (Frame) -export = 输出选项 -export.platforms = 系统平台 -export.options = 选项 -export.options.fullscreen = 全屏 (展示模式) -export.options.show_stop_button = 显示停止按钮 -export.description.line1 = 为输出程序创建双击事件, -export.description.line2 = 为所选系统创建独立运行程序. +export = 输出选项 +export.platforms = 系统平台 +export.options = 选项 +export.options.fullscreen = 全屏 (展示模式) +export.options.show_stop_button = 显示停止按钮 +export.description.line1 = 为输出程序创建双击事件, +export.description.line2 = 为所选系统创建独立运行程序. # Find (Frame) -find = 搜索 -find.find = 搜索: -find.replace_with = 替换为: -find.ignore_case = 忽略大小写 -find.all_tabs = 所有标签 -find.wrap_around = 循环遍历 -find.btn.replace_all = 全部替换 -find.btn.replace = 替换 -find.btn.find_and_replace = 搜索 & 替换 -find.btn.previous = 上一个 -find.btn.find = 搜索 +find = 搜索 +find.find = 搜索: +find.replace_with = 替换为: +find.ignore_case = 忽略大小写 +find.all_tabs = 所有标签 +find.wrap_around = 循环遍历 +find.btn.replace_all = 全部替换 +find.btn.replace = 替换 +find.btn.find_and_replace = 搜索 & 替换 +find.btn.previous = 上一个 +find.btn.find = 搜索 # Find in reference (Frame) -find_in_reference = 在参考文档中搜索 +find_in_reference = 在参考文档中搜索 # Library Manager (Frame) -library.category = 目录: -library.filter_your_search = 筛查需找... +library.category = 目录: +library.filter_your_search = 筛查需找... # File (Frame) -file = 选择一个图片或其它文件拷贝至你的速写本中 +file = 选择一个图片或其它文件拷贝至你的速写本中 # Create Font (Frame) -create_font = 创建字体 +create_font = 创建字体 # Color Selector (Frame) -color_selector = 颜色选择 +color_selector = 颜色选择 # Archive Sketch (Frame) -archive_sketch = 速写本压缩输出... +archive_sketch = 速写本压缩输出... # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = 运行 -toolbar.present = 展示模式 -toolbar.stop = 停止 +toolbar.run = 运行 +toolbar.present = 展示模式 +toolbar.stop = 停止 # --- -toolbar.new = 新建 -toolbar.open = 打开 -toolbar.save = 保存 -# toolbar.export_application = 导出程序 -toolbar.add_mode = 添加模式... +toolbar.new = 新建 +toolbar.open = 打开 +toolbar.save = 保存 +# toolbar.export_application = 导出程序 +toolbar.add_mode = 添加模式... # --------------------------------------- # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = 新建标签 -editor.header.rename = 重命名 -editor.header.delete = 删除 -editor.header.previous_tab = 前一个标签 -editor.header.next_tab = 后一个标签 -editor.header.delete.warning.title = 这样不行 -editor.header.delete.warning.text = 无法删除最后一个速写本的最后一个标签 +editor.header.new_tab = 新建标签 +editor.header.rename = 重命名 +editor.header.delete = 删除 +editor.header.previous_tab = 前一个标签 +editor.header.next_tab = 后一个标签 +editor.header.delete.warning.title = 这样不行 +editor.header.delete.warning.text = 无法删除最后一个速写本的最后一个标签 # Limited syntax error support, Wikipedia CC BY-SA -editor.status.error = 錯誤 -editor.status.error.syntax = 语法错误 - %s +editor.status.error = 錯誤 +editor.status.error.syntax = 语法错误 - %s # Tabs -editor.tab.new = 新文件名 -editor.tab.new.description = 新文件名称 -editor.tab.rename = 新文件名 -editor.tab.rename.description = 新文件名称 +editor.tab.new = 新文件名 +editor.tab.new.description = 新文件名称 +editor.tab.rename = 新文件名 +editor.tab.rename.description = 新文件名称 # Sketch -editor.sketch.rename.description = 速写本的新名称 - -editor.status.autoformat.no_changes = 自动格式化不需要做更改。 -editor.status.autoformat.finished = 自动格式化完成。 -editor.status.find_reference.select_word_first = 请首先选择要查找的关键字。 -editor.status.find_reference.not_available = 没有找到 "%s" 的引用。 -editor.status.drag_and_drop.files_added.0 = 未将任何文件添加到速写本。 -editor.status.drag_and_drop.files_added.1 = 将 1 个文件添加到速写本。 -editor.status.drag_and_drop.files_added.n = 将 %d 个文件添加到速写本。 -editor.status.saving = 保存中... -editor.status.saving.done = 保存完成. -editor.status.saving.canceled = 取消保存. -editor.status.printing = 打印中... -editor.status.printing.done = 打印完毕. -editor.status.printing.error = 打印时出错. -editor.status.printing.canceled = 取消打印. +editor.sketch.rename.description = 速写本的新名称 + +editor.status.autoformat.no_changes = 自动格式化不需要做更改。 +editor.status.autoformat.finished = 自动格式化完成。 +editor.status.find_reference.select_word_first = 请首先选择要查找的关键字。 +editor.status.find_reference.not_available = 没有找到 "%s" 的引用。 +editor.status.drag_and_drop.files_added.0 = 未将任何文件添加到速写本。 +editor.status.drag_and_drop.files_added.1 = 将 1 个文件添加到速写本。 +editor.status.drag_and_drop.files_added.n = 将 %d 个文件添加到速写本。 +editor.status.saving = 保存中... +editor.status.saving.done = 保存完成. +editor.status.saving.canceled = 取消保存. +editor.status.printing = 打印中... +editor.status.printing.done = 打印完毕. +editor.status.printing.error = 打印时出错. +editor.status.printing.canceled = 取消打印. # --------------------------------------- # Contribution Panel -contrib.undo = 撤销 -contrib.remove = 移除 -contrib.install = 安装 -contrib.progress.starting = 开始 -contrib.progress.downloading = 下载 -contrib.download_error = 下载时出现问题. -contrib.unsupported_operating_system = 你当前的操作系统似乎不被支持. 你应该访问 %s 获取更多信息. +contrib.undo = 撤销 +contrib.remove = 移除 +contrib.install = 安装 +contrib.progress.starting = 开始 +contrib.progress.downloading = 下载 +contrib.download_error = 下载时出现问题. +contrib.unsupported_operating_system = 你当前的操作系统似乎不被支持. 你应该访问 %s 获取更多信息. # --------------------------------------- # Warnings -warn.delete = 删除 -warn.delete.sketch = 你确定要删除该速写本吗? -warn.delete.sketch_folder = 你确定要删除该速写本吗?\n这将删除整个 “%s” 文件夹。 -warn.delete.sketch_last = 为了确保您的文件安全,Processing 不支持删除整个速写本文件夹。\n请在文件管理器中打开速写本文件夹进行删除。 -warn.delete.file = 你确定要删除 "%s" 吗? -warn.delete.sketch_file = 你确定要删除 “%s” 吗? -warn.cannot_change_mode.title = 无法切换模式 -warn.cannot_change_mode.body = 无法切换模式,\n因为 “%s” 模式与当前模式不兼容。 \ No newline at end of file +warn.delete = 删除 +warn.delete.sketch = 你确定要删除该速写本吗? +warn.delete.sketch_folder = 你确定要删除该速写本吗?\n这将删除整个 “%s” 文件夹。 +warn.delete.sketch_last = 为了确保您的文件安全,Processing 不支持删除整个速写本文件夹。\n请在文件管理器中打开速写本文件夹进行删除。 +warn.delete.file = 你确定要删除 "%s" 吗? +warn.delete.sketch_file = 你确定要删除 “%s” 吗? +warn.cannot_change_mode.title = 无法切换模式 +warn.cannot_change_mode.body = 无法切换模式,\n因为 “%s” 模式与当前模式不兼容。 \ No newline at end of file diff --git a/build/shared/lib/languages/PDE_zh-TW.properties b/build/shared/lib/languages/PDE_zh-TW.properties index 85976eb277..e3642d0999 100644 --- a/build/shared/lib/languages/PDE_zh-TW.properties +++ b/build/shared/lib/languages/PDE_zh-TW.properties @@ -15,97 +15,97 @@ font.family.mono = Monospaced # | File | Edit | Sketch | Debug | Tools | Help | # | File | -menu.file = 檔案(File) -menu.file.new = 新增(New) -menu.file.open = 開啟(Open)... -menu.file.recent = 最近開啟檔案(Recent) -menu.file.sketchbook = 全部程式素描本(Sketchbook)... -menu.file.sketchbook.empty = 空白的程式素描本(Empty Sketchbook) -menu.file.examples = 範例(Examples)... -menu.file.close = 關閉(Close) -menu.file.save = 儲存(Save) -menu.file.save_as = 另存新檔(Save As)... -menu.file.export_application = 匯出應用程式(Export Application)... -menu.file.page_setup = 印列設定(Page Setup) -menu.file.print = 列印(Print)... -menu.file.preferences = 偏好設定(Preferences)... -menu.file.quit = 離開(Quit) +menu.file = 檔案(File) +menu.file.new = 新增(New) +menu.file.open = 開啟(Open)... +menu.file.recent = 最近開啟檔案(Recent) +menu.file.sketchbook = 全部程式素描本(Sketchbook)... +menu.file.sketchbook.empty = 空白的程式素描本(Empty Sketchbook) +menu.file.examples = 範例(Examples)... +menu.file.close = 關閉(Close) +menu.file.save = 儲存(Save) +menu.file.save_as = 另存新檔(Save As)... +menu.file.export_application = 匯出應用程式(Export Application)... +menu.file.page_setup = 印列設定(Page Setup) +menu.file.print = 列印(Print)... +menu.file.preferences = 偏好設定(Preferences)... +menu.file.quit = 離開(Quit) # | File | Edit | Sketch | Debug | Tools | Help | # | Edit | -menu.edit = 編輯(Edit) -menu.edit.undo = 還原(Undo) -menu.edit.redo = 重做(Redo) +menu.edit = 編輯(Edit) +menu.edit.undo = 還原(Undo) +menu.edit.redo = 重做(Redo) #menu.edit.redo.keystroke.macosx = shift meta pressed Z #menu.edit.redo.keystroke.windows = ctrl pressed Y #menu.edit.redo.keystroke.linux = shift ctrl pressed Z -menu.edit.action.addition = 增加(addition) -menu.edit.action.deletion = 刪除(deletion) -menu.edit.cut = 剪下(Cut) -menu.edit.copy = 複製(Copy) -menu.edit.copy_as_html = 複製為HTML格式(Copy as HTML) -menu.edit.paste = 貼上(Paste) -menu.edit.select_all = 全選(Select All) -menu.edit.auto_format = 自動排版(Auto Format) -menu.edit.comment_uncomment = 註解程式/取消註解(Comment/Uncomment) +menu.edit.action.addition = 增加(addition) +menu.edit.action.deletion = 刪除(deletion) +menu.edit.cut = 剪下(Cut) +menu.edit.copy = 複製(Copy) +menu.edit.copy_as_html = 複製為HTML格式(Copy as HTML) +menu.edit.paste = 貼上(Paste) +menu.edit.select_all = 全選(Select All) +menu.edit.auto_format = 自動排版(Auto Format) +menu.edit.comment_uncomment = 註解程式/取消註解(Comment/Uncomment) #menu.edit.comment_uncomment.keystroke.macosx = meta pressed SLASH #menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH #menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH -menu.edit.increase_indent = → 往右增加縮排(Increase Indent) +menu.edit.increase_indent = → 往右增加縮排(Increase Indent) #menu.edit.increase_indent.keystroke.macosx = meta pressed CLOSE_BRACKET #menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET #menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET -menu.edit.decrease_indent = ← 往左減少縮排(Decrease Indent) +menu.edit.decrease_indent = ← 往左減少縮排(Decrease Indent) #menu.edit.decrease_indent.keystroke.macosx = meta pressed OPEN_BRACKET #menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET #menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET -menu.edit.find = 尋找(Find)... -menu.edit.find_next = 找下一個(Find Next) -menu.edit.find_previous = 往上找(Find Previous) -menu.edit.use_selection_for_find = 只在範圍中尋找(Use Selection for find) +menu.edit.find = 尋找(Find)... +menu.edit.find_next = 找下一個(Find Next) +menu.edit.find_previous = 往上找(Find Previous) +menu.edit.use_selection_for_find = 只在範圍中尋找(Use Selection for find) # | File | Edit | Sketch | Debug | Tools | Help | # | Sketch | -menu.sketch.run = 執行(Run) -menu.sketch.present = 全螢幕執行(Present) -menu.sketch.tweak = 分析微調(Tweak) -menu.sketch.stop = 停止(Stop) +menu.sketch.run = 執行(Run) +menu.sketch.present = 全螢幕執行(Present) +menu.sketch.tweak = 分析微調(Tweak) +menu.sketch.stop = 停止(Stop) # --- -menu.library = 使用函式庫(Library)... -menu.library.add_library = 安裝函式庫(Add Library)... -menu.library.contributed = 其他人貢獻的函式庫(Contributed) -menu.library.no_core_libraries = 本模式沒有核心函式庫(No Core Library) +menu.library = 使用函式庫(Library)... +menu.library.add_library = 安裝函式庫(Add Library)... +menu.library.contributed = 其他人貢獻的函式庫(Contributed) +menu.library.no_core_libraries = 本模式沒有核心函式庫(No Core Library) # --- -menu.sketch = 程式素描本(Sketch) -menu.sketch.show_sketch_folder = 開啟程式目錄(Show Sketch Folder) -menu.sketch.add_file = 新增檔案(Add File)... +menu.sketch = 程式素描本(Sketch) +menu.sketch.show_sketch_folder = 開啟程式目錄(Show Sketch Folder) +menu.sketch.add_file = 新增檔案(Add File)... # | File | Edit | Sketch | Debug | Tools | Help | # | Debug | -menu.debug = 偵錯(Debug) -menu.debug.enable = 開啟Debugger -menu.debug.disable = 關閉Debugger +menu.debug = 偵錯(Debug) +menu.debug.enable = 開啟Debugger +menu.debug.disable = 關閉Debugger #menu.debug.show_debug_toolbar = Show Debug Toolbar #menu.debug.debug = Debug #menu.debug.stop = Stop # --- -menu.debug.toggle_breakpoint = 設定中斷點(Toggle Breakpoint) -#menu.debug.list_breakpoints = 列出全部中斷點(List breakpoints) +menu.debug.toggle_breakpoint = 設定中斷點(Toggle Breakpoint) +#menu.debug.list_breakpoints = 列出全部中斷點(List breakpoints) # --- # used for both menus and toolbars -menu.debug.step = 下一步(Step) +menu.debug.step = 下一步(Step) #menu.debug.step.keystroke.macosx = meta pressed J #menu.debug.step.keystroke.windows = ctrl pressed J #menu.debug.step.keystroke.linux = ctrl pressed J -menu.debug.step_into = 下一步/進入函式(Step Into) +menu.debug.step_into = 下一步/進入函式(Step Into) #menu.debug.step_into.keystroke.macosx = shift meta pressed J #menu.debug.step_into.keystroke.windows = shift ctrl pressed J #menu.debug.step_into.keystroke.linux = shift ctrl pressed J -menu.debug.step_out = 下一步/離開函式(Step Out) +menu.debug.step_out = 下一步/離開函式(Step Out) #menu.debug.step_out.keystroke.macosx = meta alt pressed J #menu.debug.step_out.keystroke.windows = ctrl alt pressed J #menu.debug.step_out.keystroke.linux = ctrl alt pressed J -menu.debug.continue = 繼續(Continue) +menu.debug.continue = 繼續(Continue) # --- #menu.debug.print_stack_trace = Print Stack Trace #menu.debug.print_locals = Print Locals @@ -114,42 +114,42 @@ menu.debug.continue = 繼續(Continue) #menu.debug.print_threads = Print Threads # --- #menu.debug.variable_inspector = Variable Inspector -menu.debug.show_variables = 秀出變數值(Show Variables) -menu.debug.hide_variables = 不秀變數值(Hide Variables) +menu.debug.show_variables = 秀出變數值(Show Variables) +menu.debug.hide_variables = 不秀變數值(Hide Variables) #menu.debug.show_sketch_outline = Show Sketch Outline #menu.debug.show_tabs_list = Show Tabs List # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | -menu.tools = 工具(Tool) -menu.tools.color_selector = 顏色選擇器(Color Selector)... -menu.tools.create_font = 建字型檔(Create Font)... -menu.tools.archive_sketch = 壓縮程式專案(Archive Sketch) -menu.tools.fix_the_serial_library = 修復Serial函式庫(Fix the Serial Library) -menu.tools.install_processing_java = 安裝 "processing-java" -menu.tools.add_tool = 新增工具(Add Tool)... +menu.tools = 工具(Tool) +menu.tools.color_selector = 顏色選擇器(Color Selector)... +menu.tools.create_font = 建字型檔(Create Font)... +menu.tools.archive_sketch = 壓縮程式專案(Archive Sketch) +menu.tools.fix_the_serial_library = 修復Serial函式庫(Fix the Serial Library) +menu.tools.install_processing_java = 安裝 "processing-java" +menu.tools.add_tool = 新增工具(Add Tool)... # | File | Edit | Sketch | Debug | Tools | Help | # | Help | -menu.help = 協助(Help) -menu.help.welcome = 歡迎(Welcome to Processing 3) -menu.help.about = 關於(About Processing) -menu.help.environment = 開發環境(Environment) -menu.help.reference = 參考文件(Reference) -menu.help.find_in_reference = 查詢參考文件(Find in Reference) -menu.help.libraries_reference = 函式庫文件(Libraries Reference) -menu.help.tools_reference = 工具的文件(Tools Reference) +menu.help = 協助(Help) +menu.help.welcome = 歡迎(Welcome to Processing 3) +menu.help.about = 關於(About Processing) +menu.help.environment = 開發環境(Environment) +menu.help.reference = 參考文件(Reference) +menu.help.find_in_reference = 查詢參考文件(Find in Reference) +menu.help.libraries_reference = 函式庫文件(Libraries Reference) +menu.help.tools_reference = 工具的文件(Tools Reference) menu.help.empty = (empty) -menu.help.online = 線上(Online) -menu.help.getting_started = 入門教學(Getting Started) +menu.help.online = 線上(Online) +menu.help.getting_started = 入門教學(Getting Started) menu.help.getting_started.url = https://processing.org/tutorials/gettingstarted/ -menu.help.troubleshooting = 問題排除(Trouble Shooting) +menu.help.troubleshooting = 問題排除(Trouble Shooting) menu.help.troubleshooting.url = https://github.com/processing/processing/wiki/troubleshooting -menu.help.faq = 常見問與答(FAQ) +menu.help.faq = 常見問與答(FAQ) menu.help.faq.url = https://github.com/processing/processing/wiki/FAQ -menu.help.foundation = Processing基金會(The Processing Foundation) +menu.help.foundation = Processing基金會(The Processing Foundation) menu.help.foundation.url = https://processingfoundation.org/ -menu.help.visit = 拜訪 Visit Processing.org +menu.help.visit = 拜訪 Visit Processing.org menu.help.visit.url = http://processing.org/ @@ -157,124 +157,124 @@ menu.help.visit.url = http://processing.org/ # Basics # Buttons -prompt.yes = 是(Yes) -prompt.no = 否(No) -prompt.cancel = 取消(Cancel) -prompt.ok = 確認(OK) -prompt.browse = 瀏覽(Browse) -prompt.export = 匯出(Export) +prompt.yes = 是(Yes) +prompt.no = 否(No) +prompt.cancel = 取消(Cancel) +prompt.ok = 確認(OK) +prompt.browse = 瀏覽(Browse) +prompt.export = 匯出(Export) # --------------------------------------- # Frames # Open (Frame) -open = Open Processing Sketch 開啟程式素描本... +open = Open Processing Sketch 開啟程式素描本... # Save (Frame) -save = Save Sketch儲存程式素描本... -save.title = 你想在關閉前將 %s 儲存嗎? -save.hint = 如果Sketch沒有儲存,關閉後你的修改會全部遺失 -save.btn.save = 存檔(Save) -save.btn.dont_save = 不存檔(Don't Save) +save = Save Sketch儲存程式素描本... +save.title = 你想在關閉前將 %s 儲存嗎? +save.hint = 如果Sketch沒有儲存,關閉後你的修改會全部遺失 +save.btn.save = 存檔(Save) +save.btn.dont_save = 不存檔(Don't Save) # Close (Frame) also used to prompt on non-OS X machines -close.unsaved_changes = 要儲存嗎? Save changes to %s? +close.unsaved_changes = 要儲存嗎? Save changes to %s? -# AppPreferences (Frame) -preferences = 偏好設定Preference +# Preferences (Frame) +preferences = 偏好設定Preference preferences.button.width = 80 -preferences.requires_restart = 需重新開啟Requires Restart Processing -preferences.sketchbook_location = 程式素描本的目錄Sketch Location -preferences.sketchbook_location.popup = 程式素描本的目錄Sketch Location -preferences.language = 語言Language -preferences.editor_and_console_font = 程式編輯Edtor及主控台Console的字形 -preferences.editor_and_console_font.tip = 在程式編輯Editor及主控台Console使用的字形
必需使用Monospace等寬字形,這裡的列表可能不完整。 -preferences.editor_font_size = 程式編輯Editor的字型大小 -preferences.console_font_size = 主控台Console的字型大小 -preferences.zoom = 縮放界面的文字比例 -preferences.zoom.auto = 使用系統預設值 -preferences.background_color = 全螢幕執行的背景色彩 -preferences.background_color.tip = 全螢幕執行(Present)的背景色
Present展示模式使用Fullscreen全螢幕執行,
可以在Processing上方選單的Sketch裡找到Present展示模式 -preferences.use_smooth_text = 在程式編輯窗使用平滑(smooth)的字形 -preferences.enable_complex_text_input = 使用複雜語系輸入 -preferences.enable_complex_text_input_example = 例如中文、日文、韓文 -preferences.continuously_check = 持續檢查程式是否錯誤Error -preferences.show_warnings = 顯示警告Warning -preferences.code_completion = 自動補齊程式碼CodeComplete -preferences.trigger_with = 用...觸發 -preferences.cmd_space = Space空白鍵 -preferences.suggest_imports = 自動建議需import的函式庫 -preferences.increase_max_memory = 加大程式可用的Memory到 -preferences.delete_previous_folder_on_export = 匯出應用程式時,刪掉前一版 -preferences.check_for_updates_on_startup = 啟動時檢查是否有新版Processing -preferences.run_sketches_on_display = 多螢幕顯示時,在哪個螢幕執行(Run) -preferences.run_sketches_on_display.tip = 若有多個螢幕,可設定(某個)螢幕,顯示Run視窗。
執行時,若把Run視窗移到其他螢幕,下次保留在同一位置。
若用全螢幕執行(Sketch-Present),就會在設定的螢幕顯示。 -preferences.automatically_associate_pde_files = 預設使用Processing來開啟.pde檔 -preferences.launch_programs_in = 啟動Processing時使用 -preferences.launch_programs_in.mode = 模式 -preferences.file = 直接編輯下面的設定檔,可設定更多的選項 -preferences.file.hint = 不要在執行Processing同時修改設定檔,以免衝突 +preferences.requires_restart = 需重新開啟Requires Restart Processing +preferences.sketchbook_location = 程式素描本的目錄Sketch Location +preferences.sketchbook_location.popup = 程式素描本的目錄Sketch Location +preferences.language = 語言Language +preferences.editor_and_console_font = 程式編輯Edtor及主控台Console的字形 +preferences.editor_and_console_font.tip = 在程式編輯Editor及主控台Console使用的字形
必需使用Monospace等寬字形,這裡的列表可能不完整。 +preferences.editor_font_size = 程式編輯Editor的字型大小 +preferences.console_font_size = 主控台Console的字型大小 +preferences.zoom = 縮放界面的文字比例 +preferences.zoom.auto = 使用系統預設值 +preferences.background_color = 全螢幕執行的背景色彩 +preferences.background_color.tip = 全螢幕執行(Present)的背景色
Present展示模式使用Fullscreen全螢幕執行,
可以在Processing上方選單的Sketch裡找到Present展示模式 +preferences.use_smooth_text = 在程式編輯窗使用平滑(smooth)的字形 +preferences.enable_complex_text_input = 使用複雜語系輸入 +preferences.enable_complex_text_input_example = 例如中文、日文、韓文 +preferences.continuously_check = 持續檢查程式是否錯誤Error +preferences.show_warnings = 顯示警告Warning +preferences.code_completion = 自動補齊程式碼CodeComplete +preferences.trigger_with = 用...觸發 +preferences.cmd_space = Space空白鍵 +preferences.suggest_imports = 自動建議需import的函式庫 +preferences.increase_max_memory = 加大程式可用的Memory到 +preferences.delete_previous_folder_on_export = 匯出應用程式時,刪掉前一版 +preferences.check_for_updates_on_startup = 啟動時檢查是否有新版Processing +preferences.run_sketches_on_display = 多螢幕顯示時,在哪個螢幕執行(Run) +preferences.run_sketches_on_display.tip = 若有多個螢幕,可設定(某個)螢幕,顯示Run視窗。
執行時,若把Run視窗移到其他螢幕,下次保留在同一位置。
若用全螢幕執行(Sketch-Present),就會在設定的螢幕顯示。 +preferences.automatically_associate_pde_files = 預設使用Processing來開啟.pde檔 +preferences.launch_programs_in = 啟動Processing時使用 +preferences.launch_programs_in.mode = 模式 +preferences.file = 直接編輯下面的設定檔,可設定更多的選項 +preferences.file.hint = 不要在執行Processing同時修改設定檔,以免衝突 # Sketchbook Location (Frame) -sketchbook_location = 選擇新的Sketchbook目錄 +sketchbook_location = 選擇新的Sketchbook目錄 # Sketchbook (Frame) -sketchbook = Sketchbook全部的程式素描本 -sketchbook.tree = Sketchbook全部的程式素描本 +sketchbook = Sketchbook全部的程式素描本 +sketchbook.tree = Sketchbook全部的程式素描本 -# examples (Frame) 這裡是跳出的視窗,所以英文放前面 -examples = 範例Examples -examples.add_examples = Add Examples...增加範例 -examples.libraries = Contributed Libraries第三方貢獻的函式庫 -examples.core_libraries = Libraries核心函式庫 -examples.contributed = Contributed Examples第三方貢獻的範例 +# examples (Frame) 這裡是跳出的視窗,所以英文放前面 +examples = 範例Examples +examples.add_examples = Add Examples...增加範例 +examples.libraries = Contributed Libraries第三方貢獻的函式庫 +examples.core_libraries = Libraries核心函式庫 +examples.contributed = Contributed Examples第三方貢獻的範例 # Export (Frame) -export = 匯出設定 Export Options -export.platforms = 選定平台 Platform -export.options = 匯出選項 Options -export.options.present = Presentation Mode(全螢幕) -export.options.show_stop_button = Show a Stop Button 要有關閉的按鈕 -export.description = 匯出應用程式後,可以點2下執行。\n並可在選定平台「獨立執行」。 -export.unsaved_changes = 在Export匯出前需先將程式存檔。
你要先存檔嗎? -export.notice.cancel.unsaved_changes = 因Export匯出前需先將程式存檔, 所以取消Export匯出。 -export.notice.exporting = 正在匯出(應用程式)... -export.notice.exporting.done = 順利匯出(應用程式) -export.notice.exporting.error = 匯出過程出現錯誤 -export.notice.exporting.cancel = 你取消匯出 -export.tooltip.macosx = macOS 匯出的程式只能在 macOS 裡執行 -export.full_screen = 是否要全螢幕 Full Screen -export.embed_java = 是否要嵌入Embed Java -export.include_java = 將Java放進你匯出的 %s 應用程式 -export.code_signing = 程式碼簽章 Code Signing -export.messages.is_read_only = 因程式碼Read-Only無法存檔 -export.messages.is_read_only.description = 有些檔案被設成read-only(可能是其他應用程式正在開啟)。\n所以你需要再試一次,改存在其他目錄裡。 -export.messages.cannot_export = 無法匯出應用程式 -export.messages.cannot_export.description = 若沒將sketch存檔,就無法Export匯出應用程式。 +export = 匯出設定 Export Options +export.platforms = 選定平台 Platform +export.options = 匯出選項 Options +export.options.present = Presentation Mode(全螢幕) +export.options.show_stop_button = Show a Stop Button 要有關閉的按鈕 +export.description = 匯出應用程式後,可以點2下執行。\n並可在選定平台「獨立執行」。 +export.unsaved_changes = 在Export匯出前需先將程式存檔。
你要先存檔嗎? +export.notice.cancel.unsaved_changes = 因Export匯出前需先將程式存檔, 所以取消Export匯出。 +export.notice.exporting = 正在匯出(應用程式)... +export.notice.exporting.done = 順利匯出(應用程式) +export.notice.exporting.error = 匯出過程出現錯誤 +export.notice.exporting.cancel = 你取消匯出 +export.tooltip.macosx = macOS 匯出的程式只能在 macOS 裡執行 +export.full_screen = 是否要全螢幕 Full Screen +export.embed_java = 是否要嵌入Embed Java +export.include_java = 將Java放進你匯出的 %s 應用程式 +export.code_signing = 程式碼簽章 Code Signing +export.messages.is_read_only = 因程式碼Read-Only無法存檔 +export.messages.is_read_only.description = 有些檔案被設成read-only(可能是其他應用程式正在開啟)。\n所以你需要再試一次,改存在其他目錄裡。 +export.messages.cannot_export = 無法匯出應用程式 +export.messages.cannot_export.description = 若沒將sketch存檔,就無法Export匯出應用程式。 # Find (Frame) -find = 尋找 Find -find.find = 尋找 Find -find.replace_with = 替代 Replace -find.ignore_case = 忽略大小寫 Ignore Case -find.all_tabs = 在全部Tab中尋找 All Tabs -find.wrap_around = 找完從頭再找 Wrap Around -find.btn.replace_all = 全部取代 Replace All -find.btn.replace = 取代 Replace -find.btn.find_and_replace = 尋找&取代 Find & Replace -find.btn.previous = 往前找 Previous -find.btn.find = 尋找 Find +find = 尋找 Find +find.find = 尋找 Find +find.replace_with = 替代 Replace +find.ignore_case = 忽略大小寫 Ignore Case +find.all_tabs = 在全部Tab中尋找 All Tabs +find.wrap_around = 找完從頭再找 Wrap Around +find.btn.replace_all = 全部取代 Replace All +find.btn.replace = 取代 Replace +find.btn.find_and_replace = 尋找&取代 Find & Replace +find.btn.previous = 往前找 Previous +find.btn.find = 尋找 Find # Find in reference (Frame) -find_in_reference = 在參考文件裡找選取的字... +find_in_reference = 在參考文件裡找選取的字... # File (Frame) -file = 選一個圖檔或要放到data目錄的檔案,會copy到你的data目錄中 +file = 選一個圖檔或要放到data目錄的檔案,會copy到你的data目錄中 # Create Font (Frame) -create_font = 新建字型Create Font... -create_font.label = Use this tool to create bitmap fonts for your(待查) program.\nSelect a font and size, and click 'OK' to generate the font.\nIt will be added to the data folder of the current sketch. +create_font = 新建字型Create Font... +create_font.label = Use this tool to create bitmap fonts for your(待查) program.\nSelect a font and size, and click 'OK' to generate the font.\nIt will be added to the data folder of the current sketch. create_font.size = Size create_font.smooth = Smooth create_font.characters = Characters... @@ -286,10 +286,10 @@ create_font.specific_unicode = Specific Unicode Blocks create_font.filename = Filename # Color Selector (Frame) -color_selector = 色彩選擇器(Color Selector)... +color_selector = 色彩選擇器(Color Selector)... # Archive Sketch (Frame) -archive_sketch = 壓縮程式專案Archive Sketch... +archive_sketch = 壓縮程式專案Archive Sketch... # Tweak Mode tweak_mode = Tweak Mode @@ -298,24 +298,24 @@ tweak_mode.keep_changes.line1 = Keep the changes? tweak_mode.keep_changes.line2 = You changed some values in your sketch. Would you like to keep the changes? # DebugTray -debugger.name = Name變數名 -debugger.value = Value變數值 -debugger.type = Type變數型別 +debugger.name = Name變數名 +debugger.value = Value變數值 +debugger.type = Type變數型別 # --------------------------------------- # Toolbars # [Run/Present] [Stop] [New] [Open] [Save] -toolbar.run = 執行(Run) -toolbar.present = 全螢幕執行(Present) -toolbar.stop = 停止執行(Stop) -toolbar.debug = 偵錯(Debug) +toolbar.run = 執行(Run) +toolbar.present = 全螢幕執行(Present) +toolbar.stop = 停止執行(Stop) +toolbar.debug = 偵錯(Debug) # --- -toolbar.new = 新增(New) -toolbar.open = 開啟(Open) -toolbar.save = 儲存(Save) -toolbar.export_application = 匯出單一應用程式(Export Application) -toolbar.add_mode = 增加新模式(Add Mode) +toolbar.new = 新增(New) +toolbar.open = 開啟(Open) +toolbar.save = 儲存(Save) +toolbar.export_application = 匯出單一應用程式(Export Application) +toolbar.add_mode = 增加新模式(Add Mode) # [Debug] [Continue] [Step] [Stop] [Toggle Breakpoints] [Variable Inspector] #toolbar.debug.continue = Continue @@ -330,48 +330,48 @@ toolbar.add_mode = 增加新模式(Add Mode) # Editor # [Tab1] [Tab2] [v] -editor.header.new_tab = 新增分頁(New Tab) -editor.header.rename = 重新命名分頁(Rename Tab) -editor.header.delete = 刪除分頁(Delete Tab) -editor.header.previous_tab = 前一個分頁(Previous Tab) +editor.header.new_tab = 新增分頁(New Tab) +editor.header.rename = 重新命名分頁(Rename Tab) +editor.header.delete = 刪除分頁(Delete Tab) +editor.header.previous_tab = 前一個分頁(Previous Tab) #editor.header.previous_tab.keystroke.macosx = meta alt pressed LEFT #editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP #editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP -editor.header.next_tab = 下一個分頁(Next Tab) +editor.header.next_tab = 下一個分頁(Next Tab) #editor.header.next_tab.keystroke.macosx = meta alt pressed RIGHT #editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN #editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN -editor.header.delete.warning.title = 警告! 不能刪除! -editor.header.delete.warning.text = 你不能刪除這個Tab分頁 +editor.header.delete.warning.title = 警告! 不能刪除! +editor.header.delete.warning.text = 你不能刪除這個Tab分頁 # PopUp menu -editor.popup.jump_to_declaration = 跳到變數宣告(Jump to Declaration) -editor.popup.show_usage = 變數哪裡使用(Show Usage...) -editor.popup.rename = 變數重新命名(Rename...) +editor.popup.jump_to_declaration = 跳到變數宣告(Jump to Declaration) +editor.popup.show_usage = 變數哪裡使用(Show Usage...) +editor.popup.rename = 變數重新命名(Rename...) # Tabs -editor.tab.new = 新的分頁檔案 -editor.tab.new.description = 新的分頁檔案名 -editor.tab.rename = 新的分頁檔案改名為 -editor.tab.rename.description = 新的分頁檔案名 +editor.tab.new = 新的分頁檔案 +editor.tab.new.description = 新的分頁檔案名 +editor.tab.rename = 新的分頁檔案改名為 +editor.tab.rename.description = 新的分頁檔案名 # Sketch -editor.sketch.rename.description = 程式重新命名 - -editor.status.autoformat.no_changes = 自動排版後,沒任何修改。 -editor.status.autoformat.finished = 自動排版完成。 -editor.status.find_reference.select_word_first = 要先反白關鍵字,才能找它的參考文件。 -editor.status.find_reference.not_available = 找不到"%s"的參考文件。 -editor.status.drag_and_drop.files_added.0 = 沒有檔案被加到程式速寫本中。 -editor.status.drag_and_drop.files_added.1 = 有1個檔案被加到程式速寫本中。 -editor.status.drag_and_drop.files_added.n = 有%d個檔案被加到程式速寫本中。 -editor.status.saving = 儲存中Saving... -editor.status.saving.done = 儲存完成Done. -editor.status.saving.canceled = 取消儲存Canceled. -editor.status.printing = 列印中Printing... -editor.status.printing.done = 列印完成Done. -editor.status.printing.error = 列印時出錯Error. -editor.status.printing.canceled = 取消列印Canceled. +editor.sketch.rename.description = 程式重新命名 + +editor.status.autoformat.no_changes = 自動排版後,沒任何修改。 +editor.status.autoformat.finished = 自動排版完成。 +editor.status.find_reference.select_word_first = 要先反白關鍵字,才能找它的參考文件。 +editor.status.find_reference.not_available = 找不到"%s"的參考文件。 +editor.status.drag_and_drop.files_added.0 = 沒有檔案被加到程式速寫本中。 +editor.status.drag_and_drop.files_added.1 = 有1個檔案被加到程式速寫本中。 +editor.status.drag_and_drop.files_added.n = 有%d個檔案被加到程式速寫本中。 +editor.status.saving = 儲存中Saving... +editor.status.saving.done = 儲存完成Done. +editor.status.saving.canceled = 取消儲存Canceled. +editor.status.printing = 列印中Printing... +editor.status.printing.done = 列印完成Done. +editor.status.printing.error = 列印時出錯Error. +editor.status.printing.canceled = 取消列印Canceled. editor.status.copy_as_html = Code formatted as HTML has been copied to the clipboard. editor.status.debug.busy = Debugger busy... editor.status.debug.halt = Debugger halted. @@ -452,7 +452,7 @@ delete.messages.is_read_only.description = Some files are marked "read-only", so save_file.messages.is_read_only = Sketch is read-only save_file.messages.is_read_only.description = Some files are marked "read-only", so you will\nneed to re-save this sketch to another location. save_file.messages.sketch_exists = Cannot Save -save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. +save_file.messages.sketch_exists.description = A sketch with the cleaned name\n“%s” already exists. save_file.messages.tab_exists = Nope save_file.messages.tab_exists.description = You cannot save the sketch as "%s"\nbecause the sketch already has a tab with that name. save_file.messages.recursive_save = How very Borges of you @@ -532,15 +532,15 @@ contrib.errors.no_internet_connection = You do not seem to be connected to the I contrib.status.downloading_list = Downloading contribution list... contrib.status.connecting = Connecting... contrib.status.done = Done. -contrib.all = 全部All -contrib.undo = 還原Undo -contrib.remove = 移除Renove -contrib.install = 安裝Install -contrib.progress.installing = 安裝中 Installing... -contrib.progress.starting = 準備開始Starting... -contrib.progress.downloading = 下載中Downloading... -contrib.download_error = 下載出現問題Download Error. -contrib.unsupported_operating_system = 你的作業系統沒有支援這個功能。你可查查 %s 相關文件. +contrib.all = 全部All +contrib.undo = 還原Undo +contrib.remove = 移除Renove +contrib.install = 安裝Install +contrib.progress.installing = 安裝中 Installing... +contrib.progress.starting = 準備開始Starting... +contrib.progress.downloading = 下載中Downloading... +contrib.download_error = 下載出現問題Download Error. +contrib.unsupported_operating_system = 你的作業系統沒有支援這個功能。你可查查 %s 相關文件. contrib.category.3d = 3D contrib.category.animation = Animation contrib.category.data = Data @@ -562,75 +562,75 @@ contrib.startup.errors.temp_dir = Could not write to temporary directory during contrib.startup.errors.new_marker = The unupdated contribution marker seems to not like %s. You may have to install it manually to update... # Install on Import -contrib.import.dialog.title = 缺的Library可下載哦! Missing Libraries Available -contrib.import.dialog.primary_text = 下面是你import想使用, 但還沒安裝的library, 可下載安裝它們。The following imported libraries are available for download, but have not been installed. -contrib.import.dialog.secondary_text = 你想要安裝它們嗎? Would you like to install them now? -contrib.import.progress.download = 下載中Downloading %s... -contrib.import.progress.install = 安裝中Installing %s... -contrib.import.progress.done = %s 已經安裝好了。 -contrib.import.progress.final_list = 下面列的libraries已安裝好: -contrib.import.errors.link = 錯誤Error: 這個library %s 的下載網址有問題。 +contrib.import.dialog.title = 缺的Library可下載哦! Missing Libraries Available +contrib.import.dialog.primary_text = 下面是你import想使用, 但還沒安裝的library, 可下載安裝它們。The following imported libraries are available for download, but have not been installed. +contrib.import.dialog.secondary_text = 你想要安裝它們嗎? Would you like to install them now? +contrib.import.progress.download = 下載中Downloading %s... +contrib.import.progress.install = 安裝中Installing %s... +contrib.import.progress.done = %s 已經安裝好了。 +contrib.import.progress.final_list = 下面列的libraries已安裝好: +contrib.import.errors.link = 錯誤Error: 這個library %s 的下載網址有問題。 # --------------------------------------- # Warnings -warn.delete = 刪除Delete... -warn.delete.sketch = 確定要刪除程式嗎? -warn.delete.file = 確定要刪除檔案 "%s" 嗎? -warn.delete.sketch_file = 您確定要刪除「%s」嗎? -warn.delete.sketch_last = 為了保護您的檔案安全,Processing 不支援刪除整個程式素描本資料夾。\n請在檔案總管中開啟該資料夾進行刪除。 -warn.cannot_change_mode.title = 無法切換模式 -warn.cannot_change_mode.body = 無法切換模式,\n因為「%s」模式與當前模式不相容。 +warn.delete = 刪除Delete... +warn.delete.sketch = 確定要刪除程式嗎? +warn.delete.file = 確定要刪除檔案 "%s" 嗎? +warn.delete.sketch_file = 您確定要刪除「%s」嗎? +warn.delete.sketch_last = 為了保護您的檔案安全,Processing 不支援刪除整個程式素描本資料夾。\n請在檔案總管中開啟該資料夾進行刪除。 +warn.cannot_change_mode.title = 無法切換模式 +warn.cannot_change_mode.body = 無法切換模式,\n因為「%s」模式與當前模式不相容。 # --------------------------------------- # Update Check -update_check = 線上更新Update -update_check.updates_available.core = 線上更新時找到新版Processing\n你想要從Processing官網下載最新版嗎? -update_check.updates_available.contributions = 你安裝的第三方貢獻Contributions有線上更新\n你想要開啟Contribution Manager去線上更新嗎? +update_check = 線上更新Update +update_check.updates_available.core = 線上更新時找到新版Processing\n你想要從Processing官網下載最新版嗎? +update_check.updates_available.contributions = 你安裝的第三方貢獻Contributions有線上更新\n你想要開啟Contribution Manager去線上更新嗎? # --------------------------------------- # Color Chooser -color_chooser = 色彩選擇器(Color Selector) -color_chooser.select = 選擇(Select) +color_chooser = 色彩選擇器(Color Selector) +color_chooser.select = 選擇(Select) # --------------------------------------- # Movie Maker -movie_maker = 圖片建出影片(Movie Maker) +movie_maker = 圖片建出影片(Movie Maker) movie_maker.title = QuickTime Movie Maker -movie_maker.blurb = 這個工具可以從一堆連續的圖片, 製作出QuickTime影片。

為了避免圖片壓縮造成不連續小瑕疵,
請在Processing存圖時使用TIFF, TGA, PNG來當連續圖片。

使用TIFF 或TGA圖檔可以快速製作影片,但需要大量的硬碟空間:
saveFrame("frames/####.tif");可存TIFF圖檔
saveFrame("frames/####.tga");可存TGA圖檔

PNG圖檔會比較小,不過程式在執行時會比較慢:
saveFrame("frames/####.png");可存PNG圖檔

這裡使用的程式是使用QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
-movie_maker.image_folder_help_label = 可在檔案總管裡直接將image目錄drag拖曳到下面欄位: -movie_maker.choose_button = 手動選擇目錄Choose... +movie_maker.blurb = 這個工具可以從一堆連續的圖片, 製作出QuickTime影片。

為了避免圖片壓縮造成不連續小瑕疵,
請在Processing存圖時使用TIFF, TGA, PNG來當連續圖片。

使用TIFF 或TGA圖檔可以快速製作影片,但需要大量的硬碟空間:
saveFrame("frames/####.tif");可存TIFF圖檔
saveFrame("frames/####.tga");可存TGA圖檔

PNG圖檔會比較小,不過程式在執行時會比較慢:
saveFrame("frames/####.png");可存PNG圖檔

這裡使用的程式是使用QuickTime Movie Maker 1.5.1 2011-01-17.
Copyright © 2010-2011 Werner Randelshofer. All rights reserved.
+movie_maker.image_folder_help_label = 可在檔案總管裡直接將image目錄drag拖曳到下面欄位: +movie_maker.choose_button = 手動選擇目錄Choose... movie_maker.select_image_folder = Select image folder... -movie_maker.sound_file_help_label = 可在檔案總管裡直接將sound檔案drag拖曳到下面欄位(.au, .aiff, .wav, .mp3): -movie_maker.select_sound_file = 請選擇一個sound聲音檔... - -movie_maker.create_movie_button = 開始製作影片Create movie... -movie_maker.save_dialog_prompt = 將影片存檔成Save movie as... -movie_maker.width = 寬度Width: -movie_maker.height = 高度Height -movie_maker.compression = 壓縮方式Compression: +movie_maker.sound_file_help_label = 可在檔案總管裡直接將sound檔案drag拖曳到下面欄位(.au, .aiff, .wav, .mp3): +movie_maker.select_sound_file = 請選擇一個sound聲音檔... + +movie_maker.create_movie_button = 開始製作影片Create movie... +movie_maker.save_dialog_prompt = 將影片存檔成Save movie as... +movie_maker.width = 寬度Width: +movie_maker.height = 高度Height +movie_maker.compression = 壓縮方式Compression: movie_maker.compression.animation = Animation movie_maker.compression.jpeg = JPEG movie_maker.compression.png = PNG -movie_maker.framerate = 每秒幾張圖Framerate: -movie_maker.orig_size_button = 影片size與圖片相同Same size as originals -movie_maker.orig_size_tooltip = 如果勾選,表示image目錄的圖檔已是影片要使用的長寬大小。 - -movie_maker.error.avoid_tiff = 有TIFF問題,請改用TGA或PNG圖檔。 -movie_maker.error.badnumbers = 欄位有問題,寬度Width、高度height必須是比0大的整數; 每秒framerate必須是比0大的數。 -movie_maker.error.cannot_read = 無法讀取 %s. -movie_maker.error.cannot_read_maybe_bad = 無法讀取 %s; 它可能已損壞。 -movie_maker.error.movie_failed = 製作QuickTime影片時失敗。 -movie_maker.error.need_input = 你必須要設定好image目錄、sound聲音檔案。 -movie_maker.error.no_images_found = 找不到image圖檔。 +movie_maker.framerate = 每秒幾張圖Framerate: +movie_maker.orig_size_button = 影片size與圖片相同Same size as originals +movie_maker.orig_size_tooltip = 如果勾選,表示image目錄的圖檔已是影片要使用的長寬大小。 + +movie_maker.error.avoid_tiff = 有TIFF問題,請改用TGA或PNG圖檔。 +movie_maker.error.badnumbers = 欄位有問題,寬度Width、高度height必須是比0大的整數; 每秒framerate必須是比0大的數。 +movie_maker.error.cannot_read = 無法讀取 %s. +movie_maker.error.cannot_read_maybe_bad = 無法讀取 %s; 它可能已損壞。 +movie_maker.error.movie_failed = 製作QuickTime影片時失敗。 +movie_maker.error.need_input = 你必須要設定好image目錄、sound聲音檔案。 +movie_maker.error.no_images_found = 找不到image圖檔。 movie_maker.error.sorry = Sorry -movie_maker.error.unknown_tga_format = 這個 .tga檔案的格式無法辨識%s +movie_maker.error.unknown_tga_format = 這個 .tga檔案的格式無法辨識%s -movie_maker.progress.creating_file_name = 製作中 %s -movie_maker.progress.creating_output_file = 製作output檔案中 -movie_maker.progress.initializing = 初始化Initializing... -movie_maker.progress.processing = 處理中Processing %s. +movie_maker.progress.creating_file_name = 製作中 %s +movie_maker.progress.creating_output_file = 製作output檔案中 +movie_maker.progress.initializing = 初始化Initializing... +movie_maker.progress.processing = 處理中Processing %s. From 9b9f514aae31dc3b08a198fb8890d7ae435dbdf6 Mon Sep 17 00:00:00 2001 From: Ahmed Maged Date: Tue, 3 Jun 2025 14:52:32 +0200 Subject: [PATCH 3/5] adding app/utils/build to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 26b5b97563..81a4513bd2 100644 --- a/.gitignore +++ b/.gitignore @@ -102,6 +102,7 @@ processing-examples core/build/ build/publish/ app/build +app/utils/build java/build/ /build/reports /java/bin From 25b6a449cf47cdd928d10b686554061c2bfa8dbf Mon Sep 17 00:00:00 2001 From: Ahmed Maged Date: Sun, 22 Jun 2025 14:28:49 +0300 Subject: [PATCH 4/5] Rename AppPreferences and AppMessages Classes back to it's original name --- app/src/processing/app/Base.java | 136 +++++++++--------- app/src/processing/app/Console.java | 2 +- app/src/processing/app/Language.java | 6 +- app/src/processing/app/Library.java | 26 ++-- .../app/{AppMessages.kt => Messages.kt} | 4 +- app/src/processing/app/Mode.java | 8 +- app/src/processing/app/Platform.java | 14 +- .../{AppPreferences.java => Preferences.java} | 5 +- app/src/processing/app/Schema.kt | 4 +- app/src/processing/app/Settings.java | 8 +- app/src/processing/app/SingleInstance.java | 42 +++--- app/src/processing/app/Sketch.java | 66 ++++----- app/src/processing/app/SketchName.java | 16 +-- app/src/processing/app/UpdateCheck.java | 10 +- app/src/processing/app/WebServer.java | 2 +- .../app/contrib/ContributionListing.java | 4 +- .../app/contrib/ContributionManager.java | 8 +- .../app/contrib/ContributionType.java | 4 +- .../app/contrib/LocalContribution.java | 16 +-- .../app/contrib/ModeContribution.java | 16 +-- .../processing/app/contrib/StatusDetail.java | 2 +- .../app/contrib/ToolContribution.java | 4 +- app/src/processing/app/exec/StreamPump.java | 4 +- .../app/platform/DefaultPlatform.java | 12 +- .../app/platform/LinuxPlatform.java | 14 +- .../processing/app/platform/MacPlatform.java | 6 +- .../app/platform/WindowsPlatform.java | 10 +- .../processing/app/syntax/InputHandler.java | 12 +- .../processing/app/syntax/JEditTextArea.java | 6 +- .../app/syntax/PdeInputHandler.java | 10 +- .../app/syntax/PdeTextAreaDefaults.java | 6 +- .../app/syntax/TextAreaPainter.java | 10 +- .../app/syntax/im/CompositionTextManager.java | 8 +- .../app/syntax/im/InputMethodSupport.java | 14 +- app/src/processing/app/tools/Archiver.java | 2 +- .../app/tools/InstallCommander.java | 6 +- .../processing/app/tools/ThemeSelector.java | 8 +- app/src/processing/app/ui/ChangeDetector.java | 20 +-- app/src/processing/app/ui/Editor.java | 30 ++-- app/src/processing/app/ui/EditorConsole.java | 10 +- app/src/processing/app/ui/EditorHeader.java | 4 +- app/src/processing/app/ui/EditorState.java | 6 +- app/src/processing/app/ui/EditorStatus.java | 4 +- app/src/processing/app/ui/ExamplesFrame.java | 8 +- app/src/processing/app/ui/ExportPrompt.java | 28 ++-- app/src/processing/app/ui/ModeSelector.java | 4 +- .../processing/app/ui/PreferencesFrame.java | 128 ++++++++--------- app/src/processing/app/ui/Recent.java | 10 +- app/src/processing/app/ui/Theme.java | 18 +-- app/src/processing/app/ui/Toolkit.java | 26 ++-- app/src/processing/app/ui/Welcome.java | 22 +-- app/src/processing/app/ui/theme/Locale.kt | 1 - app/test/processing/app/SchemaTest.kt | 6 +- java/src/processing/mode/java/ASTUtils.java | 14 +- java/src/processing/mode/java/ASTViewer.java | 4 +- .../java/CompileErrorMessageSimplifier.java | 16 +-- .../mode/java/CompletionGenerator.java | 18 +-- .../processing/mode/java/CompletionPanel.java | 10 +- .../src/processing/mode/java/InspectMode.java | 12 +- java/src/processing/mode/java/JavaBuild.java | 4 +- java/src/processing/mode/java/JavaEditor.java | 36 ++--- java/src/processing/mode/java/JavaMode.java | 4 +- .../processing/mode/java/JavaTextArea.java | 32 ++--- .../processing/mode/java/PreprocService.java | 20 +-- .../mode/java/RuntimePathBuilder.java | 2 +- .../mode/java/debug/ArrayFieldNode.java | 4 +- .../processing/mode/java/debug/Debugger.java | 20 +-- .../processing/mode/java/debug/FieldNode.java | 6 +- .../mode/java/debug/LineBreakpoint.java | 10 +- .../processing/mode/java/debug/LineID.java | 4 +- .../mode/java/debug/LocalVariableNode.java | 4 +- .../mode/java/debug/VariableInspector.java | 6 +- .../processing/mode/java/runner/Runner.java | 16 +-- 73 files changed, 547 insertions(+), 551 deletions(-) rename app/src/processing/app/{AppMessages.kt => Messages.kt} (98%) rename app/src/processing/app/{AppPreferences.java => Preferences.java} (86%) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 96b0615396..8204bdacca 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -123,7 +123,7 @@ public class Base { static public void main(final String[] args) { - AppMessages.log("Starting Processing version" + VERSION_NAME + " revision "+ REVISION); + Messages.log("Starting Processing version" + VERSION_NAME + " revision "+ REVISION); EventQueue.invokeLater(() -> { try { createAndShowGUI(args); @@ -145,7 +145,7 @@ static public void main(final String[] args) { missing = "core.jar"; } if (missing != null) { - AppMessages.showError("Necessary files are missing", + Messages.showError("Necessary files are missing", "A file required by Processing (" + missing + ") is missing.\n\n" + "Make sure that you're not trying to run Processing from inside\n" + "the .zip file you downloaded, and check that Windows Defender\n" + @@ -154,7 +154,7 @@ static public void main(final String[] args) { "It is not, but Microsoft has ignored our pleas for help.)", t); } } - AppMessages.showTrace("Unknown Problem", + Messages.showTrace("Unknown Problem", "A serious error happened during startup. Please report:\n" + "http://github.com/processing/processing4/issues/new", t, true); } @@ -201,20 +201,20 @@ static private void createAndShowGUI(String[] args) { if (!folder.exists()) { success = folder.mkdirs(); if (!success) { - AppMessages.err("Could not create " + folder + " to store settings."); + Messages.err("Could not create " + folder + " to store settings."); } } if (success) { if (!folder.canRead()) { - AppMessages.err("Cannot read from " + folder); + Messages.err("Cannot read from " + folder); } else if (!folder.canWrite()) { - AppMessages.err("Cannot write to " + folder); + Messages.err("Cannot write to " + folder); } else { settingsOverride = folder.getAbsoluteFile(); } } } catch (IOException e) { - AppMessages.err("Error while reading the settings.txt file", e); + Messages.err("Error while reading the settings.txt file", e); } } @@ -246,7 +246,7 @@ static private void createAndShowGUI(String[] args) { Language.init(); // run static initialization that grabs all the prefs - AppPreferences.init(); + Preferences.init(); // long t2 = System.currentTimeMillis(); @@ -256,7 +256,7 @@ static private void createAndShowGUI(String[] args) { Platform.setLookAndFeel(); Platform.setInterfaceZoom(); } catch (Exception e) { - AppMessages.err("Error while setting up the interface", e); //$NON-NLS-1$ + Messages.err("Error while setting up the interface", e); //$NON-NLS-1$ } // long t3 = System.currentTimeMillis(); @@ -266,7 +266,7 @@ static private void createAndShowGUI(String[] args) { // long t4 = System.currentTimeMillis(); - // Load colors for UI elements. This must happen after AppPreferences.init() + // Load colors for UI elements. This must happen after Preferences.init() // (so that fonts are set) and locateSketchbookFolder() so that a // theme.txt file in the user's sketchbook folder is picked up. Theme.init(); @@ -286,7 +286,7 @@ static private void createAndShowGUI(String[] args) { untitledFolder = new File(Util.getProcessingTemp(), uuid); } catch (IOException e) { - AppMessages.showError("Trouble without a name", + Messages.showError("Trouble without a name", "Could not create a place to store untitled sketches.\n" + "That's gonna prevent us from continuing.", e); } @@ -294,11 +294,11 @@ static private void createAndShowGUI(String[] args) { // long t5 = System.currentTimeMillis(); // long t6 = 0; // replaced below, just needs decl outside try { } - AppMessages.log("About to create Base..."); //$NON-NLS-1$ + Messages.log("About to create Base..."); //$NON-NLS-1$ try { final Base base = new Base(args); base.updateTheme(); - AppMessages.log("Base() constructor succeeded"); + Messages.log("Base() constructor succeeded"); // t6 = System.currentTimeMillis(); // Prevent more than one copy of the PDE from running. @@ -316,10 +316,10 @@ static private void createAndShowGUI(String[] args) { // show this one so that it's not truncated in the error window. err = t.getCause(); } - AppMessages.showTrace("We're off on the wrong foot", + Messages.showTrace("We're off on the wrong foot", "An error occurred during startup.", err, true); } - AppMessages.log("Done creating Base..."); //$NON-NLS-1$ + Messages.log("Done creating Base..."); //$NON-NLS-1$ // long t10 = System.currentTimeMillis(); // System.out.println("startup took " + (t2-t1) + " " + (t3-t2) + " " + (t4-t3) + " " + (t5-t4) + " " + (t6-t5) + " " + (t10-t6) + " ms"); @@ -373,11 +373,11 @@ public void updateTheme() { static private void handleWelcomeScreen(Base base) { // Needs to be shown after the first editor window opens, so that it // shows up on top, and doesn't prevent an editor window from opening. - if (AppPreferences.getBoolean("welcome.four.show")) { + if (Preferences.getBoolean("welcome.four.show")) { try { new Welcome(base); } catch (IOException e) { - AppMessages.showTrace("Unwelcoming", + Messages.showTrace("Unwelcoming", "Please report this error to\n" + "https://github.com/processing/processing4/issues", e, false); } @@ -403,7 +403,7 @@ static private void handleCrustyDisplay() { if (res % 96 != 0) { // fractional dpi scaling on a low-res screen System.out.println("If the editor cursor is in the wrong place or the interface is blocky or fuzzy,"); - System.out.println("open AppPreferences and select the “Disable HiDPI Scaling” option to fix it."); + System.out.println("open Preferences and select the “Disable HiDPI Scaling” option to fix it."); } } } @@ -425,7 +425,7 @@ static private void handleTempCleaning() { static public void cleanTempFolders() { try { final File tempDir = Util.getProcessingTemp(); - final int days = AppPreferences.getInteger("temp.days"); + final int days = Preferences.getInteger("temp.days"); if (days > 0) { final long now = new Date().getTime(); @@ -501,20 +501,20 @@ public Base(String[] args) throws Exception { Recent.init(this); long t4 = System.currentTimeMillis(); - String lastModeIdentifier = AppPreferences.get("mode.last"); //$NON-NLS-1$ + String lastModeIdentifier = Preferences.get("mode.last"); //$NON-NLS-1$ if (lastModeIdentifier == null) { nextMode = getDefaultMode(); - AppMessages.log("Nothing set for last.sketch.mode, using default."); //$NON-NLS-1$ + Messages.log("Nothing set for last.sketch.mode, using default."); //$NON-NLS-1$ } else { for (Mode m : getModeList()) { if (m.getIdentifier().equals(lastModeIdentifier)) { - AppMessages.logf("Setting next mode to %s.", lastModeIdentifier); //$NON-NLS-1$ + Messages.logf("Setting next mode to %s.", lastModeIdentifier); //$NON-NLS-1$ nextMode = m; } } if (nextMode == null) { nextMode = getDefaultMode(); - AppMessages.logf("Could not find mode %s, using default.", lastModeIdentifier); //$NON-NLS-1$ + Messages.logf("Could not find mode %s, using default.", lastModeIdentifier); //$NON-NLS-1$ } } @@ -537,7 +537,7 @@ public Base(String[] args) throws Exception { // Check if any files were passed in on the command line for (int i = 0; i < args.length; i++) { - AppMessages.logf("Parsing command line... args[%d] = '%s'", i, args[i]); + Messages.logf("Parsing command line... args[%d] = '%s'", i, args[i]); String path = args[i]; // Fix a problem with systems that use a non-ASCII languages. Paths are @@ -548,7 +548,7 @@ public Base(String[] args) throws Exception { try { File file = new File(args[i]); path = file.getCanonicalPath(); - AppMessages.logf("Changing %s to canonical %s", i, args[i], path); + Messages.logf("Changing %s to canonical %s", i, args[i], path); } catch (IOException e) { e.printStackTrace(); } @@ -562,10 +562,10 @@ public Base(String[] args) throws Exception { // Create a new empty window (will be replaced with any files to be opened) if (!opened) { - AppMessages.log("Calling handleNew() to open a new window"); + Messages.log("Calling handleNew() to open a new window"); handleNew(); } else { - AppMessages.log("No handleNew(), something passed on the command line"); + Messages.log("No handleNew(), something passed on the command line"); } long t8 = System.currentTimeMillis(); @@ -577,10 +577,10 @@ public Base(String[] args) throws Exception { cl.downloadAvailableList(this, new ContribProgress(null)); long t9 = System.currentTimeMillis(); - AppMessages.log("core modes: " + (t2b-t2) + + Messages.log("core modes: " + (t2b-t2) + ", contrib modes: " + (t2c-t2b) + ", contrib ex: " + (t2c-t2b)); - AppMessages.log("base took " + (t2-t1) + " " + (t3-t2) + " " + (t4-t3) + + Messages.log("base took " + (t2-t1) + " " + (t3-t2) + " " + (t4-t3) + " " + (t5-t4) + " t6-t5=" + (t6-t5) + " " + (t7-t6) + " handleNew=" + (t8-t7) + " " + (t9-t8) + " ms"); } @@ -659,7 +659,7 @@ public void handleActivated(Editor whichEditor) { // make this the next mode to be loaded nextMode = whichEditor.getMode(); - AppPreferences.set("mode.last", nextMode.getIdentifier()); //$NON-NLS-1$ + Preferences.set("mode.last", nextMode.getIdentifier()); //$NON-NLS-1$ } @@ -759,7 +759,7 @@ void buildCoreModes() { ModeContribution.load(this, Platform.getContentFile("modes/java"), getDefaultModeIdentifier()); if (javaModeContrib == null) { - AppMessages.showError("Startup Error", + Messages.showError("Startup Error", "Could not load Java Mode, please reinstall Processing.", new Exception("ModeContribution.load() was null")); @@ -805,7 +805,7 @@ void rebuildContribModes() { System.err.println(folder.getName() + " could not be loaded and may not compatible with this version of Processing"); if (DEBUG) ite.printStackTrace(); } catch (IgnorableException ig) { - AppMessages.log(ig.getMessage()); + Messages.log(ig.getMessage()); if (DEBUG) ig.printStackTrace(); } catch (Throwable e) { System.err.println("Could not load Mode from " + folder); @@ -901,19 +901,19 @@ public void rebuildToolList() { } catch (VerifyError | AbstractMethodError ve) { System.err.println("\"" + tool.getMenuTitle() + "\" is not " + "compatible with this version of Processing"); - AppMessages.err("Incompatible Tool found during tool.init()", ve); + Messages.err("Incompatible Tool found during tool.init()", ve); } catch (NoSuchMethodError nsme) { System.err.println("\"" + tool.getMenuTitle() + "\" is not " + "compatible with this version of Processing"); System.err.println("The " + nsme.getMessage() + " method no longer exists."); - AppMessages.err("Incompatible Tool found during tool.init()", nsme); + Messages.err("Incompatible Tool found during tool.init()", nsme); } catch (NoClassDefFoundError ncdfe) { System.err.println("\"" + tool.getMenuTitle() + "\" is not " + "compatible with this version of Processing"); System.err.println("The " + ncdfe.getMessage() + " class is no longer available."); - AppMessages.err("Incompatible Tool found during tool.init()", ncdfe); + Messages.err("Incompatible Tool found during tool.init()", ncdfe); } catch (Error | Exception e) { System.err.println("An error occurred inside \"" + tool.getMenuTitle() + "\""); @@ -985,10 +985,10 @@ JMenuItem createToolItem(final Tool tool) { //, Map toolItems tool.run(); } catch (NoSuchMethodError | NoClassDefFoundError ne) { - AppMessages.showWarning("Tool out of date", + Messages.showWarning("Tool out of date", tool.getMenuTitle() + " is not compatible with this version of Processing.\n" + "Try updating the Mode or contact its author for a new version.", ne); - AppMessages.err("Incompatible tool found during tool.run()", ne); + Messages.err("Incompatible tool found during tool.run()", ne); item.setEnabled(false); } catch (Exception ex) { @@ -1140,7 +1140,7 @@ public void handleNew() { handleOpenUntitled(path); } catch (IOException e) { - AppMessages.showTrace("That's new to me", + Messages.showTrace("That's new to me", "A strange and unexplainable error occurred\n" + "while trying to create a new sketch.", e, false); } @@ -1164,7 +1164,7 @@ public void handleOpenPrompt() { final String prompt = Language.text("open"); - if (AppPreferences.getBoolean("chooser.files.native")) { //$NON-NLS-1$ + if (Preferences.getBoolean("chooser.files.native")) { //$NON-NLS-1$ // use the front-most window frame for placing file dialog FileDialog openDialog = new FileDialog(activeEditor, prompt, FileDialog.LOAD); @@ -1259,14 +1259,14 @@ private void openContribBundle(String path) { Editor editor = getActiveEditor(); if (editor == null) { // Shouldn't really happen, but if it's still null, it's a no-go - AppMessages.showWarning("Failure is the only option", + Messages.showWarning("Failure is the only option", "Please open an Editor window before installing an extension."); } else { File contribFile = new File(path); String baseName = contribFile.getName(); baseName = baseName.substring(0, baseName.length() - CONTRIB_BUNDLE_EXT.length()); int result = - AppMessages.showYesNoQuestion(editor, "How to Handle " + CONTRIB_BUNDLE_EXT, + Messages.showYesNoQuestion(editor, "How to Handle " + CONTRIB_BUNDLE_EXT, "Install " + baseName + "?", "Libraries, Modes, and Tools should
" + "only be installed from trusted sources."); @@ -1292,7 +1292,7 @@ private void openContribBundle(String path) { }); } catch (IOException e) { EventQueue.invokeLater(() -> - AppMessages.showWarning("Exception During Installation", + Messages.showWarning("Exception During Installation", "Could not install contrib from " + path, e)); } }).start(); @@ -1361,7 +1361,7 @@ private File moveLikeSketchFolder(File pdeFile, String baseName) throws IOExcept // remove the original file, so user doesn't get confused if (!pdeFile.delete()) { - AppMessages.err("Could not delete " + pdeFile); + Messages.err("Could not delete " + pdeFile); } // update with the new path @@ -1481,7 +1481,7 @@ public Editor handleOpen(String path) { nextMode = mode; } else { ContributionManager.openModes(); - AppMessages.showWarning("Missing Mode", + Messages.showWarning("Missing Mode", "You must first install " + props.get("mode") + " Mode to use this sketch."); return null; } @@ -1510,7 +1510,7 @@ public Editor handleOpen(String path) { // Mode that it's using. (In 4.0b8, this became the fall-through case.) if (!Sketch.isSanitaryName(pdeFile.getName())) { - AppMessages.showWarning("You're tricky, but not tricky enough", + Messages.showWarning("You're tricky, but not tricky enough", pdeFile.getName() + " is not a valid name for sketch code.\n" + "Better to stick to ASCII, no spaces, and make sure\n" + "it doesn't start with a number.", null); @@ -1589,7 +1589,7 @@ public Editor handleOpen(String path) { return handleOpenInternal(pdeFile.getAbsolutePath(), false); } catch (IOException e) { - AppMessages.showWarning("sketch.properties", + Messages.showWarning("sketch.properties", "Error while reading sketch.properties from\n" + parentFolder, e); return null; } @@ -1643,19 +1643,19 @@ protected Editor handleOpenInternal(String path, boolean untitled) { } catch (EditorException ee) { if (ee.getMessage() != null) { // null if the user canceled - AppMessages.showWarning("Error opening sketch", ee.getMessage(), ee); + Messages.showWarning("Error opening sketch", ee.getMessage(), ee); } } catch (NoSuchMethodError me) { - AppMessages.showWarning("Mode out of date", + Messages.showWarning("Mode out of date", nextMode.getTitle() + " is not compatible with this version of Processing.\n" + "Try updating the Mode or contact its author for a new version.", me); } catch (Throwable t) { if (nextMode.equals(getDefaultMode())) { - AppMessages.showTrace("Serious Problem", + Messages.showTrace("Serious Problem", "An unexpected, unknown, and unrecoverable error occurred\n" + "while opening a new editor window. Please report this.", t, true); } else { - AppMessages.showTrace("Mode Problems", + Messages.showTrace("Mode Problems", "A nasty error occurred while trying to use “" + nextMode.getTitle() + "”.\n" + "It may not be compatible with this version of Processing.\n" + "Try updating the Mode or contact its author for a new version.", t, false); @@ -1665,7 +1665,7 @@ protected Editor handleOpenInternal(String path, boolean untitled) { Mode defaultMode = getDefaultMode(); if (nextMode == defaultMode) { // unreachable? hopefully? - AppMessages.showError("Editor Problems", """ + Messages.showError("Editor Problems", """ An error occurred while trying to change modes. We'll have to quit for now because it's an unfortunate bit of indigestion with the default Mode. @@ -1686,7 +1686,7 @@ protected Editor handleOpenInternal(String path, boolean untitled) { } } } catch (Throwable t) { - AppMessages.showTrace("Terrible News", + Messages.showTrace("Terrible News", "A serious error occurred while " + "trying to create a new editor window.", t, nextMode == getDefaultMode()); // quit if default @@ -1786,7 +1786,7 @@ public boolean handleQuit() { editor.internalCloseRunner(); } // Save out the current prefs state - AppPreferences.save(); + Preferences.save(); // Finished with this guy Console.shutdown(); @@ -1865,7 +1865,7 @@ public void handleRestart() { } } } else { - AppMessages.showWarning("Cannot Restart", + Messages.showWarning("Cannot Restart", "Cannot automatically restart because the Processing\n" + "application has been renamed. Please quit and then restart manually."); } @@ -1960,7 +1960,7 @@ public void populateSketchbookMenu(JMenu menu) { try { found = addSketches(menu, sketchbookFolder); } catch (Exception e) { - AppMessages.showWarning("Sketchbook Menu Error", + Messages.showWarning("Sketchbook Menu Error", "An error occurred while trying to list the sketchbook.", e); } if (!found) { @@ -1979,7 +1979,7 @@ public void populateSketchbookMenu(JMenu menu) { * sketch should open in a new window. */ protected boolean addSketches(JMenu menu, File folder) { - AppMessages.log("scanning " + folder.getAbsolutePath()); + Messages.log("scanning " + folder.getAbsolutePath()); // skip .DS_Store files, etc. (this shouldn't actually be necessary) if (!folder.isDirectory()) { return false; @@ -2017,7 +2017,7 @@ protected boolean addSketches(JMenu menu, File folder) { if (new File(path).exists()) { handleOpen(path); } else { - AppMessages.showWarning("Sketch Disappeared",""" + Messages.showWarning("Sketch Disappeared",""" The selected sketch no longer exists. You may need to restart Processing to update the sketchbook menu.""", null); @@ -2075,7 +2075,7 @@ protected boolean addSketches(JMenu menu, File folder) { */ public boolean addSketches(DefaultMutableTreeNode node, File folder, boolean examples) throws IOException { - AppMessages.log("scanning " + folder.getAbsolutePath()); + Messages.log("scanning " + folder.getAbsolutePath()); // skip .DS_Store files, etc. (this shouldn't actually be necessary) if (!folder.isDirectory()) { return false; @@ -2187,7 +2187,7 @@ static private Mode findSketchMode(File folder, List modeList) { /** - * Show the AppPreferences window. + * Show the Preferences window. */ public void handlePrefs() { if (preferencesFrame == null) { @@ -2232,14 +2232,14 @@ static public File getSettingsFolder() { // create the folder if it doesn't exist already if (!settingsFolder.exists()) { if (!settingsFolder.mkdirs()) { - AppMessages.showError("Settings issues", + Messages.showError("Settings issues", "Processing cannot run because it could not\n" + "create a folder to store your settings at\n" + settingsFolder, null); } } } catch (Exception e) { - AppMessages.showTrace("An rare and unknowable thing happened", + Messages.showTrace("An rare and unknowable thing happened", "Could not get the settings folder. Please report:\n" + "http://github.com/processing/processing/issues/new", e, true); @@ -2272,11 +2272,11 @@ static public File getToolsFolder() { static public void locateSketchbookFolder() { // If a value is at least set, first check to see if the folder exists. // If it doesn't, warn the user that the sketchbook folder is being reset. - String sketchbookPath = AppPreferences.getSketchbookPath(); + String sketchbookPath = Preferences.getSketchbookPath(); if (sketchbookPath != null) { sketchbookFolder = new File(sketchbookPath); if (!sketchbookFolder.exists()) { - AppMessages.showWarning("Sketchbook folder disappeared",""" + Messages.showWarning("Sketchbook folder disappeared",""" The sketchbook folder no longer exists. Processing will switch to the default sketchbook location, and create a new sketchbook folder if @@ -2289,10 +2289,10 @@ static public void locateSketchbookFolder() { // If no path is set, get the default sketchbook folder for this platform if (sketchbookFolder == null) { sketchbookFolder = getDefaultSketchbookFolder(); - AppPreferences.setSketchbookPath(sketchbookFolder.getAbsolutePath()); + Preferences.setSketchbookPath(sketchbookFolder.getAbsolutePath()); if (!sketchbookFolder.exists()) { if (!sketchbookFolder.mkdirs()) { - AppMessages.showError("Could not create sketchbook", + Messages.showError("Could not create sketchbook", "Unable to create a sketchbook folder at\n" + sketchbookFolder + "\n" + "Try creating a folder at that path and restart Processing.", null); @@ -2307,7 +2307,7 @@ static public void locateSketchbookFolder() { public void setSketchbookFolder(File folder) { sketchbookFolder = folder; - AppPreferences.setSketchbookPath(folder.getAbsolutePath()); + Preferences.setSketchbookPath(folder.getAbsolutePath()); rebuildSketchbook(); makeSketchbookSubfolders(); } @@ -2371,7 +2371,7 @@ static protected File getDefaultSketchbookFolder() { } catch (Exception ignored) { } if (sketchbookFolder == null) { - AppMessages.showError("No sketchbook", + Messages.showError("No sketchbook", "Problem while trying to get the sketchbook", null); } else { @@ -2382,7 +2382,7 @@ static protected File getDefaultSketchbookFolder() { } if (!result) { - AppMessages.showError("You forgot your sketchbook", + Messages.showError("You forgot your sketchbook", "Processing cannot run because it could not\n" + "create a folder to store your sketchbook.", null); } diff --git a/app/src/processing/app/Console.java b/app/src/processing/app/Console.java index 4eb9968835..badc4bb6d7 100644 --- a/app/src/processing/app/Console.java +++ b/app/src/processing/app/Console.java @@ -123,7 +123,7 @@ static public void startup() { static public void cleanTempFiles() { final File consoleDir = Base.getSettingsFile("console"); - final int days = AppPreferences.getInteger("console.temp.days"); + final int days = Preferences.getInteger("console.temp.days"); if (days > 0) { final long now = new Date().getTime(); diff --git a/app/src/processing/app/Language.java b/app/src/processing/app/Language.java index 9c1dfd69bd..3b66c31819 100644 --- a/app/src/processing/app/Language.java +++ b/app/src/processing/app/Language.java @@ -126,7 +126,7 @@ static private String[] listSupported() { throw new IOException("Could not read list of files inside " + baseFolder); } } catch (IOException e) { - AppMessages.showError("Translation Trouble", + Messages.showError("Translation Trouble", "There was a problem reading the language translations folder.\n" + "You may need to reinstall, or report if the problem persists.", e); } @@ -295,7 +295,7 @@ static public void addModeStrings(Mode mode) { } -// /** Set new language (called by AppPreferences) */ +// /** Set new language (called by Preferences) */ // static public void setLanguage(String language) { // this.language = language; // @@ -353,7 +353,7 @@ static class LanguageBundle { table = new HashMap<>(); // Disabling load from sketchbook in 4.2.1, because the path - // is not yet loaded from AppPreferences when languages are loaded. + // is not yet loaded from Preferences when languages are loaded. // Fixing that (i.e. reloading languages) makes the code a lot // more complicated for dubious benefit over simply editing the // language files in the download (i.e. still would not help diff --git a/app/src/processing/app/Library.java b/app/src/processing/app/Library.java index 9a1e06512c..5bd1809c67 100644 --- a/app/src/processing/app/Library.java +++ b/app/src/processing/app/Library.java @@ -198,7 +198,7 @@ private void handleExports() { if (oldName != null) { variantFolder = new File(libraryFolder, variant); if (variantFolder.exists()) { - AppMessages.log("Please update " + getName() + " for Processing 4. " + + Messages.log("Please update " + getName() + " for Processing 4. " + variantFolder + " is the older naming scheme."); } } @@ -345,18 +345,18 @@ public void addPackageList(Map> importToLibraryTable) { } else { if(!instructed) { instructed = true; - AppMessages.err("The library found in"); - AppMessages.err(getPath()); - AppMessages.err("conflicts with"); + Messages.err("The library found in"); + Messages.err(getPath()); + Messages.err("conflicts with"); for (Library library : libraries) { - AppMessages.err(library.getPath()); + Messages.err(library.getPath()); } - AppMessages.err("which already define(s) the package " + pkg); - AppMessages.err("If you have a line in your sketch that reads"); - AppMessages.err("import " + pkg + ".*;"); - AppMessages.err("Then you'll need to first remove one of those libraries."); + Messages.err("which already define(s) the package " + pkg); + Messages.err("If you have a line in your sketch that reads"); + Messages.err("import " + pkg + ".*;"); + Messages.err("Then you'll need to first remove one of those libraries."); }else{ - AppMessages.err("\tPackage ("+pkg+")\t conflict found in [" + name + "] with libraries: " + libraries.stream().map(Library::getName).reduce((a, b) -> a + ", " + b).orElse("")); + Messages.err("\tPackage ("+pkg+")\t conflict found in [" + name + "] with libraries: " + libraries.stream().map(Library::getName).reduce((a, b) -> a + ", " + b).orElse("")); } } libraries.add(this); @@ -585,7 +585,7 @@ static public List discover(File folder) { "The library \"" + potentialName + "\" cannot be used.\n" + "Library names must contain only basic letters and numbers.\n" + "(ASCII only and no spaces, and it cannot start with a number)"; - AppMessages.showMessage("Ignoring bad library name", mess); + Messages.showMessage("Ignoring bad library name", mess); } else { String pkg = findCollision(libraryFolder); @@ -594,7 +594,7 @@ static public List discover(File folder) { "The library \"" + potentialName + "\" cannot be used\n" + "because it contains the " + pkg + " libraries.\n" + "Please contact the library author for an update."; - AppMessages.showMessage("Ignoring bad library", mess); + Messages.showMessage("Ignoring bad library", mess); // Move the folder out of the way File badFolder = new File(baseFolder.getParentFile(), "disabled"); @@ -637,7 +637,7 @@ static public List list(File folder) { if (foundEarlier != null) { // Warn the user about this duplication (later, on the EDT) if (!duplicateLibraries.contains(name)) { - AppMessages.showWarningTiered("Duplicate Library Found", + Messages.showWarningTiered("Duplicate Library Found", "There are multiple libraries named “" + name + "”", "Please remove either “" + foundEarlier.getName() + " or “" + lib.getName() + "”\n" + diff --git a/app/src/processing/app/AppMessages.kt b/app/src/processing/app/Messages.kt similarity index 98% rename from app/src/processing/app/AppMessages.kt rename to app/src/processing/app/Messages.kt index 589967cfa6..3a4525e986 100644 --- a/app/src/processing/app/AppMessages.kt +++ b/app/src/processing/app/Messages.kt @@ -19,8 +19,6 @@ package processing.app import processing.app.ui.Toolkit -import processing.utils.Messages - import java.awt.EventQueue import java.awt.Frame import java.io.PrintWriter @@ -28,7 +26,7 @@ import java.io.StringWriter import javax.swing.JFrame import javax.swing.JOptionPane -class AppMessages : Messages() { +class Messages : processing.utils.Messages() { companion object { /** * Non-fatal error message with two levels of formatting. diff --git a/app/src/processing/app/Mode.java b/app/src/processing/app/Mode.java index 69a532d469..ec860c3a96 100644 --- a/app/src/processing/app/Mode.java +++ b/app/src/processing/app/Mode.java @@ -107,7 +107,7 @@ public Mode(Base base, File folder) { loadKeywords(file); } } catch (IOException e) { - AppMessages.showWarning("Problem loading keywords", + Messages.showWarning("Problem loading keywords", "Could not load keywords file for " + getTitle() + " mode.", e); } } @@ -371,7 +371,7 @@ public Library getLibrary(String pkgName) throws SketchException { secondary += "" + library.getName() + " (" + location + ")
"; } secondary += "Extra libraries need to be removed before this sketch can be used."; - AppMessages.showWarningTiered("Duplicate Library Problem", primary, secondary, null); + Messages.showWarningTiered("Duplicate Library Problem", primary, secondary, null); throw new SketchException("Duplicate libraries found for " + pkgName + "."); } else { @@ -820,7 +820,7 @@ public Library findLibraryByName(String libName) { public void prepareExportFolder(File targetFolder) { if (targetFolder != null) { // Nuke the old application folder because it can cause trouble - if (AppPreferences.getBoolean("export.delete_target_folder")) { + if (Preferences.getBoolean("export.delete_target_folder")) { if (targetFolder.exists()) { try { Platform.deleteFile(targetFolder); @@ -833,7 +833,7 @@ public void prepareExportFolder(File targetFolder) { // Create a fresh output folder (needed before preproc is run next) if (!targetFolder.exists()) { if (!targetFolder.mkdirs()) { - AppMessages.err("Could not create " + targetFolder); + Messages.err("Could not create " + targetFolder); } } } diff --git a/app/src/processing/app/Platform.java b/app/src/processing/app/Platform.java index 08db6dbbcf..73318c4808 100644 --- a/app/src/processing/app/Platform.java +++ b/app/src/processing/app/Platform.java @@ -103,7 +103,7 @@ static public void init() { inst = (DefaultPlatform) platformClass.getDeclaredConstructor().newInstance(); } catch (Exception e) { - AppMessages.showError("Problem Setting the Platform", + Messages.showError("Problem Setting the Platform", "An unknown error occurred while trying to load\n" + "platform-specific code for your machine.", e); } @@ -163,7 +163,7 @@ static public void openURL(String url) { inst.openURL(url); } catch (Exception e) { - AppMessages.showWarning("Problem Opening URL", + Messages.showWarning("Problem Opening URL", "Could not open the URL\n" + url, e); } } @@ -187,7 +187,7 @@ static public void openFolder(File file) { inst.openFolder(file); } catch (Exception e) { - AppMessages.showWarning("Problem Opening Folder", + Messages.showWarning("Problem Opening Folder", "Could not open the folder\n" + file.getAbsolutePath(), e); } } @@ -355,7 +355,7 @@ static public File getContentFile(String name) { try { decodedPath = pathURL.toURI().getSchemeSpecificPart(); } catch (URISyntaxException e) { - AppMessages.showError("Missing File", + Messages.showError("Missing File", "Could not access a required file:\n" + "" + name + "\n" + "You may need to reinstall Processing.", e); @@ -582,7 +582,7 @@ static public boolean deleteFile(File file) throws IOException { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /** - * These methods were refactored to use the AppPreferences system instead of + * These methods were refactored to use the Preferences system instead of * actual environment variables, since modifying environment variables at runtime * proved problematic. This approach provides similar functionality * while being compatible with various platforms and execution environments. @@ -592,11 +592,11 @@ static public boolean deleteFile(File file) throws IOException { */ static public void setenv(String variable, String value) { - AppPreferences.set(variable, value); + Preferences.set(variable, value); } static public String getenv(String variable) { - return AppPreferences.get(variable); + return Preferences.get(variable); } static public int unsetenv(String variable) { diff --git a/app/src/processing/app/AppPreferences.java b/app/src/processing/app/Preferences.java similarity index 86% rename from app/src/processing/app/AppPreferences.java rename to app/src/processing/app/Preferences.java index 7307178d5e..937f118a66 100644 --- a/app/src/processing/app/AppPreferences.java +++ b/app/src/processing/app/Preferences.java @@ -1,14 +1,13 @@ package processing.app; -import processing.utils.Preferences; import processing.app.ui.Toolkit; import java.awt.*; -public class AppPreferences extends Preferences { +public class Preferences extends processing.utils.Preferences { static public void init() { - Preferences.init(); + processing.utils.Preferences.init(); // For CJK users, enable IM support by default if (Language.useInputMethod() && !getBoolean("editor.input_method_support")) { diff --git a/app/src/processing/app/Schema.kt b/app/src/processing/app/Schema.kt index 91791ae1f9..ad7a94879a 100644 --- a/app/src/processing/app/Schema.kt +++ b/app/src/processing/app/Schema.kt @@ -162,9 +162,9 @@ class Schema { } ?: emptyMap() for ((key, value) in options){ - AppPreferences.set(key, value) + Preferences.set(key, value) } - AppPreferences.save() + Preferences.save() return null } diff --git a/app/src/processing/app/Settings.java b/app/src/processing/app/Settings.java index 12141926ea..020c20d386 100644 --- a/app/src/processing/app/Settings.java +++ b/app/src/processing/app/Settings.java @@ -32,7 +32,7 @@ /** - * Storage class for theme settings. This was separated from the AppPreferences + * Storage class for theme settings. This was separated from the Preferences * class for 1.0 so that the coloring wouldn't conflict with previous releases * and to make way for future ability to customize. */ @@ -88,7 +88,7 @@ public void load(File additions) { } } } else { - AppMessages.err(additions + " could not be read"); + Messages.err(additions + " could not be read"); } // check for platform-specific properties in the defaults @@ -201,7 +201,7 @@ public void setColor(String attr, Color what) { } - // identical version found in AppPreferences.java + // identical version found in Preferences.java public Font getFont(String attr) { try { boolean replace = false; @@ -250,7 +250,7 @@ public Font getFont(String attr) { } catch (Exception e) { // Adding try/catch block because this may be where // a lot of startup crashes are happening. - AppMessages.log("Error with font " + get(attr) + " for attribute " + attr); + Messages.log("Error with font " + get(attr) + " for attribute " + attr); } return new Font("Dialog", Font.PLAIN, 12); } diff --git a/app/src/processing/app/SingleInstance.java b/app/src/processing/app/SingleInstance.java index cba9af51e0..f900d9e8f0 100644 --- a/app/src/processing/app/SingleInstance.java +++ b/app/src/processing/app/SingleInstance.java @@ -50,7 +50,7 @@ public class SingleInstance { * @return true if successfully launched on the other instance */ static boolean alreadyRunning(String[] args) { - return AppPreferences.get(SERVER_PORT) != null && sendArguments(args); + return Preferences.get(SERVER_PORT) != null && sendArguments(args); } @@ -58,22 +58,22 @@ static boolean alreadyRunning(String[] args) { * Disable briefly for Processing to restart itself. */ static public void clearRunning() { - AppPreferences.unset(SERVER_PORT); - AppPreferences.save(); + Preferences.unset(SERVER_PORT); + Preferences.save(); } static void startServer(final Base base) { try { - AppMessages.log("Opening SingleInstance socket"); + Messages.log("Opening SingleInstance socket"); final ServerSocket ss = new ServerSocket(0, 0, InetAddress.getLoopbackAddress()); - AppPreferences.set(SERVER_PORT, "" + ss.getLocalPort()); + Preferences.set(SERVER_PORT, "" + ss.getLocalPort()); final String key = "" + Math.random(); - AppPreferences.set(SERVER_KEY, key); - AppPreferences.save(); + Preferences.set(SERVER_KEY, key); + Preferences.save(); - AppMessages.log("Starting SingleInstance thread"); + Messages.log("Starting SingleInstance thread"); new Thread(new Runnable() { public void run() { while (true) { @@ -81,26 +81,26 @@ public void run() { Socket s = ss.accept(); // blocks (sleeps) until connection final BufferedReader reader = PApplet.createReader(s.getInputStream()); String receivedKey = reader.readLine(); - AppMessages.log(this, "key is " + key + ", received is " + receivedKey); + Messages.log(this, "key is " + key + ", received is " + receivedKey); if (key.equals(receivedKey)) { EventQueue.invokeLater(new Runnable() { public void run() { try { - AppMessages.log(this, "about to read line"); + Messages.log(this, "about to read line"); String path = reader.readLine(); if (path == null) { // Because an attempt was made to launch the PDE again, // throw the user a bone by at least opening a new // Untitled window for them. - AppMessages.log(this, "opening new empty sketch"); + Messages.log(this, "opening new empty sketch"); // platform.base.handleNew(); base.handleNew(); } else { // loop through the sketches that were passed in do { - AppMessages.log(this, "calling open with " + path); + Messages.log(this, "calling open with " + path); // platform.base.handleOpen(filename); base.handleOpen(path); path = reader.readLine(); @@ -112,27 +112,27 @@ public void run() { } }); } else { - AppMessages.log(this, "keys do not match"); + Messages.log(this, "keys do not match"); } // } } catch (IOException e) { - AppMessages.err("SingleInstance error while listening", e); + Messages.err("SingleInstance error while listening", e); } } } }, "SingleInstance Server").start(); } catch (IOException e) { - AppMessages.err("Could not create single instance server.", e); + Messages.err("Could not create single instance server.", e); } } static boolean sendArguments(String[] args) { //, long timeout) { try { - AppMessages.log("Checking to see if Processing is already running"); - int port = AppPreferences.getInteger(SERVER_PORT); - String key = AppPreferences.get(SERVER_KEY); + Messages.log("Checking to see if Processing is already running"); + int port = Preferences.getInteger(SERVER_PORT); + String key = Preferences.get(SERVER_KEY); Socket socket = null; try { @@ -140,7 +140,7 @@ static boolean sendArguments(String[] args) { //, long timeout) { } catch (Exception ignored) { } if (socket != null) { - AppMessages.log("Processing is already running, sending command line"); + Messages.log("Processing is already running, sending command line"); PrintWriter writer = PApplet.createWriter(socket.getOutputStream()); writer.println(key); for (String arg : args) { @@ -151,9 +151,9 @@ static boolean sendArguments(String[] args) { //, long timeout) { return true; } } catch (IOException e) { - AppMessages.err("Error sending commands to other instance", e); + Messages.err("Error sending commands to other instance", e); } - AppMessages.log("Processing is not already running (or could not connect)"); + Messages.log("Processing is not already running (or could not connect)"); return false; } } diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index 2f03f32878..1bef3da039 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -311,7 +311,7 @@ public void handleNewCode() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - AppMessages.showMessage(Language.text("new.messages.is_read_only"), + Messages.showMessage(Language.text("new.messages.is_read_only"), Language.text("new.messages.is_read_only.description")); return; } @@ -330,13 +330,13 @@ public void handleRenameCode() { ensureExistence(); if (currentIndex == 0 && isUntitled()) { - AppMessages.showMessage(Language.text("rename.messages.is_untitled"), + Messages.showMessage(Language.text("rename.messages.is_untitled"), Language.text("rename.messages.is_untitled.description")); return; } if (isModified()) { - AppMessages.showMessage(Language.text("menu.file.save"), + Messages.showMessage(Language.text("menu.file.save"), Language.text("rename.messages.is_modified")); return; } @@ -344,7 +344,7 @@ public void handleRenameCode() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - AppMessages.showMessage(Language.text("rename.messages.is_read_only"), + Messages.showMessage(Language.text("rename.messages.is_read_only"), Language.text("rename.messages.is_read_only.description")); return; } @@ -352,7 +352,7 @@ public void handleRenameCode() { // ask for new name of file (internal to window) // TODO maybe just pop up a text area? renamingCode = true; - String prompt = (currentIndex == 0 && AppPreferences.getBoolean("editor.sync_folder_and_filename")) ? + String prompt = (currentIndex == 0 && Preferences.getBoolean("editor.sync_folder_and_filename")) ? Language.text("editor.sketch.rename.description") : Language.text("editor.tab.rename.description"); String oldName = (current.isExtension(mode.getDefaultExtension())) ? @@ -479,7 +479,7 @@ protected void nameCode(String newName) { } if (newName.startsWith(".")) { - AppMessages.showWarning(Language.text("name.messages.problem_renaming"), + Messages.showWarning(Language.text("name.messages.problem_renaming"), Language.text("name.messages.starts_with_dot.description")); return; } @@ -487,7 +487,7 @@ protected void nameCode(String newName) { int dot = newName.lastIndexOf('.'); String newExtension = newName.substring(dot+1).toLowerCase(); if (!mode.validExtension(newExtension)) { - AppMessages.showWarning(Language.text("name.messages.problem_renaming"), + Messages.showWarning(Language.text("name.messages.problem_renaming"), Language.interpolate("name.messages.invalid_extension.description", newExtension)); return; @@ -497,7 +497,7 @@ protected void nameCode(String newName) { if (!mode.isDefaultExtension(newExtension)) { if (renamingCode) { // If creating a new tab, don't show this error if (current == code[0]) { // If this is the main tab, disallow - AppMessages.showWarning(Language.text("name.messages.problem_renaming"), + Messages.showWarning(Language.text("name.messages.problem_renaming"), Language.interpolate("name.messages.main_java_extension.description", newExtension)); return; @@ -523,7 +523,7 @@ protected void nameCode(String newName) { // http://processing.org/bugs/bugzilla/543.html for (SketchCode c : code) { if (c != current && sanitaryName.equalsIgnoreCase(c.getPrettyName())) { - AppMessages.showMessage(Language.text("name.messages.new_sketch_exists"), + Messages.showMessage(Language.text("name.messages.new_sketch_exists"), Language.interpolate("name.messages.new_sketch_exists.description", c.getFileName(), folder.getAbsolutePath())); return; @@ -535,12 +535,12 @@ protected void nameCode(String newName) { if (renamingCode) { if (currentIndex == 0 && - AppPreferences.getBoolean("editor.sync_folder_and_filename")) { + Preferences.getBoolean("editor.sync_folder_and_filename")) { if (!renameSketch(newName, newExtension)) return; } else { // else if something besides code[0], or ok to decouple name if (!current.renameTo(newFile, newExtension)) { - AppMessages.showWarning(Language.text("name.messages.error"), + Messages.showWarning(Language.text("name.messages.error"), Language.interpolate("name.messages.no_rename_file.description", current.getFileName(), newFile.getName())); return; @@ -559,7 +559,7 @@ protected void nameCode(String newName) { throw new IOException("createNewFile() returned false"); } } catch (IOException e) { - AppMessages.showWarning(Language.text("name.messages.error"), + Messages.showWarning(Language.text("name.messages.error"), Language.interpolate("name.messages.no_create_file.description", newFile, folder.getAbsolutePath()), e); return; @@ -588,7 +588,7 @@ protected boolean renameSketch(String newName, String newExtension) { String folderName = newName.substring(0, newName.indexOf('.')); File newFolder = new File(folder.getParentFile(), folderName); if (newFolder.exists()) { - AppMessages.showWarning(Language.text("name.messages.new_folder_exists"), + Messages.showWarning(Language.text("name.messages.new_folder_exists"), Language.interpolate("name.messages.new_folder_exists.description", newName)); return false; } @@ -596,7 +596,7 @@ protected boolean renameSketch(String newName, String newExtension) { // renaming the containing sketch folder boolean success = folder.renameTo(newFolder); if (!success) { - AppMessages.showWarning(Language.text("name.messages.error"), + Messages.showWarning(Language.text("name.messages.error"), Language.text("name.messages.no_rename_folder.description")); return false; } @@ -611,7 +611,7 @@ protected boolean renameSketch(String newName, String newExtension) { // This isn't changing folders, just changes the name File newFile = new File(newFolder, newName); if (!current.renameTo(newFile, newExtension)) { - AppMessages.showWarning(Language.text("name.messages.error"), + Messages.showWarning(Language.text("name.messages.error"), Language.interpolate("name.messages.no_rename_file.description", current.getFileName(), newFile.getName())); return false; @@ -648,14 +648,14 @@ public void handleDeleteCode() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - AppMessages.showMessage(Language.text("delete.messages.is_read_only"), + Messages.showMessage(Language.text("delete.messages.is_read_only"), Language.text("delete.messages.is_read_only.description")); return; } // don't allow if untitled if (currentIndex == 0 && isUntitled()) { - AppMessages.showMessage(Language.text("delete.messages.cannot_delete"), + Messages.showMessage(Language.text("delete.messages.cannot_delete"), Language.text("delete.messages.cannot_delete.description")); return; } @@ -706,7 +706,7 @@ public void handleDeleteCode() { } else { // delete a single tab if (!current.deleteFile()) { - AppMessages.showMessage(Language.text("delete.messages.cannot_delete.file"), + Messages.showMessage(Language.text("delete.messages.cannot_delete.file"), Language.text("delete.messages.cannot_delete.file.description")+" \"" + current.getFileName() + "\"."); return; @@ -829,7 +829,7 @@ public boolean save() throws IOException { if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - AppMessages.showMessage(Language.text("save_file.messages.is_read_only"), + Messages.showMessage(Language.text("save_file.messages.is_read_only"), Language.text("save_file.messages.is_read_only.description")); // if the user cancels, give up on the save() if (!saveAs()) return false; @@ -863,13 +863,13 @@ public boolean saveAs() throws IOException { final String PROMPT = Language.text("save"); // https://github.com/processing/processing4/issues/77 - boolean useNative = AppPreferences.getBoolean("chooser.files.native"); + boolean useNative = Preferences.getBoolean("chooser.files.native"); if (useNative) { // get new name for folder FileDialog fd = new FileDialog(editor, PROMPT, FileDialog.SAVE); if (isReadOnly() || isUntitled()) { // default to the sketchbook folder - fd.setDirectory(AppPreferences.getSketchbookPath()); + fd.setDirectory(Preferences.getSketchbookPath()); } else { // default to the parent folder of where this was fd.setDirectory(folder.getParent()); @@ -884,7 +884,7 @@ public boolean saveAs() throws IOException { fc.setDialogTitle(PROMPT); if (isReadOnly() || isUntitled()) { // default to the sketchbook folder - fc.setCurrentDirectory(new File(AppPreferences.getSketchbookPath())); + fc.setCurrentDirectory(new File(Preferences.getSketchbookPath())); } else { // default to the parent folder of where this was fc.setCurrentDirectory(folder.getParentFile()); @@ -902,7 +902,7 @@ public boolean saveAs() throws IOException { // user canceled selection if (newSketchName == null) return false; - boolean sync = AppPreferences.getBoolean("editor.sync_folder_and_filename"); + boolean sync = Preferences.getBoolean("editor.sync_folder_and_filename"); String newMainFileName = null; // only set with !sync File newFolder; if (sync) { @@ -911,7 +911,7 @@ public boolean saveAs() throws IOException { String newMainName = sanitizeName(newSketchName); newFolder = new File(newParentDir, newMainName); if (!newMainName.equals(newSketchName) && newFolder.exists()) { - AppMessages.showMessage(Language.text("save_file.messages.sketch_exists"), + Messages.showMessage(Language.text("save_file.messages.sketch_exists"), Language.interpolate("save_file.messages.sketch_exists.description", newMainName)); return false; @@ -928,7 +928,7 @@ public boolean saveAs() throws IOException { // re-saved (with the same name) to another location/folder. for (int i = 1; i < codeCount; i++) { if (newSketchName.equalsIgnoreCase(code[i].getPrettyName())) { - AppMessages.showMessage(Language.text("save_file.messages.tab_exists"), + Messages.showMessage(Language.text("save_file.messages.tab_exists"), Language.interpolate("save_file.messages.tab_exists.description", newSketchName)); return false; @@ -950,7 +950,7 @@ public boolean saveAs() throws IOException { String oldPath = folder.getCanonicalPath() + File.separator; if (newPath.indexOf(oldPath) == 0) { - AppMessages.showWarning(Language.text("save_file.messages.recursive_save"), + Messages.showWarning(Language.text("save_file.messages.recursive_save"), Language.text("save_file.messages.recursive_save.description")); return false; } @@ -1379,7 +1379,7 @@ public void handleAddFile() { // if read-only, give an error if (isReadOnly()) { // if the files are read-only, need to first do a "save as". - AppMessages.showMessage(Language.text("add_file.messages.is_read_only"), + Messages.showMessage(Language.text("add_file.messages.is_read_only"), Language.text("add_file.messages.is_read_only.description")); return; } @@ -1492,7 +1492,7 @@ public boolean addFile(File sourceFile) { if (replacement) { boolean muchSuccess = destFile.delete(); if (!muchSuccess) { - AppMessages.showWarning(Language.text("add_file.messages.error_adding"), + Messages.showWarning(Language.text("add_file.messages.error_adding"), Language.interpolate("add_file.messages.cannot_delete.description", filename)); return false; } @@ -1500,7 +1500,7 @@ public boolean addFile(File sourceFile) { // make sure they aren't the same file if ((codeExtension == null) && sourceFile.equals(destFile)) { - AppMessages.showWarning(Language.text("add_file.messages.same_file"), + Messages.showWarning(Language.text("add_file.messages.same_file"), Language.text("add_file.messages.same_file.description")); return false; } @@ -1515,7 +1515,7 @@ public boolean addFile(File sourceFile) { Util.copyFile(sourceFile, destFile); } catch (IOException e) { - AppMessages.showWarning(Language.text("add_file.messages.error_adding"), + Messages.showWarning(Language.text("add_file.messages.error_adding"), Language.interpolate("add_file.messages.cannot_add.description", filename), e); return false; } @@ -1608,7 +1608,7 @@ public File makeTempFolder() { return Util.createTempFolder(name, "temp", null); } catch (IOException e) { - AppMessages.showWarning(Language.text("temp_dir.messages.bad_build_folder"), + Messages.showWarning(Language.text("temp_dir.messages.bad_build_folder"), Language.text("temp_dir.messages.bad_build_folder.description"), e); } return null; @@ -1628,7 +1628,7 @@ public void ensureExistence() { disappearedWarning = true; // Disaster recovery, try to salvage what's there already. - AppMessages.showWarning(Language.text("ensure_exist.messages.missing_sketch"), + Messages.showWarning(Language.text("ensure_exist.messages.missing_sketch"), Language.text("ensure_exist.messages.missing_sketch.description")); try { folder.mkdirs(); @@ -1641,7 +1641,7 @@ public void ensureExistence() { } catch (Exception e) { // disappearedWarning prevents infinite loop in this scenario - AppMessages.showWarning(Language.text("ensure_exist.messages.unrecoverable"), + Messages.showWarning(Language.text("ensure_exist.messages.unrecoverable"), Language.text("ensure_exist.messages.unrecoverable.description"), e); } } diff --git a/app/src/processing/app/SketchName.java b/app/src/processing/app/SketchName.java index 88da10a54c..7a4b1d3382 100644 --- a/app/src/processing/app/SketchName.java +++ b/app/src/processing/app/SketchName.java @@ -30,13 +30,13 @@ public class SketchName { * @return File object for safe new path, or null if there were problems */ static File nextFolder(File parentDir) { - String approach = AppPreferences.get("sketch.name.approach"); + String approach = Preferences.get("sketch.name.approach"); if ((approach != null) && !CLASSIC.equals(approach)) { WordList wl = getWordLists().get(approach); if (wl != null) { // just in case the naming scheme no longer available File folder = wl.wordsFolder(parentDir); if (folder == null) { - AppMessages.showWarning("Out of Options", """ + Messages.showWarning("Out of Options", """ All possible naming combinations have been used. Use “Preferences” to choose a different naming system, or restart Processing."""); @@ -57,8 +57,8 @@ static File classicFolder(File parentDir) { String newbieName; int index = 0; - String prefix = AppPreferences.get("editor.untitled.prefix"); - String format = AppPreferences.get("editor.untitled.suffix"); + String prefix = Preferences.get("editor.untitled.prefix"); + String format = Preferences.get("editor.untitled.suffix"); String suffix; if (format == null) { // If no format is specified, uses this ancient format @@ -78,12 +78,12 @@ static File classicFolder(File parentDir) { if (index == 26) { // In 0159, avoid running past z by sending people outdoors. if (!breakTime) { - AppMessages.showWarning("Time for a Break", + Messages.showWarning("Time for a Break", "You've reached the limit for auto naming of new sketches\n" + "for the day. How about going for a walk instead?", null); breakTime = true; } else { - AppMessages.showWarning("Sunshine", + Messages.showWarning("Sunshine", "No really, time for some fresh air for you.\n" + "(At a minimum, you'll need to restart Processing.)", null); } @@ -203,7 +203,7 @@ static Map getWordLists() { File namingFile = Base.getLibFile(FILENAME); load(namingFile); } catch (Exception e) { - AppMessages.showWarning("Naming Error", + Messages.showWarning("Naming Error", "Could not load word lists from " + FILENAME, e); } File sketchbookFile = new File(Base.getSketchbookFolder(), FILENAME); @@ -211,7 +211,7 @@ static Map getWordLists() { try { load(sketchbookFile); } catch (Exception e) { - AppMessages.showWarning("Naming Error", + Messages.showWarning("Naming Error", "Error while reading " + FILENAME + " from sketchbook folder", e); } } diff --git a/app/src/processing/app/UpdateCheck.java b/app/src/processing/app/UpdateCheck.java index eee9242911..1bfa296882 100644 --- a/app/src/processing/app/UpdateCheck.java +++ b/app/src/processing/app/UpdateCheck.java @@ -92,11 +92,11 @@ static public long getUpdateID() { Random r = new Random(); long id = r.nextLong(); - String idString = AppPreferences.get("update.id"); + String idString = Preferences.get("update.id"); if (idString != null) { id = Long.parseLong(idString); } else { - AppPreferences.set("update.id", String.valueOf(id)); + Preferences.set("update.id", String.valueOf(id)); } return id; } @@ -113,7 +113,7 @@ public void updateCheck() throws IOException { int latest = readInt(LATEST_URL + "?" + info); - String lastString = AppPreferences.get("update.last"); + String lastString = Preferences.get("update.last"); long now = System.currentTimeMillis(); if (lastString != null) { long when = Long.parseLong(lastString); @@ -122,7 +122,7 @@ public void updateCheck() throws IOException { return; } } - AppPreferences.set("update.last", String.valueOf(now)); + Preferences.set("update.last", String.valueOf(now)); if (base.activeEditor != null) { // boolean offerToUpdateContributions = true; @@ -209,6 +209,6 @@ protected int readInt(String filename) throws IOException { static public boolean isAllowed() { // Disable update checks for the paranoid - return AppPreferences.getBoolean("update.check"); + return Preferences.getBoolean("update.check"); } } diff --git a/app/src/processing/app/WebServer.java b/app/src/processing/app/WebServer.java index d69cd39e70..bd13f59b40 100644 --- a/app/src/processing/app/WebServer.java +++ b/app/src/processing/app/WebServer.java @@ -222,7 +222,7 @@ boolean printHeaders(PrintStream ps, String path, ZipEntry entry) throws IOExcep ps.print("HTTP/1.0 " + HTTP_OK + " OK"); } ps.write(EOL); - AppMessages.log("From " + socket.getInetAddress().getHostAddress() + ": GET " + path + " --> " + status); + Messages.log("From " + socket.getInetAddress().getHostAddress() + ": GET " + path + " --> " + status); ps.print("Server: Processing Reference Server"); ps.write(EOL); diff --git a/app/src/processing/app/contrib/ContributionListing.java b/app/src/processing/app/contrib/ContributionListing.java index 99cd221fa3..4271977e77 100644 --- a/app/src/processing/app/contrib/ContributionListing.java +++ b/app/src/processing/app/contrib/ContributionListing.java @@ -30,7 +30,7 @@ import java.util.concurrent.locks.ReentrantLock; import processing.app.Base; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.UpdateCheck; import processing.utils.Util; import processing.core.PApplet; @@ -229,7 +229,7 @@ protected void addListPanel(ListPanel listener) { public void downloadAvailableList(final Base base, final ContribProgress progress) { // TODO: replace with SwingWorker [jv] - AppMessages.log("Downloading contributions list from " + LISTING_URL); + Messages.log("Downloading contributions list from " + LISTING_URL); new Thread(() -> { downloadingLock.lock(); diff --git a/app/src/processing/app/contrib/ContributionManager.java b/app/src/processing/app/contrib/ContributionManager.java index 118bd1752a..31b923a2f3 100644 --- a/app/src/processing/app/contrib/ContributionManager.java +++ b/app/src/processing/app/contrib/ContributionManager.java @@ -29,7 +29,7 @@ import processing.app.Base; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Platform; import processing.utils.Util; import processing.app.ui.Editor; @@ -588,7 +588,7 @@ static private void updateFlagged(Base base, File root) throws Exception { // where it's triggered most consistently, so it's here for now. if (Platform.isMacOS()) { // we're on the EDT here, so it's safe to show the error - AppMessages.showError("Cannot access sketchbook", + Messages.showError("Cannot access sketchbook", """ There is a problem with the “permissions” for the sketchbook folder. Processing needs access to the Documents folder to save your work. @@ -663,7 +663,7 @@ else if (contribType.equalsIgnoreCase("modes")) static private void installOnStartUp(final Base base, final AvailableContribution availableContrib) { if (availableContrib.link == null) { - AppMessages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), + Messages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), Language.text("contrib.missing_link")); } else { try { @@ -671,7 +671,7 @@ static private void installOnStartUp(final Base base, final AvailableContributio ContributionManager.downloadAndInstallOnStartup(base, downloadUrl, availableContrib); } catch (MalformedURLException e) { - AppMessages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), + Messages.showWarning(Language.interpolate("contrib.errors.update_on_restart_failed", availableContrib.getName()), Language.text("contrib.errors.malformed_url"), e); } } diff --git a/app/src/processing/app/contrib/ContributionType.java b/app/src/processing/app/contrib/ContributionType.java index c9a50d2bb5..44f6c16325 100644 --- a/app/src/processing/app/contrib/ContributionType.java +++ b/app/src/processing/app/contrib/ContributionType.java @@ -28,7 +28,7 @@ import processing.app.Base; import processing.app.Library; -import processing.app.AppMessages; +import processing.app.Messages; import processing.utils.Util; import processing.app.ui.Editor; import processing.core.PApplet; @@ -191,7 +191,7 @@ File findCandidate(File folder) { return null; } else if (folders.length > 1) { - AppMessages.log("More than one " + this + " found inside " + folder.getAbsolutePath()); + Messages.log("More than one " + this + " found inside " + folder.getAbsolutePath()); } return folders[0]; } diff --git a/app/src/processing/app/contrib/LocalContribution.java b/app/src/processing/app/contrib/LocalContribution.java index 119662518d..558003b781 100644 --- a/app/src/processing/app/contrib/LocalContribution.java +++ b/app/src/processing/app/contrib/LocalContribution.java @@ -104,10 +104,10 @@ public LocalContribution(File folder) { maxRevision = PApplet.parseInt(maxRev, 0); } } else { - AppMessages.log("Could not read " + propertiesFile.getAbsolutePath()); + Messages.log("Could not read " + propertiesFile.getAbsolutePath()); } } else { - AppMessages.log("No properties file at " + propertiesFile.getAbsolutePath()); + Messages.log("No properties file at " + propertiesFile.getAbsolutePath()); } if (name == null) { // fall-through case // We'll need this to be set at a minimum. @@ -120,7 +120,7 @@ public LocalContribution(File folder) { public String initLoader(String className) throws Exception { File modeDirectory = new File(folder, getTypeName()); if (modeDirectory.exists()) { - AppMessages.log("checking mode folder regarding " + className); + Messages.log("checking mode folder regarding " + className); // If no class name specified, search the main .jar for the // full name package and mode name. if (className == null) { @@ -143,12 +143,12 @@ public String initLoader(String className) throws Exception { if (archives != null && archives.length > 0) { URL[] urlList = new URL[archives.length]; for (int j = 0; j < urlList.length; j++) { - AppMessages.log("Found archive " + archives[j] + " for " + getName()); + Messages.log("Found archive " + archives[j] + " for " + getName()); urlList[j] = archives[j].toURI().toURL(); } // loader = new URLClassLoader(urlList, Thread.currentThread().getContextClassLoader()); loader = new URLClassLoader(urlList); - AppMessages.log("loading above JARs with loader " + loader); + Messages.log("loading above JARs with loader " + loader); // System.out.println("listing classes for loader " + loader); // listClasses(loader); } @@ -195,7 +195,7 @@ LocalContribution copyAndLoad(Base base, } } else { int result; - boolean doBackup = AppPreferences.getBoolean("contribution.backup.on_install"); + boolean doBackup = Preferences.getBoolean("contribution.backup.on_install"); if ((doBackup && !oldContrib.backup(true, status)) || (!doBackup && !oldContrib.getFolder().delete())) { return null; @@ -302,7 +302,7 @@ protected void removeContribution(Base base, } boolean success; - boolean doBackup = AppPreferences.getBoolean("contribution.backup.on_remove"); + boolean doBackup = Preferences.getBoolean("contribution.backup.on_remove"); if (doBackup) { success = backup(true, status); } else { @@ -388,7 +388,7 @@ private boolean removeMode(Base base, boolean updating) { Sketch sketch = editor.getSketch(); if (sketch.isModified()) { editor.toFront(); - AppMessages.showMessage("Save Sketch", + Messages.showMessage("Save Sketch", "Please first save “" + sketch.getName() + "”."); return false; } else { diff --git a/app/src/processing/app/contrib/ModeContribution.java b/app/src/processing/app/contrib/ModeContribution.java index 0cfb36581b..8f601eabb0 100644 --- a/app/src/processing/app/contrib/ModeContribution.java +++ b/app/src/processing/app/contrib/ModeContribution.java @@ -32,7 +32,7 @@ import java.util.Map; import processing.app.Base; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Mode; import processing.utils.Util; @@ -52,7 +52,7 @@ static public ModeContribution load(Base base, File folder, return new ModeContribution(base, folder, searchName); } catch (IgnorableException ig) { - AppMessages.log(ig.getMessage()); + Messages.log(ig.getMessage()); } catch (Throwable err) { // Throwable to catch Exceptions or UnsupportedClassVersionError et al. @@ -65,7 +65,7 @@ static public ModeContribution load(Base base, File folder, // For the built-in modes, don't print the exception, just log it // for debugging. This should be impossible for most users to reach, // but it helps us load experimental mode when it's available. - AppMessages.err("ModeContribution.load() failed for " + searchName, err); + Messages.err("ModeContribution.load() failed for " + searchName, err); } } return null; @@ -83,7 +83,7 @@ public ModeContribution(Base base, File folder, className = initLoader(base, className); if (className != null) { Class modeClass = loader.loadClass(className); - AppMessages.log("Got mode class " + modeClass); + Messages.log("Got mode class " + modeClass); Constructor con = modeClass.getConstructor(Base.class, File.class); mode = (Mode) con.newInstance(base, folder); mode.setClassLoader(loader); @@ -123,7 +123,7 @@ public ContributionType getType() { private String initLoader(Base base, String className) throws Exception { File modeDirectory = new File(folder, getTypeName()); if (modeDirectory.exists()) { - AppMessages.log("checking mode folder regarding class name " + className); + Messages.log("checking mode folder regarding class name " + className); // If no class name specified, search the main .jar for the // full name package and mode name. if (className == null) { @@ -154,7 +154,7 @@ private String initLoader(Base base, String className) throws Exception { for (String modeImport : imports) { if (installedModes.containsKey(modeImport)) { - AppMessages.log("Found mode dependency " + modeImport); + Messages.log("Found mode dependency " + modeImport); File modeFolder = installedModes.get(modeImport).getFolder(); File[] archives = Util.listJarFiles(new File(modeFolder, "mode")); if (archives != null) { @@ -184,12 +184,12 @@ private String initLoader(Base base, String className) throws Exception { } for (int k = 0; k < archives.length; k++,j++) { - AppMessages.log("Found archive " + archives[k] + " for " + getName()); + Messages.log("Found archive " + archives[k] + " for " + getName()); urlList[j] = archives[k].toURI().toURL(); } loader = new URLClassLoader(urlList); - AppMessages.log("loading above JARs with loader " + loader); + Messages.log("loading above JARs with loader " + loader); } } diff --git a/app/src/processing/app/contrib/StatusDetail.java b/app/src/processing/app/contrib/StatusDetail.java index 053ff61c94..078352cf95 100644 --- a/app/src/processing/app/contrib/StatusDetail.java +++ b/app/src/processing/app/contrib/StatusDetail.java @@ -168,7 +168,7 @@ public void cancelAction() { statusPanel); } catch (MalformedURLException e) { - AppMessages.showWarning(Language.text("contrib.errors.install_failed"), + Messages.showWarning(Language.text("contrib.errors.install_failed"), Language.text("contrib.errors.malformed_url"), e); } } diff --git a/app/src/processing/app/contrib/ToolContribution.java b/app/src/processing/app/contrib/ToolContribution.java index 78819c7cb5..660d76bbb4 100644 --- a/app/src/processing/app/contrib/ToolContribution.java +++ b/app/src/processing/app/contrib/ToolContribution.java @@ -26,7 +26,7 @@ import java.util.*; import processing.app.Base; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.tools.Tool; @@ -39,7 +39,7 @@ static public ToolContribution load(File folder) { try { return new ToolContribution(folder); } catch (IgnorableException ig) { - AppMessages.log(ig.getMessage()); + Messages.log(ig.getMessage()); } catch (VerifyError ve) { // incompatible // avoid the excessive error spew that happens here diff --git a/app/src/processing/app/exec/StreamPump.java b/app/src/processing/app/exec/StreamPump.java index 1d55a35ae1..29786102cc 100644 --- a/app/src/processing/app/exec/StreamPump.java +++ b/app/src/processing/app/exec/StreamPump.java @@ -13,7 +13,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import processing.app.Base; -import processing.app.AppMessages; +import processing.app.Messages; /** @@ -80,7 +80,7 @@ public void run() { } } catch (final IOException e) { if (Base.DEBUG) { - AppMessages.err("StreamPump: " + name, e); + Messages.err("StreamPump: " + name, e); // removing for 0190, but need a better way to handle these throw new RuntimeException("Inside " + this + " for " + name, e); } diff --git a/app/src/processing/app/platform/DefaultPlatform.java b/app/src/processing/app/platform/DefaultPlatform.java index 5fae182d0e..de965a6007 100644 --- a/app/src/processing/app/platform/DefaultPlatform.java +++ b/app/src/processing/app/platform/DefaultPlatform.java @@ -34,7 +34,7 @@ import com.formdev.flatlaf.FlatLightLaf; import processing.app.Base; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.app.ui.Toolkit; import processing.awt.ShimAWT; import processing.core.PApplet; @@ -135,8 +135,8 @@ public void setLookAndFeel() throws Exception { /* // If the default has been overridden in the preferences, set the font - String fontName = AppPreferences.get("ui.font.family"); - int fontSize = AppPreferences.getInteger("ui.font.size"); + String fontName = Preferences.get("ui.font.family"); + int fontSize = Preferences.getInteger("ui.font.size"); // fontName = "Processing Sans Pro"; // fontSize = 13; if (!"Dialog".equals(fontName) || fontSize != 12) { @@ -178,7 +178,7 @@ static private void setUIFont(FontUIResource f) { public void setInterfaceZoom() throws Exception { // Specify font when scaling is active. - if (!AppPreferences.getBoolean("editor.zoom.auto")) { + if (!Preferences.getBoolean("editor.zoom.auto")) { for (String widgetName : FONT_SCALING_WIDGETS) { scaleDefaultFont(widgetName); } @@ -186,8 +186,8 @@ public void setInterfaceZoom() throws Exception { // Font defaultFont = Toolkit.getSansFont(14, Font.PLAIN); // UIManager.put("defaultFont", defaultFont); -// String fontName = AppPreferences.get("ui.font.family"); -// int fontSize = AppPreferences.getInteger("ui.font.size"); +// String fontName = Preferences.get("ui.font.family"); +// int fontSize = Preferences.getInteger("ui.font.size"); // FontUIResource uiFont = new FontUIResource(fontName, Font.PLAIN, Toolkit.zoom(fontSize)); // UIManager.put("Label.font", uiFont); // UIManager.put("TextField.font", uiFont); diff --git a/app/src/processing/app/platform/LinuxPlatform.java b/app/src/processing/app/platform/LinuxPlatform.java index 0a690c5aca..9e0eab46bc 100644 --- a/app/src/processing/app/platform/LinuxPlatform.java +++ b/app/src/processing/app/platform/LinuxPlatform.java @@ -26,7 +26,7 @@ import java.awt.Desktop; import java.awt.Toolkit; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.app.Base; import processing.core.PApplet; @@ -101,7 +101,7 @@ public void openURL(String url) throws Exception { super.openURL(url); } else if (openFolderAvailable()) { - String launcher = AppPreferences.get("launcher"); // guaranteed non-null + String launcher = Preferences.get("launcher"); // guaranteed non-null Runtime.getRuntime().exec(new String[] { launcher, url }); } else { @@ -112,7 +112,7 @@ public void openURL(String url) throws Exception { @Override public boolean openFolderAvailable() { - if (AppPreferences.get("launcher") != null) { + if (Preferences.get("launcher") != null) { return true; } @@ -120,7 +120,7 @@ public boolean openFolderAvailable() { try { Process p = Runtime.getRuntime().exec(new String[] { "xdg-open" }); p.waitFor(); - AppPreferences.set("launcher", "xdg-open"); + Preferences.set("launcher", "xdg-open"); return true; } catch (Exception ignored) { } @@ -129,7 +129,7 @@ public boolean openFolderAvailable() { Process p = Runtime.getRuntime().exec(new String[] { "gnome-open" }); p.waitFor(); // Not installed will throw an IOException (JDK 1.4.2, Ubuntu 7.04) - AppPreferences.set("launcher", "gnome-open"); + Preferences.set("launcher", "gnome-open"); return true; } catch (Exception ignored) { } @@ -137,7 +137,7 @@ public boolean openFolderAvailable() { try { Process p = Runtime.getRuntime().exec(new String[] { "kde-open" }); p.waitFor(); - AppPreferences.set("launcher", "kde-open"); + Preferences.set("launcher", "kde-open"); return true; } catch (Exception ignored) { } @@ -151,7 +151,7 @@ public void openFolder(File file) throws Exception { super.openFolder(file); } else if (openFolderAvailable()) { - String launcher = AppPreferences.get("launcher"); + String launcher = Preferences.get("launcher"); String[] params = new String[] { launcher, file.getAbsolutePath() }; Runtime.getRuntime().exec(params); diff --git a/app/src/processing/app/platform/MacPlatform.java b/app/src/processing/app/platform/MacPlatform.java index 4d75497b34..cb4fa82bd8 100644 --- a/app/src/processing/app/platform/MacPlatform.java +++ b/app/src/processing/app/platform/MacPlatform.java @@ -33,7 +33,7 @@ import javax.swing.JMenuBar; import processing.app.Base; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.ui.About; import processing.core.PApplet; import processing.data.StringList; @@ -47,13 +47,13 @@ public class MacPlatform extends DefaultPlatform { public void saveLanguage(String language) { String[] cmdarray = new String[]{ "defaults", "write", - System.getProperty("user.home") + "/Library/AppPreferences/org.processing.app", + System.getProperty("user.home") + "/Library/Preferences/org.processing.app", "AppleLanguages", "-array", language }; try { Runtime.getRuntime().exec(cmdarray); } catch (IOException e) { - AppMessages.log("Error saving platform language: " + e.getMessage()); + Messages.log("Error saving platform language: " + e.getMessage()); } } diff --git a/app/src/processing/app/platform/WindowsPlatform.java b/app/src/processing/app/platform/WindowsPlatform.java index a3a1164256..b463887f0f 100644 --- a/app/src/processing/app/platform/WindowsPlatform.java +++ b/app/src/processing/app/platform/WindowsPlatform.java @@ -208,7 +208,7 @@ static public void findJDK() { */ protected void checkAssociations() { try { - if (AppPreferences.getBoolean(AUTO_ASSOCIATE_PREF)) { + if (Preferences.getBoolean(AUTO_ASSOCIATE_PREF)) { for (Association assoc : ASSOCIATIONS) { // Check the key that should be set by a previous run of the PDE String knownCommand = @@ -256,9 +256,9 @@ protected void checkSchemes() { protected void setAssociations() throws UnsupportedEncodingException { for (Association assoc : ASSOCIATIONS) { if (!assoc.register()) { - AppMessages.log("Could not associate " + assoc.extension + "files, " + + Messages.log("Could not associate " + assoc.extension + "files, " + "turning off auto-associate pref."); - AppPreferences.setBoolean("platform.auto_file_type_associations", false); + Preferences.setBoolean("platform.auto_file_type_associations", false); } } } @@ -267,7 +267,7 @@ protected void setAssociations() throws UnsupportedEncodingException { protected void setSchemes() throws UnsupportedEncodingException { for (String scheme : APP_SCHEMES) { if (!registerScheme(scheme)) { - AppMessages.log("Error while trying to associate " + scheme + ":// URLs."); + Messages.log("Error while trying to associate " + scheme + ":// URLs."); } } } @@ -589,7 +589,7 @@ static WinLibC getLibC() { try { clib = Native.load("msvcrt", WinLibC.class); } catch (UnsatisfiedLinkError ule) { - AppMessages.showTrace("JNA Error", + Messages.showTrace("JNA Error", "JNA could not be loaded. Please report here:\n" + "http://github.com/processing/processing/issues/new", ule, true); diff --git a/app/src/processing/app/syntax/InputHandler.java b/app/src/processing/app/syntax/InputHandler.java index f2189c8806..a695be1a09 100644 --- a/app/src/processing/app/syntax/InputHandler.java +++ b/app/src/processing/app/syntax/InputHandler.java @@ -12,7 +12,7 @@ import javax.swing.text.*; import javax.swing.JPopupMenu; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.data.StringDict; import java.awt.event.*; @@ -579,11 +579,11 @@ public void actionPerformed(ActionEvent evt) { int lastDocument = textArea.getDocumentLength(); if (caret == lastDocument && - !AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END)) { + !Preferences.getBoolean(CONTEXT_AWARE_HOME_END)) { textArea.getToolkit().beep(); return; } else if (!Boolean.TRUE.equals(textArea.getClientProperty(SMART_HOME_END_PROPERTY))) { - if (!AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == lastNonWhiteSpaceOfLine) { + if (!Preferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == lastNonWhiteSpaceOfLine) { caret = lastOfLine; } else { caret = lastNonWhiteSpaceOfLine; @@ -644,11 +644,11 @@ public void actionPerformed(ActionEvent evt) { (firstLine == 0 ? 0 : firstLine + textArea.getElectricScroll()); int firstVisible = textArea.getLineStartOffset(firstVisibleLine); - if (caret == 0 && !AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END)) { + if (caret == 0 && !Preferences.getBoolean(CONTEXT_AWARE_HOME_END)) { textArea.getToolkit().beep(); return; } else if (!Boolean.TRUE.equals(textArea.getClientProperty(SMART_HOME_END_PROPERTY))) { - if (!AppPreferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == firstNonWhiteSpaceOfLine) { + if (!Preferences.getBoolean(CONTEXT_AWARE_HOME_END) || caret == firstNonWhiteSpaceOfLine) { caret = firstOfLine; } else { caret = firstNonWhiteSpaceOfLine; @@ -1090,7 +1090,7 @@ public void actionPerformed(ActionEvent evt) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < repeatCount; i++) sb.append(str); - if (AppPreferences.getBoolean("editor.completion.auto_close") && + if (Preferences.getBoolean("editor.completion.auto_close") && hasBracketsAndQuotes(str)) { matchBracketsAndQuotes(str, evt, textArea, sb); } else { diff --git a/app/src/processing/app/syntax/JEditTextArea.java b/app/src/processing/app/syntax/JEditTextArea.java index 5bec39d28c..b3c4d18a81 100644 --- a/app/src/processing/app/syntax/JEditTextArea.java +++ b/app/src/processing/app/syntax/JEditTextArea.java @@ -226,7 +226,7 @@ protected TextAreaPainter createPainter(final TextAreaDefaults defaults) { * Inline Input Method Support for Japanese. */ public InputMethodRequests getInputMethodRequests() { - if (AppPreferences.getBoolean("editor.input_method_support")) { + if (Preferences.getBoolean("editor.input_method_support")) { if (inputMethodSupport == null) { inputMethodSupport = new InputMethodSupport(this); } @@ -1955,7 +1955,7 @@ public void paste() { // Remove tabs and replace with spaces // https://github.com/processing/processing/issues/108 if (selection.contains("\t")) { - int tabSize = AppPreferences.getInteger("editor.tabs.size"); + int tabSize = Preferences.getInteger("editor.tabs.size"); char[] c = new char[tabSize]; Arrays.fill(c, ' '); String tabString = new String(c); @@ -2434,7 +2434,7 @@ public void mouseDragged(MouseEvent evt) { try { select(getMarkPosition(), xyToOffset(evt.getX(), evt.getY())); } catch (ArrayIndexOutOfBoundsException e) { - AppMessages.err("xToOffset problem", e); + Messages.err("xToOffset problem", e); } } else { int line = yToLine(evt.getY()); diff --git a/app/src/processing/app/syntax/PdeInputHandler.java b/app/src/processing/app/syntax/PdeInputHandler.java index 14bd0cd910..aca0633646 100644 --- a/app/src/processing/app/syntax/PdeInputHandler.java +++ b/app/src/processing/app/syntax/PdeInputHandler.java @@ -27,7 +27,7 @@ import java.awt.event.KeyEvent; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.app.Platform; import processing.app.ui.Editor; @@ -35,7 +35,7 @@ /** * Sets key bindings used by the PDE, except for those that are Mode-specific. * Not part of the original jeditsyntax DefaultInputHandler because it makes - * use of AppPreferences and other PDE classes. + * use of Preferences and other PDE classes. */ public class PdeInputHandler extends DefaultInputHandler { @@ -73,7 +73,7 @@ public PdeInputHandler() { addKeyBinding("BACK_SPACE", InputHandler.BACKSPACE); // for 0122, shift-backspace is delete, for 0176, it's now a preference, // to prevent holy warriors from attacking me for it. - if (AppPreferences.getBoolean("editor.keys.shift_backspace_is_delete")) { + if (Preferences.getBoolean("editor.keys.shift_backspace_is_delete")) { addKeyBinding("S+BACK_SPACE", InputHandler.DELETE); } else { // Made the default for 0215, deemed better for our audience. @@ -97,7 +97,7 @@ public PdeInputHandler() { // https://processing.org/bugs/bugzilla/162.html // added for 0176, though the bindings do not appear relevant for osx - if (AppPreferences.getBoolean("editor.keys.alternative_cut_copy_paste")) { + if (Preferences.getBoolean("editor.keys.alternative_cut_copy_paste")) { addKeyBinding("C+INSERT", InputHandler.CLIPBOARD_COPY); addKeyBinding("S+INSERT", InputHandler.CLIPBOARD_PASTE); addKeyBinding("S+DELETE", InputHandler.CLIPBOARD_CUT); @@ -110,7 +110,7 @@ public PdeInputHandler() { // HOME and END now mean the beginning/end of the document // for 0176 changed this to a preference so that the Mac OS X people // can get the "normal" behavior as well if they prefer. - if (AppPreferences.getBoolean("editor.keys.home_and_end_travel_far")) { + if (Preferences.getBoolean("editor.keys.home_and_end_travel_far")) { addKeyBinding("HOME", InputHandler.DOCUMENT_HOME); addKeyBinding("END", InputHandler.DOCUMENT_END); addKeyBinding("S+HOME", InputHandler.SELECT_DOC_HOME); diff --git a/app/src/processing/app/syntax/PdeTextAreaDefaults.java b/app/src/processing/app/syntax/PdeTextAreaDefaults.java index a6687335e4..bdffa82164 100644 --- a/app/src/processing/app/syntax/PdeTextAreaDefaults.java +++ b/app/src/processing/app/syntax/PdeTextAreaDefaults.java @@ -31,7 +31,7 @@ /** * Defaults that are PDE (but not Mode) specific. PDE specific in this - * case means that it's using other PDE classes like AppPreferences. + * case means that it's using other PDE classes like Preferences. */ public class PdeTextAreaDefaults extends TextAreaDefaults { @@ -43,8 +43,8 @@ public PdeTextAreaDefaults() { electricScroll = 0; caretVisible = true; - caretBlinks = AppPreferences.getBoolean("editor.caret.blink"); - blockCaret = AppPreferences.getBoolean("editor.caret.block"); + caretBlinks = Preferences.getBoolean("editor.caret.blink"); + blockCaret = Preferences.getBoolean("editor.caret.block"); cols = 80; // Set the number of rows lower to avoid layout badness with large fonts // https://github.com/processing/processing/issues/1313 diff --git a/app/src/processing/app/syntax/TextAreaPainter.java b/app/src/processing/app/syntax/TextAreaPainter.java index e9e37f0d39..5824ef6b2c 100644 --- a/app/src/processing/app/syntax/TextAreaPainter.java +++ b/app/src/processing/app/syntax/TextAreaPainter.java @@ -25,7 +25,7 @@ import javax.swing.text.*; import javax.swing.JComponent; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.app.syntax.im.CompositionTextPainter; @@ -88,13 +88,13 @@ protected void updateTheme() { // https://github.com/processing/processing/pull/4639 Toolkit.getMonoFontName(); */ - plainFont = AppPreferences.getFont("editor.font.family", "editor.font.size", Font.PLAIN); - boldFont = AppPreferences.getFont("editor.font.family", "editor.font.size", Font.BOLD); - antialias = AppPreferences.getBoolean("editor.smooth"); + plainFont = Preferences.getFont("editor.font.family", "editor.font.size", Font.PLAIN); + boldFont = Preferences.getFont("editor.font.family", "editor.font.size", Font.BOLD); + antialias = Preferences.getBoolean("editor.smooth"); // moved from setFont() override (never quite comfortable w/ that override) fontMetrics = super.getFontMetrics(plainFont); - tabSize = fontMetrics.charWidth(' ') * AppPreferences.getInteger("editor.tabs.size"); + tabSize = fontMetrics.charWidth(' ') * Preferences.getInteger("editor.tabs.size"); textArea.recalculateVisibleLines(); } diff --git a/app/src/processing/app/syntax/im/CompositionTextManager.java b/app/src/processing/app/syntax/im/CompositionTextManager.java index df47cf8be8..ee30609f4a 100644 --- a/app/src/processing/app/syntax/im/CompositionTextManager.java +++ b/app/src/processing/app/syntax/im/CompositionTextManager.java @@ -15,8 +15,8 @@ import javax.swing.text.BadLocationException; -import processing.app.AppMessages; -import processing.app.AppPreferences; +import processing.app.Messages; +import processing.app.Preferences; import processing.app.syntax.JEditTextArea; import processing.app.syntax.TextAreaPainter; @@ -158,7 +158,7 @@ private void removeNotCommittedText(AttributedCharacterIterator text){ } private TextLayout getTextLayout(AttributedCharacterIterator text, int committedCount) { - boolean antialias = AppPreferences.getBoolean("editor.smooth"); + boolean antialias = Preferences.getBoolean("editor.smooth"); TextAreaPainter painter = textArea.getPainter(); // create attributed string with font info. @@ -173,7 +173,7 @@ private TextLayout getTextLayout(AttributedCharacterIterator text, int committed RenderingHints.VALUE_TEXT_ANTIALIAS_ON : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); FontRenderContext frc = g2d.getFontRenderContext(); - AppMessages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); + Messages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); return new TextLayout(composed.getIterator(), frc); } diff --git a/app/src/processing/app/syntax/im/InputMethodSupport.java b/app/src/processing/app/syntax/im/InputMethodSupport.java index 79ee23ebb9..e3323fa110 100644 --- a/app/src/processing/app/syntax/im/InputMethodSupport.java +++ b/app/src/processing/app/syntax/im/InputMethodSupport.java @@ -19,8 +19,8 @@ import java.text.AttributedString; import processing.app.Base; -import processing.app.AppMessages; -import processing.app.AppPreferences; +import processing.app.Messages; +import processing.app.Preferences; import processing.app.syntax.JEditTextArea; import processing.app.syntax.TextAreaDefaults; import processing.app.syntax.TextAreaPainter; @@ -79,7 +79,7 @@ public void setCallback(Callback callback) { @Override public Rectangle getTextLocation(TextHitInfo offset) { - AppMessages.log("#Called getTextLocation:" + offset); + Messages.log("#Called getTextLocation:" + offset); int line = textArea.getCaretLine(); int offsetX = textArea.getCaretPosition() - textArea.getLineStartOffset(line); // '+1' mean textArea.lineToY(line) + textArea.getPainter().getFontMetrics().getHeight(). @@ -153,7 +153,7 @@ public void inputMethodTextChanged(InputMethodEvent event) { sb.append("\t ID: " + event.getID()); sb.append("\t timestamp: " + new java.util.Date(event.getWhen())); sb.append("\t parmString: " + event.paramString()); - AppMessages.log(sb.toString()); + Messages.log(sb.toString()); } AttributedCharacterIterator text = event.getText(); // text = composedText + commitedText @@ -193,7 +193,7 @@ public void inputMethodTextChanged(InputMethodEvent event) { } CompositionTextPainter compositionPainter = textArea.getPainter().getCompositionTextPainter(); - AppMessages.log("textArea.getCaretPosition() + committed_count: " + (textArea.getCaretPosition() + committedCount)); + Messages.log("textArea.getCaretPosition() + committed_count: " + (textArea.getCaretPosition() + committedCount)); compositionPainter.setComposedTextLayout(getTextLayout(text, committedCount), textArea.getCaretPosition() + committedCount); compositionPainter.setCaret(event.getCaret()); @@ -208,7 +208,7 @@ public void inputMethodTextChanged(InputMethodEvent event) { private TextLayout getTextLayout(AttributedCharacterIterator text, int committedCount) { - boolean antialias = AppPreferences.getBoolean("editor.smooth"); + boolean antialias = Preferences.getBoolean("editor.smooth"); TextAreaPainter painter = textArea.getPainter(); // create attributed string with font info. @@ -236,7 +236,7 @@ private TextLayout getTextLayout(AttributedCharacterIterator text, int committed RenderingHints.VALUE_TEXT_ANTIALIAS_ON : RenderingHints.VALUE_TEXT_ANTIALIAS_OFF); FontRenderContext frc = g2d.getFontRenderContext(); - AppMessages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); + Messages.log("debug: FontRenderContext is Antialiased = " + frc.getAntiAliasingHint()); return new TextLayout(composedTextString.getIterator(), frc); } diff --git a/app/src/processing/app/tools/Archiver.java b/app/src/processing/app/tools/Archiver.java index f33cfcdb40..0bbfb510fb 100644 --- a/app/src/processing/app/tools/Archiver.java +++ b/app/src/processing/app/tools/Archiver.java @@ -68,7 +68,7 @@ public void run() { Sketch sketch = editor.getSketch(); if (sketch.isModified()) { - AppMessages.showWarning("Save", "Please save the sketch before archiving."); + Messages.showWarning("Save", "Please save the sketch before archiving."); return; } diff --git a/app/src/processing/app/tools/InstallCommander.java b/app/src/processing/app/tools/InstallCommander.java index 677b12801e..33eabc6f68 100644 --- a/app/src/processing/app/tools/InstallCommander.java +++ b/app/src/processing/app/tools/InstallCommander.java @@ -30,7 +30,7 @@ import processing.app.Base; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Platform; import processing.app.ui.Editor; import processing.core.PApplet; @@ -145,7 +145,7 @@ public void run() { File targetFile = new File(System.getProperty("user.home"), "processing-java"); String targetPath = targetFile.getAbsolutePath(); if (targetFile.exists()) { - AppMessages.showWarning("File Already Exists", + Messages.showWarning("File Already Exists", "The processing-java program already exists at:\n" + targetPath + "\n" + "Please remove it and try again."); @@ -156,7 +156,7 @@ public void run() { editor.statusNotice("Finished."); } catch (IOException e) { - AppMessages.showWarning("Error while installing", + Messages.showWarning("Error while installing", "An error occurred and the tool was not installed.", e); } } diff --git a/app/src/processing/app/tools/ThemeSelector.java b/app/src/processing/app/tools/ThemeSelector.java index 2ba65af265..5fd79bd293 100644 --- a/app/src/processing/app/tools/ThemeSelector.java +++ b/app/src/processing/app/tools/ThemeSelector.java @@ -96,7 +96,7 @@ public void init(Base base) { return false; }); if (setFolders == null) { - AppMessages.showWarning("Could not load themes", + Messages.showWarning("Could not load themes", "The themes directory could not be read.\n" + "Please reinstall Processing."); return; @@ -327,7 +327,7 @@ private void setCurrentIndex(int index) { if (userModifiedTheme()) { boolean success = Theme.archiveCurrent(); if (!success) { - AppMessages.showWarning("Could not back up theme", + Messages.showWarning("Could not back up theme", "Could not save a backup of theme.txt in your sketchbook folder.\n" + "Rename it manually and try setting the theme again."); return; @@ -340,10 +340,10 @@ private void setCurrentIndex(int index) { // No longer saving a new theme.txt when making a selection, just setting a // preference so that subsequent Processing updates load new theme changes. //Util.saveFile(currentSet.get(index), sketchbookFile); - AppPreferences.set("theme", currentSet.getPath(index)); + Preferences.set("theme", currentSet.getPath(index)); // On some machines, the theme wasn't getting saved; try an explicit save // https://github.com/processing/processing4/issues/565 - AppPreferences.save(); + Preferences.save(); reloadTheme(); } diff --git a/app/src/processing/app/ui/ChangeDetector.java b/app/src/processing/app/ui/ChangeDetector.java index 9000b9a5b4..ce5be8bc4b 100644 --- a/app/src/processing/app/ui/ChangeDetector.java +++ b/app/src/processing/app/ui/ChangeDetector.java @@ -35,8 +35,8 @@ import java.util.stream.Collectors; import processing.app.Language; -import processing.app.AppMessages; -import processing.app.AppPreferences; +import processing.app.Messages; +import processing.app.Preferences; import processing.app.Sketch; import processing.app.SketchCode; @@ -53,11 +53,11 @@ public class ChangeDetector implements WindowFocusListener { // Mac OS X has an (exactly) one-second difference. Not sure if it's a Java // bug or something else about how OS X is writing files. static private final int MODIFICATION_WINDOW_MILLIS = - AppPreferences.getInteger("editor.watcher.window"); + Preferences.getInteger("editor.watcher.window"); // Debugging this feature is particularly difficult, adding an option for it static private final boolean DEBUG = - AppPreferences.getBoolean("editor.watcher.debug"); + Preferences.getBoolean("editor.watcher.debug"); public ChangeDetector(Editor editor) { @@ -68,7 +68,7 @@ public ChangeDetector(Editor editor) { @Override public void windowGainedFocus(WindowEvent e) { - if (AppPreferences.getBoolean("editor.watcher")) { + if (Preferences.getBoolean("editor.watcher")) { if (sketch != null) { // make sure the sketch folder exists at all. // if it does not, it will be re-saved, and no changes will be detected @@ -196,7 +196,7 @@ private void checkFiles() { ".autosave", file.getParentFile()); scReload.copyTo(autosave); } catch (IOException e) { - AppMessages.showWarning("Could not autosave modified tab", + Messages.showWarning("Could not autosave modified tab", "Your changes to " + scReload.getPrettyName() + " have not been saved, so we won't load the new version.", e); scReload.setModified(true); // So we'll have another go at saving @@ -218,13 +218,13 @@ private void checkFiles() { if (sketch.getCode(0).equals(scResave)) { // Not a fatal error; the sketch has to stay open if // they're going to save the code that's in it. - AppMessages.showWarning( + Messages.showWarning( scResave.getFileName() + " deleted and not re-saved", "Your main tab was deleted, and Processing couldn't " + "resave it.\nYour sketch won't work without the " + "main tab.", e); } else { - AppMessages.showWarning("Could not re-save deleted tab", + Messages.showWarning("Could not re-save deleted tab", "Your copy of " + scResave.getPrettyName() + " will stay in the editor.", e); } @@ -252,7 +252,7 @@ private void showReloadPrompt( Consumer modifiedReload, Consumer modifiedKeep, Consumer delete, Consumer deletedResave) { for (SketchCode sc : mergeConflict) { - if (1 == AppMessages.showCustomQuestion(editor, + if (1 == Messages.showCustomQuestion(editor, Language.text("change_detect.reload.title"), Language.interpolate("change_detect.reload.question", sc.getFileName()), Language.text("change_detect.reload.comment"), @@ -267,7 +267,7 @@ private void showReloadPrompt( for (SketchCode sc : removed) { if (!sketch.getCode(0).equals(sc) && - 1 == AppMessages.showCustomQuestion(editor, + 1 == Messages.showCustomQuestion(editor, Language.text("change_detect.delete.title"), Language.interpolate("change_detect.delete.question", sc.getFileName()), Language.text("change_detect.delete.comment"), diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index 44c7b3f42b..da4ae0bf7e 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -50,7 +50,7 @@ import com.formdev.flatlaf.util.SystemInfo; import processing.app.*; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.app.contrib.ContributionManager; import processing.app.laf.PdeMenuItemUI; import processing.app.syntax.*; @@ -308,9 +308,9 @@ public void caretUpdate(CaretEvent e) { // Set the minimum size for the editor window int minWidth = - Toolkit.zoom(AppPreferences.getInteger("editor.window.width.min")); + Toolkit.zoom(Preferences.getInteger("editor.window.width.min")); int minHeight = - Toolkit.zoom(AppPreferences.getInteger("editor.window.height.min")); + Toolkit.zoom(Preferences.getInteger("editor.window.height.min")); setMinimumSize(new Dimension(minWidth, minHeight)); // Bring back the general options for the editor @@ -448,7 +448,7 @@ public boolean importData(TransferHandler.TransferSupport support) { } } } catch (Exception e) { - AppMessages.showWarning("Drag & Drop Problem", + Messages.showWarning("Drag & Drop Problem", "An error occurred while trying to add files to the sketch.", e); return false; } @@ -574,7 +574,7 @@ protected int getDividerLocation() { /** * Read and apply new values from the preferences, either because * the app is just starting up, or the user just finished messing - * with things in the AppPreferences window. + * with things in the Preferences window. */ public void applyPreferences() { // Even though this is only updating the theme (colors, icons), @@ -872,14 +872,14 @@ public void menuSelected(MenuEvent e) { } protected void modifyFontSize(boolean increase){ - var fontSize = AppPreferences.getInteger("editor.font.size"); + var fontSize = Preferences.getInteger("editor.font.size"); fontSize += increase ? 1 : -1; fontSize = Math.max(5, Math.min(72, fontSize)); - AppPreferences.setInteger("editor.font.size", fontSize); + Preferences.setInteger("editor.font.size", fontSize); for (Editor editor : base.getEditors()) { editor.applyPreferences(); } - AppPreferences.save(); + Preferences.save(); } abstract public JMenu buildSketchMenu(); @@ -902,7 +902,7 @@ protected JMenu buildSketchMenu(JMenuItem[] runItems) { if (sketch.isUntitled() || sketch.isReadOnly()) { // Too weird to show the sketch folder when it's buried somewhere in an // OS-specific temp directory. TODO a better, and localized, message. - AppMessages.showMessage("Save First", "Please first save the sketch."); + Messages.showMessage("Save First", "Please first save the sketch."); } else { Platform.openFolder(sketch.getFolder()); @@ -917,7 +917,7 @@ protected JMenu buildSketchMenu(JMenuItem[] runItems) { // Technically, this sketch either doesn't exist (it's untitled and // lives in a temp folder) or it shouldn't be overwritten/modified // (it's an example). Just ask the user to save. TODO same as above. - AppMessages.showMessage("Save First", "Please first save the sketch."); + Messages.showMessage("Save First", "Please first save the sketch."); } else { sketch.handleAddFile(); @@ -1909,7 +1909,7 @@ public void handleOutdent() { public void handleIndentOutdent(boolean indent) { - int tabSize = AppPreferences.getInteger("editor.tabs.size"); + int tabSize = Preferences.getInteger("editor.tabs.size"); String tabString = Editor.EMPTY.substring(0, tabSize); startCompoundEdit(); @@ -2404,7 +2404,7 @@ protected SizeRequirements calculateMinorAxisRequirements( }; } }); - jtp.setFont(new Font(AppPreferences.get("editor.font.family"), Font.PLAIN, 10)); + jtp.setFont(new Font(Preferences.get("editor.font.family"), Font.PLAIN, 10)); jtp.setText(html.toString().replace("\n", "
") // Not in a

.
         .replaceAll("(? AppPreferences.setBoolean("export.application.stop", showStopButton.isSelected()));
-    showStopButton.setEnabled(AppPreferences.getBoolean("export.application.present"));
+    showStopButton.setSelected(Preferences.getBoolean("export.application.stop"));
+    showStopButton.addItemListener(e -> Preferences.setBoolean("export.application.stop", showStopButton.isSelected()));
+    showStopButton.setEnabled(Preferences.getBoolean("export.application.present"));
     showStopButton.setBorder(new EmptyBorder(3, 13, 6, 13));
 
     final JCheckBox presentButton = new JCheckBox(Language.text("export.options.present"));
-    presentButton.setSelected(AppPreferences.getBoolean("export.application.present"));
+    presentButton.setSelected(Preferences.getBoolean("export.application.present"));
     presentButton.addItemListener(e -> {
       boolean sal = presentButton.isSelected();
-      AppPreferences.setBoolean("export.application.present", sal);
+      Preferences.setBoolean("export.application.present", sal);
       showStopButton.setEnabled(sal);
     });
     presentButton.setBorder(new EmptyBorder(3, 13, 3, 13));
@@ -197,7 +197,7 @@ public void trigger() {
     }
 
     final boolean embed =
-      AppPreferences.getBoolean("export.application.embed_java");
+      Preferences.getBoolean("export.application.embed_java");
     final String warning1 =
       "
"; final String warning2a = @@ -229,7 +229,7 @@ public void mousePressed(MouseEvent event) { embedJavaButton.setSelected(embed); embedJavaButton.addItemListener(e -> { boolean selected = embedJavaButton.isSelected(); - AppPreferences.setBoolean("export.application.embed_java", selected); + Preferences.setBoolean("export.application.embed_java", selected); if (selected) { warningLabel.setText(embedWarning); } else { @@ -367,7 +367,7 @@ public ColorPreference(String pref) { addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e) { - Color color = AppPreferences.getColor(prefName); + Color color = Preferences.getColor(prefName); chooser = new ColorChooser(editor, true, color, Language.text("color_chooser.select"), ColorPreference.this); chooser.show(); } @@ -375,14 +375,14 @@ public void mouseReleased(MouseEvent e) { } public void paintComponent(Graphics g) { - g.setColor(AppPreferences.getColor(prefName)); + g.setColor(Preferences.getColor(prefName)); Dimension size = getSize(); g.fillRect(0, 0, size.width, size.height); } public void actionPerformed(ActionEvent e) { Color color = chooser.getColor(); - AppPreferences.setColor(prefName, color); + Preferences.setColor(prefName, color); //presentColorPanel.repaint(); repaint(); chooser.hide(); diff --git a/app/src/processing/app/ui/ModeSelector.java b/app/src/processing/app/ui/ModeSelector.java index cdd833bfb6..38d40ac991 100644 --- a/app/src/processing/app/ui/ModeSelector.java +++ b/app/src/processing/app/ui/ModeSelector.java @@ -33,7 +33,7 @@ import java.awt.event.MouseEvent; import javax.swing.*; -import processing.app.AppMessages; +import processing.app.Messages; public class ModeSelector extends JPanel { @@ -131,7 +131,7 @@ public Dimension getPreferredSize() { if (g != null) { tempWidth = getFontMetrics(titleFont).stringWidth(title); } else { - AppMessages.err("null Graphics in EditorToolbar.getPreferredSize()"); + Messages.err("null Graphics in EditorToolbar.getPreferredSize()"); } } return new Dimension(MODE_GAP_WIDTH + tempWidth + diff --git a/app/src/processing/app/ui/PreferencesFrame.java b/app/src/processing/app/ui/PreferencesFrame.java index 57f2e702a3..7b206686e2 100644 --- a/app/src/processing/app/ui/PreferencesFrame.java +++ b/app/src/processing/app/ui/PreferencesFrame.java @@ -34,7 +34,7 @@ import com.formdev.flatlaf.FlatClientProperties; import processing.app.*; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.awt.ShimAWT; import processing.core.PApplet; @@ -201,11 +201,11 @@ public PreferencesFrame(Base base) { JLabel fontSizeLabel = new JLabel(Language.text("preferences.editor_font_size")); fontSizeField = new JComboBox<>(FONT_SIZES); - fontSizeField.setSelectedItem(AppPreferences.getInteger("editor.font.size")); + fontSizeField.setSelectedItem(Preferences.getInteger("editor.font.size")); JLabel consoleFontSizeLabel = new JLabel(Language.text("preferences.console_font_size")); consoleFontSizeField = new JComboBox<>(FONT_SIZES); - consoleFontSizeField.setSelectedItem(AppPreferences.getInteger("console.font.size")); + consoleFontSizeField.setSelectedItem(Preferences.getInteger("console.font.size")); // Sizing is screwed up on macOS, bug has been open since 2017 // https://github.com/processing/processing4/issues/232 @@ -266,11 +266,11 @@ public PreferencesFrame(Base base) { Border cb = new CompoundBorder(BorderFactory.createMatteBorder(1, 1, 0, 0, new Color(195, 195, 195)), BorderFactory.createMatteBorder(0, 0, 1, 1, new Color(54, 54, 54))); presentColor.setBorder(cb); - presentColor.setBackground(AppPreferences.getColor("run.present.bgcolor")); + presentColor.setBackground(Preferences.getColor("run.present.bgcolor")); /* presentColorHex = new JTextField(6); - presentColorHex.setText(AppPreferences.get("run.present.bgcolor").substring(1)); + presentColorHex.setText(Preferences.get("run.present.bgcolor").substring(1)); presentColorHex.getDocument().addDocumentListener(new DocumentListener() { @Override @@ -304,7 +304,7 @@ public void insertUpdate(DocumentEvent e) { */ selector = new ColorChooser(frame, false, - AppPreferences.getColor("run.present.bgcolor"), + Preferences.getColor("run.present.bgcolor"), Language.text("prompt.ok"), e -> { String colorValue = selector.getHexColor().substring(1); presentColor.setBackground(new Color(PApplet.unhex(colorValue))); @@ -363,8 +363,8 @@ public void mouseExited(MouseEvent e) { // inputRestartLabel.setVisible(false); */ -// inputMethodBox.addChangeListener(e -> inputRestartLabel.setVisible(inputMethodBox.isSelected() != AppPreferences.getBoolean("editor.input_method_support"))); - inputMethodBox.addChangeListener(e -> updateRestart("input_method", inputMethodBox.isSelected() != AppPreferences.getBoolean("editor.input_method_support"))); +// inputMethodBox.addChangeListener(e -> inputRestartLabel.setVisible(inputMethodBox.isSelected() != Preferences.getBoolean("editor.input_method_support"))); + inputMethodBox.addChangeListener(e -> updateRestart("input_method", inputMethodBox.isSelected() != Preferences.getBoolean("editor.input_method_support"))); // [ ] Continuously check for errors - PDE X @@ -452,7 +452,7 @@ public void mouseExited(MouseEvent e) { } }); - JLabel preferencePathLabel = new JLabel(AppPreferences.getPreferencesPath()); + JLabel preferencePathLabel = new JLabel(Preferences.getPreferencesPath()); final JLabel clickable = preferencePathLabel; preferencePathLabel.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { @@ -640,8 +640,8 @@ private void updateZoomRestartRequired() { // May cause window to resize but need the message. [fry 220502] //zoomRestartLabel.setVisible( updateRestart("zoom", - zoomAutoBox.isSelected() != AppPreferences.getBoolean("editor.zoom.auto") || - !AppPreferences.get("editor.zoom").equals(String.valueOf(zoomSelectionBox.getSelectedItem())) + zoomAutoBox.isSelected() != Preferences.getBoolean("editor.zoom.auto") || + !Preferences.get("editor.zoom").equals(String.valueOf(zoomSelectionBox.getSelectedItem())) ); } @@ -686,23 +686,23 @@ protected void disposeFrame() { * then send a message to the editor saying that it's time to do the same. */ protected void applyFrame() { -// AppPreferences.setBoolean("editor.smooth", //$NON-NLS-1$ +// Preferences.setBoolean("editor.smooth", //$NON-NLS-1$ // editorAntialiasBox.isSelected()); -// AppPreferences.setBoolean("export.delete_target_folder", //$NON-NLS-1$ +// Preferences.setBoolean("export.delete_target_folder", //$NON-NLS-1$ // deletePreviousBox.isSelected()); // if the sketchbook path has changed, rebuild the menus - String oldPath = AppPreferences.getSketchbookPath(); + String oldPath = Preferences.getSketchbookPath(); String newPath = sketchbookLocationField.getText(); if (!newPath.equals(oldPath)) { base.setSketchbookFolder(new File(newPath)); } - AppPreferences.set("sketch.name.approach", (String) namingSelectionBox.getSelectedItem()); + Preferences.set("sketch.name.approach", (String) namingSelectionBox.getSelectedItem()); // setBoolean("editor.external", externalEditorBox.isSelected()); - AppPreferences.setBoolean("update.check", checkUpdatesBox.isSelected()); //$NON-NLS-1$ + Preferences.setBoolean("update.check", checkUpdatesBox.isSelected()); //$NON-NLS-1$ // Save Language /* @@ -729,7 +729,7 @@ protected void applyFrame() { // The preference will have already been reset when the window was created if (displaySelectionBox.isEnabled()) { - int oldDisplayNum = AppPreferences.getInteger("run.display"); + int oldDisplayNum = Preferences.getInteger("run.display"); int displayNum = -1; // use the default display for (int d = 0; d < displaySelectionBox.getItemCount(); d++) { if (displaySelectionBox.getSelectedIndex() == d) { @@ -743,7 +743,7 @@ protected void applyFrame() { } } if (displayNum != oldDisplayNum) { - AppPreferences.setInteger("run.display", displayNum); //$NON-NLS-1$ + Preferences.setInteger("run.display", displayNum); //$NON-NLS-1$ // Reset the location of the sketch, the window has changed for (Editor editor : base.getEditors()) { editor.setSketchLocation(null); @@ -751,16 +751,16 @@ protected void applyFrame() { } } - AppPreferences.setBoolean("run.options.memory", memoryOverrideBox.isSelected()); //$NON-NLS-1$ - int memoryMin = AppPreferences.getInteger("run.options.memory.initial"); //$NON-NLS-1$ - int memoryMax = AppPreferences.getInteger("run.options.memory.maximum"); //$NON-NLS-1$ + Preferences.setBoolean("run.options.memory", memoryOverrideBox.isSelected()); //$NON-NLS-1$ + int memoryMin = Preferences.getInteger("run.options.memory.initial"); //$NON-NLS-1$ + int memoryMax = Preferences.getInteger("run.options.memory.maximum"); //$NON-NLS-1$ try { memoryMax = Integer.parseInt(memoryField.getText().trim()); // make sure memory setting isn't too small if (memoryMax < memoryMin) { memoryMax = memoryMin; } - AppPreferences.setInteger("run.options.memory.maximum", memoryMax); //$NON-NLS-1$ + Preferences.setInteger("run.options.memory.maximum", memoryMax); //$NON-NLS-1$ } catch (NumberFormatException e) { System.err.println("Ignoring bad memory setting"); } @@ -771,7 +771,7 @@ protected void applyFrame() { if (Toolkit.getMonoFontName().equals(fontFamily)) { fontFamily = "processing.mono"; } - AppPreferences.set("editor.font.family", fontFamily); + Preferences.set("editor.font.family", fontFamily); } try { @@ -780,11 +780,11 @@ protected void applyFrame() { // Replace with Integer version selection = Integer.parseInt((String) selection); } - AppPreferences.set("editor.font.size", String.valueOf(selection)); + Preferences.set("editor.font.size", String.valueOf(selection)); } catch (NumberFormatException e) { - AppMessages.log("Ignoring invalid font size " + fontSizeField); //$NON-NLS-1$ - fontSizeField.setSelectedItem(AppPreferences.getInteger("editor.font.size")); + Messages.log("Ignoring invalid font size " + fontSizeField); //$NON-NLS-1$ + fontSizeField.setSelectedItem(Preferences.getInteger("editor.font.size")); } try { @@ -793,71 +793,71 @@ protected void applyFrame() { // Replace with Integer version selection = Integer.parseInt((String) selection); } - AppPreferences.set("console.font.size", String.valueOf(selection)); + Preferences.set("console.font.size", String.valueOf(selection)); } catch (NumberFormatException e) { - AppMessages.log("Ignoring invalid font size " + consoleFontSizeField); //$NON-NLS-1$ - consoleFontSizeField.setSelectedItem(AppPreferences.getInteger("console.font.size")); + Messages.log("Ignoring invalid font size " + consoleFontSizeField); //$NON-NLS-1$ + consoleFontSizeField.setSelectedItem(Preferences.getInteger("console.font.size")); } - AppPreferences.setBoolean("editor.zoom.auto", zoomAutoBox.isSelected()); - AppPreferences.set("editor.zoom", + Preferences.setBoolean("editor.zoom.auto", zoomAutoBox.isSelected()); + Preferences.set("editor.zoom", String.valueOf(zoomSelectionBox.getSelectedItem())); if (Platform.isWindows()) { Splash.setDisableHiDPI(hidpiDisableBox.isSelected()); } - AppPreferences.setBoolean("editor.sync_folder_and_filename", syncSketchNameBox.isSelected()); + Preferences.setBoolean("editor.sync_folder_and_filename", syncSketchNameBox.isSelected()); - AppPreferences.setColor("run.present.bgcolor", presentColor.getBackground()); + Preferences.setColor("run.present.bgcolor", presentColor.getBackground()); - AppPreferences.setBoolean("editor.input_method_support", inputMethodBox.isSelected()); //$NON-NLS-1$ + Preferences.setBoolean("editor.input_method_support", inputMethodBox.isSelected()); //$NON-NLS-1$ if (autoAssociateBox != null) { - AppPreferences.setBoolean("platform.auto_file_type_associations", //$NON-NLS-1$ + Preferences.setBoolean("platform.auto_file_type_associations", //$NON-NLS-1$ autoAssociateBox.isSelected()); } - AppPreferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected()); - AppPreferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected()); - AppPreferences.setBoolean("pdex.completion", codeCompletionBox.isSelected()); - AppPreferences.setBoolean("pdex.suggest.imports", importSuggestionsBox.isSelected()); + Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected()); + Preferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected()); + Preferences.setBoolean("pdex.completion", codeCompletionBox.isSelected()); + Preferences.setBoolean("pdex.suggest.imports", importSuggestionsBox.isSelected()); for (Editor editor : base.getEditors()) { editor.applyPreferences(); } // https://github.com/processing/processing4/issues/608 - AppPreferences.save(); + Preferences.save(); } public void showFrame() { - //editorAntialiasBox.setSelected(AppPreferences.getBoolean("editor.smooth")); //$NON-NLS-1$ - inputMethodBox.setSelected(AppPreferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$ - errorCheckerBox.setSelected(AppPreferences.getBoolean("pdex.errorCheckEnabled")); - warningsCheckerBox.setSelected(AppPreferences.getBoolean("pdex.warningsEnabled")); + //editorAntialiasBox.setSelected(Preferences.getBoolean("editor.smooth")); //$NON-NLS-1$ + inputMethodBox.setSelected(Preferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$ + errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled")); + warningsCheckerBox.setSelected(Preferences.getBoolean("pdex.warningsEnabled")); warningsCheckerBox.setEnabled(errorCheckerBox.isSelected()); - codeCompletionBox.setSelected(AppPreferences.getBoolean("pdex.completion")); - importSuggestionsBox.setSelected(AppPreferences.getBoolean("pdex.suggest.imports")); -// deletePreviousBox.setSelected(AppPreferences.getBoolean("export.delete_target_folder")); //$NON-NLS-1$ + codeCompletionBox.setSelected(Preferences.getBoolean("pdex.completion")); + importSuggestionsBox.setSelected(Preferences.getBoolean("pdex.suggest.imports")); +// deletePreviousBox.setSelected(Preferences.getBoolean("export.delete_target_folder")); //$NON-NLS-1$ - sketchbookLocationField.setText(AppPreferences.getSketchbookPath()); + sketchbookLocationField.setText(Preferences.getSketchbookPath()); - namingSelectionBox.setSelectedItem(AppPreferences.get("sketch.name.approach")); + namingSelectionBox.setSelectedItem(Preferences.get("sketch.name.approach")); if (namingSelectionBox.getSelectedIndex() < 0) { // If no selection, revert to the classic style, and set the pref as well namingSelectionBox.setSelectedItem(SketchName.CLASSIC); - AppPreferences.set("sketch.name.approach", SketchName.CLASSIC); + Preferences.set("sketch.name.approach", SketchName.CLASSIC); } - checkUpdatesBox.setSelected(AppPreferences.getBoolean("update.check")); //$NON-NLS-1$ + checkUpdatesBox.setSelected(Preferences.getBoolean("update.check")); //$NON-NLS-1$ defaultDisplayNum = updateDisplayList(); - int displayNum = AppPreferences.getInteger("run.display"); //$NON-NLS-1$ + int displayNum = Preferences.getInteger("run.display"); //$NON-NLS-1$ if (displayNum < 1 || displayNum > displayCount) { // set the display on close instead; too much weird logic here - //AppPreferences.setInteger("run.display", displayNum); + //Preferences.setInteger("run.display", displayNum); displayNum = defaultDisplayNum; } displaySelectionBox.setSelectedIndex(displayNum-1); @@ -866,15 +866,15 @@ public void showFrame() { //EventQueue.invokeLater(new Runnable() { new Thread(this::initFontList).start(); - fontSizeField.setSelectedItem(AppPreferences.getInteger("editor.font.size")); - consoleFontSizeField.setSelectedItem(AppPreferences.getInteger("console.font.size")); + fontSizeField.setSelectedItem(Preferences.getInteger("editor.font.size")); + consoleFontSizeField.setSelectedItem(Preferences.getInteger("console.font.size")); - boolean zoomAuto = AppPreferences.getBoolean("editor.zoom.auto"); + boolean zoomAuto = Preferences.getBoolean("editor.zoom.auto"); if (zoomAuto) { zoomAutoBox.setSelected(true); zoomSelectionBox.setEnabled(false); } - String zoomSel = AppPreferences.get("editor.zoom"); + String zoomSel = Preferences.get("editor.zoom"); int zoomIndex = Toolkit.zoomOptions.index(zoomSel); if (zoomIndex != -1) { zoomSelectionBox.setSelectedIndex(zoomIndex); @@ -884,19 +884,19 @@ public void showFrame() { if (Platform.isWindows()) { hidpiDisableBox.setSelected(Splash.getDisableHiDPI()); } - syncSketchNameBox.setSelected(AppPreferences.getBoolean("editor.sync_folder_and_filename")); + syncSketchNameBox.setSelected(Preferences.getBoolean("editor.sync_folder_and_filename")); - presentColor.setBackground(AppPreferences.getColor("run.present.bgcolor")); - //presentColorHex.setText(AppPreferences.get("run.present.bgcolor").substring(1)); + presentColor.setBackground(Preferences.getColor("run.present.bgcolor")); + //presentColorHex.setText(Preferences.get("run.present.bgcolor").substring(1)); memoryOverrideBox. - setSelected(AppPreferences.getBoolean("run.options.memory")); //$NON-NLS-1$ + setSelected(Preferences.getBoolean("run.options.memory")); //$NON-NLS-1$ memoryField. - setText(AppPreferences.get("run.options.memory.maximum")); //$NON-NLS-1$ + setText(Preferences.get("run.options.memory.maximum")); //$NON-NLS-1$ memoryField.setEnabled(memoryOverrideBox.isSelected()); if (autoAssociateBox != null) { - autoAssociateBox.setSelected(AppPreferences.getBoolean("platform.auto_file_type_associations")); //$NON-NLS-1$ + autoAssociateBox.setSelected(Preferences.getBoolean("platform.auto_file_type_associations")); //$NON-NLS-1$ } // The OK Button has to be set as the default button every time the // PrefWindow is to be displayed @@ -946,7 +946,7 @@ void initFontList() { EventQueue.invokeLater(() -> { fontSelectionBox.setModel(new DefaultComboBoxModel<>(monoFontFamilies)); - String family = AppPreferences.get("editor.font.family"); + String family = Preferences.get("editor.font.family"); String defaultName = Toolkit.getMonoFontName(); if ("processing.mono".equals(family)) { family = defaultName; diff --git a/app/src/processing/app/ui/Recent.java b/app/src/processing/app/ui/Recent.java index ed3e508668..8dea79dcd5 100644 --- a/app/src/processing/app/ui/Recent.java +++ b/app/src/processing/app/ui/Recent.java @@ -35,9 +35,9 @@ import processing.app.Base; import processing.app.Language; import processing.app.Library; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Mode; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.core.PApplet; @@ -86,7 +86,7 @@ static protected void load() throws IOException { if (new File(line).exists()) { // don't add ghost entries records.add(new Record(line)); } else { - AppMessages.log("Ghost file found in recent: " + line); + Messages.log("Ghost file found in recent: " + line); } } } @@ -241,7 +241,7 @@ synchronized static public void append(Editor editor) { remove(editor); // If the list is full, remove the first entry - if (records.size() == AppPreferences.getInteger("recent.count")) { + if (records.size() == Preferences.getInteger("recent.count")) { records.remove(0); // remove the first entry } @@ -252,7 +252,7 @@ synchronized static public void append(Editor editor) { synchronized static public void rename(Editor editor, String oldPath) { - if (records.size() == AppPreferences.getInteger("recent.count")) { + if (records.size() == Preferences.getInteger("recent.count")) { records.remove(0); // remove the first entry } int index = findRecord(oldPath); diff --git a/app/src/processing/app/ui/Theme.java b/app/src/processing/app/ui/Theme.java index aa28a69500..22b49f7a4f 100644 --- a/app/src/processing/app/ui/Theme.java +++ b/app/src/processing/app/ui/Theme.java @@ -22,9 +22,9 @@ package processing.app.ui; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.app.Base; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Settings; import processing.app.syntax.SyntaxStyle; import processing.core.PApplet; @@ -55,7 +55,7 @@ static public void init() { // other things that have to be set explicitly for the defaults theme.setColor("run.window.bgcolor", SystemColor.control); - if (AppPreferences.get("theme") == null) { + if (Preferences.get("theme") == null) { // This is not being set in defaults.txt so that we have a way // to reset the theme after the major changes in 4.0 beta 9. // This does a one-time archival of the theme.txt file in the @@ -65,7 +65,7 @@ static public void init() { // renaming the file from theme.001 to theme.txt. // If they were using a built-in theme, they will need to // re-select it using the Theme Selector. - AppPreferences.set("theme", DEFAULT_PATH); + Preferences.set("theme", DEFAULT_PATH); if (getSketchbookFile().exists()) { archiveCurrent(); @@ -76,7 +76,7 @@ static public void init() { reload(); } catch (IOException e) { - AppMessages.showError("Problem loading theme.txt", + Messages.showError("Problem loading theme.txt", "Could not load theme.txt, please re-install Processing", e); } } @@ -88,14 +88,14 @@ static public void init() { */ static public void reload() { if (!loadSketchbookFile()) { - String prefTheme = AppPreferences.get("theme"); + String prefTheme = Preferences.get("theme"); try { File prefFile = new File(getThemeFolder(), prefTheme); if (prefFile.exists()) { theme.load(prefFile); } } catch (IOException e) { - AppMessages.showWarning("Theme Reload Problem", + Messages.showWarning("Theme Reload Problem", "Error while reloading the theme. Please report.", e); } } @@ -192,7 +192,7 @@ static public Font getFont(String attribute) { static public SyntaxStyle getStyle(String attribute) { - //String str = AppPreferences.get("editor.token." + attribute + ".style"); + //String str = Preferences.get("editor.token." + attribute + ".style"); String str = theme.get("editor.token." + attribute + ".style"); if (str == null) { throw new IllegalArgumentException("No style found for " + attribute); @@ -202,7 +202,7 @@ static public SyntaxStyle getStyle(String attribute) { static public Image makeGradient(String attribute, int wide, int high) { - if ("lab".equals(AppPreferences.get("theme.gradient.method"))) { + if ("lab".equals(Preferences.get("theme.gradient.method"))) { return makeGradientLab(attribute, wide, high); } else { // otherwise go with the default return makeGradientRGB(attribute, wide, high); diff --git a/app/src/processing/app/ui/Toolkit.java b/app/src/processing/app/ui/Toolkit.java index b26f4e91a0..18358e0516 100644 --- a/app/src/processing/app/ui/Toolkit.java +++ b/app/src/processing/app/ui/Toolkit.java @@ -69,9 +69,9 @@ import javax.swing.text.html.StyleSheet; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Platform; -import processing.app.AppPreferences; +import processing.app.Preferences; import processing.utils.Util; import processing.awt.PGraphicsJava2D; import processing.awt.PShapeJava2D; @@ -133,7 +133,7 @@ static public KeyStroke getKeyStrokeExt(String base) { String key = base + ".keystroke"; // see if there's an override in preferences.txt - String sequence = AppPreferences.get(key); + String sequence = Preferences.get(key); if (sequence != null) { KeyStroke ks = KeyStroke.getKeyStroke(sequence); if (ks != null) { @@ -585,7 +585,7 @@ static public Image getLibImage(String filename) { static public ImageIcon getLibIcon(String filename) { File file = Platform.getContentFile("lib/" + filename); if (file == null || !file.exists()) { - AppMessages.err("does not exist: " + file); + Messages.err("does not exist: " + file); return null; } return new ImageIcon(file.getAbsolutePath()); @@ -1091,21 +1091,21 @@ static public void setBorder(JComponent comp, static private float parseZoom() { - if (AppPreferences.getBoolean("editor.zoom.auto")) { + if (Preferences.getBoolean("editor.zoom.auto")) { float newZoom = Platform.getSystemZoom(); String percentSel = ((int) (newZoom*100)) + "%"; - AppPreferences.set("editor.zoom", percentSel); + Preferences.set("editor.zoom", percentSel); return newZoom; } else { - String zoomSel = AppPreferences.get("editor.zoom"); + String zoomSel = Preferences.get("editor.zoom"); if (zoomOptions.hasValue(zoomSel)) { // shave off the % symbol at the end zoomSel = zoomSel.substring(0, zoomSel.length() - 1); return PApplet.parseInt(zoomSel, 100) / 100f; } else { - AppPreferences.set("editor.zoom", "100%"); + Preferences.set("editor.zoom", "100%"); return 1; } } @@ -1181,7 +1181,7 @@ static private List getMonoFontList() { // Using AffineTransform.getScaleInstance(100, 100) doesn't change sizes FontRenderContext frc = new FontRenderContext(new AffineTransform(), - AppPreferences.getBoolean("editor.antialias"), + Preferences.getBoolean("editor.antialias"), true); // use fractional metrics for (Font font : fonts) { if (font.getStyle() == Font.PLAIN && @@ -1262,7 +1262,7 @@ static public Font getMonoFont(int size, int style) { monoBoldFont = initFont("SourceCodePro-Bold.ttf", size); } } catch (Exception e) { - AppMessages.err("Could not load mono font", e); + Messages.err("Could not load mono font", e); } } @@ -1308,7 +1308,7 @@ static public Font getSansFont(int size, int style) { sansBoldFont = initFont("ProcessingSans-Bold.ttf", size); } } catch (Exception e) { - AppMessages.err("Could not load sans font", e); + Messages.err("Could not load sans font", e); } } @@ -1338,7 +1338,7 @@ static public Font getSansFont(int size, int style) { * Load a built-in font from the Processing lib/fonts folder and register * it with the GraphicsEnvironment so that it's broadly available. * (i.e. shows up in getFontList() works, so it appears in the list of fonts - * in the AppPreferences window, and can be used by HTMLEditorKit for WebFrame.) + * in the Preferences window, and can be used by HTMLEditorKit for WebFrame.) */ static private Font initFont(String filename, int size) throws IOException, FontFormatException { File fontFile = Platform.getContentFile("lib/fonts/" + filename); @@ -1354,7 +1354,7 @@ static private Font initFont(String filename, int size) throws IOException, Font } else { msg += "Please reinstall Processing."; } - AppMessages.showError("Font Sadness", msg, null); + Messages.showError("Font Sadness", msg, null); } BufferedInputStream input = new BufferedInputStream(new FileInputStream(fontFile)); diff --git a/app/src/processing/app/ui/Welcome.java b/app/src/processing/app/ui/Welcome.java index 6bb1f7cf85..5e4c4cf715 100644 --- a/app/src/processing/app/ui/Welcome.java +++ b/app/src/processing/app/ui/Welcome.java @@ -36,7 +36,7 @@ import processing.app.Base; import processing.app.Platform; -import processing.app.AppPreferences; +import processing.app.Preferences; public class Welcome { @@ -55,12 +55,12 @@ public Welcome(Base base) throws IOException { JCheckBox checkbox = new JCheckBox("Show this message on startup"); // handles the Help menu invocation, and also the pref not existing - checkbox.setSelected("true".equals(AppPreferences.get("welcome.four.show"))); + checkbox.setSelected("true".equals(Preferences.get("welcome.four.show"))); checkbox.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { - AppPreferences.setBoolean("welcome.four.show", true); + Preferences.setBoolean("welcome.four.show", true); } else if (e.getStateChange() == ItemEvent.DESELECTED) { - AppPreferences.setBoolean("welcome.four.show", false); + Preferences.setBoolean("welcome.four.show", false); } }); panel.add(checkbox); @@ -81,7 +81,7 @@ public Welcome(Base base) throws IOException { public void handleSubmit(StringDict dict) { String sketchbookAction = dict.get("sketchbook", null); if ("create_new".equals(sketchbookAction)) { - File folder = new File(AppPreferences.getSketchbookPath()).getParentFile(); + File folder = new File(Preferences.getSketchbookPath()).getParentFile(); PApplet.selectFolder(Language.text("preferences.sketchbook_location.popup"), "sketchbookCallback", folder, this, this); @@ -89,8 +89,8 @@ public void handleSubmit(StringDict dict) { // // If un-checked, the key won't be in the dict, so null will be passed // boolean keepShowing = "on".equals(dict.get("show_each_time", null)); -// AppPreferences.setBoolean("welcome.show", keepShowing); -// AppPreferences.save(); +// Preferences.setBoolean("welcome.show", keepShowing); +// Preferences.save(); handleClose(); } */ @@ -100,7 +100,7 @@ public void handleLink(String link) { // The link will already have the full URL prefix /* if (link.endsWith("#sketchbook")) { - File folder = new File(AppPreferences.getSketchbookPath()).getParentFile(); + File folder = new File(Preferences.getSketchbookPath()).getParentFile(); ShimAWT.selectFolder(Language.text("preferences.sketchbook_location.popup"), "sketchbookCallback", folder, this); */ @@ -134,8 +134,8 @@ private void openExample(String examplePath) { @Override public void handleClose() { - AppPreferences.setBoolean("welcome.four.seen", true); - AppPreferences.save(); + Preferences.setBoolean("welcome.four.seen", true); + Preferences.save(); super.handleClose(); } }; @@ -187,7 +187,7 @@ static public void main(String[] args) { } catch (Exception e) { e.printStackTrace(); } - AppPreferences.init(); + Preferences.init(); EventQueue.invokeLater(() -> { try { diff --git a/app/src/processing/app/ui/theme/Locale.kt b/app/src/processing/app/ui/theme/Locale.kt index 4b8217b30f..b720ef3782 100644 --- a/app/src/processing/app/ui/theme/Locale.kt +++ b/app/src/processing/app/ui/theme/Locale.kt @@ -3,7 +3,6 @@ package processing.app.ui.theme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.compositionLocalOf -import processing.app.AppMessages import processing.app.Platform import processing.app.PlatformStart import processing.app.watchFile diff --git a/app/test/processing/app/SchemaTest.kt b/app/test/processing/app/SchemaTest.kt index 7c81365d32..73f7f9c9c8 100644 --- a/app/test/processing/app/SchemaTest.kt +++ b/app/test/processing/app/SchemaTest.kt @@ -20,7 +20,7 @@ class SchemaTest { } companion object { - val preferences: MockedStatic = mockStatic(AppPreferences::class.java) + val preferences: MockedStatic = mockStatic(Preferences::class.java) } @@ -126,8 +126,8 @@ class SchemaTest { fun testPreferences() { Schema.handleSchema("pde://preferences?test=value", base) preferences.verify { - AppPreferences.set("test", "value") - AppPreferences.save() + Preferences.set("test", "value") + Preferences.save() } } diff --git a/java/src/processing/mode/java/ASTUtils.java b/java/src/processing/mode/java/ASTUtils.java index ad358cd94a..bc57f1e45f 100644 --- a/java/src/processing/mode/java/ASTUtils.java +++ b/java/src/processing/mode/java/ASTUtils.java @@ -17,13 +17,13 @@ import java.util.List; import java.util.stream.IntStream; -import processing.app.AppMessages; +import processing.app.Messages; public class ASTUtils { public static ASTNode getASTNodeAt(ASTNode root, int startJavaOffset, int stopJavaOffset) { - AppMessages.log("* getASTNodeAt"); + Messages.log("* getASTNodeAt"); int length = stopJavaOffset - startJavaOffset; @@ -33,16 +33,16 @@ public static ASTNode getASTNodeAt(ASTNode root, int startJavaOffset, int stopJa node = f.getCoveringNode(); } if (node == null) { - AppMessages.log("no node found"); + Messages.log("no node found"); } else { - AppMessages.log("found " + node.getClass().getSimpleName()); + Messages.log("found " + node.getClass().getSimpleName()); } return node; } public static SimpleName getSimpleNameAt(ASTNode root, int startJavaOffset, int stopJavaOffset) { - AppMessages.log("* getSimpleNameAt"); + Messages.log("* getSimpleNameAt"); // Find node at offset ASTNode node = getASTNodeAt(root, startJavaOffset, stopJavaOffset); @@ -76,9 +76,9 @@ public static SimpleName getSimpleNameAt(ASTNode root, int startJavaOffset, int } if (result == null) { - AppMessages.log("no simple name found"); + Messages.log("no simple name found"); } else { - AppMessages.log("found " + node); + Messages.log("found " + node); } return result; } diff --git a/java/src/processing/mode/java/ASTViewer.java b/java/src/processing/mode/java/ASTViewer.java index c343db270f..d3f3728dea 100644 --- a/java/src/processing/mode/java/ASTViewer.java +++ b/java/src/processing/mode/java/ASTViewer.java @@ -19,7 +19,7 @@ import org.eclipse.jdt.core.dom.ASTVisitor; import org.eclipse.jdt.core.dom.CompilationUnit; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.ui.ZoomTreeCellRenderer; @@ -95,7 +95,7 @@ void dispose() { void buildAndUpdateTree(PreprocSketch ps) { CompilationUnit cu = ps.compilationUnit; if (cu.types().isEmpty()){ - AppMessages.err("No Type found in CU"); + Messages.err("No Type found in CU"); return; } diff --git a/java/src/processing/mode/java/CompileErrorMessageSimplifier.java b/java/src/processing/mode/java/CompileErrorMessageSimplifier.java index c18c327b73..1fe4465251 100644 --- a/java/src/processing/mode/java/CompileErrorMessageSimplifier.java +++ b/java/src/processing/mode/java/CompileErrorMessageSimplifier.java @@ -30,7 +30,7 @@ import org.eclipse.jdt.internal.compiler.problem.DefaultProblem; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.core.PApplet; import processing.data.StringList; @@ -57,7 +57,7 @@ private static void prepareConstantsList() { if (Modifier.isStatic(field.getModifiers())) try { if (DEBUG) { - AppMessages.log(field.getName() + " :" + field.get(null)); + Messages.log(field.getName() + " :" + field.get(null)); } Object val = field.get(null); if (val instanceof Integer) { @@ -69,7 +69,7 @@ private static void prepareConstantsList() { } } if (DEBUG) { - AppMessages.log("Total items: " + constantsMap.size()); + Messages.log("Total items: " + constantsMap.size()); } } @@ -91,13 +91,13 @@ public static String getSimplifiedErrorMessage(IProblem iprob, String badCode) { String[] args = iprob.getArguments(); if (DEBUG) { - AppMessages.log("Simplifying message: " + iprob.getMessage() + + Messages.log("Simplifying message: " + iprob.getMessage() + " ID: " + getIDName(iprob.getID())); - AppMessages.log("Arg count: " + args.length); + Messages.log("Arg count: " + args.length); for (String arg : args) { - AppMessages.log("Arg " + arg); + Messages.log("Arg " + arg); } - AppMessages.log("Bad code: " + badCode); + Messages.log("Bad code: " + badCode); } String result = null; @@ -292,7 +292,7 @@ public static String getSimplifiedErrorMessage(IProblem iprob, String badCode) { } if (DEBUG) { - AppMessages.log("Simplified Error Msg: " + result); + Messages.log("Simplified Error Msg: " + result); } return result; diff --git a/java/src/processing/mode/java/CompletionGenerator.java b/java/src/processing/mode/java/CompletionGenerator.java index 7602c41d4e..549bfc3aa0 100644 --- a/java/src/processing/mode/java/CompletionGenerator.java +++ b/java/src/processing/mode/java/CompletionGenerator.java @@ -56,7 +56,7 @@ import org.eclipse.jdt.core.dom.VariableDeclarationFragment; import org.eclipse.jdt.core.dom.VariableDeclarationStatement; -import processing.app.AppMessages; +import processing.app.Messages; import com.google.classpath.ClassPath; import com.google.classpath.RegExpResourceFilter; @@ -1376,7 +1376,7 @@ static private SimpleType extracTypeInfo(ASTNode node) { static Type extracTypeInfo2(ASTNode node) { - AppMessages.log("* extracTypeInfo2"); + Messages.log("* extracTypeInfo2"); if (node == null) return null; switch (node.getNodeType()) { @@ -1541,7 +1541,7 @@ else if (className.endsWith("Type")) static private void log(Object object) { - AppMessages.log(object == null ? "null" : object.toString()); + Messages.log(object == null ? "null" : object.toString()); } @@ -1569,7 +1569,7 @@ static private List trimCandidates(String newWord, List preparePredictions(final PreprocSketch ps, final String pdePhrase, final int lineNumber) { - AppMessages.log("* preparePredictions"); + Messages.log("* preparePredictions"); if (ps.compilationUnit.types().size() == 0) { return new ArrayList<>(); @@ -1635,7 +1635,7 @@ public List preparePredictions(final PreprocSketch ps, ASTNode testnode = parser.createAST(null); //Base.loge("PREDICTION PARSER PROBLEMS: " + parser); // Find closest ASTNode of the document to this word - AppMessages.err("Typed: " + phrase + "|" + " temp Node type: " + testnode.getClass().getSimpleName()); + Messages.err("Typed: " + phrase + "|" + " temp Node type: " + testnode.getClass().getSimpleName()); if(testnode instanceof MethodInvocation){ MethodInvocation mi = (MethodInvocation)testnode; log(mi.getName() + "," + mi.getExpression() + "," + mi.typeArguments().size()); @@ -1647,7 +1647,7 @@ public List preparePredictions(final PreprocSketch ps, // Make sure nearestNode is not NULL if couldn't find a closest node nearestNode = astRootNode; } - AppMessages.err(lineNumber + " Nearest ASTNode to PRED " + Messages.err(lineNumber + " Nearest ASTNode to PRED " + getNodeAsString(nearestNode)); candidates = new ArrayList<>(); @@ -1655,7 +1655,7 @@ public List preparePredictions(final PreprocSketch ps, // Determine the expression typed if (testnode instanceof SimpleName && !noCompare) { - AppMessages.err("One word expression " + getNodeAsString(testnode)); + Messages.err("One word expression " + getNodeAsString(testnode)); //==> Simple one word exprssion - so is just an identifier // Bottom up traversal of the AST to look for possible definitions at @@ -1735,7 +1735,7 @@ public List preparePredictions(final PreprocSketch ps, } else { // ==> Complex expression of type blah.blah2().doIt,etc // Have to resolve it by carefully traversing AST of testNode - AppMessages.err("Complex expression " + getNodeAsString(testnode)); + Messages.err("Complex expression " + getNodeAsString(testnode)); log("candidates empty"); ASTNode childExpr = getChildExpression(testnode); log("Parent expression : " + getParentExpression(testnode)); @@ -1766,7 +1766,7 @@ public List preparePredictions(final PreprocSketch ps, public static DefaultListModel filterPredictions(List candidates) { - AppMessages.log("* filterPredictions"); + Messages.log("* filterPredictions"); DefaultListModel defListModel = new DefaultListModel<>(); if (candidates.isEmpty()) return defListModel; diff --git a/java/src/processing/mode/java/CompletionPanel.java b/java/src/processing/mode/java/CompletionPanel.java index c76865540b..e0780776d6 100644 --- a/java/src/processing/mode/java/CompletionPanel.java +++ b/java/src/processing/mode/java/CompletionPanel.java @@ -41,7 +41,7 @@ import javax.swing.ListSelectionModel; import javax.swing.border.EmptyBorder; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Mode; import processing.app.syntax.JEditTextArea; import processing.app.ui.Theme; @@ -234,7 +234,7 @@ protected boolean insertSelection(int completionSource) { } JavaTextArea textArea = editor.getJavaTextArea(); - AppMessages.err(subWord + " <= sub word, Inserting suggestion=> " + + Messages.err(subWord + " <= sub word, Inserting suggestion=> " + selectedSuggestion + " Current sub: " + currentSubWord); if (currentSubWord.length() > 0) { textArea.getDocument().remove(caretPos - currentSubWordLen, @@ -286,7 +286,7 @@ private String fetchCurrentSubWord() { int x = ta.getCaretPosition() - ta.getLineStartOffset(line) - 1, x1 = x - 1; if (x >= s.length() || x < 0) return null; //TODO: Does this check cause problems? Verify. - AppMessages.log(" x char: " + s.charAt(x)); + Messages.log(" x char: " + s.charAt(x)); String word = String.valueOf(s.charAt(x)); if (s.trim().length() == 1) { @@ -417,11 +417,11 @@ public Component getListCellRendererComponent(JList list, Object value, break; default: - AppMessages.log("(CustomListRenderer)Unknown CompletionCandidate type " + cc.getType()); + Messages.log("(CustomListRenderer)Unknown CompletionCandidate type " + cc.getType()); break; } } else { - AppMessages.log("(CustomListRenderer)Unknown CompletionCandidate object " + value); + Messages.log("(CustomListRenderer)Unknown CompletionCandidate object " + value); } return label; } diff --git a/java/src/processing/mode/java/InspectMode.java b/java/src/processing/mode/java/InspectMode.java index 9d75f1c187..3e18a28b48 100644 --- a/java/src/processing/mode/java/InspectMode.java +++ b/java/src/processing/mode/java/InspectMode.java @@ -22,7 +22,7 @@ import org.eclipse.jdt.core.dom.VariableDeclaration; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Platform; @@ -149,20 +149,20 @@ private void handleInspect(PreprocSketch ps, int tabIndex, int offset) { SimpleName simpleName = getSimpleNameAt(root, javaOffset, javaOffset); if (simpleName == null) { - AppMessages.log("no simple name found at click location"); + Messages.log("no simple name found at click location"); return; } IBinding binding = resolveBinding(simpleName); if (binding == null) { - AppMessages.log("binding not resolved"); + Messages.log("binding not resolved"); return; } String key = binding.getKey(); ASTNode decl = ps.compilationUnit.findDeclaringNode(key); if (decl == null) { - AppMessages.log("decl not found, showing usage instead"); + Messages.log("decl not found, showing usage instead"); usage.findUsageAndUpdateTree(ps, binding); return; } @@ -174,14 +174,14 @@ private void handleInspect(PreprocSketch ps, int tabIndex, int offset) { case IBinding.VARIABLE: declName = ((VariableDeclaration) decl).getName(); break; } if (declName == null) { - AppMessages.log("decl name not found " + decl); + Messages.log("decl name not found " + decl); return; } if (declName.equals(simpleName)) { usage.findUsageAndUpdateTree(ps, binding); } else { - AppMessages.log("found declaration, offset " + decl.getStartPosition() + ", name: " + declName); + Messages.log("found declaration, offset " + decl.getStartPosition() + ", name: " + declName); SketchInterval si = ps.mapJavaToSketch(declName); if (!ps.inRange(si)) return; EventQueue.invokeLater(() -> { diff --git a/java/src/processing/mode/java/JavaBuild.java b/java/src/processing/mode/java/JavaBuild.java index c541a04cc7..28601325eb 100644 --- a/java/src/processing/mode/java/JavaBuild.java +++ b/java/src/processing/mode/java/JavaBuild.java @@ -578,7 +578,7 @@ protected boolean exportApplication() throws IOException, SketchException { // if name != exportSketchName, then that's weirdness // BUG unfortunately, that can also be a bug in the preproc :( if (!sketch.getMainName().equals(foundName)) { - AppMessages.showWarning("Error during export", + Messages.showWarning("Error during export", "Main tab is named " + sketch.getMainName() + " but the\n" + "sketch name in the code was " + foundName, null); return false; @@ -668,7 +668,7 @@ protected boolean exportApplication(File destFolder, boolean embedJava) throws IOException, SketchException { for (Library library : importedLibraries) { if (library.isUnsupported(exportVariant)) { - AppMessages.showWarning("Quibbles 'n Bits", + Messages.showWarning("Quibbles 'n Bits", "The application will not be exported for\n" + Platform.getSupportedVariants().get(exportVariant) + " because " + library.getName() + "\n" + diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index fc20634595..a53c6fd3cc 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -230,7 +230,7 @@ public JMenu buildFileMenu() { // weird for untitled sketches (that live in a temp folder) and // read-only sketches (that live in the examples folder). // TODO Better explanation? And some localization too. - AppMessages.showMessage("Save First", "Please first save the sketch."); + Messages.showMessage("Save First", "Please first save the sketch."); } else { handleExportApplication(); } @@ -239,7 +239,7 @@ public JMenu buildFileMenu() { var exportPDEZ = new JMenuItem(Language.text("menu.file.export_pdez")); exportPDEZ.addActionListener(e -> { if (sketch.isUntitled() || sketch.isReadOnly()) { - AppMessages.showMessage("Save First", "Please first save the sketch."); + Messages.showMessage("Save First", "Please first save the sketch."); } else { handleExportPDEZ(); } @@ -260,7 +260,7 @@ public JMenu buildSketchMenu() { JMenuItem stopItem = new JMenuItem(Language.text("menu.sketch.stop")); stopItem.addActionListener(e -> { if (isDebuggerEnabled()) { - AppMessages.log("Invoked 'Stop' menu item"); + Messages.log("Invoked 'Stop' menu item"); debugger.stopDebug(); } else { handleStop(); @@ -292,7 +292,7 @@ public JMenu buildHelpMenu() { try { new Welcome(base); } catch (IOException ioe) { - AppMessages.showWarning("Unwelcome Error", + Messages.showWarning("Unwelcome Error", "Please report this error to\n" + "https://github.com/processing/processing4/issues", ioe); } @@ -519,7 +519,7 @@ public void handleExportPDEZ() { try { Platform.deleteFile(target.toFile()); } catch (IOException e) { - AppMessages.showError("Export Error", "Could not delete existing file: " + target, e); + Messages.showError("Export Error", "Could not delete existing file: " + target, e); } } @@ -564,14 +564,14 @@ public void handleExportPDEZ() { protected boolean handleExportCheckModified() { if (sketch.isReadOnly()) { // if the files are read-only, need to first do a "save as". - AppMessages.showMessage(Language.text("export.messages.is_read_only"), + Messages.showMessage(Language.text("export.messages.is_read_only"), Language.text("export.messages.is_read_only.description")); return false; } // don't allow if untitled if (sketch.isUntitled()) { - AppMessages.showMessage(Language.text("export.messages.cannot_export"), + Messages.showMessage(Language.text("export.messages.cannot_export"), Language.text("export.messages.cannot_export.description")); return false; } @@ -629,7 +629,7 @@ public void handleTweak() { autoSave(); if (sketch.isModified()) { - AppMessages.showMessage(Language.text("menu.file.save"), + Messages.showMessage(Language.text("menu.file.save"), Language.text("tweak_mode.save_before_tweak")); return; } @@ -852,7 +852,7 @@ public void showReference(String name) { useReferenceServer = true; } catch (IOException e) { - AppMessages.showWarning("Reference Server Problem", "Error while starting the documentation server."); + Messages.showWarning("Reference Server Problem", "Error while starting the documentation server."); } } else { @@ -922,7 +922,7 @@ private void downloadReference() { // download canceled } catch (IOException e) { - AppMessages.showWarning("Error downloading reference", + Messages.showWarning("Error downloading reference", "Could not download the reference. Try again later.", e); } } @@ -1064,7 +1064,7 @@ protected void addBreakpointComments(String tabFilename) { // this method gets called twice when saving sketch for the first time // once with new name and another with old(causing NPE). Keep an eye out // for potential issues. See #2675. TODO: - AppMessages.err("Illegal tab name to addBreakpointComments() " + tabFilename); + Messages.err("Illegal tab name to addBreakpointComments() " + tabFilename); return; } List bps = debugger.getBreakpoints(tab.getFileName()); @@ -1087,7 +1087,7 @@ protected void addBreakpointComments(String tabFilename) { tab.setProgram(code); tab.save(); } catch (IOException ex) { - AppMessages.err(null, ex); + Messages.err(null, ex); } } @@ -1260,7 +1260,7 @@ protected void downloadImports() { for (AvailableContribution ac : installLibsHeaders) { libList.append("\n • ").append(ac.getName()); } - int option = AppMessages.showYesNoQuestion(this, + int option = Messages.showYesNoQuestion(this, Language.text("contrib.import.dialog.title"), Language.text("contrib.import.dialog.primary_text"), libList.toString()); @@ -1831,7 +1831,7 @@ private void showImportSuggestion(String[] list, int x, int y) { if (classList.getSelectedValue() != null) { try { String t = classList.getSelectedValue().trim(); - AppMessages.log(t); + Messages.log(t); int x1 = t.indexOf('('); String impString = "import " + t.substring(x1 + 1, t.indexOf(')')) + ";\n"; int ct = getSketch().getCurrentCodeIndex(); @@ -1839,7 +1839,7 @@ private void showImportSuggestion(String[] list, int x, int y) { getTextArea().getDocument().insertString(0, impString, null); getSketch().setCurrentCode(ct); } catch (BadLocationException ble) { - AppMessages.log("Failed to insert import"); + Messages.log("Failed to insert import"); ble.printStackTrace(); } } @@ -1877,7 +1877,7 @@ public void applyPreferences() { if (jmode != null) { jmode.loadPreferences(); - AppMessages.log("Applying prefs"); + Messages.log("Applying prefs"); // trigger it once to refresh UI //pdex.preferencesChanged(); errorChecker.preferencesChanged(); @@ -1915,7 +1915,7 @@ protected void stopTweakMode(List> handles) { if (modified) { // ask to keep the values - if (AppMessages.showYesNoQuestion(this, Language.text("tweak_mode"), + if (Messages.showYesNoQuestion(this, Language.text("tweak_mode"), Language.text("tweak_mode.keep_changes.line1"), Language.text("tweak_mode.keep_changes.line2")) == JOptionPane.YES_OPTION) { for (int i = 0; i < sketch.getCodeCount(); i++) { @@ -1941,7 +1941,7 @@ protected void stopTweakMode(List> handles) { try { sketch.save(); } catch (IOException e) { - AppMessages.showWarning("Error", "Could not save the modified sketch.", e); + Messages.showWarning("Error", "Could not save the modified sketch.", e); } // repaint the editor header (show the modified tabs) diff --git a/java/src/processing/mode/java/JavaMode.java b/java/src/processing/mode/java/JavaMode.java index d5ffbef14b..5f3dce839b 100644 --- a/java/src/processing/mode/java/JavaMode.java +++ b/java/src/processing/mode/java/JavaMode.java @@ -258,7 +258,7 @@ static boolean checkSuggestion(String mapName, String impName) { public void loadPreferences() { - AppMessages.log("Load PDEX prefs"); + Messages.log("Load PDEX prefs"); errorCheckEnabled = Preferences.getBoolean(prefErrorCheck); warningsEnabled = Preferences.getBoolean(prefWarnings); @@ -277,7 +277,7 @@ public void loadPreferences() { public void savePreferences() { - AppMessages.log("Saving PDEX prefs"); + Messages.log("Saving PDEX prefs"); Preferences.setBoolean(prefErrorCheck, errorCheckEnabled); Preferences.setBoolean(prefWarnings, warningsEnabled); diff --git a/java/src/processing/mode/java/JavaTextArea.java b/java/src/processing/mode/java/JavaTextArea.java index be3b945a3a..ecab00eed1 100644 --- a/java/src/processing/mode/java/JavaTextArea.java +++ b/java/src/processing/mode/java/JavaTextArea.java @@ -33,7 +33,7 @@ import javax.swing.DefaultListModel; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Platform; import processing.app.syntax.PdeTextArea; import processing.app.syntax.TextAreaDefaults; @@ -84,7 +84,7 @@ public void processKeyEvent(KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { if (suggestion != null){ if (suggestion.isVisible()){ - AppMessages.log("ESC key"); + Messages.log("ESC key"); hideSuggestion(); evt.consume(); return; @@ -125,12 +125,12 @@ public void processKeyEvent(KeyEvent evt) { } break; case KeyEvent.VK_BACK_SPACE: - AppMessages.log("BK Key"); + Messages.log("BK Key"); break; case KeyEvent.VK_SPACE: if (suggestion != null) { if (suggestion.isVisible()) { - AppMessages.log("Space bar, hide completion list"); + Messages.log("Space bar, hide completion list"); suggestion.setInvisible(); } } @@ -156,7 +156,7 @@ private void processControlSpace(final KeyEvent event) { if (event.getKeyCode() == KeyEvent.VK_SPACE && event.isControlDown()) { // Provide completions only if it's enabled if (JavaMode.codeCompletionsEnabled) { - AppMessages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); + Messages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); fetchPhrase(); } } @@ -180,7 +180,7 @@ private void processCompletionKeys(final KeyEvent event) { } else if (keyChar == '.') { if (JavaMode.codeCompletionsEnabled) { - AppMessages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); + Messages.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started"); fetchPhrase(); } } else if (keyChar == ' ') { // Trigger on Ctrl-Space @@ -191,7 +191,7 @@ private void processCompletionKeys(final KeyEvent event) { // Removed for https://github.com/processing/processing/issues/3847 //try { // getDocument().remove(getCaretPosition() - 1, 1); // Remove the typed space - AppMessages.log("[KeyEvent]" + event.getKeyChar() + " |Prediction started"); + Messages.log("[KeyEvent]" + event.getKeyChar() + " |Prediction started"); fetchPhrase(); //} catch (BadLocationException e) { // e.printStackTrace(); @@ -214,7 +214,7 @@ private void prepareSuggestions(final KeyEvent evt) { if (JavaMode.codeCompletionsEnabled && (JavaMode.ccTriggerEnabled || (suggestion != null && suggestion.isVisible()))) { - AppMessages.log("[KeyEvent]" + evt.getKeyChar() + " |Prediction started"); + Messages.log("[KeyEvent]" + evt.getKeyChar() + " |Prediction started"); fetchPhrase(); } } @@ -290,9 +290,9 @@ protected void fetchPhrase() { DefaultListModel defListModel = null; try { - AppMessages.log("phrase parse start"); + Messages.log("phrase parse start"); phrase = parsePhrase(text); - AppMessages.log("phrase: " + phrase); + Messages.log("phrase: " + phrase); if (phrase != null) { List candidates; @@ -308,7 +308,7 @@ protected void fetchPhrase() { if (candidates != null && !candidates.isEmpty()) { Collections.sort(candidates); defListModel = CompletionGenerator.filterPredictions(candidates); - AppMessages.log("Got: " + candidates.size() + " candidates, " + defListModel.size() + " filtered"); + Messages.log("Got: " + candidates.size() + " candidates, " + defListModel.size() + " filtered"); } } @@ -321,12 +321,12 @@ protected void fetchPhrase() { suggestionRunning = false; if (suggestionRequested) { - AppMessages.log("completion invalidated"); + Messages.log("completion invalidated"); fetchPhrase(); return; } - AppMessages.log("completion finishing"); + Messages.log("completion finishing"); if (finalDefListModel != null) { showSuggestion(finalDefListModel, finalPhrase); @@ -335,7 +335,7 @@ protected void fetchPhrase() { } }); } catch (Exception e) { - AppMessages.err("error while preparing suggestions", e); + Messages.err("error while preparing suggestions", e); } }); } @@ -493,7 +493,7 @@ public static String parsePhrase(final String lineText) { // Extract phrase String phrase = lineText.substring(position).trim(); - AppMessages.log(phrase); + Messages.log(phrase); if (phrase.length() == 0 || Character.isDigit(phrase.charAt(0))) { return null; // Can't suggest for numbers or empty phrases @@ -525,7 +525,7 @@ protected void showSuggestion(DefaultListModel listModel, S e.printStackTrace(); } } else { - AppMessages.log("TextArea: No suggestions to show."); + Messages.log("TextArea: No suggestions to show."); } } diff --git a/java/src/processing/mode/java/PreprocService.java b/java/src/processing/mode/java/PreprocService.java index 07bb3cf139..1e3fde1789 100644 --- a/java/src/processing/mode/java/PreprocService.java +++ b/java/src/processing/mode/java/PreprocService.java @@ -53,7 +53,7 @@ import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.dom.FileASTRequestor; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.Sketch; import processing.app.SketchCode; import processing.utils.Util; @@ -117,7 +117,7 @@ private void mainLoop() { running = true; PreprocSketch prevResult = null; CompletableFuture runningCallbacks = null; - AppMessages.log("Hi!"); + Messages.log("Hi!"); while (running) { try { try { @@ -127,7 +127,7 @@ private void mainLoop() { break; } - AppMessages.log("Starting"); + Messages.log("Starting"); prevResult = preprocessSketch(prevResult); @@ -143,15 +143,15 @@ private void mainLoop() { synchronized (requestLock) { if (requestQueue.isEmpty()) { runningCallbacks = lastCallback; - AppMessages.log("Done"); + Messages.log("Done"); preprocessingTask.complete(prevResult); } } } catch (Exception e) { - AppMessages.err("problem in preprocessor service loop", e); + Messages.err("problem in preprocessor service loop", e); } } - AppMessages.log("Bye!"); + Messages.log("Bye!"); } /** @@ -188,7 +188,7 @@ public void notifySketchChanged() { * Indicate to this service that the sketch libraries have changed. */ public void notifyLibrariesChanged() { - AppMessages.log("notified libraries changed"); + Messages.log("notified libraries changed"); librariesChanged.set(true); notifySketchChanged(); } @@ -197,7 +197,7 @@ public void notifyLibrariesChanged() { * Indicate to this service that the folder housing sketch code has changed. */ public void notifyCodeFolderChanged() { - AppMessages.log("notified code folder changed"); + Messages.log("notified code folder changed"); codeFolderChanged.set(true); notifySketchChanged(); } @@ -216,7 +216,7 @@ private CompletableFuture registerCallback(Consumer callback) .thenAcceptBothAsync(lastCallback, (ps, a) -> callback.accept(ps)) // Make sure exception in callback won't cancel whole callback chain .handleAsync((res, e) -> { - if (e != null) AppMessages.err("exception in callback", e); + if (e != null) Messages.err("exception in callback", e); return res; }); return lastCallback; @@ -304,7 +304,7 @@ private void fireListeners(PreprocSketch ps) { try { listener.accept(ps); } catch (Exception e) { - AppMessages.err("error when firing preprocessing listener", e); + Messages.err("error when firing preprocessing listener", e); } } } diff --git a/java/src/processing/mode/java/RuntimePathBuilder.java b/java/src/processing/mode/java/RuntimePathBuilder.java index 408de3aa73..715fa0a79e 100644 --- a/java/src/processing/mode/java/RuntimePathBuilder.java +++ b/java/src/processing/mode/java/RuntimePathBuilder.java @@ -322,7 +322,7 @@ private void prepareSketchClassPath(PreprocSketch.Builder result, JavaMode mode, try { return Paths.get(path).toUri().toURL(); } catch (MalformedURLException e) { - AppMessages.err("malformed URL when preparing sketch classloader", e); + Messages.err("malformed URL when preparing sketch classloader", e); return null; } }) diff --git a/java/src/processing/mode/java/debug/ArrayFieldNode.java b/java/src/processing/mode/java/debug/ArrayFieldNode.java index f95a0f8d30..ef9fbc55d2 100644 --- a/java/src/processing/mode/java/debug/ArrayFieldNode.java +++ b/java/src/processing/mode/java/debug/ArrayFieldNode.java @@ -26,7 +26,7 @@ import com.sun.jdi.InvalidTypeException; import com.sun.jdi.Value; -import processing.app.AppMessages; +import processing.app.Messages; /** * Specialized {@link VariableNode} for representing single fields in an array. @@ -53,7 +53,7 @@ public void setValue(Value value) { try { array.setValue(index, value); } catch (InvalidTypeException | ClassNotLoadedException ex) { - AppMessages.err(null, ex); + Messages.err(null, ex); } this.value = value; } diff --git a/java/src/processing/mode/java/debug/Debugger.java b/java/src/processing/mode/java/debug/Debugger.java index be4191a7cd..0136793200 100644 --- a/java/src/processing/mode/java/debug/Debugger.java +++ b/java/src/processing/mode/java/debug/Debugger.java @@ -46,7 +46,7 @@ import javax.swing.tree.DefaultMutableTreeNode; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.RunnerListenerEdtAdapter; import processing.app.Sketch; import processing.app.SketchCode; @@ -177,7 +177,7 @@ public void actionPerformed(ActionEvent e) { Toolkit.newJMenuItem(Language.text("menu.debug.toggle_breakpoint"), 'B'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - AppMessages.log("Invoked 'Toggle Breakpoint' menu item"); + Messages.log("Invoked 'Toggle Breakpoint' menu item"); // TODO wouldn't getCaretLine() do the same thing with less effort? //toggleBreakpoint(editor.getCurrentLineID().lineIdx()); toggleBreakpoint(editor.getTextArea().getCaretLine()); @@ -375,7 +375,7 @@ public synchronized void startDebug() { public synchronized void stopDebug() { inspector.lock(); if (runtime != null) { - AppMessages.log("closing runtime"); + Messages.log("closing runtime"); for (LineBreakpoint bp : breakpoints) { bp.detach(); @@ -1538,24 +1538,24 @@ protected void stopTrackingLineChanges() { private void log(String msg, Object... args) { if (args != null && args.length != 0) { - AppMessages.logf(getClass().getName() + " " + msg, args); + Messages.logf(getClass().getName() + " " + msg, args); } else { - AppMessages.log(getClass().getName() + " " + msg); + Messages.log(getClass().getName() + " " + msg); } } private void loge(String msg, Throwable t) { if (t != null) { - AppMessages.err(getClass().getName() + " " + msg, t); + Messages.err(getClass().getName() + " " + msg, t); } else { - AppMessages.err(getClass().getName() + " " + msg); + Messages.err(getClass().getName() + " " + msg); } } static private void logitse(Throwable t) { - AppMessages.err("incompatible thread state?", t); + Messages.err("incompatible thread state?", t); } @@ -1605,9 +1605,9 @@ public void run() { // for (Event e : eventSet) { System.out.println("VM Event: " + e.toString()); } } } catch (VMDisconnectedException e) { - AppMessages.log("VMEventReader quit on VM disconnect"); + Messages.log("VMEventReader quit on VM disconnect"); } catch (Exception e) { - AppMessages.err("VMEventReader quit", e); + Messages.err("VMEventReader quit", e); } } } diff --git a/java/src/processing/mode/java/debug/FieldNode.java b/java/src/processing/mode/java/debug/FieldNode.java index c4f48ea8ed..70b85054d6 100644 --- a/java/src/processing/mode/java/debug/FieldNode.java +++ b/java/src/processing/mode/java/debug/FieldNode.java @@ -27,7 +27,7 @@ import com.sun.jdi.ObjectReference; import com.sun.jdi.Value; -import processing.app.AppMessages; +import processing.app.Messages; /** @@ -56,9 +56,9 @@ public void setValue(Value value) { try { obj.setValue(field, value); } catch (InvalidTypeException ite) { - AppMessages.err(null, ite); + Messages.err(null, ite); } catch (ClassNotLoadedException cnle) { - AppMessages.err(null, cnle); + Messages.err(null, cnle); } this.value = value; } diff --git a/java/src/processing/mode/java/debug/LineBreakpoint.java b/java/src/processing/mode/java/debug/LineBreakpoint.java index d5e4d48ab0..e7327446f5 100644 --- a/java/src/processing/mode/java/debug/LineBreakpoint.java +++ b/java/src/processing/mode/java/debug/LineBreakpoint.java @@ -23,7 +23,7 @@ import java.util.List; -import processing.app.AppMessages; +import processing.app.Messages; import com.sun.jdi.AbsentInformationException; import com.sun.jdi.Location; @@ -58,7 +58,7 @@ public LineBreakpoint(LineID line, Debugger dbg) { this.dbg = dbg; this.className = className(); set(); // activate the breakpoint (show highlight, attach if debugger is running) - AppMessages.log("LBP Created " + toString() + " class: " + this.className); + Messages.log("LBP Created " + toString() + " class: " + this.className); } @@ -131,7 +131,7 @@ protected boolean attach(ReferenceType theClass) { log("attached breakpoint to " + line + " -> " + javaLine); return true; } catch (AbsentInformationException ex) { - AppMessages.err(null, ex); + Messages.err(null, ex); } return false; } @@ -246,9 +246,9 @@ static public String parseTopLevelClassName(String name) { private void log(String msg, Object... args) { if (args != null && args.length != 0) { - AppMessages.logf(getClass().getName() + " " + msg, args); + Messages.logf(getClass().getName() + " " + msg, args); } else { - AppMessages.log(getClass().getName() + " " + msg); + Messages.log(getClass().getName() + " " + msg); } } } diff --git a/java/src/processing/mode/java/debug/LineID.java b/java/src/processing/mode/java/debug/LineID.java index 22d6328367..34b0711a81 100644 --- a/java/src/processing/mode/java/debug/LineID.java +++ b/java/src/processing/mode/java/debug/LineID.java @@ -31,7 +31,7 @@ import javax.swing.text.Element; import javax.swing.text.Position; -import processing.app.AppMessages; +import processing.app.Messages; /** @@ -151,7 +151,7 @@ public synchronized void startTracking(Document doc) { this.doc = doc; doc.addDocumentListener(this); } catch (BadLocationException ex) { - AppMessages.err(null, ex); + Messages.err(null, ex); pos = null; this.doc = null; } diff --git a/java/src/processing/mode/java/debug/LocalVariableNode.java b/java/src/processing/mode/java/debug/LocalVariableNode.java index 6829cca9a5..5b97ba82a5 100644 --- a/java/src/processing/mode/java/debug/LocalVariableNode.java +++ b/java/src/processing/mode/java/debug/LocalVariableNode.java @@ -27,7 +27,7 @@ import com.sun.jdi.StackFrame; import com.sun.jdi.Value; -import processing.app.AppMessages; +import processing.app.Messages; /** @@ -52,7 +52,7 @@ public void setValue(Value value) { try { frame.setValue(var, value); } catch (InvalidTypeException | ClassNotLoadedException ex) { - AppMessages.err(null, ex); + Messages.err(null, ex); } this.value = value; } diff --git a/java/src/processing/mode/java/debug/VariableInspector.java b/java/src/processing/mode/java/debug/VariableInspector.java index a58a630c97..619e4d47ba 100644 --- a/java/src/processing/mode/java/debug/VariableInspector.java +++ b/java/src/processing/mode/java/debug/VariableInspector.java @@ -37,7 +37,7 @@ import com.sun.jdi.Value; import processing.app.Language; -import processing.app.AppMessages; +import processing.app.Messages; import processing.app.ui.Toolkit; import processing.mode.java.JavaEditor; @@ -271,12 +271,12 @@ public void setValueFor(Object o, int i, Object o1) { break; } } catch (NumberFormatException ex) { - AppMessages.log(getClass().getName() + " invalid value entered for " + + Messages.log(getClass().getName() + " invalid value entered for " + var.getName() + " -> " + stringValue); } if (value != null) { var.setValue(value); - AppMessages.log(getClass().getName() + " new value set: " + var.getStringValue()); + Messages.log(getClass().getName() + " new value set: " + var.getStringValue()); } } diff --git a/java/src/processing/mode/java/runner/Runner.java b/java/src/processing/mode/java/runner/Runner.java index ea3dae03ec..942a5f10a0 100644 --- a/java/src/processing/mode/java/runner/Runner.java +++ b/java/src/processing/mode/java/runner/Runner.java @@ -255,19 +255,19 @@ public boolean launchVirtualMachine(boolean present, String[] args) { // while (!available) { while (true) { try { - AppMessages.log("attempting to attach to VM"); + Messages.log("attempting to attach to VM"); synchronized (cancelLock) { vm = connector.attach(arguments); if (cancelled && vm != null) { // cancelled and connected to the VM, handle closing now - AppMessages.log("aborting, launch cancelled"); + Messages.log("aborting, launch cancelled"); close(); return false; } } // vm = connector.attach(arguments); if (vm != null) { - AppMessages.log("attached to the VM"); + Messages.log("attached to the VM"); // generateTrace(); // available = true; return true; @@ -275,17 +275,17 @@ public boolean launchVirtualMachine(boolean present, String[] args) { } catch (ConnectException ce) { // This will fire ConnectException (socket not available) until // the VM finishes starting up and opens its socket for us. - AppMessages.log("socket for VM not ready"); + Messages.log("socket for VM not ready"); // System.out.println("waiting"); // e.printStackTrace(); try { Thread.sleep(100); } catch (InterruptedException ie) { - AppMessages.err("interrupted", ie); + Messages.err("interrupted", ie); // ie.printStackTrace(sketchErr); } } catch (IOException e) { - AppMessages.err("while attaching to VM", e); + Messages.err("while attaching to VM", e); } } // } catch (IOException exc) { @@ -542,7 +542,7 @@ protected void launchJava(final String[] args) { if (errorStrings != null && errorStrings.length > 1) { if (errorStrings[0].contains("Invalid maximum heap size")) { - AppMessages.showWarning("Way Too High", + Messages.showWarning("Way Too High", "Please lower the value for \u201Cmaximum available memory\u201D in the\n" + "Preferences window. For more information, read Help \u2192 Troubleshooting.", null); } else { @@ -693,7 +693,7 @@ protected Connector findConnector(String connectorName) { return connector; } } - AppMessages.showError("Compiler Error", + Messages.showError("Compiler Error", "findConnector() failed to find " + connectorName + " inside Runner", null); return null; // Not reachable From 004a1380844a3ca285b4bc71c6e018d8eeeb0923 Mon Sep 17 00:00:00 2001 From: Ahmed Maged Date: Sun, 22 Jun 2025 17:36:12 +0300 Subject: [PATCH 5/5] moving extra configuration to app.preferences --- app/src/processing/app/Preferences.java | 79 +++++++++++++++++++ .../java/processing/utils/Preferences.java | 74 +---------------- 2 files changed, 80 insertions(+), 73 deletions(-) diff --git a/app/src/processing/app/Preferences.java b/app/src/processing/app/Preferences.java index 937f118a66..fe19d12649 100644 --- a/app/src/processing/app/Preferences.java +++ b/app/src/processing/app/Preferences.java @@ -1,6 +1,7 @@ package processing.app; import processing.app.ui.Toolkit; +import processing.core.PApplet; import java.awt.*; @@ -13,6 +14,34 @@ static public void init() { if (Language.useInputMethod() && !getBoolean("editor.input_method_support")) { setBoolean("editor.input_method_support", true); } + + if(get("run.window.bgcolor").isEmpty()){ + setColor("run.window.bgcolor", SystemColor.control); + } + + if(checkSketchbookPref()){ + save(); + } + + PApplet.useNativeSelect = + Preferences.getBoolean("chooser.files.native"); //$NON-NLS-1$ + + // Adding option to disable this in case it's getting in the way + if (get("proxy.system").equals("true")) { + // Use the system proxy settings by default + // https://github.com/processing/processing/issues/2643 + System.setProperty("java.net.useSystemProxies", "true"); + } + + // Set HTTP, HTTPS, and SOCKS proxies for individuals + // who want/need to override the system setting + // http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html + // Less readable version with the Oracle style sheet: + // http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html + handleProxy("http", "http.proxyHost", "http.proxyPort"); + handleProxy("https", "https.proxyHost", "https.proxyPort"); + handleProxy("socks", "socksProxyHost", "socksProxyPort"); + } @@ -26,4 +55,54 @@ static public Font getFont(String familyAttr, String sizeAttr, int style) { } return new Font(fontFamily, style, fontSize); } + + + static void handleProxy(String protocol, String hostProp, String portProp) { + String proxyHost = get("proxy." + protocol + ".host"); + String proxyPort = get("proxy." + protocol + ".port"); + if (proxyHost != null && proxyHost.length() != 0 && + proxyPort != null && proxyPort.length() != 0) { + System.setProperty(hostProp, proxyHost); + System.setProperty(portProp, proxyPort); + } + + } + + + // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + /** + * Check for a 4.0 sketchbook location, and if none exists, + * try to grab it from the 3.0 sketchbook location. + * @return true if a location was found and the pref didn't exist + */ + static protected boolean checkSketchbookPref() { + // If a 4.0 sketchbook location has never been inited + if (getSketchbookPath() == null) { + String threePath = get("sketchbook.path.three"); //$NON-NLS-1$ + // If they've run the 3.0 version, start with that location + if (threePath != null) { + setSketchbookPath(threePath); + return true; // save the sketchbook right away + } + // Otherwise it'll be null, and reset properly by Base + } + return false; + } + + + static public String getOldSketchbookPath() { + return get("sketchbook.path.three"); //$NON-NLS-1$ + } + + + static public String getSketchbookPath() { + return get("sketchbook.path.four"); //$NON-NLS-1$ + } + + + public static void setSketchbookPath(String path) { + set("sketchbook.path.four", path); //$NON-NLS-1$ + } } diff --git a/app/utils/src/main/java/processing/utils/Preferences.java b/app/utils/src/main/java/processing/utils/Preferences.java index f3aba56e97..faf153e75a 100644 --- a/app/utils/src/main/java/processing/utils/Preferences.java +++ b/app/utils/src/main/java/processing/utils/Preferences.java @@ -75,9 +75,6 @@ static public void init() { // This ensures that any new/added preference will be present. defaults = new HashMap<>(table); - // other things that have to be set explicitly for the defaults - setColor("run.window.bgcolor", SystemColor.control); //$NON-NLS-1$ - // next load user preferences file preferencesFile = Base.getSettingsFile(PREFS_FILE); boolean firstRun = !preferencesFile.exists(); @@ -94,31 +91,12 @@ static public void init() { } } - if (checkSketchbookPref() || firstRun) { -// if (firstRun) { + if (firstRun) { // create a new preferences file if none exists // saves the defaults out to the file save(); } - PApplet.useNativeSelect = - Preferences.getBoolean("chooser.files.native"); //$NON-NLS-1$ - - // Adding option to disable this in case it's getting in the way - if (get("proxy.system").equals("true")) { - // Use the system proxy settings by default - // https://github.com/processing/processing/issues/2643 - System.setProperty("java.net.useSystemProxies", "true"); - } - - // Set HTTP, HTTPS, and SOCKS proxies for individuals - // who want/need to override the system setting - // http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html - // Less readable version with the Oracle style sheet: - // http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html - handleProxy("http", "http.proxyHost", "http.proxyPort"); - handleProxy("https", "https.proxyHost", "https.proxyPort"); - handleProxy("socks", "socksProxyHost", "socksProxyPort"); } @@ -130,18 +108,6 @@ static public void skipInit() { } - static void handleProxy(String protocol, String hostProp, String portProp) { - String proxyHost = get("proxy." + protocol + ".host"); - String proxyPort = get("proxy." + protocol + ".port"); - if (proxyHost != null && proxyHost.length() != 0 && - proxyPort != null && proxyPort.length() != 0) { - System.setProperty(hostProp, proxyHost); - System.setProperty(portProp, proxyPort); - } - - } - - static public String getPreferencesPath() { return preferencesFile.getAbsolutePath(); } @@ -339,42 +305,4 @@ static public void setColor(String attr, Color what) { set(attr, "#" + PApplet.hex(what.getRGB() & 0xffffff, 6)); //$NON-NLS-1$ } - - - // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - /** - * Check for a 4.0 sketchbook location, and if none exists, - * try to grab it from the 3.0 sketchbook location. - * @return true if a location was found and the pref didn't exist - */ - static protected boolean checkSketchbookPref() { - // If a 4.0 sketchbook location has never been inited - if (getSketchbookPath() == null) { - String threePath = get("sketchbook.path.three"); //$NON-NLS-1$ - // If they've run the 3.0 version, start with that location - if (threePath != null) { - setSketchbookPath(threePath); - return true; // save the sketchbook right away - } - // Otherwise it'll be null, and reset properly by Base - } - return false; - } - - - static public String getOldSketchbookPath() { - return get("sketchbook.path.three"); //$NON-NLS-1$ - } - - - static public String getSketchbookPath() { - return get("sketchbook.path.four"); //$NON-NLS-1$ - } - - - public static void setSketchbookPath(String path) { - set("sketchbook.path.four", path); //$NON-NLS-1$ - } }

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 Stf+6I$R9hj2V3~Jr~W?%Kwty_ literal 0 HcmV?d00001 diff --git a/app/utils/build/resources/main/SourceCodePro-Bold.ttf b/app/utils/build/resources/main/SourceCodePro-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e0c576f1b02314a890f50d6fa096f0566f636153 GIT binary patch literal 197004 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 O>BEC*{a+;mBL4>`Q~#F$ literal 0 HcmV?d00001 diff --git a/app/utils/build/resources/main/SourceCodePro-LICENSE.txt b/app/utils/build/resources/main/SourceCodePro-LICENSE.txt new file mode 100644 index 0000000000..1177330426 --- /dev/null +++ b/app/utils/build/resources/main/SourceCodePro-LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/app/utils/build/resources/main/SourceCodePro-Regular.ttf b/app/utils/build/resources/main/SourceCodePro-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..437f47280b4f611f2b211506c5c5eb887661194f GIT binary patch literal 197644 zcmdS?34Bdg`^Js0wTF`+GS9=#IXTJ6JWE1EL_}g1Nl2)97GqUaRW(&qQB_rKO;tQ< zs)i~Ws;a80s49x0imIY0s@ih$UiV)6B+=;^{{P?S^S++vn`@o5_t|@``@Yw>cT&a~ zW8V0ou$O^2>)y!C&ns?IF#P1F+n97EiZTBS1$nLV4_`jI1IK$XCQT|R z>{ML+oas#_y>W^$ud;&TF1gdKZO$|4-A0TB%8WJi^p%Q3hk3=HMES z4DS2L=;~@F_hL7ssx5DF>-MHUy#$3!J`i>v%+(>#1=dZ%~=8=6z418wA zw%3`|3FYw{J9^Y3V*`CJwqw$u?Tj_gIBQekE~C|7mig z9Q=HNxwA3MWE`)LZ@@0_oy26RjL%^za%M&c2NNs5_CzeudH ztX~*ETIA(+VmXXeS4-EbO;i%@(TDNZ={P?t&4ZZf>MWab=-LKmXn)WGl!7r}Do6vJ zKyT0)^aImCYfuD|z#xzU27s0z2GDn6L4A-8Y=Ev!*XRifK^DjZg8^NS^1Fi!P!8za zOhEZ`u0!V{T>x5v4j>gcgB*|y=or=K{|MN&%mE9;eH?b9`qhQ(SQi(3_6B6zf8vpU zbKLP=^3A`4{NNziNRv;AM;}&>?>YD< z+meqn>)3`zy>O;11_=J3nboE^*#c{7X$C?>=4qGTiPq#Z-GksqdKwVhj*Z)xRT6-|GYDdejHT0VG}kd6cI6QmoVYb3q>X7c`an2m1X8=-)`PU7eg1!jwefARg4qO0t0Itv0)L|Xcn++WP zbNJ8~`Q$??7nPgZBtd?X0NIo3m1HR8lg-J0iNN7MI*0Nde)2+^+E_o30LaD~pnDN2 zpcu*pEdlwNfF1RICK72nhwew^p?gu>kpHPH6btly@}r~dbS~Z3Q5HIfp!lM)kx%Fz zbUy4rb6dSEO`&uTx-LQYBFLw7&mn+(Np&WFngH2~d`*l5A%J4S5nH50A)q=Y1F}7x z(+iY=Oam)4A3O<~0kRd@j_yTx1G+z5s{l}Z5;&*&S14VF&Y^NpdFWn)K{O!y(6yHV z@};Bfbgl(B%1He%LFJ>eQ9hkZHXu9zm8BJ+d(d?Wx)3;75%As-z7WJbsf-m=^B*36woyYsw36y4EPsl2B?o9pL76e#^;Bj$)FGD2oeCb*I+Qh zNS8qA`*hB55Dzj8=v->kbbeiu>U=iWN!LB+KS@&?qw}cT1hoUw2vjO_)LCQ zKs^JsP8wybeh-`lutoJn93#J?EL5)Q`$$vy5gWRVzCfD#L+TTDfTducK?RiJ^(uJL z;8*CIMjjob&(tT)1C&1p&~>OUy$lY3!ypaN`5OS;ldgHi@CRL+`bN6W6M(L>vX0U< zUjPfh%Yd%?6QFx80hbJ@O}zx@{+|IV18kv}ovvREhJkWG*QD$H3{HVx09^-m)B71H zw;G?fLhC~Jr+d?VsD5V*b=37sqh3^3svF&lp!!kWD2A^AI!-(d4g#b8G-s@C4hA8Q z>PKa#x;fHxO{%BkvqQ;dYXRB18*qH4{%av{)cKFP$T&{lrE?wjr~8n-sjf4?>%dVL zO0x&4K7ld=PVsmKP@IFB&z|@U9G^)YX*%EWeTV+H$Mt*CeGMGf`G2eG^Urp*HlT9S zSf<+qO6j^~|8Mi_e)sRvbWO*xy6L)kl45@$lb%=5e_0A7V;sDDwX5 z7@hl<`Hk?MCZInk2Jryr>ho#RpYhlL&n58OhDr3?1J6p_j~Gud;*g6c8_1U#o@OB5 z#P8yqdh8cEU;pP&fzSEEG>lEG&#!SvZSeHWtaESTu`au`G_o zvjmpNl2|fJVX3SUOJnIQL*6XECvQ=nLY=Z$b5_FouqEtGcAT5I%AI&U?#x}dg~#z& z9?uhb2i~4{9wlY>Z$UkDYlx|ACJWqbvWHLF)JLK2p7v;H1 zPnOC0vL>uQ>&>2Kli3tj!B((;p@z%ZQFe?S;ibyg$~onN@||)?xv2c0e6L(qPBF!` z63?5qA{d<5R-D}s*2;lBCb19L7wjAM6R+Si_zV0c{syn)yZ9-7o`27;@Sl0L6eMLx zEv3# zL3WY7WV0M2$H~cZBe|KJE4Pw+BU&DnC&-gvm076s8}eGYQr;yWl)sRV%3sMRkN7;|M8rj#ht0>9Wy`VU+WOe~+XmT&MS4XRMGlDkKEXdB z;_R}s@BA*=tMP1>{xw7^NMbDz1xwjZc9@-IH+9d=2TFq+amcFlm%DUV2ihke-$1Nv}$aq&MKXmGIm~X^XT?+5yk)kq$}6rL!`V-DH2+ z3eP3Lb4_YIH&*xD6nJhnB67LBPTnAYBp-Ufb4+npl9YbR7-fz!UsHXEK>8v1_dfzZ>T zKZf4dJ?CjQ!*hw|6nL(QISZaEFpoBmH9u*tFh8$*Zn=3SJhv8}+hE>g-fDQxx5jgY zmSW38@Z22Be0c5_$0t;eseYL2-9Y98@1w2X=lA$;{0_g#f8xjaSJg??iPcud z?B9Wp9B0~h*tgj~w(quoWZz}~z<$BL$^MPw*x%{JuNb@dB{&9-T&%eG)Wz|Ccka2w zx<|h2etrghKHrD23tcXhoJXxM_~<#KkUQdh`T6DN@ovERf1O`}pKqRDa(*#%!TGu8 zQR{P?&%JYg*!f||aXs&L?t7^7d3Nsbxw$wtqQx+*Jlsyj~6`z#7%0A_ga!fgk_H{|QsoYlXD8DIo)mg2t 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