diff --git a/.classpath b/.classpath index 64e8893d55a..574e1c7f83d 100644 --- a/.classpath +++ b/.classpath @@ -4,7 +4,6 @@ - @@ -16,17 +15,17 @@ - + - + - - - - + + + + diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000000..e1a034449f9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1 @@ +Please read the Issues section of the Contributing Rules at the "Contributing" link to the right before submitting an issue report. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000000..0257f89eea7 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ +### All Submissions: + +* [ ] Have you followed the guidelines in our Contributing document? +* [ ] Have you checked to ensure there aren't other open [Pull Requests](https://github.com/arduino/Arduino/pulls?q=) for the same update/change? + + + +### New Feature Submissions: + +1. [ ] Does your submission pass tests? +2. [ ] Have you lint your code locally prior to submission? + +### Changes to Core Features: + +* [ ] Have you added an explanation of what your changes do and why you'd like us to include them? +* [ ] Have you written new tests for your core changes, as applicable? +* [ ] Have you successfully ran tests with your changes diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml new file mode 100644 index 00000000000..0a2e0a343e6 --- /dev/null +++ b/.github/workflows/ant.yml @@ -0,0 +1,34 @@ +name: Java CI + +on: + push: + pull_request: + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Ant + working-directory: ./build + run: | + sed -i 's###' build.xml + ant clean dist + - name: Install X virtual framebuffer + run: sudo apt-get install -y xvfb + - name: Run tests + working-directory: ./app + run: xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" ant test -Drunning-from-github-action=1 + - name: Publish results + uses: actions/upload-artifact@v1 + with: + name: html-results + path: app/test-bin/results/html/ + - name: Cleanup xvfb + uses: bcomnes/cleanup-xvfb@v1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d4b6b1e8dd7..27e2e104f28 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,102 +1,80 @@ -## Contributing guide -This document serves as a checklist before contributing to this repository. It includes includes links to read up on if topics are unclear to you. - -This guide mainly focuses on the proper use of Git. It has some overlap with the more general information found in the [Development Policy File](https://github.com/arduino/Arduino/wiki/Development-Policy). - -### 1. Before using the issue tracker -To report a bug or a small enhancement please use the [issue tracker](http://github.com/arduino/Arduino/issues). But check the following boxes before posting an issue: - -- [ ] `Your issue is NOT a question about an Arduino sketch.` Sketch questions are handled on the [Arduino Forum](http://forum.arduino.cc/). -- [ ] `Check if your issue has already been resolved in the` [hourly build](http://www.arduino.cc/en/Main/Software#hourly) -- [ ] `Your issue is not a duplicate.` So search for similar open and closed issues and pull-requests. -- [ ] `Make sure you are working on the right repository. See the table below.` - -| Repositories | Projects | -|---|---| -|[Arduino](https://github.com/arduino/Arduino) | Arduino IDE, arduino.cc (but not the Arduino Playground), Library Manager | -|[Arduino Playground](http://forum.arduino.cc/index.php?board=24.0) | This is a publicly editable wiki. Please either make the edit yourself or create a post | -|[Arduino Forum](https://github.com/arduino/forum-issues) | Issues about the Arduino Forum | -| [Libraries for Arduino IDE](https://github.com/arduino-libraries) | Changing libraries for the IDE | -| [Arduino-builder](https://github.com/arduino/arduino-builder)| | -|[Arduino Web Editor](https://github.com/arduino/arduino-create-agent) | | -|[Arduino SAMD Boards](https://github.com/arduino/ArduinoCore-samd)|Zero, MKR1000, MKRZero, etc. | -|[Arduino SAM Boards](https://github.com/arduino/ArduinoCore-sam)| Due | -|[Arduino AVR Boards toolchain (avr-gcc)](https://github.com/arduino/toolchain-avr)| | -|[Arduino's build of AVRDUDE](https://github.com/arduino/avrdude-build-script)|| -|Third party repository | for third party libraries, hardware packages or sketches | - -### 2. Posting the issue -When you have checked the previous boxes. Please consider the following points before posting the issue. - -- [ ] `Describe the issue based on the behaviour you were expecting` -- [ ] `Post complete error messages using markdown code fencing:` [Markdown Code Fencing Example](https://guides.github.com/features/mastering-markdown/#examples) -- [ ] `Provide a full set of steps necessary to reproduce the issue` -- [ ] `Demonstration code should be complete, correct and the minimum amount necessary to reproduce the issue` -- [ ] `Library Manager submissions: make sure your library meets all the requirements listed in the` [Library Manager FAQ](https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ) - -### 3. Pull Requests -Before starting to work on bigger topics like modifying the API or changes with backward compatibility trade-offs please discuss them in the [mailing list](https://groups.google.com/a/arduino.cc/forum/#!forum/developers) first. - -### 4. Commit messages -An easy to read pull request will speed up the merging process. Your commit messages need to be logically separate. And containing enough information on their own. When this is done consistently your pull request will have an easy to read log of changes. - -Your commits need to be [atomic](https://www.freshconsulting.com/atomic-commits/) which allows the repository to remain flexible after merging. - -If you did not read the following 7 points before or just want to fresh up. Please read up on them on this [website](https://chris.beams.io/posts/git-commit) by Chris Beams. - -1. Separate subject from body with a blank line -2. Limit the subject line (first line) to 50 characters -3. Capitalize the subject line -4. Do not end the subject line with a period `(.)` -5. Use the imperative mood in the subject line. -This should be in the written as giving an instruction for example "Fixed save-as bug" (it shows what the PR achieves when merging it) -6. Wrap body at 72 characters -7. Use the body to explain what, why and how - -If your pull request fixes, closes or resolves an issue please reference it in the body with the following [syntax](https://help.github.com/articles/closing-issues-via-commit-messages/). Also see the last lines of the following example. - -A general example with these 7 guidelines in mind is shown below (from the same website of [Chris Beams](https://chris.beams.io/posts/git-commit)): -``` -Summarize changes in around 50 characters or less - -More detailed explanatory text, if necessary. Wrap it to about 72 -characters or so. In some contexts, the first line is treated as the -subject of the commit and the rest of the text as the body. The -blank line separating the summary from the body is critical (unless -you omit the body entirely); various tools like `log`, `shortlog` -and `rebase` can get confused if you run the two together. - -Explain the problem that this commit is solving. Focus on why you -are making this change as opposed to how (the code explains that). -Are there side effects or other unintuitive consequences of this -change? Here's the place to explain them. - -Further paragraphs come after blank lines. - - - Bullet points are okay, too - - - Typically a hyphen or asterisk is used for the bullet, preceded - by a single space, with blank lines in between, but conventions - vary here - -If you use an issue tracker, put references to them at the bottom, -like this: - -Resolves: #123 -See also: #456, #789 -``` - -### 5. Rebasing pull requests -When different people are working on the Arduino project simultaneously, pull requests can go stale quickly. A "stale" pull request is one that is no longer up to date with the latest merges in the project. It needs to be updated before it can be merged. - -Most often pull requests become stale when merge conflicts occur. This happens when two pull requests both modify similar lines in the same file and one gets merged, the unmerged request will now have a merge conflict and needs updating. - -When your pull request is stale, you will need to rebase your branch on the current master branch before you can merge it without conflicts. - -More information about rebasing can be found at the repository of [edX](https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request). - -### 6. Merged! -When your pull request is merged please update the documentation if the changes require it: - -- [ ] Edit appropiate [Wiki pages](https://github.com/arduino/Arduino/wiki/_pages) -- [ ] Submit an [issue report](https://github.com/arduino/Arduino/issues/new) requesting changes to the [arduino.cc reference pages](https://www.arduino.cc/en/Reference/HomePage) +# Contributing Rules +Thanks for your interest in contributing to this free open source project! Arduino welcomes help from the community. There are several ways you can get involved: + +| Type of contribution | Contribution method | +|-|-| +| - Support request
- Question
- Problem with your Arduino
- Discussion | Post on the [Arduino Forum](http://forum.arduino.cc) | +| - Bug report
- [Arduino website](https://www.arduino.cc/) issue or improvement
- Feature request | Issue report (read the [issue guidelines](#issues)) | +| - Bug fix
- Enhancement | Pull Request (read the [pull request guidelines](#pull-requests)) | +| Translations for the Arduino IDE | [transifex](https://www.transifex.com/mbanzi/arduino-ide-15/) | +| Translations for the [Language Reference](https://www.arduino.cc/reference) | [Reference repositories](https://github.com/arduino?q=reference-) | +| Monetary | - [Donate](https://www.arduino.cc/en/Main/Contribute)
- [Buy official products](https://store.arduino.cc) | + + +## Issues +- Do you need help or have a question about using Arduino? Support requests should be made to the appropriate section of the [Arduino forum](http://forum.arduino.cc) rather than an issue report. **Issue reports are to be used to report bugs or make feature requests only.** +- Check if your issue has already been resolved in the [hourly build](http://www.arduino.cc/en/Main/Software#hourly). +- Submit issue reports to the correct repository: + +| Issue topic | Report at | +|-|-| +| Arduino IDE, arduino.cc (but not the Arduino Forum), Library Manager additions | [arduino/Arduino](https://github.com/arduino/Arduino/issues) | +| [Language Reference](https://www.arduino.cc/reference) | [Reference repositories](https://github.com/arduino?q=reference-) | +| Arduino Forum | [arduino/forum-issues](https://github.com/arduino/forum-issues/issues) | +| Arduino libraries | [arduino-libraries](https://github.com/arduino-libraries) | +| arduino-builder | [arduino/arduino-builder](https://github.com/arduino/arduino-builder/issues) | +| [Arduino Web Editor](https://create.arduino.cc/editor) | [**Create > Editor** section of the Arduino Forum](http://forum.arduino.cc/index.php?board=101.0) | +| Arduino AVR Boards (Uno, Mega, Leonardo, etc.) | [arduino/ArduinoCore-avr](https://github.com/arduino/ArduinoCore-avr/issues) | +| Arduino SAMD Boards (Zero, MKR1000, MKRZero, etc.) | [arduino/ArduinoCore-samd](https://github.com/arduino/ArduinoCore-samd/issues) | +| Arduino SAM Boards (Due) | [arduino/ArduinoCore-sam](https://github.com/arduino/ArduinoCore-sam/issues) | +| AVR Toolchain for Arduino | [arduino/toolchain-avr](https://github.com/arduino/toolchain-avr/issues) | +| Arduino's build of AVRDUDE | [arduino/avrdude-build-script](https://github.com/arduino/avrdude-build-script/issues) | +| Security vulnerability | See: [Coordinated Vulnerability Disclosure Policy](https://github.com/arduino/arduino-cvd-policy) | +| 3rd party libraries, hardware, or sketches | Report issues to the author of the software, *not* Arduino. | + +When you're not sure where your issue belongs, report it at [arduino/Arduino](https://github.com/arduino/Arduino) and we'll move it to where it belongs (but remember: Only bug reports and feature requests, do not ask for help with your own code there). + +- Search [existing pull requests and issues](https://github.com/arduino/Arduino/issues?q=) to be sure it hasn't already been reported. If you have additional information to provide about an existing issue then please comment on that issue. If you simply want to express your support then use the [Reactions feature](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). +- State the newest version of the Arduino IDE you have verified the issue with and which operating system you are using. +- The issue title should be concise yet descriptive. Vague titles make it difficult to know the purpose of the issue when looking through the list of reports and may cause your issue to not be given proper attention. +- Describe the issue and what behavior you were expecting. Post complete error messages using [Markdown code fencing](https://guides.github.com/features/mastering-markdown/#examples), three backticks before and after the error message: + ```` + ``` + my error message here + ``` + ```` +- Provide a full set of steps necessary to reproduce the issue. Demonstration code should be complete, correct, and simplified to the minimum amount of code necessary to reproduce the issue. Please use [Markdown code fencing](https://guides.github.com/features/mastering-markdown/#examples), three backticks before and after the code: + ```` + ``` + my code here + ``` + ```` +- Be responsive. We may need you to provide more information, please respond as soon as possible. +- If you find a solution to your problem update your issue report with an explanation of how you were able to fix it and close the issue. +- Library Manager submissions: make sure your library meets all the requirements listed in the [Library Manager FAQ](https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ). + + +## Pull Requests +Pull requests are an easy and effective way to submit a proposal for a change to the content of one of Arduino's repositories. The Arduino team can merge your change with a single click! You can find more information about pull requests [here](https://help.github.com/articles/creating-a-pull-request/). +- Big changes, changes to the API, or changes with backward compatibility trade-offs should be first discussed in the [Arduino Developers Mailing List](https://groups.google.com/a/arduino.cc/forum/#!forum/developers). +- Search [existing pull requests](https://github.com/arduino/Arduino/pulls?q=) to see if one has already been submitted for this change. Search the [issues](https://github.com/arduino/Arduino/issues?q=is%3Aissue) to see if there has been a discussion on this topic and whether your pull request can close any issues. +- Code formatting should be consistent with the style used in the existing code. +- Don't leave commented out code. A record of this code is already preserved in the commit history. +- Note that the Arduino core libraries support many boards and processors. When fixing or adding functionality for one of them, it's easy to break something on the others. Please test your changes on as many processors as possible. Even if you don't have a particular board, try compiling your patch for it to make sure that you haven't introduced any errors. +- All commits must be atomic. This means that the commit completely accomplishes a single task. Each commit should result in fully functional code. Multiple tasks should not be combined in a single commit, but a single task should not be split over multiple commits (e.g. one commit per file modified is not a good practice). For more information see http://www.freshconsulting.com/atomic-commits. +- Each pull request should address a single bug fix or enhancement. This may consist of multiple commits. If you have multiple, unrelated fixes or enhancements to contribute, submit them as separate pull requests. +- Commit messages: + - Use the [imperative mood](http://chris.beams.io/posts/git-commit/#imperative) in the title. For example: "Apply editor.indent preference" + - Capitalize the title. + - Do not end the title with a period. + - Separate title from the body with a blank line. If you're committing via GitHub or GitHub Desktop this will be done automatically. + - Wrap body at 72 characters. + - Completely explain the purpose of the commit. Include a rationale for the change, any caveats, side-effects, etc. + - If your pull request fixes an issue in the issue tracker, use the [closes/fixes/resolves syntax](https://help.github.com/articles/closing-issues-via-commit-messages) in the body to indicate this. + - See http://chris.beams.io/posts/git-commit for more tips on writing good commit messages. +- Pull request title and description should follow the same guidelines as commit messages. +- Rebasing pull requests is OK and encouraged. After submitting your pull request some changes may be requested. Rather than adding unnecessary extra commits to the pull request, you can squash these changes into the existing commit and then do a force push to your fork. When you do a force push to your fork, the PR will be updated with your new changes, so there is no need to open a new PR to make changes. Leave a comment on the pull request thread to explain that the history has been changed. This will help to keep the commit history of the repository clean. +- After your pull request is merged please update the documentation if the changes require it: + - Edit appropriate [Wiki pages](https://github.com/arduino/Arduino/wiki/_pages). + - Submit an [issue report](https://github.com/arduino/Arduino/issues/new) requesting changes to the [arduino.cc reference pages](https://www.arduino.cc/en/Reference/HomePage). +- For more contributing guidelines, see the [Arduino Development Policy](https://github.com/arduino/Arduino/wiki/Development-Policy). diff --git a/README.md b/README.md index 0bc3e34fb3a..1fd42861444 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,73 @@ -Arduino -======== +

+ +

-* Arduino is an open-source physical computing platform based on a simple I/O +Arduino is an open-source physical computing platform based on a simple I/O board and a development environment that implements the Processing/Wiring language. Arduino can be used to develop stand-alone interactive objects or can be connected to software on your computer (e.g. Flash, Processing and MaxMSP). The boards can be assembled by hand or purchased preassembled; the open-source -IDE can be downloaded for free at https://www.arduino.cc/en/Main/Software +IDE can be downloaded for free at [https://arduino.cc](https://www.arduino.cc/en/Main/Software) -* For more information, see the website at: https://www.arduino.cc/ -or the forums at: https://forum.arduino.cc/ -You can also follow Arduino on Twitter at: https://twitter.com/arduino or -like Arduino on Facebook at: https://www.facebook.com/official.arduino +## More info at -* To report a *bug* in the software or to request *a simple enhancement* go to: -https://github.com/arduino/Arduino/issues +- [Our website](https://www.arduino.cc/) -* More complex requests and technical discussion should go on the Arduino Developers -mailing list: -https://groups.google.com/a/arduino.cc/forum/#!forum/developers +- [The forums](https://forum.arduino.cc/) -* If you're interested in modifying or extending the Arduino software, we strongly -suggest discussing your ideas on the Developers mailing list *before* starting -to work on them. That way you can coordinate with the Arduino Team and others, +- Follow us on [Twitter](https://twitter.com/arduino) +- And like us at [Facebook](https://www.facebook.com/official.arduino) + +## Bug reports and technical discussions + +- To report a *bug* in the software or to request *a simple enhancement* go to [Github Issues](https://github.com/arduino/Arduino/issues) + +- More complex requests and technical discussion should go on the [Arduino Developers +mailing list](https://groups.google.com/a/arduino.cc/forum/#!forum/developers) + +- If you're interested in modifying or extending the Arduino software, we strongly +suggest discussing your ideas on the +[Developers mailing list](https://groups.google.com/a/arduino.cc/forum/#!forum/developers) + *before* starting to work on them. +That way you can coordinate with the Arduino Team and others, giving your work a higher chance of being integrated into the official release -https://groups.google.com/a/arduino.cc/forum/#!forum/developers -Installation ------------- -Detailed instructions for installation in popular operating systems. -For Linux: https://www.arduino.cc/en/Guide/Linux (see also the Arduino playground page https://playground.arduino.cc/Learning/Linux) -For macOS X: https://www.arduino.cc/en/Guide/MacOSX -For Windows: https://www.arduino.cc/en/Guide/Windows +## Installation + +Detailed instructions for installation in popular operating systems can be found at: + +- [Linux](https://www.arduino.cc/en/Guide/Linux) (see also the [Arduino playground](https://playground.arduino.cc/Learning/Linux)) +- [macOS](https://www.arduino.cc/en/Guide/MacOSX) +- [Windows](https://www.arduino.cc/en/Guide/Windows) + +## Contents of this repository + +This repository contains just the code for the Arduino IDE itself. +Originally, it also contained the AVR and SAM Arduino core and libraries +(i.e. the code that is compiled as part of a sketch and runs on the +actual Arduino device), but those have been moved into their own +repositories. They are still automatically downloaded as part of the +build process and included in built releases, though. + +The repositories for these extra parts can be found here: +- Non-core specific Libraries are listed under: + (and also a few other places, see `build/build.xml`). + +- The AVR core can be found at: + +- Other cores are not included by default but installed through the + board manager. Their repositories can also be found under + . + +## Building and testing + +Instructions for building the IDE and running unit tests can be found on +the wiki: +- +- + +## Credits -Credits --------- Arduino is an open source project, supported by many. The Arduino team is composed of Massimo Banzi, David Cuartielles, Tom Igoe @@ -43,8 +76,8 @@ and David A. Mellis. Arduino uses [GNU avr-gcc toolchain](https://gcc.gnu.org/wiki/avr-gcc), [GCC ARM Embedded toolchain](https://launchpad.net/gcc-arm-embedded), -[avr-libc](http://www.nongnu.org/avr-libc/), -[avrdude](http://www.nongnu.org/avrdude/), +[avr-libc](https://www.nongnu.org/avr-libc/), +[avrdude](https://www.nongnu.org/avrdude/), [bossac](http://www.shumatech.com/web/products/bossa), [openOCD](http://openocd.org/) and code from [Processing](https://www.processing.org) diff --git a/app/.classpath b/app/.classpath index 315612244ef..bb2bf7417c6 100644 --- a/app/.classpath +++ b/app/.classpath @@ -4,7 +4,6 @@ - @@ -30,20 +29,19 @@ - - - - - + + + - + + + - - + @@ -53,4 +51,8 @@ + + + + diff --git a/app/build.xml b/app/build.xml index cc38670adc6..fa3223642ff 100644 --- a/app/build.xml +++ b/app/build.xml @@ -1,5 +1,5 @@ - + @@ -80,6 +80,10 @@ includeAntRuntime="false" debug="true" classpathref="class.path" /> + + + + @@ -105,7 +109,20 @@ - + + + + + + + + + + + + + + @@ -117,9 +134,20 @@ + + - - + + + + + + + + + + + @@ -127,6 +155,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/lib/RSyntaxTextArea.License.txt b/app/lib/RSyntaxTextArea.License.txt new file mode 100644 index 00000000000..f0f2d4c743e --- /dev/null +++ b/app/lib/RSyntaxTextArea.License.txt @@ -0,0 +1,24 @@ +Copyright (c) 2012, Robert Futrell +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the author nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/app/lib/commons-io-2.6.jar b/app/lib/commons-io-2.6.jar new file mode 100644 index 00000000000..00556b119d4 Binary files /dev/null and b/app/lib/commons-io-2.6.jar differ diff --git a/app/lib/commons-lang3-3.3.2.jar b/app/lib/commons-lang3-3.3.2.jar deleted file mode 100644 index 2ce08ae99d1..00000000000 Binary files a/app/lib/commons-lang3-3.3.2.jar and /dev/null differ diff --git a/app/lib/commons-lang3-3.8.1.jar b/app/lib/commons-lang3-3.8.1.jar new file mode 100644 index 00000000000..2c65ce67d5c Binary files /dev/null and b/app/lib/commons-lang3-3.8.1.jar differ diff --git a/app/lib/jackson-annotations-2.6.3.jar b/app/lib/jackson-annotations-2.6.3.jar deleted file mode 100644 index 9bb53e875cc..00000000000 Binary files a/app/lib/jackson-annotations-2.6.3.jar and /dev/null differ diff --git a/app/lib/jackson-annotations-2.9.5.jar b/app/lib/jackson-annotations-2.9.5.jar new file mode 100644 index 00000000000..98ea0047791 Binary files /dev/null and b/app/lib/jackson-annotations-2.9.5.jar differ diff --git a/app/lib/jackson-core-2.6.3.jar b/app/lib/jackson-core-2.6.3.jar deleted file mode 100644 index e1ec916dddc..00000000000 Binary files a/app/lib/jackson-core-2.6.3.jar and /dev/null differ diff --git a/app/lib/jackson-core-2.9.5.jar b/app/lib/jackson-core-2.9.5.jar new file mode 100644 index 00000000000..b70d1ef1ac8 Binary files /dev/null and b/app/lib/jackson-core-2.9.5.jar differ diff --git a/app/lib/jackson-databind-2.6.3.jar b/app/lib/jackson-databind-2.6.3.jar deleted file mode 100644 index e60f9fe1a7c..00000000000 Binary files a/app/lib/jackson-databind-2.6.3.jar and /dev/null differ diff --git a/app/lib/jackson-databind-2.9.5.jar b/app/lib/jackson-databind-2.9.5.jar new file mode 100644 index 00000000000..7a951509890 Binary files /dev/null and b/app/lib/jackson-databind-2.9.5.jar differ diff --git a/app/lib/jackson-module-mrbean-2.6.3.jar b/app/lib/jackson-module-mrbean-2.6.3.jar deleted file mode 100644 index 69cc60a5808..00000000000 Binary files a/app/lib/jackson-module-mrbean-2.6.3.jar and /dev/null differ diff --git a/app/lib/jmdns-3.5.1.jar b/app/lib/jmdns-3.5.1.jar deleted file mode 100644 index f9527c104c0..00000000000 Binary files a/app/lib/jmdns-3.5.1.jar and /dev/null differ diff --git a/app/lib/jmdns-3.5.5.jar b/app/lib/jmdns-3.5.5.jar new file mode 100644 index 00000000000..a8b65ff2ec7 Binary files /dev/null and b/app/lib/jmdns-3.5.5.jar differ diff --git a/app/lib/jssc-2.8.0-arduino1.jar b/app/lib/jssc-2.8.0-arduino1.jar deleted file mode 100755 index 3cf257ea634..00000000000 Binary files a/app/lib/jssc-2.8.0-arduino1.jar and /dev/null differ diff --git a/app/lib/jssc-2.8.0-arduino4.jar b/app/lib/jssc-2.8.0-arduino4.jar new file mode 100644 index 00000000000..623a3833bce Binary files /dev/null and b/app/lib/jssc-2.8.0-arduino4.jar differ diff --git a/app/lib/jtouchbar-1.0.0.jar b/app/lib/jtouchbar-1.0.0.jar new file mode 100644 index 00000000000..2c473bec881 Binary files /dev/null and b/app/lib/jtouchbar-1.0.0.jar differ diff --git a/app/lib/jtouchbar.LICENSE.MIT.txt b/app/lib/jtouchbar.LICENSE.MIT.txt new file mode 100644 index 00000000000..f4fa99707a0 --- /dev/null +++ b/app/lib/jtouchbar.LICENSE.MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 thizzer.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/app/lib/log4j-api-2.12.0.jar b/app/lib/log4j-api-2.12.0.jar new file mode 100644 index 00000000000..93f770d64a9 Binary files /dev/null and b/app/lib/log4j-api-2.12.0.jar differ diff --git a/app/lib/log4j-core-2.12.0.jar b/app/lib/log4j-core-2.12.0.jar new file mode 100644 index 00000000000..fbab720635d Binary files /dev/null and b/app/lib/log4j-core-2.12.0.jar differ diff --git a/app/lib/rsyntaxtextarea-2.6.1.jar b/app/lib/rsyntaxtextarea-2.6.1.jar deleted file mode 100644 index b834e2d412b..00000000000 Binary files a/app/lib/rsyntaxtextarea-2.6.1.jar and /dev/null differ diff --git a/app/lib/rsyntaxtextarea-3.0.3-SNAPSHOT.jar b/app/lib/rsyntaxtextarea-3.0.3-SNAPSHOT.jar new file mode 100644 index 00000000000..e1844494aca Binary files /dev/null and b/app/lib/rsyntaxtextarea-3.0.3-SNAPSHOT.jar differ diff --git a/app/lib/rsyntaxtextarea-BSD.txt b/app/lib/rsyntaxtextarea-BSD.txt deleted file mode 100644 index 3a6e638904a..00000000000 --- a/app/lib/rsyntaxtextarea-BSD.txt +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2012, Robert Futrell -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the author nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/app/src/cc/arduino/ConsoleOutputStream.java b/app/src/cc/arduino/ConsoleOutputStream.java index 452c190b414..6334f11e7e2 100644 --- a/app/src/cc/arduino/ConsoleOutputStream.java +++ b/app/src/cc/arduino/ConsoleOutputStream.java @@ -52,7 +52,7 @@ */ public class ConsoleOutputStream extends ByteArrayOutputStream { - private final SimpleAttributeSet attributes; + private SimpleAttributeSet attributes; private final PrintStream printStream; private final Timer timer; @@ -73,6 +73,10 @@ public ConsoleOutputStream(SimpleAttributeSet attributes, PrintStream printStrea timer.setRepeats(false); } + public void setAttibutes(SimpleAttributeSet attributes) { + this.attributes = attributes; + } + public void setCurrentEditorConsole(EditorConsole console) { this.editorConsole = console; } diff --git a/app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java b/app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java index 3dcda927274..d28d735e35f 100644 --- a/app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java +++ b/app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java @@ -29,9 +29,6 @@ package cc.arduino.contributions; -import cc.arduino.contributions.filters.BuiltInPredicate; -import cc.arduino.contributions.filters.InstalledPredicate; -import cc.arduino.contributions.packages.ContributedPackage; import cc.arduino.contributions.packages.ContributedPlatform; import processing.app.Base; import processing.app.BaseNoGui; @@ -39,8 +36,8 @@ import processing.app.PreferencesData; import javax.swing.*; -import java.util.Collection; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import static processing.app.I18n.tr; @@ -67,13 +64,21 @@ private void builtInPackageIsNewerCheck() throws InterruptedException { return; } - List contributedPlatforms = BaseNoGui.indexer.getPackages().stream().map(ContributedPackage::getPlatforms).flatMap(Collection::stream).collect(Collectors.toList()); + List contributedPlatforms = BaseNoGui.indexer + .getPackages().stream() // + .map(pack -> pack.getPlatforms()) // + .flatMap(platfs -> platfs.stream()) // + .collect(Collectors.toList()); - List installedBuiltInPlatforms = contributedPlatforms.stream().filter(new InstalledPredicate()).filter(new BuiltInPredicate()).collect(Collectors.toList()); - if (installedBuiltInPlatforms.size() != 1) { + Optional mayInstalledBuiltIn = contributedPlatforms + .stream() // + .filter(p -> p.isInstalled()) // + .filter(p -> p.isBuiltIn()) // + .findFirst(); + if (!mayInstalledBuiltIn.isPresent()) { return; } - final ContributedPlatform installedBuiltIn = installedBuiltInPlatforms.get(0); + final ContributedPlatform installedBuiltIn = mayInstalledBuiltIn.get(); ContributedPlatform installedNotBuiltIn = BaseNoGui.indexer.getInstalled(installedBuiltIn.getParentPackage().getName(), installedBuiltIn.getArchitecture()); if (installedNotBuiltIn == null) { @@ -84,7 +89,7 @@ private void builtInPackageIsNewerCheck() throws InterruptedException { Thread.sleep(100); } - if (VersionHelper.valueOf(installedBuiltIn.getParsedVersion()).greaterThan(VersionHelper.valueOf(installedNotBuiltIn.getParsedVersion()))) { + if (VersionComparator.greaterThan(installedBuiltIn.getParsedVersion(), installedNotBuiltIn.getParsedVersion())) { SwingUtilities.invokeLater(() -> { PreferencesData.setInteger("builtin_platform_is_newer", BaseNoGui.REVISION); assert base.hasActiveEditor(); diff --git a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java index ed9f638c8a6..96fd987b099 100644 --- a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java +++ b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java @@ -29,32 +29,34 @@ package cc.arduino.contributions; +import cc.arduino.UpdatableBoardsLibsFakeURLsHandler; import cc.arduino.contributions.libraries.LibraryInstaller; import cc.arduino.contributions.libraries.filters.UpdatableLibraryPredicate; import cc.arduino.contributions.packages.ContributionInstaller; import cc.arduino.contributions.packages.filters.UpdatablePlatformPredicate; import cc.arduino.view.NotificationPopup; -import processing.app.Base; -import processing.app.BaseNoGui; -import processing.app.Editor; -import processing.app.I18n; +import org.apache.logging.log4j.LogManager; +import processing.app.*; import javax.swing.*; import javax.swing.event.HyperlinkListener; import java.awt.event.WindowEvent; import java.awt.event.WindowFocusListener; +import java.net.URL; import java.util.TimerTask; import static processing.app.I18n.tr; -public class ContributionsSelfCheck extends TimerTask { +public class ContributionsSelfCheck extends TimerTask implements NotificationPopup.OptionalButtonCallbacks { private final Base base; private final HyperlinkListener hyperlinkListener; private final ContributionInstaller contributionInstaller; private final LibraryInstaller libraryInstaller; private final ProgressListener progressListener; + private final String boardsManagerURL = "http://boardsmanager/DropdownUpdatableCoresItem"; + private final String libraryManagerURL = "http://librarymanager/DropdownUpdatableLibrariesItem"; private volatile boolean cancelled; private volatile NotificationPopup notificationPopup; @@ -73,25 +75,49 @@ public void run() { updateContributionIndex(); updateLibrariesIndex(); - long updatablePlatforms = BaseNoGui.indexer.getPackages().stream() - .flatMap(pack -> pack.getPlatforms().stream()) - .filter(new UpdatablePlatformPredicate()).count(); + boolean updatablePlatforms = checkForUpdatablePlatforms(); - long updatableLibraries = BaseNoGui.librariesIndexer.getInstalledLibraries().stream() - .filter(new UpdatableLibraryPredicate()) - .count(); + boolean updatableLibraries = checkForUpdatableLibraries(); - if (updatableLibraries <= 0 && updatablePlatforms <= 0) { + if (!updatableLibraries && !updatablePlatforms) { return; } - String text; - if (updatableLibraries > 0 && updatablePlatforms <= 0) { - text = I18n.format(tr("Updates available for some of your {0}libraries{1}"), "", ""); - } else if (updatableLibraries <= 0 && updatablePlatforms > 0) { - text = I18n.format(tr("Updates available for some of your {0}boards{1}"), "", ""); + boolean setAccessible = PreferencesData.getBoolean("ide.accessible"); + final String text; + final String button1Name; + final String button2Name; + String openAnchorBoards = ""; + String closeAnchorBoards = ""; + String openAnchorLibraries = ""; + String closeAnchorLibraries = ""; + + // if accessibility mode and board updates are available set the button name and clear the anchors + if(setAccessible && updatablePlatforms) { + button1Name = tr("Boards"); + openAnchorBoards = ""; + closeAnchorBoards = ""; + } + else { // when not accessibility mode or no boards to update no button is needed + button1Name = null; + } + + // if accessibility mode and libraries updates are available set the button name and clear the anchors + if (setAccessible && updatableLibraries) { + button2Name = tr("Libraries"); + openAnchorLibraries = ""; + closeAnchorLibraries = ""; + } + else { // when not accessibility mode or no libraries to update no button is needed + button2Name = null; + } + + if (updatableLibraries && !updatablePlatforms) { + text = I18n.format(tr("Updates available for some of your {0}libraries{1}"), openAnchorLibraries, closeAnchorLibraries); + } else if (!updatableLibraries && updatablePlatforms) { + text = I18n.format(tr("Updates available for some of your {0}boards{1}"), openAnchorBoards, closeAnchorBoards); } else { - text = I18n.format(tr("Updates available for some of your {0}boards{1} and {2}libraries{3}"), "", "", "", ""); + text = I18n.format(tr("Updates available for some of your {0}boards{1} and {2}libraries{3}"), openAnchorBoards, closeAnchorBoards, openAnchorLibraries, closeAnchorLibraries); } if (cancelled) { @@ -100,7 +126,13 @@ public void run() { SwingUtilities.invokeLater(() -> { Editor ed = base.getActiveEditor(); - notificationPopup = new NotificationPopup(ed, hyperlinkListener, text); + boolean accessibleIde = PreferencesData.getBoolean("ide.accessible"); + if (accessibleIde) { + notificationPopup = new NotificationPopup(ed, hyperlinkListener, text, false, this, button1Name, button2Name); + } + else { // if not accessible view leave it the same + notificationPopup = new NotificationPopup(ed, hyperlinkListener, text); + } if (ed.isFocused()) { notificationPopup.begin(); return; @@ -126,6 +158,35 @@ public void windowGainedFocus(WindowEvent evt) { }); } + private void goToManager(String link) { + try { + ((UpdatableBoardsLibsFakeURLsHandler) hyperlinkListener).openBoardLibManager(new URL(link)); + } + catch (Exception e){ + LogManager.getLogger(ContributionsSelfCheck.class).warn("Exception while attempting to go to board manager", e); + } + } + // callback for boards button + public void onOptionalButton1Callback() { + goToManager(boardsManagerURL); + } + + // callback for libraries button + public void onOptionalButton2Callback() { + goToManager(libraryManagerURL); + } + + static boolean checkForUpdatablePlatforms() { + return BaseNoGui.indexer.getPackages().stream() + .flatMap(pack -> pack.getPlatforms().stream()) + .anyMatch(new UpdatablePlatformPredicate()); + } + + static boolean checkForUpdatableLibraries() { + return BaseNoGui.librariesIndexer.getIndex().getLibraries().stream() + .anyMatch(new UpdatableLibraryPredicate()); + } + @Override public boolean cancel() { cancelled = true; diff --git a/app/src/cc/arduino/contributions/filters/NoopPredicate.java b/app/src/cc/arduino/contributions/filters/NoopPredicate.java deleted file mode 100644 index 47580917e89..00000000000 --- a/app/src/cc/arduino/contributions/filters/NoopPredicate.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.filters; - -import java.util.function.Predicate; - -public class NoopPredicate implements Predicate { - - @Override - public boolean test(T input) { - return true; - } - - @Override - public boolean equals(Object obj) { - return obj instanceof NoopPredicate; - } - - -} diff --git a/app/src/cc/arduino/contributions/libraries/LibraryByTypeComparator.java b/app/src/cc/arduino/contributions/libraries/LibraryByTypeComparator.java deleted file mode 100644 index dd11773c8b9..00000000000 --- a/app/src/cc/arduino/contributions/libraries/LibraryByTypeComparator.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries; - -import java.util.Comparator; - -public class LibraryByTypeComparator implements Comparator { - - private final LibraryTypeComparator libraryTypeComparator; - - public LibraryByTypeComparator() { - this(new LibraryTypeComparator()); - } - - public LibraryByTypeComparator(LibraryTypeComparator libraryTypeComparator) { - this.libraryTypeComparator = libraryTypeComparator; - } - - @Override - public int compare(ContributedLibrary o1, ContributedLibrary o2) { - if (o1.getTypes() == null) { - return 1; - } - if (o2.getTypes() == null) { - return -1; - } - return libraryTypeComparator.compare(o1.getTypes().get(0), o2.getTypes().get(0)); - } - -} diff --git a/app/src/cc/arduino/contributions/libraries/LibraryOfSameTypeComparator.java b/app/src/cc/arduino/contributions/libraries/LibraryOfSameTypeComparator.java index 4a87e8bd090..74bd3767518 100644 --- a/app/src/cc/arduino/contributions/libraries/LibraryOfSameTypeComparator.java +++ b/app/src/cc/arduino/contributions/libraries/LibraryOfSameTypeComparator.java @@ -31,18 +31,23 @@ import java.util.Comparator; -public class LibraryOfSameTypeComparator implements Comparator { +import processing.app.packages.UserLibrary; + +public class LibraryOfSameTypeComparator implements Comparator { @Override - public int compare(ContributedLibrary o1, ContributedLibrary o2) { - if (o1.getTypes() == null) { + public int compare(UserLibrary o1, UserLibrary o2) { + if (o1.getTypes().isEmpty() && o2.getTypes().isEmpty()) { + return 0; + } + if (o1.getTypes().isEmpty()) { return 1; } - if (o2.getTypes() == null) { + if (o2.getTypes().isEmpty()) { return -1; } if (!o1.getTypes().get(0).equals(o2.getTypes().get(0))) { - return 0; + return o1.getTypes().get(0).compareTo(o2.getTypes().get(0)); } return o1.getName().compareTo(o2.getName()); } diff --git a/app/src/cc/arduino/contributions/libraries/filters/CategoryPredicate.java b/app/src/cc/arduino/contributions/libraries/filters/CategoryPredicate.java deleted file mode 100644 index 3d857327315..00000000000 --- a/app/src/cc/arduino/contributions/libraries/filters/CategoryPredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.filters; - -import cc.arduino.contributions.libraries.ContributedLibrary; - -import java.util.function.Predicate; - -public class CategoryPredicate implements Predicate { - - private final String category; - - public CategoryPredicate(String category) { - this.category = category; - } - - @Override - public boolean test(ContributedLibrary input) { - return input.getCategory() != null && category.equals(input.getCategory()); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof CategoryPredicate && ((CategoryPredicate) obj).category.equals(category); - } - -} diff --git a/app/src/cc/arduino/contributions/libraries/filters/InstalledLibraryPredicate.java b/app/src/cc/arduino/contributions/libraries/filters/InstalledLibraryPredicate.java deleted file mode 100644 index a606f823b17..00000000000 --- a/app/src/cc/arduino/contributions/libraries/filters/InstalledLibraryPredicate.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.filters; - -import cc.arduino.contributions.filters.InstalledPredicate; -import cc.arduino.contributions.libraries.ContributedLibrary; -import processing.app.BaseNoGui; - -import java.util.List; -import java.util.function.Predicate; - -public class InstalledLibraryPredicate implements Predicate { - - @Override - public boolean test(ContributedLibrary input) { - if (input.isInstalled()) { - return true; - } - - List libraries = BaseNoGui.librariesIndexer.getIndex().find(input.getName()); - - return libraries.stream() - .filter(new InstalledPredicate()) - .count() > 0; - } - - @Override - public boolean equals(Object obj) { - return obj instanceof InstalledLibraryPredicate; - } - -} diff --git a/app/src/cc/arduino/contributions/libraries/filters/OnlyUpstreamReleasePredicate.java b/app/src/cc/arduino/contributions/libraries/filters/OnlyUpstreamReleasePredicate.java deleted file mode 100644 index ff3e678854a..00000000000 --- a/app/src/cc/arduino/contributions/libraries/filters/OnlyUpstreamReleasePredicate.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.filters; - -import cc.arduino.contributions.libraries.ContributedLibrary; -import processing.app.packages.UserLibrary; - -import java.util.function.Predicate; - -public class OnlyUpstreamReleasePredicate implements Predicate { - - @Override - public boolean test(ContributedLibrary input) { - return !(input instanceof UserLibrary); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof OnlyUpstreamReleasePredicate; - } -} diff --git a/app/src/cc/arduino/contributions/libraries/filters/UpdatableLibraryPredicate.java b/app/src/cc/arduino/contributions/libraries/filters/UpdatableLibraryPredicate.java index 32165643b4a..e96f1759423 100644 --- a/app/src/cc/arduino/contributions/libraries/filters/UpdatableLibraryPredicate.java +++ b/app/src/cc/arduino/contributions/libraries/filters/UpdatableLibraryPredicate.java @@ -29,32 +29,34 @@ package cc.arduino.contributions.libraries.filters; +import java.util.List; +import java.util.function.Predicate; + import cc.arduino.contributions.VersionComparator; import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.LibrariesIndexer; import processing.app.BaseNoGui; -import processing.app.packages.UserLibrary; - -import java.util.List; -import java.util.function.Predicate; public class UpdatableLibraryPredicate implements Predicate { - private final VersionComparator versionComparator; + LibrariesIndexer librariesIndexer; public UpdatableLibraryPredicate() { - this.versionComparator = new VersionComparator(); + librariesIndexer = BaseNoGui.librariesIndexer; + } + + public UpdatableLibraryPredicate(LibrariesIndexer indexer) { + librariesIndexer = indexer; } @Override - public boolean test(ContributedLibrary contributedLibrary) { - String libraryName = contributedLibrary.getName(); - UserLibrary installed = BaseNoGui.librariesIndexer.getInstalledLibraries().getByName(libraryName); - if (installed == null) { + public boolean test(ContributedLibrary lib) { + if (!lib.isLibraryInstalled()) { return false; } - List libraries = BaseNoGui.librariesIndexer.getIndex().find(libraryName); - return libraries.stream() - .filter(library -> versionComparator.greaterThan(library.getParsedVersion(), installed.getParsedVersion())) - .count() > 0; + String libraryName = lib.getName(); + List libraries = librariesIndexer.getIndex().find(libraryName); + ContributedLibrary latest = libraries.stream().reduce(VersionComparator::max).get(); + return !latest.isLibraryInstalled(); } } diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleases.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleases.java deleted file mode 100644 index a1eb1424de7..00000000000 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleases.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.ui; - -import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator; -import cc.arduino.contributions.filters.InstalledPredicate; -import cc.arduino.contributions.libraries.ContributedLibrary; -import cc.arduino.contributions.ui.FilteredAbstractTableModel; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.stream.Collectors; - -public class ContributedLibraryReleases { - - private final ContributedLibrary library; - private final List releases; - private final List versions; - - private ContributedLibrary selected; - - public ContributedLibraryReleases(ContributedLibrary library) { - this.library = library; - this.versions = new LinkedList<>(); - this.releases = new LinkedList<>(); - this.selected = null; - add(library); - } - - public ContributedLibrary getLibrary() { - return library; - } - - public List getReleases() { - return releases; - } - - public boolean shouldContain(ContributedLibrary lib) { - return lib.getName().equals(library.getName()); - } - - public void add(ContributedLibrary library) { - releases.add(library); - String version = library.getParsedVersion(); - if (version != null) { - versions.add(version); - } - selected = getLatest(); - } - - public ContributedLibrary getInstalled() { - List installedReleases = releases.stream().filter(new InstalledPredicate()).collect(Collectors.toList()); - Collections.sort(installedReleases, new DownloadableContributionBuiltInAtTheBottomComparator()); - - if (installedReleases.isEmpty()) { - return null; - } - - return installedReleases.get(0); - } - - public ContributedLibrary getLatest() { - return FilteredAbstractTableModel.getLatestOf(releases); - } - - public ContributedLibrary getSelected() { - return selected; - } - - public void select(ContributedLibrary value) { - for (ContributedLibrary plat : releases) { - if (plat == value) { - selected = plat; - return; - } - } - } -} diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleasesComparator.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleasesComparator.java index 0395a16f666..11436b2ccfb 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleasesComparator.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryReleasesComparator.java @@ -30,8 +30,11 @@ package cc.arduino.contributions.libraries.ui; import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; +import java.util.Arrays; import java.util.Comparator; +import java.util.List; public class ContributedLibraryReleasesComparator implements Comparator { @@ -43,12 +46,14 @@ public ContributedLibraryReleasesComparator(String firstType) { @Override public int compare(ContributedLibraryReleases o1, ContributedLibraryReleases o2) { - ContributedLibrary lib1 = o1.getLibrary(); - ContributedLibrary lib2 = o2.getLibrary(); + ContributedLibrary lib1 = o1.getLatest(); + ContributedLibrary lib2 = o2.getLatest(); + + List types1 = lib1.getTypes(); + List types2 = lib2.getTypes(); + if (types1 == null) types1 = Arrays.asList(); + if (types2 == null) types2 = Arrays.asList(); - if (lib1.getTypes() == null || lib2.getTypes() == null) { - return compareName(lib1, lib2); - } if (lib1.getTypes().contains(firstType) && lib2.getTypes().contains(firstType)) { return compareName(lib1, lib2); } diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellEditor.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellEditor.java index f2299ac52b5..7c2ecff383f 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellEditor.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellEditor.java @@ -36,17 +36,15 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; -import java.util.stream.Collectors; +import java.util.Optional; import javax.swing.JComboBox; import javax.swing.JTable; import cc.arduino.contributions.DownloadableContributionVersionComparator; import cc.arduino.contributions.VersionComparator; -import cc.arduino.contributions.filters.BuiltInPredicate; -import cc.arduino.contributions.filters.InstalledPredicate; import cc.arduino.contributions.libraries.ContributedLibrary; -import cc.arduino.contributions.libraries.filters.OnlyUpstreamReleasePredicate; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.ui.InstallerTableCell; import cc.arduino.utils.ReverseComparator; @@ -76,64 +74,58 @@ public Component getTableCellEditorComponent(JTable table, Object value, ContributedLibrary lib = (ContributedLibrary) chooser.getSelectedItem(); onInstall(lib, editorValue.getInstalled()); }); - editorCell.versionToInstallChooser.addItemListener(e -> editorValue - .select((ContributedLibrary) editorCell.versionToInstallChooser - .getSelectedItem())); + editorCell.versionToInstallChooser.addActionListener(e -> { + editorValue.select((ContributedLibrary) editorCell.versionToInstallChooser.getSelectedItem()); + if (editorCell.versionToInstallChooser.getSelectedIndex() != 0) { + InstallerTableCell.dropdownSelected(true); + } + }); setEnabled(true); - final ContributedLibrary installed = editorValue.getInstalled(); - - List releases = editorValue.getReleases().stream() - .filter(new OnlyUpstreamReleasePredicate()) - .collect(Collectors.toList()); - List uninstalledReleases = releases.stream() - .filter(new InstalledPredicate().negate()).collect(Collectors.toList()); - - List installedBuiltIn = releases.stream() - .filter(new InstalledPredicate()).filter(new BuiltInPredicate()) - .collect(Collectors.toList()); + final Optional mayInstalled = editorValue.getInstalled(); - if (installed != null && !installedBuiltIn.contains(installed)) { - uninstalledReleases.addAll(installedBuiltIn); + List releases = editorValue.getReleases(); + List notInstalled = new LinkedList<>(releases); + if (mayInstalled.isPresent()) { + notInstalled.remove(editorValue.getInstalled().get()); } - Collections.sort(uninstalledReleases, new ReverseComparator<>( + Collections.sort(notInstalled, new ReverseComparator<>( new DownloadableContributionVersionComparator())); editorCell.downgradeChooser.removeAllItems(); editorCell.downgradeChooser.addItem(tr("Select version")); - final List uninstalledPreviousReleases = new LinkedList<>(); - final List uninstalledNewerReleases = new LinkedList<>(); + final List notInstalledPrevious = new LinkedList<>(); + final List notInstalledNewer = new LinkedList<>(); - final VersionComparator versionComparator = new VersionComparator(); - uninstalledReleases.stream().forEach(input -> { - if (installed == null - || versionComparator.greaterThan(installed.getParsedVersion(), - input.getParsedVersion())) { - uninstalledPreviousReleases.add(input); + notInstalled.stream().forEach(input -> { + if (!mayInstalled.isPresent() + || VersionComparator.greaterThan(mayInstalled.get(), input)) { + notInstalledPrevious.add(input); } else { - uninstalledNewerReleases.add(input); + notInstalledNewer.add(input); } }); - uninstalledNewerReleases.forEach(editorCell.downgradeChooser::addItem); - uninstalledPreviousReleases.forEach(editorCell.downgradeChooser::addItem); + notInstalledNewer.forEach(editorCell.downgradeChooser::addItem); + notInstalledPrevious.forEach(editorCell.downgradeChooser::addItem); editorCell.downgradeChooser - .setVisible(installed != null - && (!uninstalledPreviousReleases.isEmpty() - || uninstalledNewerReleases.size() > 1)); + .setVisible(mayInstalled.isPresent() + && (!notInstalledPrevious.isEmpty() + || notInstalledNewer.size() > 1)); editorCell.downgradeButton - .setVisible(installed != null - && (!uninstalledPreviousReleases.isEmpty() - || uninstalledNewerReleases.size() > 1)); + .setVisible(mayInstalled.isPresent() + && (!notInstalledPrevious.isEmpty() + || notInstalledNewer.size() > 1)); editorCell.versionToInstallChooser.removeAllItems(); - uninstalledReleases.forEach(editorCell.versionToInstallChooser::addItem); + notInstalled.forEach(editorCell.versionToInstallChooser::addItem); editorCell.versionToInstallChooser - .setVisible(installed == null && uninstalledReleases.size() > 1); + .setVisible(!mayInstalled.isPresent() && notInstalled.size() > 1); + editorCell.setForeground(Color.BLACK); editorCell.setBackground(new Color(218, 227, 227)); // #dae3e3 return editorCell; } @@ -152,7 +144,7 @@ protected void onRemove(ContributedLibrary selected) { } protected void onInstall(ContributedLibrary selected, - ContributedLibrary installed) { + Optional mayInstalled) { // Empty } diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java index 5a7c091683a..4f8c15f5642 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellJPanel.java @@ -3,20 +3,12 @@ import static processing.app.I18n.format; import static processing.app.I18n.tr; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Insets; - -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTable; -import javax.swing.JTextPane; +import java.awt.*; +import java.util.Optional; + +import javax.swing.*; import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; import javax.swing.event.HyperlinkEvent; import javax.swing.text.Document; import javax.swing.text.html.HTMLDocument; @@ -24,12 +16,15 @@ import cc.arduino.contributions.DownloadableContributionVersionComparator; import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.ui.InstallerTableCell; import processing.app.Base; +import processing.app.PreferencesData; import processing.app.Theme; public class ContributedLibraryTableCellJPanel extends JPanel { + final JButton moreInfoButton; final JButton installButton; final Component installButtonPlaceholder; final JComboBox downgradeChooser; @@ -38,12 +33,22 @@ public class ContributedLibraryTableCellJPanel extends JPanel { final JPanel buttonsPanel; final JPanel inactiveButtonsPanel; final JLabel statusLabel; + final JTextPane description; + final TitledBorder titledBorder; + private final String moreInfoLbl = tr("More info"); public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, boolean isSelected) { super(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + // Actual title set below + titledBorder = BorderFactory.createTitledBorder(""); + titledBorder.setTitleFont(getFont().deriveFont(Font.BOLD)); + setBorder(titledBorder); + + moreInfoButton = new JButton(moreInfoLbl); + moreInfoButton.setVisible(false); installButton = new JButton(tr("Install")); int width = installButton.getPreferredSize().width; installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); @@ -52,25 +57,37 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, downgradeChooser = new JComboBox(); downgradeChooser.addItem("-"); - downgradeChooser.setMaximumSize(downgradeChooser.getPreferredSize()); - downgradeChooser.addItemListener(e -> { + downgradeChooser.setMaximumSize(new Dimension((int)downgradeChooser.getPreferredSize().getWidth() + 50, (int)downgradeChooser.getPreferredSize().getHeight())); + downgradeChooser.setMinimumSize(new Dimension((int)downgradeChooser.getPreferredSize().getWidth() + 50, (int)downgradeChooser.getPreferredSize().getHeight())); + downgradeChooser.addActionListener(e -> { Object selectVersionItem = downgradeChooser.getItemAt(0); - boolean disableDowngrade = (e.getItem() == selectVersionItem); + boolean disableDowngrade = (downgradeChooser.getSelectedItem() == selectVersionItem); downgradeButton.setEnabled(!disableDowngrade); + if (!disableDowngrade) { + InstallerTableCell.dropdownSelected(true); + } }); versionToInstallChooser = new JComboBox(); versionToInstallChooser.addItem("-"); versionToInstallChooser - .setMaximumSize(versionToInstallChooser.getPreferredSize()); + .setMaximumSize(new Dimension((int)versionToInstallChooser.getPreferredSize().getWidth() + 50, (int)versionToInstallChooser.getPreferredSize().getHeight())); + versionToInstallChooser + .setMinimumSize(new Dimension((int)versionToInstallChooser.getPreferredSize().getWidth() + 50, (int)versionToInstallChooser.getPreferredSize().getHeight())); - makeNewDescription(); + description = makeNewDescription(); + add(description); buttonsPanel = new JPanel(); buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); buttonsPanel.setOpaque(false); buttonsPanel.add(Box.createHorizontalStrut(7)); + if (PreferencesData.getBoolean("ide.accessible")) { + buttonsPanel.add(moreInfoButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(Box.createHorizontalStrut(15)); + } buttonsPanel.add(downgradeChooser); buttonsPanel.add(Box.createHorizontalStrut(5)); buttonsPanel.add(downgradeButton); @@ -103,23 +120,23 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, add(Box.createVerticalStrut(15)); ContributedLibraryReleases releases = (ContributedLibraryReleases) value; - JTextPane description = makeNewDescription(); // FIXME: happens on macosx, don't know why if (releases == null) return; ContributedLibrary selected = releases.getSelected(); - ContributedLibrary installed = releases.getInstalled(); + titledBorder.setTitle(selected.getName()); + Optional mayInstalled = releases.getInstalled(); boolean installable, upgradable; - if (installed == null) { + if (!mayInstalled.isPresent()) { installable = true; upgradable = false; } else { installable = false; upgradable = new DownloadableContributionVersionComparator() - .compare(selected, installed) > 0; + .compare(selected, mayInstalled.get()) > 0; } if (installable) { installButton.setText(tr("Install")); @@ -133,7 +150,7 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, String name = selected.getName(); String author = selected.getAuthor(); // String maintainer = selectedLib.getMaintainer(); - String website = selected.getWebsite(); + final String website = selected.getWebsite(); String sentence = selected.getSentence(); String paragraph = selected.getParagraph(); // String availableVer = selectedLib.getVersion(); @@ -144,8 +161,8 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, String desc = ""; // Library name... - desc += format("{0}", name); - if (installed != null && installed.isReadOnly()) { +// desc += format("{0}", name); + if (mayInstalled.isPresent() && mayInstalled.get().isIDEBuiltIn()) { desc += " Built-In "; } @@ -156,8 +173,8 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, } // ...version. - if (installed != null) { - String installedVer = installed.getParsedVersion(); + if (mayInstalled.isPresent()) { + String installedVer = mayInstalled.get().getParsedVersion(); if (installedVer == null) { desc += " " + tr("Version unknown"); } else { @@ -166,7 +183,7 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, } desc += ""; - if (installed != null) { + if (mayInstalled.isPresent()) { desc += " INSTALLED"; } @@ -180,12 +197,13 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, desc += "
"; } if (author != null && !author.isEmpty()) { - desc += format("More info", website); + desc = setButtonOrLink(moreInfoButton, desc, moreInfoLbl, website); } desc += ""; description.setText(desc); - description.setBackground(Color.WHITE); + // copy description to accessibility context for screen readers to use + description.getAccessibleContext().setAccessibleDescription(desc); // for modelToView to work, the text area has to be sized. It doesn't // matter if it's visible or not. @@ -195,20 +213,29 @@ public ContributedLibraryTableCellJPanel(JTable parentTable, Object value, InstallerTableCell .setJTextPaneDimensionToFitContainedText(description, parentTable.getBounds().width); + } - if (isSelected) { - setBackground(parentTable.getSelectionBackground()); - setForeground(parentTable.getSelectionForeground()); - } else { - setBackground(parentTable.getBackground()); - setForeground(parentTable.getForeground()); + // same function as in ContributedPlatformTableCellJPanel - is there a utils file this can move to? + private String setButtonOrLink(JButton button, String desc, String label, String url) { + boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); + String retString = desc; + + if (accessibleIDE) { + button.setVisible(true); + button.addActionListener(e -> { + Base.openURL(url); + }); + } + else { + // if not accessible IDE, keep link the same EXCEPT that now the link text is translated! + retString += format("{1}
", url, label); } + + return retString; } + // TODO Make this a method of Theme private JTextPane makeNewDescription() { - if (getComponentCount() > 0) { - remove(0); - } JTextPane description = new JTextPane(); description.setInheritsPopupMenu(true); Insets margin = description.getMargin(); @@ -234,7 +261,6 @@ private JTextPane makeNewDescription() { } }); // description.addKeyListener(new DelegatingKeyListener(parentTable)); - add(description, 0); return description; } @@ -243,4 +269,13 @@ public void setButtonsVisible(boolean enabled) { buttonsPanel.setVisible(enabled); inactiveButtonsPanel.setVisible(!enabled); } + + public void setForeground(Color c) { + super.setForeground(c); + // The description is not opaque, so copy our foreground color to it. + if (description != null) + description.setForeground(c); + if (titledBorder != null) + titledBorder.setTitleColor(c); + } } diff --git a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellRenderer.java b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellRenderer.java index bc4b3ffd940..d107f90208a 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellRenderer.java +++ b/app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCellRenderer.java @@ -46,6 +46,7 @@ public Component getTableCellRendererComponent(JTable table, Object value, value, isSelected); cell.setButtonsVisible(false); + cell.setForeground(Color.BLACK); if (row % 2 == 0) { cell.setBackground(new Color(236, 241, 241)); // #ecf1f1 } else { diff --git a/app/src/cc/arduino/contributions/libraries/ui/DropdownAllLibraries.java b/app/src/cc/arduino/contributions/libraries/ui/DropdownAllLibraries.java new file mode 100644 index 00000000000..ce50aca1432 --- /dev/null +++ b/app/src/cc/arduino/contributions/libraries/ui/DropdownAllLibraries.java @@ -0,0 +1,50 @@ +/* + * This file is part of Arduino. + * + * Copyright 2015 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package cc.arduino.contributions.libraries.ui; + +import cc.arduino.contributions.libraries.ContributedLibraryReleases; +import cc.arduino.contributions.ui.DropdownItem; + +import java.util.function.Predicate; + +import static processing.app.I18n.tr; + +public class DropdownAllLibraries implements DropdownItem { + + public String toString() { + return tr("All"); + } + + @Override + public Predicate getFilterPredicate() { + return x -> true; + } + +} diff --git a/app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java b/app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java index bcd328ba057..e5b42e3b37a 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java +++ b/app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java @@ -29,28 +29,27 @@ package cc.arduino.contributions.libraries.ui; -import cc.arduino.contributions.libraries.ContributedLibrary; -import cc.arduino.contributions.libraries.filters.InstalledLibraryPredicate; -import cc.arduino.contributions.ui.DropdownItem; +import static processing.app.I18n.tr; import java.util.function.Predicate; -import static processing.app.I18n.tr; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; +import cc.arduino.contributions.ui.DropdownItem; -public class DropdownInstalledLibraryItem implements DropdownItem { +public class DropdownInstalledLibraryItem implements DropdownItem { public String toString() { return tr("Installed"); } @Override - public Predicate getFilterPredicate() { - return new InstalledLibraryPredicate(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownInstalledLibraryItem; + public Predicate getFilterPredicate() { + return new Predicate() { + @Override + public boolean test(ContributedLibraryReleases t) { + return t.getInstalled().isPresent(); + } + }; } } diff --git a/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfCategoryItem.java b/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfCategoryItem.java index a17a375995e..0d07b3ccf03 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfCategoryItem.java +++ b/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfCategoryItem.java @@ -30,14 +30,14 @@ package cc.arduino.contributions.libraries.ui; import cc.arduino.contributions.libraries.ContributedLibrary; -import cc.arduino.contributions.libraries.filters.CategoryPredicate; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.ui.DropdownItem; import java.util.function.Predicate; import static processing.app.I18n.tr; -public class DropdownLibraryOfCategoryItem implements DropdownItem { +public class DropdownLibraryOfCategoryItem implements DropdownItem { private final String category; @@ -50,13 +50,14 @@ public String toString() { } @Override - public Predicate getFilterPredicate() { - return new CategoryPredicate(category); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownLibraryOfCategoryItem && ((DropdownLibraryOfCategoryItem) obj).category.equals(category); + public Predicate getFilterPredicate() { + return new Predicate() { + @Override + public boolean test(ContributedLibraryReleases rel) { + ContributedLibrary lib = rel.getLatest(); + return category.equals(lib.getCategory()); + } + }; } } diff --git a/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfTypeItem.java b/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfTypeItem.java index 08e35ef2024..28f44a01894 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfTypeItem.java +++ b/app/src/cc/arduino/contributions/libraries/ui/DropdownLibraryOfTypeItem.java @@ -29,15 +29,15 @@ package cc.arduino.contributions.libraries.ui; -import cc.arduino.contributions.libraries.ContributedLibrary; -import cc.arduino.contributions.libraries.filters.TypePredicate; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.ui.DropdownItem; +import java.util.List; import java.util.function.Predicate; import static processing.app.I18n.tr; -public class DropdownLibraryOfTypeItem implements DropdownItem { +public class DropdownLibraryOfTypeItem implements DropdownItem { private final String type; @@ -50,13 +50,14 @@ public String toString() { } @Override - public Predicate getFilterPredicate() { - return new TypePredicate(type); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownLibraryOfTypeItem && ((DropdownLibraryOfTypeItem) obj).type.equals(type); + public Predicate getFilterPredicate() { + return new Predicate() { + @Override + public boolean test(ContributedLibraryReleases lib) { + List types = lib.getLatest().getTypes(); + return types != null && types.contains(type); + } + }; } } diff --git a/app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java b/app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java index e71cab89d03..2c75498f822 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java +++ b/app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java @@ -30,18 +30,28 @@ package cc.arduino.contributions.libraries.ui; import cc.arduino.contributions.libraries.ContributedLibrary; -import cc.arduino.contributions.libraries.filters.UpdatableLibraryPredicate; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.ui.DropdownItem; +import java.util.Optional; import java.util.function.Predicate; import static processing.app.I18n.tr; -public class DropdownUpdatableLibrariesItem implements DropdownItem { +public class DropdownUpdatableLibrariesItem implements DropdownItem { @Override - public Predicate getFilterPredicate() { - return new UpdatableLibraryPredicate(); + public Predicate getFilterPredicate() { + return new Predicate() { + @Override + public boolean test(ContributedLibraryReleases lib) { + Optional mayInstalled = lib.getInstalled(); + if (!mayInstalled.isPresent()) { + return false; + } + return !lib.getLatest().equals(mayInstalled.get()); + } + }; } @Override @@ -49,9 +59,4 @@ public String toString() { return tr("Updatable"); } - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownUpdatableLibrariesItem; - } - } diff --git a/app/src/cc/arduino/contributions/libraries/ui/LibrariesIndexTableModel.java b/app/src/cc/arduino/contributions/libraries/ui/LibrariesIndexTableModel.java index 40bd655ad8e..ceed4562f8d 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/LibrariesIndexTableModel.java +++ b/app/src/cc/arduino/contributions/libraries/ui/LibrariesIndexTableModel.java @@ -30,6 +30,7 @@ package cc.arduino.contributions.libraries.ui; import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.ui.FilteredAbstractTableModel; import processing.app.BaseNoGui; @@ -38,11 +39,10 @@ import java.util.Collections; import java.util.List; import java.util.function.Predicate; -import java.util.stream.Stream; @SuppressWarnings("serial") public class LibrariesIndexTableModel - extends FilteredAbstractTableModel { + extends FilteredAbstractTableModel { private final List contributions = new ArrayList<>(); @@ -50,12 +50,12 @@ public class LibrariesIndexTableModel private final Class[] columnTypes = { ContributedPlatform.class }; - Predicate selectedCategoryFilter = null; + Predicate selectedCategoryFilter = null; String selectedFilters[] = null; public void updateIndexFilter(String filters[], - Stream> additionalFilters) { - selectedCategoryFilter = additionalFilters.reduce(Predicate::and).get(); + Predicate additionalFilter) { + selectedCategoryFilter = additionalFilter; selectedFilters = filters; update(); } @@ -87,17 +87,6 @@ private boolean stringContainsAll(String string, String filters[]) { return true; } - private void addContribution(ContributedLibrary lib) { - for (ContributedLibraryReleases contribution : contributions) { - if (!contribution.shouldContain(lib)) - continue; - contribution.add(lib); - return; - } - - contributions.add(new ContributedLibraryReleases(lib)); - } - @Override public int getColumnCount() { return columnNames.length; @@ -150,17 +139,23 @@ public void update() { fireTableDataChanged(); } - private void applyFilterToLibrary(ContributedLibrary lib) { + private boolean filterCondition(ContributedLibraryReleases lib) { if (selectedCategoryFilter != null && !selectedCategoryFilter.test(lib)) { - return; + return false; } - String compoundTargetSearchText = lib.getName() + "\n" + lib.getParagraph() - + "\n" + lib.getSentence(); + ContributedLibrary latest = lib.getLatest(); + String compoundTargetSearchText = latest.getName() + " " + + latest.getParagraph() + " " + + latest.getSentence(); + if (latest.getProvidesIncludes() != null) { + compoundTargetSearchText += " " + latest.getProvidesIncludes(); + } if (!stringContainsAll(compoundTargetSearchText, selectedFilters)) { - return; + return false; } - addContribution(lib); + + return true; } public void updateLibrary(ContributedLibrary lib) { @@ -190,12 +185,26 @@ public void updateLibrary(ContributedLibrary lib) { fireTableRowsDeleted(row, row); } + private List rebuildContributionsFromIndex() { + List res = new ArrayList<>(); + BaseNoGui.librariesIndexer.getIndex().getLibraries(). // + forEach(lib -> { + for (ContributedLibraryReleases contribution : res) { + if (!contribution.shouldContain(lib)) + continue; + contribution.add(lib); + return; + } + + res.add(new ContributedLibraryReleases(lib)); + }); + return res; + } + private void updateContributions() { + List all = rebuildContributionsFromIndex(); contributions.clear(); - BaseNoGui.librariesIndexer.getIndex().getLibraries() - .forEach(this::applyFilterToLibrary); - BaseNoGui.librariesIndexer.getInstalledLibraries() - .forEach(this::applyFilterToLibrary); + all.stream().filter(this::filterCondition).forEach(contributions::add); Collections.sort(contributions, new ContributedLibraryReleasesComparator("Arduino")); } diff --git a/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java b/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java index 4c94700197f..69ab10006c9 100644 --- a/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java +++ b/app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java @@ -35,10 +35,12 @@ import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; -import java.util.function.Predicate; +import java.util.List; +import java.util.Optional; import javax.swing.Box; import javax.swing.JComboBox; @@ -46,11 +48,11 @@ import javax.swing.JOptionPane; import javax.swing.table.TableCellRenderer; -import cc.arduino.contributions.DownloadableContribution; import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.ContributedLibraryReleases; import cc.arduino.contributions.libraries.LibraryInstaller; import cc.arduino.contributions.libraries.LibraryTypeComparator; -import cc.arduino.contributions.ui.DropdownAllItem; +import cc.arduino.contributions.libraries.ui.MultiLibraryInstallDialog.Result; import cc.arduino.contributions.ui.DropdownItem; import cc.arduino.contributions.ui.FilteredAbstractTableModel; import cc.arduino.contributions.ui.InstallerJDialog; @@ -60,17 +62,20 @@ import processing.app.BaseNoGui; @SuppressWarnings("serial") -public class LibraryManagerUI extends InstallerJDialog { +public class LibraryManagerUI extends InstallerJDialog { private final JComboBox typeChooser; private final LibraryInstaller installer; - private Predicate typeFilter; @Override protected FilteredAbstractTableModel createContribModel() { return new LibrariesIndexTableModel(); } + private LibrariesIndexTableModel getContribModel() { + return (LibrariesIndexTableModel) contribModel; + } + @Override protected TableCellRenderer createCellRenderer() { return new ContributedLibraryTableCellRenderer(); @@ -80,11 +85,11 @@ protected TableCellRenderer createCellRenderer() { protected InstallerTableCell createCellEditor() { return new ContributedLibraryTableCellEditor() { @Override - protected void onInstall(ContributedLibrary selectedLibrary, ContributedLibrary installedLibrary) { - if (selectedLibrary.isReadOnly()) { - onRemovePressed(installedLibrary); + protected void onInstall(ContributedLibrary selectedLibrary, Optional mayInstalledLibrary) { + if (mayInstalledLibrary.isPresent() && selectedLibrary.isIDEBuiltIn()) { + onRemovePressed(mayInstalledLibrary.get()); } else { - onInstallPressed(selectedLibrary, installedLibrary); + onInstallPressed(selectedLibrary); } } @@ -113,71 +118,60 @@ public LibraryManagerUI(Frame parent, LibraryInstaller installer) { } protected final ActionListener typeChooserActionListener = new ActionListener() { - @Override public void actionPerformed(ActionEvent event) { - DropdownItem selected = (DropdownItem) typeChooser.getSelectedItem(); - if (typeFilter == null || !typeFilter.equals(selected)) { - typeFilter = selected.getFilterPredicate(); + DropdownItem selected = (DropdownItem) typeChooser.getSelectedItem(); + previousRowAtPoint = -1; + if (selected != null && extraFilter != selected.getFilterPredicate()) { + extraFilter = selected.getFilterPredicate(); if (contribTable.getCellEditor() != null) { contribTable.getCellEditor().stopCellEditing(); } - updateIndexFilter(filters, categoryFilter, typeFilter); + updateIndexFilter(filters, categoryFilter.and(extraFilter)); } } }; - @Override - public void updateIndexFilter(String[] filters, Predicate... additionalFilters) { - if (additionalFilters.length == 1) { - additionalFilters = new Predicate[]{additionalFilters[0], typeFilter}; - } - super.updateIndexFilter(filters, additionalFilters); - } + private Collection oldCategories = new ArrayList<>(); + private Collection oldTypes = new ArrayList<>(); public void updateUI() { - DropdownItem previouslySelectedCategory = (DropdownItem) categoryChooser.getSelectedItem(); - DropdownItem previouslySelectedType = (DropdownItem) typeChooser.getSelectedItem(); - - categoryChooser.removeActionListener(categoryChooserActionListener); - typeChooser.removeActionListener(typeChooserActionListener); + // Check if categories or types have changed + Collection categories = BaseNoGui.librariesIndexer.getIndex().getCategories(); + List types = new LinkedList<>(BaseNoGui.librariesIndexer.getIndex().getTypes()); + Collections.sort(types, new LibraryTypeComparator()); - categoryFilter = null; - categoryChooser.removeAllItems(); + if (categories.equals(oldCategories) && types.equals(oldTypes)) { + return; + } + oldCategories = categories; + oldTypes = types; // Load categories - categoryChooser.addItem(new DropdownAllItem()); - Collection categories = BaseNoGui.librariesIndexer.getIndex().getCategories(); + categoryFilter = x -> true; + categoryChooser.removeActionListener(categoryChooserActionListener); + categoryChooser.removeAllItems(); + categoryChooser.addItem(new DropdownAllLibraries()); for (String category : categories) { categoryChooser.addItem(new DropdownLibraryOfCategoryItem(category)); } - categoryChooser.setEnabled(categoryChooser.getItemCount() > 1); - categoryChooser.addActionListener(categoryChooserActionListener); - if (previouslySelectedCategory != null) { - categoryChooser.setSelectedItem(previouslySelectedCategory); - } else { - categoryChooser.setSelectedIndex(0); - } + categoryChooser.setSelectedIndex(0); - typeFilter = null; + // Load types + extraFilter = x -> true; + typeChooser.removeActionListener(typeChooserActionListener); typeChooser.removeAllItems(); - typeChooser.addItem(new DropdownAllItem()); + typeChooser.addItem(new DropdownAllLibraries()); typeChooser.addItem(new DropdownUpdatableLibrariesItem()); typeChooser.addItem(new DropdownInstalledLibraryItem()); - java.util.List types = new LinkedList<>(BaseNoGui.librariesIndexer.getIndex().getTypes()); - Collections.sort(types, new LibraryTypeComparator()); for (String type : types) { typeChooser.addItem(new DropdownLibraryOfTypeItem(type)); } typeChooser.setEnabled(typeChooser.getItemCount() > 1); typeChooser.addActionListener(typeChooserActionListener); - if (previouslySelectedType != null) { - typeChooser.setSelectedItem(previouslySelectedType); - } else { - typeChooser.setSelectedIndex(0); - } + typeChooser.setSelectedIndex(0); filterField.setEnabled(contribModel.getRowCount() > 0); } @@ -208,6 +202,10 @@ protected void onUpdatePressed() { setProgressVisible(true, ""); installer.updateIndex(this::setProgress); onIndexesUpdated(); + if (contribTable.getCellEditor() != null) { + contribTable.getCellEditor().stopCellEditing(); + } + getContribModel().update(); } catch (Exception e) { throw new RuntimeException(e); } finally { @@ -219,14 +217,35 @@ protected void onUpdatePressed() { installerThread.start(); } - public void onInstallPressed(final ContributedLibrary lib, final ContributedLibrary replaced) { + public void onInstallPressed(final ContributedLibrary lib) { + List deps = BaseNoGui.librariesIndexer.getIndex().resolveDependeciesOf(lib); + boolean depsInstalled = deps.stream().allMatch(l -> l.getInstalledLibrary().isPresent() || l.getName().equals(lib.getName())); + Result installDeps; + if (!depsInstalled) { + MultiLibraryInstallDialog dialog; + dialog = new MultiLibraryInstallDialog(this, lib, deps); + dialog.setLocationRelativeTo(this); + dialog.setVisible(true); + installDeps = dialog.getInstallDepsResult(); + if (installDeps == Result.CANCEL) + return; + } else { + installDeps = Result.NONE; + } clearErrorMessage(); installerThread = new Thread(() -> { try { setProgressVisible(true, tr("Installing...")); - installer.install(lib, replaced, this::setProgress); - onIndexesUpdated(); // TODO: Do a better job in refreshing only the needed element - //getContribModel().updateLibrary(lib); + if (installDeps == Result.ALL) { + installer.install(deps, this::setProgress); + } else { + installer.install(lib, this::setProgress); + } + onIndexesUpdated(); + if (contribTable.getCellEditor() != null) { + contribTable.getCellEditor().stopCellEditing(); + } + getContribModel().update(); } catch (Exception e) { throw new RuntimeException(e); } finally { @@ -253,8 +272,11 @@ public void onRemovePressed(final ContributedLibrary lib) { try { setProgressVisible(true, tr("Removing...")); installer.remove(lib, this::setProgress); - onIndexesUpdated(); // TODO: Do a better job in refreshing only the needed element - //getContribModel().updateLibrary(lib); + onIndexesUpdated(); + if (contribTable.getCellEditor() != null) { + contribTable.getCellEditor().stopCellEditing(); + } + getContribModel().update(); } catch (Exception e) { throw new RuntimeException(e); } finally { @@ -269,5 +291,4 @@ public void onRemovePressed(final ContributedLibrary lib) { protected void onIndexesUpdated() throws Exception { // Empty } - -} +} \ No newline at end of file diff --git a/app/src/cc/arduino/contributions/libraries/ui/MultiLibraryInstallDialog.java b/app/src/cc/arduino/contributions/libraries/ui/MultiLibraryInstallDialog.java new file mode 100644 index 00000000000..75f7703f430 --- /dev/null +++ b/app/src/cc/arduino/contributions/libraries/ui/MultiLibraryInstallDialog.java @@ -0,0 +1,177 @@ +/* + * This file is part of Arduino. + * + * Copyright 2017 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package cc.arduino.contributions.libraries.ui; + +import static processing.app.I18n.format; +import static processing.app.I18n.tr; + +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Insets; +import java.awt.Window; +import java.awt.event.WindowEvent; +import java.util.List; + +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JPanel; +import javax.swing.JTextPane; +import javax.swing.WindowConstants; +import javax.swing.border.EmptyBorder; +import javax.swing.text.Document; +import javax.swing.text.html.HTMLDocument; +import javax.swing.text.html.StyleSheet; + +import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.UnavailableContributedLibrary; +import processing.app.Base; +import processing.app.Theme; + +public class MultiLibraryInstallDialog extends JDialog { + + enum Result { + ALL, NONE, CANCEL + } + + private Result result = Result.CANCEL; + + public MultiLibraryInstallDialog(Window parent, ContributedLibrary lib, + List dependencies) { + super(parent, format(tr("Dependencies for library {0}:{1}"), lib.getName(), + lib.getParsedVersion()), + ModalityType.APPLICATION_MODAL); + Container pane = getContentPane(); + pane.setLayout(new BorderLayout()); + + pane.add(Box.createHorizontalStrut(10), BorderLayout.WEST); + pane.add(Box.createHorizontalStrut(10), BorderLayout.EAST); + + { + JButton cancel = new JButton(tr("Cancel")); + cancel.addActionListener(ev -> { + result = Result.CANCEL; + setVisible(false); + }); + + JButton all = new JButton(tr("Install all")); + all.addActionListener(ev -> { + result = Result.ALL; + setVisible(false); + }); + + JButton none = new JButton(format(tr("Install '{0}' only"), lib.getName())); + none.addActionListener(ev -> { + result = Result.NONE; + setVisible(false); + }); + + Box buttonsBox = Box.createHorizontalBox(); + buttonsBox.add(all); + buttonsBox.add(Box.createHorizontalStrut(5)); + buttonsBox.add(none); + buttonsBox.add(Box.createHorizontalStrut(5)); + buttonsBox.add(cancel); + + JPanel buttonsPanel = new JPanel(); + buttonsPanel.setBorder(new EmptyBorder(7, 10, 7, 10)); + buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.Y_AXIS)); + buttonsPanel.add(buttonsBox); + + pane.add(buttonsPanel, BorderLayout.SOUTH); + } + + { + String libName = format("{0}:{1}", lib.getName(), + lib.getParsedVersion()); + String desc = format(tr("The library {0} needs some other library
dependencies currently not installed:"), + libName); + desc += "

"; + for (ContributedLibrary l : dependencies) { + if (l.getName().equals(lib.getName())) + continue; + if (l.getInstalledLibrary().isPresent()) + continue; + if (l instanceof UnavailableContributedLibrary) + continue; + desc += format("- {0}
", l.getName()); + } + desc += "
"; + desc += tr("Would you like to install also all the missing dependencies?"); + + JTextPane textArea = makeNewDescription(); + textArea.setContentType("text/html"); + textArea.setText(desc); + + JPanel libsList = new JPanel(); + libsList.setLayout(new BoxLayout(libsList, BoxLayout.Y_AXIS)); + libsList.add(textArea); + libsList.setBorder(new EmptyBorder(7, 7, 7, 7)); + pane.add(libsList, BorderLayout.NORTH); + } + + pack(); + setResizable(false); + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + WindowEvent closing = new WindowEvent(this, WindowEvent.WINDOW_CLOSING); + Base.registerWindowCloseKeys(getRootPane(), e -> dispatchEvent(closing)); + } + + // TODO Make this a method of Theme + private JTextPane makeNewDescription() { + JTextPane description = new JTextPane(); + description.setInheritsPopupMenu(true); + Insets margin = description.getMargin(); + margin.bottom = 0; + description.setMargin(margin); + description.setContentType("text/html"); + Document doc = description.getDocument(); + if (doc instanceof HTMLDocument) { + HTMLDocument html = (HTMLDocument) doc; + StyleSheet s = html.getStyleSheet(); + s.addRule("body { margin: 0; padding: 0;" + + "font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;" + + "color: black;" + "font-size: " + 15 * Theme.getScale() / 100 + + "; }"); + } + description.setOpaque(false); + description.setBorder(new EmptyBorder(4, 7, 7, 7)); + description.setHighlighter(null); + description.setEditable(false); + add(description, 0); + return description; + } + + public Result getInstallDepsResult() { + return result; + } +} diff --git a/app/src/cc/arduino/contributions/packages/filters/CategoryPredicate.java b/app/src/cc/arduino/contributions/packages/filters/CategoryPredicate.java index a6261404109..c756e014f1b 100644 --- a/app/src/cc/arduino/contributions/packages/filters/CategoryPredicate.java +++ b/app/src/cc/arduino/contributions/packages/filters/CategoryPredicate.java @@ -46,9 +46,4 @@ public boolean test(ContributedPlatform input) { return input.getCategory() != null && category.equals(input.getCategory()); } - @Override - public boolean equals(Object obj) { - return obj instanceof CategoryPredicate && ((CategoryPredicate) obj).category.equals(category); - } - } diff --git a/app/src/cc/arduino/contributions/packages/filters/UpdatablePlatformPredicate.java b/app/src/cc/arduino/contributions/packages/filters/UpdatablePlatformPredicate.java index 34a62ad7574..019b5118eee 100644 --- a/app/src/cc/arduino/contributions/packages/filters/UpdatablePlatformPredicate.java +++ b/app/src/cc/arduino/contributions/packages/filters/UpdatablePlatformPredicate.java @@ -38,12 +38,6 @@ public class UpdatablePlatformPredicate implements Predicate { - private final VersionComparator versionComparator; - - public UpdatablePlatformPredicate() { - this.versionComparator = new VersionComparator(); - } - @Override public boolean test(ContributedPlatform contributedPlatform) { String packageName = contributedPlatform.getParentPackage().getName(); @@ -56,7 +50,7 @@ public boolean test(ContributedPlatform contributedPlatform) { List platforms = BaseNoGui.indexer.getIndex().findPlatforms(packageName, architecture); return platforms.stream() - .filter(platform -> versionComparator.greaterThan(platform.getParsedVersion(), installed.getParsedVersion())) + .filter(platform -> VersionComparator.greaterThan(platform.getParsedVersion(), installed.getParsedVersion())) .count() > 0; } } diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java index 3c356749e7b..3545b1ff42b 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java @@ -34,8 +34,6 @@ import java.util.List; import java.util.stream.Collectors; -import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator; -import cc.arduino.contributions.filters.InstalledPredicate; import cc.arduino.contributions.packages.ContributedPackage; import cc.arduino.contributions.packages.ContributedPlatform; @@ -72,10 +70,9 @@ public void add(ContributedPlatform platform) { public ContributedPlatform getInstalled() { List installedReleases = releases.stream() - .filter(new InstalledPredicate()).collect(Collectors.toList()); - Collections - .sort(installedReleases, - new DownloadableContributionBuiltInAtTheBottomComparator()); + .filter(p -> p.isInstalled()) // + .collect(Collectors.toList()); + Collections.sort(installedReleases, ContributedPlatform.BUILTIN_AS_LAST); if (installedReleases.isEmpty()) { return null; diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellEditor.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellEditor.java index cc3cfbb63f5..7fe221fa340 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellEditor.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellEditor.java @@ -42,8 +42,6 @@ import cc.arduino.contributions.DownloadableContributionVersionComparator; import cc.arduino.contributions.VersionComparator; -import cc.arduino.contributions.filters.BuiltInPredicate; -import cc.arduino.contributions.filters.InstalledPredicate; import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.ui.InstallerTableCell; import cc.arduino.utils.ReverseComparator; @@ -74,20 +72,25 @@ public Component getTableCellEditorComponent(JTable table, Object _value, .getSelectedItem(); onInstall(selected, value.getInstalled()); }); - cell.versionToInstallChooser.addItemListener(e -> value - .select((ContributedPlatform) cell.versionToInstallChooser - .getSelectedItem())); + cell.versionToInstallChooser.addActionListener(e -> { + value.select((ContributedPlatform) cell.versionToInstallChooser.getSelectedItem()); + if (cell.versionToInstallChooser.getSelectedIndex() != 0) { + InstallerTableCell.dropdownSelected(true); + } + }); setEnabled(true); final ContributedPlatform installed = value.getInstalled(); List releases = new LinkedList<>(value.releases); - List uninstalledReleases = releases.stream() - .filter(new InstalledPredicate().negate()).collect(Collectors.toList()); + List uninstalledReleases = releases.stream() // + .filter(p -> !p.isInstalled()) // + .collect(Collectors.toList()); - List installedBuiltIn = releases.stream() - .filter(new InstalledPredicate()).filter(new BuiltInPredicate()) + List installedBuiltIn = releases.stream() // + .filter(p -> p.isInstalled()) // + .filter(p -> p.isBuiltIn()) // .collect(Collectors.toList()); if (installed != null && !installedBuiltIn.contains(installed)) { @@ -103,10 +106,9 @@ public Component getTableCellEditorComponent(JTable table, Object _value, final List uninstalledPreviousReleases = new LinkedList<>(); final List uninstalledNewerReleases = new LinkedList<>(); - final VersionComparator versionComparator = new VersionComparator(); uninstalledReleases.stream().forEach(input -> { if (installed == null - || versionComparator.greaterThan(installed.getParsedVersion(), + || VersionComparator.greaterThan(installed.getParsedVersion(), input.getParsedVersion())) { uninstalledPreviousReleases.add(input); } else { @@ -127,7 +129,8 @@ public Component getTableCellEditorComponent(JTable table, Object _value, cell.versionToInstallChooser .setVisible(installed == null && uninstalledReleases.size() > 1); - cell.update(table, _value, true, !installedBuiltIn.isEmpty()); + cell.update(table, _value, !installedBuiltIn.isEmpty()); + cell.setForeground(Color.BLACK); cell.setBackground(new Color(218, 227, 227)); // #dae3e3 return cell; } diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java index 75464f3d0ee..75e26783dfe 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java @@ -32,20 +32,11 @@ import static processing.app.I18n.format; import static processing.app.I18n.tr; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Insets; - -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTable; -import javax.swing.JTextPane; +import java.awt.*; + +import javax.swing.*; import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; import javax.swing.event.HyperlinkEvent; import javax.swing.text.Document; import javax.swing.text.html.HTMLDocument; @@ -57,11 +48,14 @@ import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.ui.InstallerTableCell; import processing.app.Base; +import processing.app.PreferencesData; import processing.app.Theme; @SuppressWarnings("serial") public class ContributedPlatformTableCellJPanel extends JPanel { + final JButton moreInfoButton; + final JButton onlineHelpButton; final JButton installButton; final JButton removeButton; final Component removeButtonPlaceholder; @@ -72,13 +66,26 @@ public class ContributedPlatformTableCellJPanel extends JPanel { final JPanel buttonsPanel; final JPanel inactiveButtonsPanel; final JLabel statusLabel; + final JTextPane description; + final TitledBorder titledBorder; + private final String moreInfoLbl = tr("More Info"); + private final String onlineHelpLbl = tr("Online Help"); public ContributedPlatformTableCellJPanel() { super(); setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + // Actual title set by update() + titledBorder = BorderFactory.createTitledBorder(""); + titledBorder.setTitleFont(getFont().deriveFont(Font.BOLD)); + setBorder(titledBorder); + { installButton = new JButton(tr("Install")); + moreInfoButton = new JButton(moreInfoLbl); + moreInfoButton.setVisible(false); + onlineHelpButton = new JButton(onlineHelpLbl); + onlineHelpButton.setVisible(false); int width = installButton.getPreferredSize().width; installButtonPlaceholder = Box.createRigidArea(new Dimension(width, 1)); } @@ -98,6 +105,9 @@ public ContributedPlatformTableCellJPanel() { Object selectVersionItem = downgradeChooser.getItemAt(0); boolean disableDowngrade = (e.getItem() == selectVersionItem); downgradeButton.setEnabled(!disableDowngrade); + if (!disableDowngrade) { + InstallerTableCell.dropdownSelected(true); + } }); versionToInstallChooser = new JComboBox(); @@ -105,13 +115,21 @@ public ContributedPlatformTableCellJPanel() { versionToInstallChooser .setMaximumSize(versionToInstallChooser.getPreferredSize()); - makeNewDescription(); + description = makeNewDescription(); + add(description); buttonsPanel = new JPanel(); buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); buttonsPanel.setOpaque(false); buttonsPanel.add(Box.createHorizontalStrut(7)); + if (PreferencesData.getBoolean("ide.accessible")) { // only add the buttons if needed + buttonsPanel.add(onlineHelpButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(moreInfoButton); + buttonsPanel.add(Box.createHorizontalStrut(5)); + buttonsPanel.add(Box.createHorizontalStrut(15)); + } buttonsPanel.add(downgradeChooser); buttonsPanel.add(Box.createHorizontalStrut(5)); buttonsPanel.add(downgradeButton); @@ -146,11 +164,27 @@ public ContributedPlatformTableCellJPanel() { add(Box.createVerticalStrut(15)); } - void update(JTable parentTable, Object value, boolean isSelected, - boolean hasBuiltInRelease) { - ContributedPlatformReleases releases = (ContributedPlatformReleases) value; + // same function as in ContributedLibraryTableCellJPanel - is there a utils file this can move to? + private String setButtonOrLink(JButton button, String desc, String label, String url) { + boolean accessibleIDE = PreferencesData.getBoolean("ide.accessible"); + String retString = desc; - JTextPane description = makeNewDescription(); + if (accessibleIDE) { + button.setVisible(true); + button.addActionListener(e -> { + Base.openURL(url); + }); + } + else { + // if not accessible IDE, keep link the same EXCEPT that now the link text is translated! + retString += " " + format("{1}
", url, label); + } + + return retString; + } + + void update(JTable parentTable, Object value, boolean hasBuiltInRelease) { + ContributedPlatformReleases releases = (ContributedPlatformReleases) value; // FIXME: happens on macosx, don't know why if (releases == null) { @@ -158,6 +192,7 @@ void update(JTable parentTable, Object value, boolean isSelected, } ContributedPlatform selected = releases.getSelected(); + titledBorder.setTitle(selected.getName()); ContributedPlatform installed = releases.getInstalled(); boolean removable, installable, upgradable; @@ -167,7 +202,7 @@ void update(JTable parentTable, Object value, boolean isSelected, upgradable = false; } else { installable = false; - removable = !installed.isReadOnly() && !hasBuiltInRelease; + removable = !installed.isBuiltIn() && !hasBuiltInRelease; upgradable = new DownloadableContributionVersionComparator() .compare(selected, installed) > 0; } @@ -183,8 +218,8 @@ void update(JTable parentTable, Object value, boolean isSelected, removeButtonPlaceholder.setVisible(!removable); String desc = ""; - desc += "" + selected.getName() + ""; - if (installed != null && installed.isReadOnly()) { +// desc += "" + selected.getName() + ""; + if (installed != null && installed.isBuiltIn()) { desc += " Built-In "; } @@ -213,21 +248,23 @@ void update(JTable parentTable, Object value, boolean isSelected, } else if (selected.getParentPackage().getHelp() != null) { help = selected.getParentPackage().getHelp(); } + if (help != null) { String url = help.getOnline(); if (url != null && !url.isEmpty()) { - desc += " " + format("Online help
", url); + desc = setButtonOrLink(onlineHelpButton, desc, onlineHelpLbl, url); } } String url = selected.getParentPackage().getWebsiteURL(); if (url != null && !url.isEmpty()) { - desc += " " + format("More info", url); + desc = setButtonOrLink(moreInfoButton, desc, moreInfoLbl, url); } desc += ""; description.setText(desc); - description.setBackground(Color.WHITE); + // copy description to accessibility context for screen readers to use + description.getAccessibleContext().setAccessibleDescription(desc); // for modelToView to work, the text area has to be sized. It doesn't // matter if it's visible or not. @@ -237,20 +274,9 @@ void update(JTable parentTable, Object value, boolean isSelected, int width = parentTable.getBounds().width; InstallerTableCell.setJTextPaneDimensionToFitContainedText(description, width); - - if (isSelected) { - setBackground(parentTable.getSelectionBackground()); - setForeground(parentTable.getSelectionForeground()); - } else { - setBackground(parentTable.getBackground()); - setForeground(parentTable.getForeground()); - } } private JTextPane makeNewDescription() { - if (getComponentCount() > 0) { - remove(0); - } JTextPane description = new JTextPane(); description.setInheritsPopupMenu(true); Insets margin = description.getMargin(); @@ -274,7 +300,6 @@ private JTextPane makeNewDescription() { Base.openURL(e.getDescription()); } }); - add(description, 0); return description; } @@ -285,4 +310,12 @@ public void setButtonsVisible(boolean enabled) { inactiveButtonsPanel.setVisible(!enabled); } + public void setForeground(Color c) { + super.setForeground(c); + // The description is not opaque, so copy our foreground color to it. + if (description != null) + description.setForeground(c); + if (titledBorder != null) + titledBorder.setTitleColor(c); + } } diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellRenderer.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellRenderer.java index cc4b1d0c186..b6f6aae015c 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellRenderer.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellRenderer.java @@ -44,8 +44,9 @@ public Component getTableCellRendererComponent(JTable table, Object value, int column) { ContributedPlatformTableCellJPanel cell = new ContributedPlatformTableCellJPanel(); cell.setButtonsVisible(false); - cell.update(table, value, isSelected, false); + cell.update(table, value, false); + cell.setForeground(Color.BLACK); if (row % 2 == 0) { cell.setBackground(new Color(236, 241, 241)); // #ecf1f1 } else { diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java b/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java index 283df1067c2..7472c62479b 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java @@ -39,7 +39,6 @@ import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; -import java.util.stream.Stream; @SuppressWarnings("serial") public class ContributionIndexTableModel @@ -48,12 +47,18 @@ public class ContributionIndexTableModel private final List contributions = new ArrayList<>(); private final String[] columnNames = { "Description" }; private final Class[] columnTypes = { ContributedPlatform.class }; + private Predicate filter; + private String[] filters; public void updateIndexFilter(String[] filters, - Stream> additionalFilters) { + Predicate filter) { + this.filter = filter; + this.filters = filters; + updateContributions(); + } + + private void updateContributions() { contributions.clear(); - Predicate filter = additionalFilters - .reduce(Predicate::and).get(); for (ContributedPackage pack : BaseNoGui.indexer.getPackages()) { for (ContributedPlatform platform : pack.getPlatforms()) { String compoundTargetSearchText = platform.getName() + "\n" @@ -149,6 +154,7 @@ public ContributedPlatform getSelectedRelease(int row) { } public void update() { + updateContributions(); fireTableDataChanged(); } diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java b/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java index 7e1389637ce..0c949fe1cd3 100644 --- a/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java +++ b/app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java @@ -29,7 +29,6 @@ package cc.arduino.contributions.packages.ui; -import cc.arduino.contributions.DownloadableContribution; import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.packages.ContributionInstaller; import cc.arduino.contributions.ui.*; @@ -41,6 +40,7 @@ import javax.swing.table.TableCellRenderer; import java.awt.*; +import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -72,7 +72,7 @@ protected InstallerTableCell createCellEditor() { @Override protected void onInstall(ContributedPlatform selected, ContributedPlatform installed) { - if (selected.isReadOnly()) { + if (selected.isBuiltIn()) { onRemovePressed(installed, false); } else { onInstallPressed(selected, installed); @@ -92,31 +92,28 @@ public ContributionManagerUI(Frame parent, ContributionInstaller installer) { this.installer = installer; } + private Collection oldCategories = new ArrayList<>(); + public void updateUI() { - DropdownItem previouslySelectedCategory = (DropdownItem) categoryChooser - .getSelectedItem(); + // Check if categories have changed + Collection categories = BaseNoGui.indexer.getCategories(); + if (categories.equals(oldCategories)) { + return; + } + oldCategories = categories; categoryChooser.removeActionListener(categoryChooserActionListener); - - categoryFilter = null; - categoryChooser.removeAllItems(); - - filterField.setEnabled(getContribModel().getRowCount() > 0); - - categoryChooser.addActionListener(categoryChooserActionListener); - // Enable categories combo only if there are two or more choices + filterField.setEnabled(getContribModel().getRowCount() > 0); + categoryFilter = x -> true; + categoryChooser.removeAllItems(); categoryChooser.addItem(new DropdownAllCoresItem()); categoryChooser.addItem(new DropdownUpdatableCoresItem()); - Collection categories = BaseNoGui.indexer.getCategories(); for (String s : categories) { categoryChooser.addItem(new DropdownCoreOfCategoryItem(s)); } - if (previouslySelectedCategory != null) { - categoryChooser.setSelectedItem(previouslySelectedCategory); - } else { - categoryChooser.setSelectedIndex(0); - } + categoryChooser.addActionListener(categoryChooserActionListener); + categoryChooser.setSelectedIndex(0); } public void setProgress(Progress progress) { @@ -147,6 +144,10 @@ public void onUpdatePressed() { .updateIndex(this::setProgress); installer.deleteUnknownFiles(downloadedPackageIndexFiles); onIndexesUpdated(); + if (contribTable.getCellEditor() != null) { + contribTable.getCellEditor().stopCellEditing(); + } + getContribModel().update(); } catch (Exception e) { throw new RuntimeException(e); } finally { @@ -167,11 +168,15 @@ public void onInstallPressed(final ContributedPlatform platformToInstall, List errors = new LinkedList<>(); try { setProgressVisible(true, tr("Installing...")); - if (platformToRemove != null && !platformToRemove.isReadOnly()) { + if (platformToRemove != null && !platformToRemove.isBuiltIn()) { errors.addAll(installer.remove(platformToRemove)); } errors.addAll(installer.install(platformToInstall, this::setProgress)); onIndexesUpdated(); + if (contribTable.getCellEditor() != null) { + contribTable.getCellEditor().stopCellEditing(); + } + getContribModel().update(); } catch (Exception e) { throw new RuntimeException(e); } finally { @@ -210,6 +215,10 @@ public void onRemovePressed(final ContributedPlatform platform, setProgressVisible(true, tr("Removing...")); installer.remove(platform); onIndexesUpdated(); + if (contribTable.getCellEditor() != null) { + contribTable.getCellEditor().stopCellEditing(); + } + getContribModel().update(); } catch (Exception e) { throw new RuntimeException(e); } finally { diff --git a/app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java b/app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java index 87b671e5a0d..15a7bf531d8 100644 --- a/app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java +++ b/app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java @@ -29,7 +29,6 @@ package cc.arduino.contributions.packages.ui; -import cc.arduino.contributions.filters.NoopPredicate; import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.ui.DropdownItem; @@ -45,11 +44,7 @@ public String toString() { @Override public Predicate getFilterPredicate() { - return new NoopPredicate<>(); + return x -> true; } - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownAllCoresItem; - } } diff --git a/app/src/cc/arduino/contributions/packages/ui/DropdownCoreOfCategoryItem.java b/app/src/cc/arduino/contributions/packages/ui/DropdownCoreOfCategoryItem.java index 0b8cd2e9ac4..6de03b587b3 100644 --- a/app/src/cc/arduino/contributions/packages/ui/DropdownCoreOfCategoryItem.java +++ b/app/src/cc/arduino/contributions/packages/ui/DropdownCoreOfCategoryItem.java @@ -54,9 +54,4 @@ public Predicate getFilterPredicate() { return new CategoryPredicate(category); } - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownCoreOfCategoryItem && ((DropdownCoreOfCategoryItem) obj).category.equals(category); - } - } diff --git a/app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java b/app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java index e5103a5557c..7f704b388b5 100644 --- a/app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java +++ b/app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java @@ -49,8 +49,4 @@ public String toString() { return tr("Updatable"); } - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownUpdatableCoresItem; - } } diff --git a/app/src/cc/arduino/contributions/ui/DropdownAllItem.java b/app/src/cc/arduino/contributions/ui/DropdownAllItem.java deleted file mode 100644 index ca77faf5bfe..00000000000 --- a/app/src/cc/arduino/contributions/ui/DropdownAllItem.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.ui; - -import cc.arduino.contributions.DownloadableContribution; -import cc.arduino.contributions.filters.NoopPredicate; - -import java.util.function.Predicate; - -import static processing.app.I18n.tr; - -public class DropdownAllItem implements DropdownItem { - - public String toString() { - return tr("All"); - } - - @Override - public Predicate getFilterPredicate() { - return new NoopPredicate<>(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof DropdownAllItem; - } - -} diff --git a/app/src/cc/arduino/contributions/ui/FilterJTextField.java b/app/src/cc/arduino/contributions/ui/FilterJTextField.java index 9dc7fd8d6b5..f4cb3420340 100644 --- a/app/src/cc/arduino/contributions/ui/FilterJTextField.java +++ b/app/src/cc/arduino/contributions/ui/FilterJTextField.java @@ -41,6 +41,7 @@ public class FilterJTextField extends JTextField { private final String filterHint; private boolean showingHint; + private Timer timer; public FilterJTextField(String hint) { super(hint); @@ -48,6 +49,10 @@ public FilterJTextField(String hint) { showingHint = true; updateStyle(); + timer = new Timer(1000, e -> { + applyFilter(); + timer.stop(); + }); addFocusListener(new FocusListener() { public void focusLost(FocusEvent focusEvent) { @@ -68,33 +73,40 @@ public void focusGained(FocusEvent focusEvent) { getDocument().addDocumentListener(new DocumentListener() { public void removeUpdate(DocumentEvent e) { - applyFilter(); + spawnTimer(); } public void insertUpdate(DocumentEvent e) { - applyFilter(); + spawnTimer(); } public void changedUpdate(DocumentEvent e) { - applyFilter(); + + } + }); + + addActionListener(e -> { + if (timer.isRunning()) { + timer.stop(); } + applyFilter(); }); } - private String lastFilter = ""; + private void spawnTimer() { + if (timer.isRunning()) { + timer.stop(); + } + timer.start(); + } - private void applyFilter() { + public void applyFilter() { String filter = showingHint ? "" : getText(); filter = filter.toLowerCase(); // Replace anything but 0-9, a-z, or : with a space filter = filter.replaceAll("[^\\x30-\\x39^\\x61-\\x7a^\\x3a]", " "); - // Fire event only if the filter is changed - if (filter.equals(lastFilter)) - return; - - lastFilter = filter; onFilter(filter.split(" ")); } @@ -112,4 +124,23 @@ private void updateStyle() { setFont(getFont().deriveFont(Font.PLAIN)); } } + + @Override + public void paste() { + + // Same precondition check as JTextComponent#paste(). + if (!isEditable() || !isEnabled()) { + return; + } + + // Disable hint to prevent the focus handler from clearing the pasted text. + if (showingHint) { + showingHint = false; + setText(""); + updateStyle(); + } + + // Perform the paste. + super.paste(); + } } diff --git a/app/src/cc/arduino/contributions/ui/FilteredAbstractTableModel.java b/app/src/cc/arduino/contributions/ui/FilteredAbstractTableModel.java index 2e423a47e79..348561c31bf 100644 --- a/app/src/cc/arduino/contributions/ui/FilteredAbstractTableModel.java +++ b/app/src/cc/arduino/contributions/ui/FilteredAbstractTableModel.java @@ -37,11 +37,10 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Predicate; -import java.util.stream.Stream; public abstract class FilteredAbstractTableModel extends AbstractTableModel { - abstract public void updateIndexFilter(String[] filters, Stream> additionalFilters); + abstract public void updateIndexFilter(String[] filters, Predicate additionalFilter); public static T getLatestOf(List contribs) { contribs = new LinkedList<>(contribs); diff --git a/app/src/cc/arduino/contributions/ui/InstallerJDialog.java b/app/src/cc/arduino/contributions/ui/InstallerJDialog.java index 4563b21fdd9..8abff8f3454 100644 --- a/app/src/cc/arduino/contributions/ui/InstallerJDialog.java +++ b/app/src/cc/arduino/contributions/ui/InstallerJDialog.java @@ -43,9 +43,12 @@ import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionListener; +import java.awt.event.WindowAdapter; import java.util.function.Predicate; -import java.util.stream.Stream; +import javax.swing.Action; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -53,6 +56,7 @@ import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; @@ -63,10 +67,10 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; +import javax.swing.text.DefaultEditorKit; import cc.arduino.contributions.ui.listeners.AbstractKeyListener; import processing.app.Base; -import processing.app.Theme; public abstract class InstallerJDialog extends JDialog { @@ -77,6 +81,7 @@ public abstract class InstallerJDialog extends JDialog { protected final FilterJTextField filterField; protected final JPanel filtersContainer; // Currently selected category and filters + protected Predicate extraFilter = x -> true; protected Predicate categoryFilter; protected String[] filters; protected final String noConnectionErrorMessage; @@ -88,6 +93,8 @@ public abstract class InstallerJDialog extends JDialog { private final JButton closeButton; private final JButton dismissErrorMessageButton; + protected int previousRowAtPoint = -1; + abstract protected FilteredAbstractTableModel createContribModel(); abstract protected TableCellRenderer createCellRenderer(); @@ -118,17 +125,40 @@ public InstallerJDialog(Frame parent, String title, ModalityType applicationModa filterField = new FilterJTextField(tr("Filter your search...")) { @Override protected void onFilter(String[] _filters) { + previousRowAtPoint = -1; filters = _filters; if (contribTable.getCellEditor() != null) { contribTable.getCellEditor().stopCellEditing(); } updateIndexFilter(filters, categoryFilter); - if (contribModel.getRowCount() == 1) { - // TODO: understand why it doesn't work - //contribTable.addRowSelectionInterval(0, 0); - } } }; + filterField.getAccessibleContext().setAccessibleDescription(tr("Search Filter")); + + // Add cut/copy/paste contextual menu to the search filter input field. + JPopupMenu menu = new JPopupMenu(); + + Action cut = new DefaultEditorKit.CutAction(); + cut.putValue(Action.NAME, tr("Cut")); + menu.add(cut); + + Action copy = new DefaultEditorKit.CopyAction(); + copy.putValue(Action.NAME, tr("Copy")); + menu.add(copy); + + Action paste = new DefaultEditorKit.PasteAction(); + paste.putValue(Action.NAME, tr("Paste")); + menu.add(paste); + + filterField.setComponentPopupMenu(menu); + + // Focus the filter field when the window opens. + addWindowListener(new WindowAdapter() { + @Override + public void windowOpened(WindowEvent e) { + filterField.requestFocus(); + } + }); filtersContainer = new JPanel(); filtersContainer.setLayout(new BoxLayout(filtersContainer, BoxLayout.X_AXIS)); @@ -150,7 +180,6 @@ protected void onFilter(String[] _filters) { contribTable.setDragEnabled(false); contribTable.setIntercellSpacing(new Dimension(0, 1)); contribTable.setShowVerticalLines(false); - contribTable.setSelectionBackground(Theme.getColor("status.notice.bgcolor")); contribTable.addKeyListener(new AbstractKeyListener() { @Override @@ -167,6 +196,25 @@ public void keyReleased(KeyEvent keyEvent) { } }); + contribTable.addMouseMotionListener(new MouseMotionListener() { + + public void mouseDragged(MouseEvent e) {} + + public void mouseMoved(MouseEvent e) { + // avoid firing edits events until the mouse changes cell or the user is back on the cell after selecting a dropdown + int rowAtPoint = contribTable.rowAtPoint(e.getPoint()); + if (!InstallerTableCell.isDropdownSelected() && rowAtPoint != previousRowAtPoint) { + contribTable.editCellAt(rowAtPoint, 0); + previousRowAtPoint = rowAtPoint; + InstallerTableCell.dropdownSelected(false); + } + if (InstallerTableCell.isDropdownSelected() && rowAtPoint == previousRowAtPoint) { + // back to the original cell, can drop dropdown selector lock + InstallerTableCell.dropdownSelected(false); + } + } + }); + { TableColumnModel tcm = contribTable.getColumnModel(); TableColumn col = tcm.getColumn(0); @@ -241,9 +289,8 @@ public void keyReleased(KeyEvent keyEvent) { SwingUtilities.invokeLater(InstallerJDialog.this::onUpdatePressed); } - public void updateIndexFilter(String[] filters, Predicate... additionalFilters) { - Stream> notNullAdditionalFilters = Stream.of(additionalFilters).filter(filter -> filter != null); - contribModel.updateIndexFilter(filters, notNullAdditionalFilters); + public void updateIndexFilter(String[] filters, Predicate additionalFilter) { + contribModel.updateIndexFilter(filters, additionalFilter); } public void setErrorMessage(String message) { @@ -282,16 +329,16 @@ private void setErrorMessageVisible(boolean visible) { } protected final ActionListener categoryChooserActionListener = new ActionListener() { - @Override public void actionPerformed(ActionEvent event) { DropdownItem selected = (DropdownItem) categoryChooser.getSelectedItem(); - if (categoryFilter == null || !categoryFilter.equals(selected)) { + previousRowAtPoint = -1; + if (selected != null && categoryFilter != selected.getFilterPredicate()) { categoryFilter = selected.getFilterPredicate(); if (contribTable.getCellEditor() != null) { contribTable.getCellEditor().stopCellEditing(); } - updateIndexFilter(filters, categoryFilter); + updateIndexFilter(filters, categoryFilter.and(extraFilter)); } } }; @@ -301,6 +348,7 @@ public void setFilterText(String filterText) { listener.focusGained(new FocusEvent(filterField, FocusEvent.FOCUS_GAINED)); } filterField.setText(filterText); + filterField.applyFilter(); } public void selectDropdownItemByClassName(String dropdownItem) { diff --git a/app/src/cc/arduino/contributions/ui/InstallerTableCell.java b/app/src/cc/arduino/contributions/ui/InstallerTableCell.java index bbf62ebad70..3f94d3e0d79 100644 --- a/app/src/cc/arduino/contributions/ui/InstallerTableCell.java +++ b/app/src/cc/arduino/contributions/ui/InstallerTableCell.java @@ -41,6 +41,16 @@ public abstract class InstallerTableCell extends AbstractCellEditor implements T abstract public void setEnabled(boolean b); + private static boolean dropdownSelected = false; + + public static boolean isDropdownSelected( ) { + return dropdownSelected; + } + + public static void dropdownSelected(boolean b) { + dropdownSelected = b; + } + abstract public void setStatus(String s); public static void setJTextPaneDimensionToFitContainedText(JTextPane jTextPane, int width) { diff --git a/app/src/cc/arduino/contributions/ui/ProgressJProgressBar.java b/app/src/cc/arduino/contributions/ui/ProgressJProgressBar.java index 12b39742fa3..7c946e4993e 100644 --- a/app/src/cc/arduino/contributions/ui/ProgressJProgressBar.java +++ b/app/src/cc/arduino/contributions/ui/ProgressJProgressBar.java @@ -38,8 +38,13 @@ public class ProgressJProgressBar extends JProgressBar { public void setValue(Progress p) { setValue((int) p.getProgress()); - if (p.getStatus() != null) + if (p.getStatus() != null) { setString(p.getStatus()); + // copy status to accessibility context for screen readers to use + getAccessibleContext().setAccessibleDescription(p.getStatus()); + // make status focusable so screen readers can get to it + setFocusable(true); + } } } diff --git a/app/src/cc/arduino/packages/MonitorFactory.java b/app/src/cc/arduino/packages/MonitorFactory.java index 83d849dd6ef..3be7723b586 100644 --- a/app/src/cc/arduino/packages/MonitorFactory.java +++ b/app/src/cc/arduino/packages/MonitorFactory.java @@ -39,7 +39,7 @@ public AbstractMonitor newMonitor(BoardPort port) { if ("network".equals(port.getProtocol())) { if ("yes".equals(port.getPrefs().get("ssh_upload"))) { // the board is SSH capable - return new NetworkMonitor(port); + return new NetworkMonitor(port); } else { // SSH not supported, no monitor support return null; diff --git a/app/src/cc/arduino/view/NotificationPopup.java b/app/src/cc/arduino/view/NotificationPopup.java index 2334d6e14bd..2de079c8525 100644 --- a/app/src/cc/arduino/view/NotificationPopup.java +++ b/app/src/cc/arduino/view/NotificationPopup.java @@ -36,12 +36,7 @@ import java.awt.Frame; import java.awt.Image; import java.awt.Point; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import java.awt.event.*; import java.util.Timer; import java.util.TimerTask; @@ -55,22 +50,46 @@ import javax.swing.event.HyperlinkListener; import cc.arduino.Constants; +import processing.app.PreferencesData; import processing.app.Theme; -public class NotificationPopup extends JDialog { +import java.awt.event.KeyEvent; + +import static processing.app.I18n.tr; +public class NotificationPopup extends JDialog { private Timer autoCloseTimer = new Timer(false); private boolean autoClose = true; + private OptionalButtonCallbacks optionalButtonCallbacks; + + public interface OptionalButtonCallbacks { + void onOptionalButton1Callback(); + void onOptionalButton2Callback(); + } public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener, String message) { - this(parent, hyperlinkListener, message, true); + this(parent, hyperlinkListener, message, true, null, null, null); } public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener, String message, boolean _autoClose) { + this(parent, hyperlinkListener, message, _autoClose, null, null, null); + } + + public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener, + String message, boolean _autoClose, OptionalButtonCallbacks listener, String button1Name, String button2Name) { super(parent, false); - autoClose = _autoClose; + + if (!PreferencesData.getBoolean("ide.accessible")) { + // often auto-close is too fast for users of screen readers, so don't allow it. + autoClose = _autoClose; + } + else { + autoClose = false; + } + optionalButtonCallbacks = listener; + setLayout(new FlowLayout()); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setUndecorated(true); @@ -90,6 +109,74 @@ public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener, text.addHyperlinkListener(hyperlinkListener); add(text); + if (button1Name != null) { + JButton optionalButton1 = new JButton(tr(button1Name)); + MouseAdapter button1Action = new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (optionalButtonCallbacks != null) { + optionalButtonCallbacks.onOptionalButton1Callback(); + } + } + }; + optionalButton1.addMouseListener(button1Action); + + KeyListener button1Key = new KeyListener() { + // Ignore when the key is typed - only act once the key is released + public void keyTyped(KeyEvent e) { + // do nothing here, wait until the key is released + } + + // Ignore when the key is pressed - only act once the key is released + public void keyPressed(KeyEvent e) { + // do nothing here, wait until the key is released + } + + public void keyReleased(KeyEvent e) { + int key = e.getKeyCode(); + if ((key == KeyEvent.VK_ENTER) || (key == KeyEvent.VK_SPACE)) { + optionalButtonCallbacks.onOptionalButton1Callback(); + } + } + }; + optionalButton1.addKeyListener(button1Key); + add(optionalButton1); + } + + if (button2Name != null) { + JButton optionalButton2 = new JButton(tr(button2Name)); + MouseAdapter button2Action = new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (optionalButtonCallbacks != null) { + optionalButtonCallbacks.onOptionalButton2Callback(); + } + } + }; + optionalButton2.addMouseListener(button2Action); + + KeyListener button2Key = new KeyListener() { + // Ignore when the key is typed - only act once the key is released + public void keyTyped(KeyEvent e) { + // do nothing here, wait until the key is released + } + + // Ignore when the key is pressed - only act once the key is released + public void keyPressed(KeyEvent e) { + // do nothing here, wait until the key is released + } + + public void keyReleased(KeyEvent e) { + int key = e.getKeyCode(); + if ((key == KeyEvent.VK_ENTER) || (key == KeyEvent.VK_SPACE)) { + optionalButtonCallbacks.onOptionalButton2Callback(); + } + } + }; + optionalButton2.addKeyListener(button2Key); + add(optionalButton2); + } + Image close = Theme.getThemeImage("close", this, scale(22), scale(22)); JButton closeButton = new JButton(new ImageIcon(close)); closeButton.setBorder(null); @@ -97,6 +184,26 @@ public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener, closeButton.setHideActionText(true); closeButton.setOpaque(false); closeButton.setBackground(new Color(0, 0, 0, 0)); + closeButton.getAccessibleContext().setAccessibleDescription(tr("Close")); + KeyListener closeKey = new KeyListener() { + // Ignore when the key is typed - only act once the key is released + public void keyTyped(KeyEvent e) { + // do nothing here, wait until the key is released + } + + // Ignore when the key is pressed - only act once the key is released + public void keyPressed(KeyEvent e) { + // do nothing here, wait until the key is released + } + + public void keyReleased(KeyEvent e) { + int key = e.getKeyCode(); + if ((key == KeyEvent.VK_ENTER) || (key == KeyEvent.VK_SPACE)) { + close(); + } + } + }; + closeButton.addKeyListener(closeKey); add(closeButton); MouseAdapter closeOnClick = new MouseAdapter() { @@ -145,6 +252,7 @@ public void close() { if (autoClose) { autoCloseTimer.cancel(); } + setModal(false); dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING)); } @@ -158,5 +266,9 @@ public void run() { }, Constants.NOTIFICATION_POPUP_AUTOCLOSE_DELAY); } setVisible(true); + if (PreferencesData.getBoolean("ide.accessible")) { + requestFocus(); + setModal(true); + } } } diff --git a/app/src/cc/arduino/view/findreplace/FindReplace.java b/app/src/cc/arduino/view/findreplace/FindReplace.java index 6af1f397bdb..03e7b10947d 100644 --- a/app/src/cc/arduino/view/findreplace/FindReplace.java +++ b/app/src/cc/arduino/view/findreplace/FindReplace.java @@ -37,6 +37,9 @@ import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import javax.swing.JPopupMenu; +import javax.swing.Action; +import javax.swing.text.DefaultEditorKit; import java.util.HashMap; import java.util.Map; @@ -161,6 +164,22 @@ private void initComponents() { searchAllFilesBox.setText(tr("Search all Sketch Tabs")); + JPopupMenu menu = new JPopupMenu(); + Action cut = new DefaultEditorKit.CutAction(); + cut.putValue(Action.NAME, tr("Cut")); + menu.add( cut ); + + Action copy = new DefaultEditorKit.CopyAction(); + copy.putValue(Action.NAME, tr("Copy")); + menu.add( copy ); + + Action paste = new DefaultEditorKit.PasteAction(); + paste.putValue(Action.NAME, tr("Paste")); + menu.add( paste ); + + findField.setComponentPopupMenu( menu ); + replaceField.setComponentPopupMenu( menu ); + findButton.setText(tr("Find")); findButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { diff --git a/app/src/cc/arduino/view/preferences/Preferences.java b/app/src/cc/arduino/view/preferences/Preferences.java index 4ecbd26c122..005d2f83e54 100644 --- a/app/src/cc/arduino/view/preferences/Preferences.java +++ b/app/src/cc/arduino/view/preferences/Preferences.java @@ -38,6 +38,7 @@ import processing.app.I18n; import processing.app.PreferencesData; import processing.app.Theme; +import processing.app.Theme.ZippedTheme; import processing.app.helpers.FileUtils; import processing.app.legacy.PApplet; @@ -46,6 +47,7 @@ import java.awt.event.ItemEvent; import java.awt.event.WindowEvent; import java.io.File; +import java.util.Collection; import java.util.LinkedList; import static processing.app.I18n.tr; @@ -89,7 +91,7 @@ public Preferences(Window parent, Base base) { Base.registerWindowCloseKeys(getRootPane(), this::cancelButtonActionPerformed); - showPrerefencesData(); + showPreferencesData(); } /** @@ -130,10 +132,9 @@ private void initComponents() { enableCodeFoldingBox = new javax.swing.JCheckBox(); verifyUploadBox = new javax.swing.JCheckBox(); externalEditorBox = new javax.swing.JCheckBox(); - cacheCompiledCore = new javax.swing.JCheckBox(); checkUpdatesBox = new javax.swing.JCheckBox(); - updateExtensionBox = new javax.swing.JCheckBox(); saveVerifyUploadBox = new javax.swing.JCheckBox(); + accessibleIDEBox = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); scaleSpinner = new javax.swing.JSpinner(); @@ -159,6 +160,9 @@ private void initComponents() { autoProxyUsername = new javax.swing.JTextField(); autoProxyPassword = new javax.swing.JPasswordField(); autoProxyPasswordLabel = new javax.swing.JLabel(); + comboThemeLabel = new javax.swing.JLabel(); + comboTheme = new JComboBox(); + requiresRestartLabel2 = new javax.swing.JLabel(); javax.swing.JPanel jPanel3 = new javax.swing.JPanel(); javax.swing.JButton okButton = new javax.swing.JButton(); javax.swing.JButton cancelButton = new javax.swing.JButton(); @@ -175,7 +179,7 @@ private void initComponents() { sketchbookLocationLabel.setText(tr("Sketchbook location:")); sketchbookLocationLabel.setLabelFor(sketchbookLocationField); - + sketchbookLocationField.setColumns(40); browseButton.setText(I18n.PROMPT_BROWSE); @@ -188,7 +192,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { comboLanguageLabel.setText(tr("Editor language: ")); requiresRestartLabel.setText(tr(" (requires restart of Arduino)")); - + comboLanguage.getAccessibleContext().setAccessibleName("Editor language (requires restart of Arduino)"); fontSizeLabel.setText(tr("Editor font size: ")); @@ -243,7 +247,7 @@ public void mouseEntered(java.awt.event.MouseEvent evt) { arduinoNotRunningLabel.setForeground(Color.GRAY); arduinoNotRunningLabel.setText(tr("(edit only when Arduino is not running)")); - checkboxesContainer.setLayout(new javax.swing.BoxLayout(checkboxesContainer, javax.swing.BoxLayout.Y_AXIS)); + checkboxesContainer.setLayout(new GridLayout(0,2)); displayLineNumbersBox.setText(tr("Display line numbers")); checkboxesContainer.add(displayLineNumbersBox); @@ -272,18 +276,15 @@ public void mouseEntered(java.awt.event.MouseEvent evt) { checkboxesContainer.add(externalEditorBox); - cacheCompiledCore.setText(tr("Aggressively cache compiled core")); - checkboxesContainer.add(cacheCompiledCore); - checkUpdatesBox.setText(tr("Check for updates on startup")); checkboxesContainer.add(checkUpdatesBox); - updateExtensionBox.setText(tr("Update sketch files to new extension on save (.pde -> .ino)")); - checkboxesContainer.add(updateExtensionBox); - saveVerifyUploadBox.setText(tr("Save when verifying or uploading")); checkboxesContainer.add(saveVerifyUploadBox); + accessibleIDEBox.setText(tr("Use accessibility features")); + checkboxesContainer.add(accessibleIDEBox); + jLabel1.setText(tr("Interface scale:")); jLabel2.setText(tr(" (requires restart of Arduino)")); @@ -303,6 +304,12 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { jLabel3.setText("%"); + comboThemeLabel.setText(tr("Theme: ")); + + comboTheme.getAccessibleContext().setAccessibleName("Theme (requires restart of Arduino)"); + + requiresRestartLabel2.setText(tr(" (requires restart of Arduino)")); + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( @@ -311,7 +318,7 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(sketchbookLocationField, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE) + .addComponent(sketchbookLocationField, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(browseButton)) .addComponent(checkboxesContainer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -341,9 +348,14 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(comboLanguageLabel) - .addComponent(fontSizeLabel)) + .addComponent(fontSizeLabel) + .addComponent(comboThemeLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(comboTheme, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(requiresRestartLabel2)) .addComponent(fontSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(comboLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -363,7 +375,7 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { .addContainerGap()) ); - jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboLanguageLabel, comboWarningsLabel, fontSizeLabel, jLabel1, showVerboseLabel}); + jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboLanguageLabel, comboWarningsLabel, fontSizeLabel, jLabel1, showVerboseLabel, comboThemeLabel}); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -391,6 +403,11 @@ public void itemStateChanged(java.awt.event.ItemEvent evt) { .addComponent(autoScaleCheckBox) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(comboThemeLabel) + .addComponent(comboTheme, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(requiresRestartLabel2)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(showVerboseLabel) .addComponent(verboseCompilationBox) @@ -610,13 +627,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 691, Short.MAX_VALUE) + .addGap(0, 800, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 580, Short.MAX_VALUE) + .addGap(0, 400, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); @@ -700,6 +717,7 @@ private void autoScaleCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {// private javax.swing.JCheckBox autoScaleCheckBox; private javax.swing.JButton browseButton; private javax.swing.JCheckBox checkUpdatesBox; + private javax.swing.JCheckBox accessibleIDEBox; private javax.swing.JPanel checkboxesContainer; private javax.swing.JComboBox comboLanguage; private javax.swing.JLabel comboLanguageLabel; @@ -709,7 +727,6 @@ private void autoScaleCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {// private javax.swing.JCheckBox enableCodeFoldingBox; private javax.swing.JButton extendedAdditionalUrlFieldWindow; private javax.swing.JCheckBox externalEditorBox; - private javax.swing.JCheckBox cacheCompiledCore; private javax.swing.JTextField fontSizeField; private javax.swing.JLabel fontSizeLabel; private javax.swing.JLabel jLabel1; @@ -738,10 +755,12 @@ private void autoScaleCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {// private javax.swing.JLabel showVerboseLabel; private javax.swing.JTextField sketchbookLocationField; private javax.swing.JLabel sketchbookLocationLabel; - private javax.swing.JCheckBox updateExtensionBox; private javax.swing.JCheckBox verboseCompilationBox; private javax.swing.JCheckBox verboseUploadBox; private javax.swing.JCheckBox verifyUploadBox; + private javax.swing.JComboBox comboTheme; + private javax.swing.JLabel comboThemeLabel; + private javax.swing.JLabel requiresRestartLabel2; // End of variables declaration//GEN-END:variables private java.util.List validateData() { @@ -770,6 +789,12 @@ private void savePreferencesData() { Language newLanguage = (Language) comboLanguage.getSelectedItem(); PreferencesData.set("editor.languages.current", newLanguage.getIsoCode()); + if (comboTheme.getSelectedIndex() == 0) { + PreferencesData.set("theme.file", ""); + } else { + PreferencesData.set("theme.file", ((ZippedTheme) comboTheme.getSelectedItem()).getKey()); + } + String newSizeText = fontSizeField.getText(); try { int newSize = Integer.parseInt(newSizeText.trim()); @@ -804,13 +829,9 @@ private void savePreferencesData() { PreferencesData.setBoolean("editor.external", externalEditorBox.isSelected()); - PreferencesData.setBoolean("compiler.cache_core", cacheCompiledCore.isSelected()); - PreferencesData.setBoolean("update.check", checkUpdatesBox.isSelected()); - PreferencesData.setBoolean("editor.update_extension", updateExtensionBox.isSelected()); - - PreferencesData.setBoolean("editor.save_on_verify", saveVerifyUploadBox.isSelected()); + PreferencesData.setBoolean("ide.accessible", accessibleIDEBox.isSelected()); PreferencesData.set("boardsmanager.additional.urls", additionalBoardsManagerField.getText().replace("\r\n", "\n").replace("\r", "\n").replace("\n", ",")); @@ -819,13 +840,17 @@ private void savePreferencesData() { PreferencesData.set(Constants.PREF_PROXY_MANUAL_TYPE, manualProxyTypeButtonGroup.getSelection().getActionCommand()); PreferencesData.set(Constants.PREF_PROXY_MANUAL_HOSTNAME, manualProxyHostName.getText()); PreferencesData.set(Constants.PREF_PROXY_MANUAL_PORT, manualProxyPort.getText()); - PreferencesData.set(Constants.PREF_PROXY_MANUAL_USERNAME, manualProxyUsername.getText()); - PreferencesData.set(Constants.PREF_PROXY_MANUAL_PASSWORD, String.valueOf(manualProxyPassword.getPassword())); - PreferencesData.set(Constants.PREF_PROXY_AUTO_USERNAME, autoProxyUsername.getText()); - PreferencesData.set(Constants.PREF_PROXY_AUTO_PASSWORD, String.valueOf(autoProxyPassword.getPassword())); + if (PreferencesData.get(Constants.PREF_PROXY_TYPE).equals(Constants.PROXY_TYPE_MANUAL)) { + PreferencesData.set(Constants.PREF_PROXY_USERNAME, manualProxyUsername.getText()); + PreferencesData.set(Constants.PREF_PROXY_PASSWORD, String.valueOf(manualProxyPassword.getPassword())); + } + if (PreferencesData.get(Constants.PREF_PROXY_TYPE).equals(Constants.PROXY_TYPE_AUTO)) { + PreferencesData.set(Constants.PREF_PROXY_USERNAME, autoProxyUsername.getText()); + PreferencesData.set(Constants.PREF_PROXY_PASSWORD, String.valueOf(autoProxyPassword.getPassword())); + } } - private void showPrerefencesData() { + private void showPreferencesData() { sketchbookLocationField.setText(PreferencesData.get("sketchbook.path")); String currentLanguageISOCode = PreferencesData.get("editor.languages.current"); @@ -835,6 +860,16 @@ private void showPrerefencesData() { } } + String selectedTheme = PreferencesData.get("theme.file", ""); + Collection availablethemes = Theme.getAvailablethemes(); + comboTheme.addItem(tr("Default theme")); + for (ZippedTheme theme : availablethemes) { + comboTheme.addItem(theme); + if (theme.getKey().equals(selectedTheme)) { + comboTheme.setSelectedItem(theme); + } + } + Font editorFont = PreferencesData.getFont("editor.font"); fontSizeField.setText(String.valueOf(editorFont.getSize())); @@ -866,11 +901,17 @@ private void showPrerefencesData() { externalEditorBox.setSelected(PreferencesData.getBoolean("editor.external")); - cacheCompiledCore.setSelected(PreferencesData.get("compiler.cache_core") == null || PreferencesData.getBoolean("compiler.cache_core")); + if (PreferencesData.get("compiler.cache_core") == null) { + PreferencesData.setBoolean("compiler.cache_core", true); + } checkUpdatesBox.setSelected(PreferencesData.getBoolean("update.check")); - updateExtensionBox.setSelected(PreferencesData.get("editor.update_extension") == null || PreferencesData.getBoolean("editor.update_extension")); + if (PreferencesData.get("editor.update_extension") == null) { + PreferencesData.setBoolean("editor.update_extension", true); + } + + accessibleIDEBox.setSelected(PreferencesData.getBoolean("ide.accessible")); saveVerifyUploadBox.setSelected(PreferencesData.getBoolean("editor.save_on_verify")); @@ -887,16 +928,16 @@ private void showPrerefencesData() { if (!PreferencesData.get(Constants.PREF_PROXY_PAC_URL, "").isEmpty()) { autoProxyUsePAC.setSelected(true); autoProxyPACURL.setText(PreferencesData.get(Constants.PREF_PROXY_PAC_URL)); - autoProxyUsername.setText(PreferencesData.get(Constants.PREF_PROXY_AUTO_USERNAME)); - autoProxyPassword.setText(PreferencesData.get(Constants.PREF_PROXY_AUTO_PASSWORD)); + autoProxyUsername.setText(PreferencesData.get(Constants.PREF_PROXY_USERNAME)); + autoProxyPassword.setText(PreferencesData.get(Constants.PREF_PROXY_PASSWORD)); } } else { manualProxy.setSelected(true); manualProxyFieldsSetEnabled(true); manualProxyHostName.setText(PreferencesData.get(Constants.PREF_PROXY_MANUAL_HOSTNAME)); manualProxyPort.setText(PreferencesData.get(Constants.PREF_PROXY_MANUAL_PORT)); - manualProxyUsername.setText(PreferencesData.get(Constants.PREF_PROXY_MANUAL_USERNAME)); - manualProxyPassword.setText(PreferencesData.get(Constants.PREF_PROXY_MANUAL_PASSWORD)); + manualProxyUsername.setText(PreferencesData.get(Constants.PREF_PROXY_USERNAME)); + manualProxyPassword.setText(PreferencesData.get(Constants.PREF_PROXY_PASSWORD)); } String selectedManualProxyType = PreferencesData.get(Constants.PREF_PROXY_MANUAL_TYPE, Constants.PROXY_MANUAL_TYPE_HTTP); diff --git a/app/src/log4j2.xml b/app/src/log4j2.xml new file mode 100644 index 00000000000..64f6b8f063f --- /dev/null +++ b/app/src/log4j2.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}{UTC} %p %c{1.}:%L [%t] %m%n + + + + + + + + + + + + + + diff --git a/app/src/processing/app/AbstractMonitor.java b/app/src/processing/app/AbstractMonitor.java index 52c5b65b56b..b6ba0d7652e 100644 --- a/app/src/processing/app/AbstractMonitor.java +++ b/app/src/processing/app/AbstractMonitor.java @@ -17,6 +17,7 @@ public abstract class AbstractMonitor extends JFrame implements ActionListener { private StringBuffer updateBuffer; private Timer updateTimer; + private Timer portExistsTimer; private BoardPort boardPort; @@ -27,6 +28,7 @@ public AbstractMonitor(BoardPort boardPort) { this.boardPort = boardPort; addWindowListener(new WindowAdapter() { + @Override public void windowClosing(WindowEvent event) { try { closed = true; @@ -41,6 +43,7 @@ public void windowClosing(WindowEvent event) { KeyStroke wc = Editor.WINDOW_CLOSE_KEYSTROKE; getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(wc, "close"); getRootPane().getActionMap().put("close", (new AbstractAction() { + @Override public void actionPerformed(ActionEvent event) { try { close(); @@ -71,6 +74,26 @@ public void actionPerformed(ActionEvent event) { updateTimer = new Timer(33, this); // redraw serial monitor at 30 Hz updateTimer.start(); + ActionListener portExists = new ActionListener() { + @Override + public void actionPerformed(ActionEvent ae) { + try { + if (Base.getDiscoveryManager().find(boardPort.getAddress()) == null) { + if (!closed) { + suspend(); + } + } else { + if (closed && !Editor.isUploading()) { + resume(boardPort); + } + } + } catch (Exception e) {} + } + }; + + portExistsTimer = new Timer(1000, portExists); // check if the port is still there every second + portExistsTimer.start(); + closed = false; } @@ -90,6 +113,11 @@ public void suspend() throws Exception { close(); } + public void dispose() { + super.dispose(); + portExistsTimer.stop(); + } + public void resume(BoardPort boardPort) throws Exception { setBoardPort(boardPort); @@ -165,6 +193,7 @@ private synchronized String consumeUpdateBuffer() { return s; } + @Override public void actionPerformed(ActionEvent e) { String s = consumeUpdateBuffer(); if (s.isEmpty()) { @@ -173,4 +202,13 @@ public void actionPerformed(ActionEvent e) { message(s); } } + + /** + * 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. + */ + public void applyPreferences() { + // Empty. + }; } diff --git a/app/src/processing/app/AbstractTextMonitor.java b/app/src/processing/app/AbstractTextMonitor.java index 1602e869a72..00eabb20649 100644 --- a/app/src/processing/app/AbstractTextMonitor.java +++ b/app/src/processing/app/AbstractTextMonitor.java @@ -3,14 +3,21 @@ import static processing.app.I18n.tr; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyListener; +import java.awt.event.MouseWheelListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.StringTokenizer; +import javax.swing.Action; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -18,11 +25,13 @@ import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.border.EmptyBorder; import javax.swing.text.DefaultCaret; +import javax.swing.text.DefaultEditorKit; import cc.arduino.packages.BoardPort; @@ -36,25 +45,36 @@ public abstract class AbstractTextMonitor extends AbstractMonitor { protected JButton sendButton; protected JButton clearButton; protected JCheckBox autoscrollBox; - protected JComboBox lineEndings; - protected JComboBox serialRates; + protected JCheckBox addTimeStampBox; + protected JComboBox lineEndings; + protected JComboBox serialRates; public AbstractTextMonitor(BoardPort boardPort) { super(boardPort); } - + + @Override + public synchronized void addMouseWheelListener(MouseWheelListener l) { + super.addMouseWheelListener(l); + textArea.addMouseWheelListener(l); + } + + @Override + public synchronized void addKeyListener(KeyListener l) { + super.addKeyListener(l); + textArea.addKeyListener(l); + textField.addKeyListener(l); + } + + @Override protected void onCreateWindow(Container mainPane) { - Font consoleFont = Theme.getFont("console.font"); - Font editorFont = PreferencesData.getFont("editor.font"); - Font font = Theme.scale(new Font(consoleFont.getName(), consoleFont.getStyle(), editorFont.getSize())); mainPane.setLayout(new BorderLayout()); - textArea = new TextAreaFIFO(8000000); + textArea = new TextAreaFIFO(8_000_000); textArea.setRows(16); textArea.setColumns(40); textArea.setEditable(false); - textArea.setFont(font); // don't automatically update the caret. that way we can manually decide // whether or not to do so based on the autoscroll checkbox. @@ -63,7 +83,7 @@ protected void onCreateWindow(Container mainPane) { scrollPane = new JScrollPane(textArea); mainPane.add(scrollPane, BorderLayout.CENTER); - + JPanel upperPane = new JPanel(); upperPane.setLayout(new BoxLayout(upperPane, BoxLayout.X_AXIS)); upperPane.setBorder(new EmptyBorder(4, 4, 4, 4)); @@ -71,11 +91,29 @@ protected void onCreateWindow(Container mainPane) { textField = new JTextField(40); // textField is selected every time the window is focused addWindowFocusListener(new WindowAdapter() { + @Override public void windowGainedFocus(WindowEvent e) { textField.requestFocusInWindow(); } }); + // Add cut/copy/paste contextual menu to the text input field. + JPopupMenu menu = new JPopupMenu(); + + Action cut = new DefaultEditorKit.CutAction(); + cut.putValue(Action.NAME, tr("Cut")); + menu.add(cut); + + Action copy = new DefaultEditorKit.CopyAction(); + copy.putValue(Action.NAME, tr("Copy")); + menu.add(copy); + + Action paste = new DefaultEditorKit.PasteAction(); + paste.putValue(Action.NAME, tr("Paste")); + menu.add(paste); + + textField.setComponentPopupMenu(menu); + sendButton = new JButton(tr("Send")); clearButton = new JButton(tr("Clear output")); @@ -90,6 +128,7 @@ public void windowGainedFocus(WindowEvent e) { pane.setBorder(new EmptyBorder(4, 4, 4, 4)); autoscrollBox = new JCheckBox(tr("Autoscroll"), true); + addTimeStampBox = new JCheckBox(tr("Show timestamp"), false); noLineEndingAlert = new JLabel(I18n.format(tr("You've pressed {0} but nothing was sent. Should you select a line ending?"), tr("Send"))); noLineEndingAlert.setToolTipText(noLineEndingAlert.getText()); @@ -98,19 +137,17 @@ public void windowGainedFocus(WindowEvent e) { minimumSize.setSize(minimumSize.getWidth() / 3, minimumSize.getHeight()); noLineEndingAlert.setMinimumSize(minimumSize); - lineEndings = new JComboBox(new String[]{tr("No line ending"), tr("Newline"), tr("Carriage return"), tr("Both NL & CR")}); - lineEndings.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent event) { - PreferencesData.setInteger("serial.line_ending", lineEndings.getSelectedIndex()); - noLineEndingAlert.setForeground(pane.getBackground()); - } + lineEndings = new JComboBox<>(new String[]{tr("No line ending"), tr("Newline"), tr("Carriage return"), tr("Both NL & CR")}); + lineEndings.addActionListener((ActionEvent event) -> { + PreferencesData.setInteger("serial.line_ending", lineEndings.getSelectedIndex()); + noLineEndingAlert.setForeground(pane.getBackground()); }); - if (PreferencesData.get("serial.line_ending") != null) { - lineEndings.setSelectedIndex(PreferencesData.getInteger("serial.line_ending")); - } + addTimeStampBox.addActionListener((ActionEvent event) -> + PreferencesData.setBoolean("serial.show_timestamp", addTimeStampBox.isSelected())); + lineEndings.setMaximumSize(lineEndings.getMinimumSize()); - serialRates = new JComboBox(); + serialRates = new JComboBox<>(); for (String rate : serialRateStrings) { serialRates.addItem(rate + " " + tr("baud")); } @@ -118,6 +155,7 @@ public void actionPerformed(ActionEvent event) { serialRates.setMaximumSize(serialRates.getMinimumSize()); pane.add(autoscrollBox); + pane.add(addTimeStampBox); pane.add(Box.createHorizontalGlue()); pane.add(noLineEndingAlert); pane.add(Box.createRigidArea(new Dimension(8, 0))); @@ -127,26 +165,41 @@ public void actionPerformed(ActionEvent event) { pane.add(Box.createRigidArea(new Dimension(8, 0))); pane.add(clearButton); + applyPreferences(); + mainPane.add(pane, BorderLayout.SOUTH); } - protected void onEnableWindow(boolean enable) - { - textArea.setEnabled(enable); - clearButton.setEnabled(enable); + @Override + protected void onEnableWindow(boolean enable) { + // never actually disable textArea, so people can + // still select & copy text, even when the port + // is closed or disconnected + textArea.setEnabled(true); + if (enable) { + // setting these to null for system default + // gives a wrong gray background on Windows + // so assume black text on white background + textArea.setForeground(Color.BLACK); + textArea.setBackground(Color.WHITE); + } else { + // In theory, UIManager.getDefaults() should + // give us the system's colors for disabled + // windows. But it doesn't seem to work. :( + textArea.setForeground(new Color(64, 64, 64)); + textArea.setBackground(new Color(238, 238, 238)); + } + textArea.invalidate(); scrollPane.setEnabled(enable); textField.setEnabled(enable); sendButton.setEnabled(enable); - autoscrollBox.setEnabled(enable); - lineEndings.setEnabled(enable); - serialRates.setEnabled(enable); } public void onSendCommand(ActionListener listener) { textField.addActionListener(listener); sendButton.addActionListener(listener); } - + public void onClearCommand(ActionListener listener) { clearButton.addActionListener(listener); } @@ -154,15 +207,59 @@ public void onClearCommand(ActionListener listener) { public void onSerialRateChange(ActionListener listener) { serialRates.addActionListener(listener); } - - public void message(final String s) { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - textArea.append(s); - if (autoscrollBox.isSelected()) { - textArea.setCaretPosition(textArea.getDocument().getLength()); - } + + @Override + public void message(String msg) { + SwingUtilities.invokeLater(() -> updateTextArea(msg)); + } + + private static final String LINE_SEPARATOR = "\n"; + private boolean isStartingLine = true; + + protected void updateTextArea(String msg) { + if (addTimeStampBox.isSelected()) { + textArea.append(addTimestamps(msg)); + } else { + textArea.append(msg); + } + if (autoscrollBox.isSelected()) { + textArea.setCaretPosition(textArea.getDocument().getLength()); + } + } + + @Override + public void applyPreferences() { + + // Apply font. + Font consoleFont = Theme.getFont("console.font"); + Font editorFont = PreferencesData.getFont("editor.font"); + textArea.setFont(Theme.scale(new Font( + consoleFont.getName(), consoleFont.getStyle(), editorFont.getSize()))); + + // Apply line endings. + if (PreferencesData.get("serial.line_ending") != null) { + lineEndings.setSelectedIndex(PreferencesData.getInteger("serial.line_ending")); + } + + // Apply timestamp visibility. + if (PreferencesData.get("serial.show_timestamp") != null) { + addTimeStampBox.setSelected(PreferencesData.getBoolean("serial.show_timestamp")); + } + } + + private String addTimestamps(String text) { + String now = new SimpleDateFormat("HH:mm:ss.SSS -> ").format(new Date()); + final StringBuilder sb = new StringBuilder(text.length() + now.length()); + StringTokenizer tokenizer = new StringTokenizer(text, LINE_SEPARATOR, true); + while (tokenizer.hasMoreTokens()) { + if (isStartingLine) { + sb.append(now); } - }); + String token = tokenizer.nextToken(); + sb.append(token); + // tokenizer returns "\n" as a single token + isStartingLine = token.equals(LINE_SEPARATOR); + } + return sb.toString(); } } diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 1752e1dc824..1e4819bba34 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -27,7 +27,10 @@ import cc.arduino.UpdatableBoardsLibsFakeURLsHandler; import cc.arduino.UploaderUtils; import cc.arduino.contributions.*; -import cc.arduino.contributions.libraries.*; +import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.LibrariesIndexer; +import cc.arduino.contributions.libraries.LibraryInstaller; +import cc.arduino.contributions.libraries.LibraryOfSameTypeComparator; import cc.arduino.contributions.libraries.ui.LibraryManagerUI; import cc.arduino.contributions.packages.ContributedPlatform; import cc.arduino.contributions.packages.ContributionInstaller; @@ -35,10 +38,11 @@ import cc.arduino.contributions.packages.ui.ContributionManagerUI; import cc.arduino.files.DeleteFilesOnShutdown; import cc.arduino.packages.DiscoveryManager; +import cc.arduino.packages.Uploader; import cc.arduino.view.Event; import cc.arduino.view.JMenuUtils; import cc.arduino.view.SplashScreenHelper; - +import com.github.zafarkhaja.semver.Version; import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.lang3.StringUtils; import processing.app.debug.TargetBoard; @@ -52,6 +56,7 @@ import processing.app.macosx.ThinkDifferent; import processing.app.packages.LibraryList; import processing.app.packages.UserLibrary; +import processing.app.packages.UserLibraryFolder.Location; import processing.app.syntax.PdeKeywords; import processing.app.syntax.SketchTextAreaDefaultInputMap; import processing.app.tools.MenuScroller; @@ -61,15 +66,16 @@ import java.awt.*; import java.awt.event.*; import java.io.*; -import java.util.*; import java.util.List; import java.util.Timer; +import java.util.*; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.stream.Stream; +import static processing.app.I18n.format; import static processing.app.I18n.tr; @@ -135,7 +141,7 @@ static public void main(String args[]) throws Exception { if (OSUtils.isMacOS()) { System.setProperty("apple.laf.useScreenMenuBar", String.valueOf(!System.getProperty("os.version").startsWith("10.13") - || com.apple.eawt.Application.getApplication().isAboutMenuItemPresent())); + || isMacOsAboutMenuItemPresent())); ThinkDifferent.init(); } @@ -148,6 +154,11 @@ static public void main(String args[]) throws Exception { } } + @SuppressWarnings("deprecation") + public static boolean isMacOsAboutMenuItemPresent() { + return com.apple.eawt.Application.getApplication().isAboutMenuItemPresent(); + } + static public void initLogger() { Handler consoleHandler = new ConsoleLogger(); consoleHandler.setLevel(Level.ALL); @@ -209,6 +220,26 @@ public Base(String[] args) throws Exception { parser.parseArgumentsPhase1(); commandLine = !parser.isGuiMode(); + // This configure the logs root folder + if (parser.isGuiMode()) { + System.out.println("Set log4j store directory " + BaseNoGui.getSettingsFolder().getAbsolutePath()); + } + System.setProperty("log4j.dir", BaseNoGui.getSettingsFolder().getAbsolutePath()); + + BaseNoGui.checkInstallationFolder(); + + // If no path is set, get the default sketchbook folder for this platform + if (BaseNoGui.getSketchbookPath() == null) { + File defaultFolder = getDefaultSketchbookFolderOrPromptForIt(); + if (BaseNoGui.getPortableFolder() != null) + PreferencesData.set("sketchbook.path", BaseNoGui.getPortableSketchbookFolder()); + else + PreferencesData.set("sketchbook.path", defaultFolder.getAbsolutePath()); + if (!defaultFolder.exists()) { + defaultFolder.mkdirs(); + } + } + SplashScreenHelper splash; if (parser.isGuiMode()) { // Setup all notification widgets @@ -243,23 +274,11 @@ public Base(String[] args) throws Exception { untitledFolder = FileUtils.createTempFolder("untitled" + new Random().nextInt(Integer.MAX_VALUE), ".tmp"); DeleteFilesOnShutdown.add(untitledFolder); - BaseNoGui.checkInstallationFolder(); - - // If no path is set, get the default sketchbook folder for this platform - if (BaseNoGui.getSketchbookPath() == null) { - File defaultFolder = getDefaultSketchbookFolderOrPromptForIt(); - if (BaseNoGui.getPortableFolder() != null) - PreferencesData.set("sketchbook.path", BaseNoGui.getPortableSketchbookFolder()); - else - PreferencesData.set("sketchbook.path", defaultFolder.getAbsolutePath()); - if (!defaultFolder.exists()) { - defaultFolder.mkdirs(); - } - } - splash.splashText(tr("Initializing packages...")); BaseNoGui.initPackages(); + parser.getUploadPort().ifPresent(BaseNoGui::selectSerialPort); + splash.splashText(tr("Preparing boards...")); if (!isCommandLine()) { @@ -277,8 +296,9 @@ public Base(String[] args) throws Exception { pdeKeywords = new PdeKeywords(); pdeKeywords.reload(); - contributionInstaller = new ContributionInstaller(BaseNoGui.getPlatform(), new GPGDetachedSignatureVerifier()); - libraryInstaller = new LibraryInstaller(BaseNoGui.getPlatform()); + final GPGDetachedSignatureVerifier gpgDetachedSignatureVerifier = new GPGDetachedSignatureVerifier(); + contributionInstaller = new ContributionInstaller(BaseNoGui.getPlatform(), gpgDetachedSignatureVerifier); + libraryInstaller = new LibraryInstaller(BaseNoGui.getPlatform(), gpgDetachedSignatureVerifier); parser.parseArgumentsPhase2(); @@ -292,7 +312,7 @@ public Base(String[] args) throws Exception { if (parser.isInstallBoard()) { ContributionsIndexer indexer = new ContributionsIndexer( BaseNoGui.getSettingsFolder(), BaseNoGui.getHardwareFolder(), - BaseNoGui.getPlatform(), new GPGDetachedSignatureVerifier()); + BaseNoGui.getPlatform(), gpgDetachedSignatureVerifier); ProgressListener progressListener = new ConsoleProgressListener(); List downloadedPackageIndexFiles = contributionInstaller.updateIndex(progressListener); @@ -304,7 +324,12 @@ public Base(String[] args) throws Exception { ContributedPlatform selected = null; if (boardToInstallParts.length == 3) { - selected = indexer.getIndex().findPlatform(boardToInstallParts[0], boardToInstallParts[1], VersionHelper.valueOf(boardToInstallParts[2]).toString()); + Optional version = VersionHelper.valueOf(boardToInstallParts[2]); + if (!version.isPresent()) { + System.out.println(format(tr("Invalid version {0}"), boardToInstallParts[2])); + System.exit(1); + } + selected = indexer.getIndex().findPlatform(boardToInstallParts[0], boardToInstallParts[1], version.get().toString()); } else if (boardToInstallParts.length == 2) { List platformsByName = indexer.getIndex().findPlatforms(boardToInstallParts[0], boardToInstallParts[1]); Collections.sort(platformsByName, new DownloadableContributionVersionComparator()); @@ -319,11 +344,11 @@ public Base(String[] args) throws Exception { ContributedPlatform installed = indexer.getInstalled(boardToInstallParts[0], boardToInstallParts[1]); - if (!selected.isReadOnly()) { + if (!selected.isBuiltIn()) { contributionInstaller.install(selected, progressListener); } - if (installed != null && !installed.isReadOnly()) { + if (installed != null && !installed.isBuiltIn()) { contributionInstaller.remove(installed); } @@ -337,15 +362,20 @@ public Base(String[] args) throws Exception { LibrariesIndexer indexer = new LibrariesIndexer(BaseNoGui.getSettingsFolder()); indexer.parseIndex(); - indexer.setSketchbookLibrariesFolder(BaseNoGui.getSketchbookLibrariesFolder()); - indexer.setLibrariesFolders(BaseNoGui.getLibrariesPath()); + indexer.setLibrariesFolders(BaseNoGui.getLibrariesFolders()); + indexer.rescanLibraries(); for (String library : parser.getLibraryToInstall().split(",")) { String[] libraryToInstallParts = library.split(":"); ContributedLibrary selected = null; if (libraryToInstallParts.length == 2) { - selected = indexer.getIndex().find(libraryToInstallParts[0], VersionHelper.valueOf(libraryToInstallParts[1]).toString()); + Optional version = VersionHelper.valueOf(libraryToInstallParts[1]); + if (!version.isPresent()) { + System.out.println(format(tr("Invalid version {0}"), libraryToInstallParts[1])); + System.exit(1); + } + selected = indexer.getIndex().find(libraryToInstallParts[0], version.get().toString()); } else if (libraryToInstallParts.length == 1) { List librariesByName = indexer.getIndex().find(libraryToInstallParts[0]); Collections.sort(librariesByName, new DownloadableContributionVersionComparator()); @@ -358,11 +388,14 @@ public Base(String[] args) throws Exception { System.exit(1); } - ContributedLibrary installed = indexer.getIndex().getInstalled(libraryToInstallParts[0]); - if (selected.isReadOnly()) { - libraryInstaller.remove(installed, progressListener); + Optional mayInstalled = indexer.getIndex().getInstalled(libraryToInstallParts[0]); + if (mayInstalled.isPresent() && selected.isIDEBuiltIn()) { + System.out.println(tr(I18n + .format("Library {0} is available as built-in in the IDE.\nRemoving the other version {1} installed in the sketchbook...", + library, mayInstalled.get().getParsedVersion()))); + libraryInstaller.remove(mayInstalled.get(), progressListener); } else { - libraryInstaller.install(selected, installed, progressListener); + libraryInstaller.install(selected, progressListener); } } @@ -446,7 +479,7 @@ public Base(String[] args) throws Exception { if (!parser.isForceSavePrefs()) PreferencesData.setDoSave(true); if (handleOpen(file, retrieveSketchLocation(".default"), false) == null) { - String mess = I18n.format(tr("Failed to open sketch: \"{0}\""), path); + String mess = format(tr("Failed to open sketch: \"{0}\""), path); // Open failure is fatal in upload/verify mode if (parser.isVerifyOrUploadMode()) showError(null, mess, 2); @@ -483,6 +516,9 @@ public Base(String[] args) throws Exception { System.exit(0); } else if (parser.isGetPrefMode()) { BaseNoGui.dumpPrefs(parser); + } else if (parser.isVersionMode()) { + System.out.println("Arduino: " + BaseNoGui.VERSION_NAME_LONG); + System.exit(0); } } @@ -590,7 +626,12 @@ private int[] retrieveSketchLocation(String index) { .get("last.sketch" + index + ".location"); if (locationStr == null) return defaultEditorLocation(); - return PApplet.parseInt(PApplet.split(locationStr, ',')); + + int location[] = PApplet.parseInt(PApplet.split(locationStr, ',')); + if (location[0] > screen.width || location[1] > screen.height) + return defaultEditorLocation(); + + return location; } protected void storeRecentSketches(SketchController sketch) { @@ -629,9 +670,6 @@ protected void handleActivated(Editor whichEditor) { System.err.println(e); } } - - // set the current window to be the console that's getting output - EditorConsole.setCurrentEditorConsole(activeEditor.console); } protected int[] defaultEditorLocation() { @@ -742,7 +780,20 @@ protected File createNewUntitled() throws IOException { if (!newbieFile.createNewFile()) { throw new IOException(); } - FileUtils.copyFile(new File(getContentFile("examples"), "01.Basics" + File.separator + "BareMinimum" + File.separator + "BareMinimum.ino"), newbieFile); + + // Initialize the pde file with the BareMinimum sketch. + // Apply user-defined tab settings. + String sketch = FileUtils.readFileToString( + new File(getContentFile("examples"), "01.Basics" + File.separator + + "BareMinimum" + File.separator + "BareMinimum.ino")); + String currentTab = " "; + String newTab = (PreferencesData.getBoolean("editor.tabs.expand") + ? StringUtils.repeat(" ", + PreferencesData.getInteger("editor.tabs.size")) + : "\t"); + sketch = sketch.replaceAll( + "(?<=(^|\n)(" + currentTab + "){0,50})" + currentTab, newTab); + FileUtils.writeStringToFile(newbieFile, sketch); return newbieFile; } @@ -906,46 +957,23 @@ public void actionPerformed(ActionEvent actionEvent) { * @return true if succeeded in closing, false if canceled. */ public boolean handleClose(Editor editor) { - // Check if modified -// boolean immediate = editors.size() == 1; - if (!editor.checkModified()) { - return false; - } if (editors.size() == 1) { - storeScreenDimensions(); - storeSketches(); - - // This will store the sketch count as zero - editors.remove(editor); - try { - Editor.serialMonitor.close(); - } catch (Exception e) { - //ignore + if (!handleQuit()) { + return false; } - rebuildRecentSketchesMenuItems(); - - // Save out the current prefs state - PreferencesData.save(); - - // Since this wasn't an actual Quit event, call System.exit() - System.exit(0); - + // Everything called after handleQuit will only affect OSX + editor.setVisible(false); + editors.remove(editor); } else { // More than one editor window open, // proceed with closing the current window. + // Check if modified + if (!editor.checkModified()) { + return false; + } editor.setVisible(false); editor.dispose(); -// for (int i = 0; i < editorCount; i++) { -// if (editor == editors[i]) { -// for (int j = i; j < editorCount-1; j++) { -// editors[j] = editors[j+1]; -// } -// editorCount--; -// // Set to null so that garbage collection occurs -// editors[editorCount] = null; -// } -// } editors.remove(editor); } return true; @@ -968,11 +996,19 @@ public boolean handleQuit() { // ignore } + // kill uploader (if still alive) + UploaderUtils uploaderInstance = new UploaderUtils(); + Uploader uploader = uploaderInstance.getUploaderByPreferences(false); + if (uploader != null && Uploader.programmerPid != null && Uploader.programmerPid.isAlive()) { + // kill the stuck programmer + Uploader.programmerPid.destroyForcibly(); + } + if (handleQuitEach()) { // Save out the current prefs state PreferencesData.save(); - if (!OSUtils.hasMacOSStyleMenus()) { + if (!OSUtils.isMacOS()) { // If this was fired from the menu or an AppleEvent (the Finder), // then Mac OS X will send the terminate signal itself. System.exit(0); @@ -1062,9 +1098,8 @@ protected void rebuildSketchbookMenu(JMenu menu) { } } - private List getSortedLibraries() { - List installedLibraries = new LinkedList<>(BaseNoGui.librariesIndexer.getInstalledLibraries()); - Collections.sort(installedLibraries, new LibraryByTypeComparator()); + private LibraryList getSortedLibraries() { + LibraryList installedLibraries = BaseNoGui.librariesIndexer.getInstalledLibraries(); Collections.sort(installedLibraries, new LibraryOfSameTypeComparator()); return installedLibraries; } @@ -1087,6 +1122,7 @@ public void rebuildImportMenu(JMenu importMenu) { addLibraryMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Base.this.handleAddLibrary(); + BaseNoGui.librariesIndexer.rescanLibraries(); Base.this.onBoardOrPortChange(); Base.this.rebuildImportMenu(Editor.importMenu); Base.this.rebuildExamplesMenu(Editor.examplesMenu); @@ -1099,16 +1135,16 @@ public void actionPerformed(ActionEvent e) { TargetPlatform targetPlatform = BaseNoGui.getTargetPlatform(); if (targetPlatform != null) { - List libs = getSortedLibraries(); + LibraryList libs = getSortedLibraries(); String lastLibType = null; - for (ContributedLibrary lib : libs) { + for (UserLibrary lib : libs) { String libType = lib.getTypes().get(0); if (!libType.equals(lastLibType)) { if (lastLibType != null) { importMenu.addSeparator(); } lastLibType = libType; - JMenuItem platformItem = new JMenuItem(I18n.format(tr("{0} libraries"), tr(lastLibType))); + JMenuItem platformItem = new JMenuItem(format(tr("{0} libraries"), tr(lastLibType))); platformItem.setEnabled(false); importMenu.add(platformItem); } @@ -1119,7 +1155,7 @@ public void actionPerformed(ActionEvent event) { try { activeEditor.getSketchController().importLibrary(l); } catch (IOException e) { - showWarning(tr("Error"), I18n.format("Unable to list header files in {0}", l.getSrcFolder()), e); + showWarning(tr("Error"), format("Unable to list header files in {0}", l.getSrcFolder()), e); } } }; @@ -1150,10 +1186,6 @@ public void rebuildExamplesMenu(JMenu menu) { } // Libraries can come from 4 locations: collect info about all four - File ideLibraryPath = BaseNoGui.getContentFile("libraries"); - File sketchbookLibraryPath = BaseNoGui.getSketchbookLibrariesFolder(); - File platformLibraryPath = null; - File referencedPlatformLibraryPath = null; String boardId = null; String referencedPlatformName = null; String myArch = null; @@ -1161,14 +1193,12 @@ public void rebuildExamplesMenu(JMenu menu) { if (targetPlatform != null) { myArch = targetPlatform.getId(); boardId = BaseNoGui.getTargetBoard().getName(); - platformLibraryPath = new File(targetPlatform.getFolder(), "libraries"); String core = BaseNoGui.getBoardPreferences().get("build.core", "arduino"); if (core.contains(":")) { String refcore = core.split(":")[0]; TargetPlatform referencedPlatform = BaseNoGui.getTargetPlatform(refcore, myArch); if (referencedPlatform != null) { referencedPlatformName = referencedPlatform.getPreferences().get("name"); - referencedPlatformLibraryPath = new File(referencedPlatform.getFolder(), "libraries"); } } } @@ -1188,7 +1218,7 @@ public void rebuildExamplesMenu(JMenu menu) { LibraryList otherLibs = new LibraryList(); for (UserLibrary lib : allLibraries) { // Get the library's location - used for sorting into categories - File libraryLocation = lib.getInstalledFolder().getParentFile(); + Location location = lib.getLocation(); // Is this library compatible? List arch = lib.getArchitectures(); boolean compatible; @@ -1198,31 +1228,28 @@ public void rebuildExamplesMenu(JMenu menu) { compatible = arch.contains(myArch); } // IDE Libaries (including retired) - if (libraryLocation.equals(ideLibraryPath)) { + if (location == Location.IDE_BUILTIN) { if (compatible) { // only compatible IDE libs are shown - boolean retired = false; - List types = lib.getTypes(); - if (types != null) retired = types.contains("Retired"); - if (retired) { + if (lib.getTypes().contains("Retired")) { retiredIdeLibs.add(lib); } else { ideLibs.add(lib); } } // Platform Libraries - } else if (libraryLocation.equals(platformLibraryPath)) { + } else if (location == Location.CORE) { // all platform libs are assumed to be compatible platformLibs.add(lib); // Referenced Platform Libraries - } else if (libraryLocation.equals(referencedPlatformLibraryPath)) { + } else if (location == Location.REFERENCED_CORE) { // all referenced platform libs are assumed to be compatible referencedPlatformLibs.add(lib); // Sketchbook Libraries (including incompatible) - } else if (libraryLocation.equals(sketchbookLibraryPath)) { + } else if (location == Location.SKETCHBOOK) { if (compatible) { // libraries promoted from sketchbook (behave as builtin) - if (lib.getTypes() != null && lib.getTypes().contains("Arduino") + if (!lib.getTypes().isEmpty() && lib.getTypes().contains("Arduino") && lib.getArchitectures().contains("*")) { ideLibs.add(lib); } else { @@ -1260,7 +1287,7 @@ public void rebuildExamplesMenu(JMenu menu) { if (!platformLibs.isEmpty()) { menu.addSeparator(); platformLibs.sort(); - label = new JMenuItem(I18n.format(tr("Examples for {0}"), boardId)); + label = new JMenuItem(format(tr("Examples for {0}"), boardId)); label.setEnabled(false); menu.add(label); for (UserLibrary lib : platformLibs) { @@ -1271,7 +1298,7 @@ public void rebuildExamplesMenu(JMenu menu) { if (!referencedPlatformLibs.isEmpty()) { menu.addSeparator(); referencedPlatformLibs.sort(); - label = new JMenuItem(I18n.format(tr("Examples for {0}"), referencedPlatformName)); + label = new JMenuItem(format(tr("Examples for {0}"), referencedPlatformName)); label.setEnabled(false); menu.add(label); for (UserLibrary lib : referencedPlatformLibs) { @@ -1293,6 +1320,7 @@ public void rebuildExamplesMenu(JMenu menu) { if (!sketchbookIncompatibleLibs.isEmpty()) { sketchbookIncompatibleLibs.sort(); JMenu incompatible = new JMenu(tr("INCOMPATIBLE")); + MenuScroller.setScrollerFor(incompatible); menu.add(incompatible); for (UserLibrary lib : sketchbookIncompatibleLibs) { addSketchesSubmenu(incompatible, lib); @@ -1416,8 +1444,9 @@ public void actionPerformed(ActionEvent actionevent) { String filterText = ""; String dropdownItem = ""; if (actionevent instanceof Event) { - filterText = ((Event) actionevent).getPayload().get("filterText").toString(); - dropdownItem = ((Event) actionevent).getPayload().get("dropdownItem").toString(); + Event e = ((Event) actionevent); + filterText = e.getPayload().get("filterText").toString(); + dropdownItem = e.getPayload().get("dropdownItem").toString(); } try { openBoardsManager(filterText, dropdownItem); @@ -1437,41 +1466,41 @@ public void actionPerformed(ActionEvent actionevent) { boardMenu.add(new JSeparator()); // Generate custom menus for all platforms - Set customMenusTitles = new HashSet<>(); for (TargetPackage targetPackage : BaseNoGui.packages.values()) { for (TargetPlatform targetPlatform : targetPackage.platforms()) { - customMenusTitles.addAll(targetPlatform.getCustomMenus().values()); + for (String customMenuTitle : targetPlatform.getCustomMenus().values()) { + JMenu customMenu = new JMenu(tr(customMenuTitle)); + customMenu.putClientProperty("platform", getPlatformUniqueId(targetPlatform)); + customMenu.putClientProperty("removeOnWindowDeactivation", true); + boardsCustomMenus.add(customMenu); + } } } - for (String customMenuTitle : customMenusTitles) { - JMenu customMenu = new JMenu(tr(customMenuTitle)); - customMenu.putClientProperty("removeOnWindowDeactivation", true); - boardsCustomMenus.add(customMenu); - } List menuItemsToClickAfterStartup = new LinkedList<>(); ButtonGroup boardsButtonGroup = new ButtonGroup(); Map buttonGroupsMap = new HashMap<>(); + List platformMenus = new ArrayList<>(); + // Cycle through all packages - boolean first = true; for (TargetPackage targetPackage : BaseNoGui.packages.values()) { // For every package cycle through all platform for (TargetPlatform targetPlatform : targetPackage.platforms()) { - // Add a separator from the previous platform - if (!first) - boardMenu.add(new JSeparator()); - first = false; - // Add a title for each platform String platformLabel = targetPlatform.getPreferences().get("name"); - if (platformLabel != null && !targetPlatform.getBoards().isEmpty()) { - JMenuItem menuLabel = new JMenuItem(tr(platformLabel)); - menuLabel.setEnabled(false); - boardMenu.add(menuLabel); - } + if (platformLabel == null) + platformLabel = targetPackage.getId() + "-" + targetPlatform.getId(); + + // add an hint that this core lives in sketchbook + if (targetPlatform.isInSketchbook()) + platformLabel += " (in sketchbook)"; + + JMenu platformBoardsMenu = new JMenu(platformLabel); + MenuScroller.setScrollerFor(platformBoardsMenu); + platformMenus.add(platformBoardsMenu); // Cycle through all boards of this platform for (TargetBoard board : targetPlatform.getBoards().values()) { @@ -1480,14 +1509,40 @@ public void actionPerformed(ActionEvent actionevent) { JMenuItem item = createBoardMenusAndCustomMenus(boardsCustomMenus, menuItemsToClickAfterStartup, buttonGroupsMap, board, targetPlatform, targetPackage); - boardMenu.add(item); + platformBoardsMenu.add(item); boardsButtonGroup.add(item); } } } + platformMenus.sort((x,y) -> x.getText().compareToIgnoreCase(y.getText())); + + JMenuItem firstBoardItem = null; + if (platformMenus.size() == 1) { + // When just one platform exists, add the board items directly, + // rather than using a submenu + for (Component boardItem : platformMenus.get(0).getMenuComponents()) { + boardMenu.add(boardItem); + if (firstBoardItem == null) + firstBoardItem = (JMenuItem)boardItem; + } + } else { + // For multiple platforms, use submenus + for (JMenu platformMenu : platformMenus) { + if (firstBoardItem == null && platformMenu.getItemCount() > 0) + firstBoardItem = platformMenu.getItem(0); + boardMenu.add(platformMenu); + } + } + + if (firstBoardItem == null) { + throw new IllegalStateException("No available boards"); + } + + // If there is no current board yet (first startup, or selected + // board no longer defined), select first available board. if (menuItemsToClickAfterStartup.isEmpty()) { - menuItemsToClickAfterStartup.add(selectFirstEnabledMenuItem(boardMenu)); + menuItemsToClickAfterStartup.add(firstBoardItem); } for (JMenuItem menuItemToClick : menuItemsToClickAfterStartup) { @@ -1496,6 +1551,10 @@ public void actionPerformed(ActionEvent actionevent) { } } + private String getPlatformUniqueId(TargetPlatform platform) { + return platform.getId() + "_" + platform.getFolder(); + } + private JRadioButtonMenuItem createBoardMenusAndCustomMenus( final List boardsCustomMenus, List menuItemsToClickAfterStartup, Map buttonGroupsMap, @@ -1519,6 +1578,7 @@ public void actionPerformed(ActionEvent actionevent) { onBoardOrPortChange(); rebuildImportMenu(Editor.importMenu); rebuildExamplesMenu(Editor.examplesMenu); + rebuildProgrammerMenu(); } }; action.putValue("b", board); @@ -1533,7 +1593,7 @@ public void actionPerformed(ActionEvent actionevent) { PreferencesMap customMenus = targetPlatform.getCustomMenus(); for (final String menuId : customMenus.keySet()) { String title = customMenus.get(menuId); - JMenu menu = getBoardCustomMenu(tr(title)); + JMenu menu = getBoardCustomMenu(tr(title), getPlatformUniqueId(targetPlatform)); if (board.hasMenu(menuId)) { PreferencesMap boardCustomMenu = board.getMenuLabels(menuId); @@ -1541,11 +1601,16 @@ public void actionPerformed(ActionEvent actionevent) { @SuppressWarnings("serial") Action subAction = new AbstractAction(tr(boardCustomMenu.get(customMenuOption))) { public void actionPerformed(ActionEvent e) { - PreferencesData.set("custom_" + menuId, ((TargetBoard) getValue("board")).getId() + "_" + getValue("custom_menu_option")); + PreferencesData.set("custom_" + menuId, ((List) getValue("board")).get(0).getId() + "_" + getValue("custom_menu_option")); onBoardOrPortChange(); } }; - subAction.putValue("board", board); + List boards = (List) subAction.getValue("board"); + if (boards == null) { + boards = new ArrayList<>(); + } + boards.add(board); + subAction.putValue("board", boards); subAction.putValue("custom_menu_option", customMenuOption); if (!buttonGroupsMap.containsKey(menuId)) { @@ -1573,7 +1638,9 @@ private void filterVisibilityOfSubsequentBoardMenus(List boardsCustomMenu JMenu menu = boardsCustomMenus.get(i); for (int m = 0; m < menu.getItemCount(); m++) { JMenuItem menuItem = menu.getItem(m); - menuItem.setVisible(menuItem.getAction().getValue("board").equals(board)); + for (TargetBoard t_board : (List)menuItem.getAction().getValue("board")) { + menuItem.setVisible(t_board.equals(board)); + } } menu.setVisible(ifThereAreVisibleItemsOn(menu)); @@ -1596,9 +1663,9 @@ private static boolean ifThereAreVisibleItemsOn(JMenu menu) { return false; } - private JMenu getBoardCustomMenu(String label) throws Exception { + private JMenu getBoardCustomMenu(String label, String platformUniqueId) throws Exception { for (JMenu menu : boardsCustomMenus) { - if (label.equals(menu.getText())) { + if (label.equals(menu.getText()) && menu.getClientProperty("platform").equals(platformUniqueId)) { return menu; } } @@ -1630,40 +1697,48 @@ private static JMenuItem selectVisibleSelectedOrFirstMenuItem(JMenu menu) { throw new IllegalStateException("Menu has no enabled items"); } - private static JMenuItem selectFirstEnabledMenuItem(JMenu menu) { - for (int i = 1; i < menu.getItemCount(); i++) { - JMenuItem item = menu.getItem(i); - if (item != null && item.isEnabled()) { - return item; - } - } - throw new IllegalStateException("Menu has no enabled items"); - } - public void rebuildProgrammerMenu() { programmerMenus = new LinkedList<>(); - ButtonGroup group = new ButtonGroup(); - for (TargetPackage targetPackage : BaseNoGui.packages.values()) { - for (TargetPlatform targetPlatform : targetPackage.platforms()) { - for (String programmer : targetPlatform.getProgrammers().keySet()) { - String id = targetPackage.getId() + ":" + programmer; - @SuppressWarnings("serial") - AbstractAction action = new AbstractAction(targetPlatform.getProgrammer(programmer).get("name")) { - public void actionPerformed(ActionEvent actionevent) { - PreferencesData.set("programmer", "" + getValue("id")); - } - }; - action.putValue("id", id); - JMenuItem item = new JRadioButtonMenuItem(action); - if (PreferencesData.get("programmer").equals(id)) { - item.setSelected(true); - } - group.add(item); - programmerMenus.add(item); + TargetBoard board = BaseNoGui.getTargetBoard(); + TargetPlatform boardPlatform = board.getContainerPlatform(); + TargetPlatform corePlatform = null; + + String core = board.getPreferences().get("build.core"); + if (core != null && core.contains(":")) { + String[] split = core.split(":", 2); + corePlatform = BaseNoGui.getCurrentTargetPlatformFromPackage(split[0]); + } + + addProgrammersForPlatform(boardPlatform, programmerMenus, group); + if (corePlatform != null) + addProgrammersForPlatform(corePlatform, programmerMenus, group); + + if (programmerMenus.isEmpty()) { + JMenuItem item = new JMenuItem(tr("No programmers available for this board")); + item.setEnabled(false); + programmerMenus.add(item); + } + } + + public void addProgrammersForPlatform(TargetPlatform platform, List menus, ButtonGroup group) { + for (String programmer : platform.getProgrammers().keySet()) { + String id = platform.getContainerPackage().getId() + ":" + programmer; + + @SuppressWarnings("serial") + AbstractAction action = new AbstractAction(platform.getProgrammer(programmer).get("name")) { + public void actionPerformed(ActionEvent actionevent) { + PreferencesData.set("programmer", "" + getValue("id")); } + }; + action.putValue("id", id); + JMenuItem item = new JRadioButtonMenuItem(action); + if (PreferencesData.get("programmer").equals(id)) { + item.setSelected(true); } + group.add(item); + menus.add(item); } } @@ -1692,19 +1767,12 @@ public int compare(File file, File file2) { }); boolean ifound = false; - for (File subfolder : files) { - if (FileUtils.isSCCSOrHiddenFile(subfolder)) { - continue; - } - - if (!subfolder.isDirectory()) continue; - - if (addSketchesSubmenu(menu, subfolder.getName(), subfolder)) { + if (!FileUtils.isSCCSOrHiddenFile(subfolder) && subfolder.isDirectory() + && addSketchesSubmenu(menu, subfolder.getName(), subfolder)) { ifound = true; } } - return ifound; } @@ -1789,7 +1857,7 @@ public void actionPerformed(ActionEvent event) { try { activeEditor.getSketchController().importLibrary(l); } catch (IOException e) { - showWarning(tr("Error"), I18n.format("Unable to list header files in {0}", l.getSrcFolder()), e); + showWarning(tr("Error"), format("Unable to list header files in {0}", l.getSrcFolder()), e); } } }; @@ -1878,6 +1946,75 @@ public void handleFontSizeChange(int change) { getEditors().forEach(Editor::applyPreferences); } + /** + * Adds a {@link MouseWheelListener} and {@link KeyListener} to the given + * component that will make "CTRL scroll" and "CTRL +/-" + * (with optional SHIFT for +) increase/decrease the editor text size. + * This method is equivalent to calling + * {@link #addEditorFontResizeMouseWheelListener(Component)} and + * {@link #addEditorFontResizeKeyListener(Component)} on the given component. + * Note that this also affects components that use the editor font settings. + * @param comp - The component to add the listener to. + */ + public void addEditorFontResizeListeners(Component comp) { + addEditorFontResizeMouseWheelListener(comp); + addEditorFontResizeKeyListener(comp); + } + + /** + * Adds a {@link MouseWheelListener} to the given component that will + * make "CTRL scroll" increase/decrease the editor text size. + * When CTRL is not pressed while scrolling, mouse wheel events are passed + * on to the parent of the given component. + * Note that this also affects components that use the editor font settings. + * @param comp - The component to add the listener to. + */ + public void addEditorFontResizeMouseWheelListener(Component comp) { + comp.addMouseWheelListener(e -> { + if (e.isControlDown()) { + if (e.getWheelRotation() < 0) { + this.handleFontSizeChange(1); + } else { + this.handleFontSizeChange(-1); + } + } else { + if (e.getComponent() != null && e.getComponent().getParent() != null) { + e.getComponent().getParent().dispatchEvent(e); + } + } + }); + } + + /** + * Adds a {@link KeyListener} to the given component that will make "CTRL +/-" + * (with optional SHIFT for +) increase/decrease the editor text size. + * Note that this also affects components that use the editor font settings. + * @param comp - The component to add the listener to. + */ + public void addEditorFontResizeKeyListener(Component comp) { + comp.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getModifiersEx() == KeyEvent.CTRL_DOWN_MASK + || e.getModifiersEx() == (KeyEvent.CTRL_DOWN_MASK + | KeyEvent.SHIFT_DOWN_MASK)) { + switch (e.getKeyCode()) { + case KeyEvent.VK_PLUS: + case KeyEvent.VK_EQUALS: + Base.this.handleFontSizeChange(1); + break; + case KeyEvent.VK_MINUS: + if (!e.isShiftDown()) { + Base.this.handleFontSizeChange(-1); + } + break; + default: + } + } + } + }); + } + public List getBoardsCustomMenus() { return boardsCustomMenus; } @@ -1939,10 +2076,9 @@ static protected File promptSketchbookLocation() { static public void openURL(String url) { try { BaseNoGui.getPlatform().openURL(url); - } catch (Exception e) { showWarning(tr("Problem Opening URL"), - I18n.format(tr("Could not open the URL\n{0}"), url), e); + format(tr("Could not open the URL\n{0}"), url), e); } } @@ -1964,10 +2100,9 @@ static protected boolean openFolderAvailable() { static public void openFolder(File file) { try { BaseNoGui.getPlatform().openFolder(file); - } catch (Exception e) { showWarning(tr("Problem Opening Folder"), - I18n.format(tr("Could not open the folder\n{0}"), file.getAbsolutePath()), e); + format(tr("Could not open the folder\n{0}"), file.getAbsolutePath()), e); } } @@ -2045,7 +2180,7 @@ static public void showReference(String prefix, String filename) { if(referenceFile.exists()){ openURL(referenceFile.getAbsolutePath()); }else{ - showWarning(tr("Problem Opening URL"), I18n.format(tr("Could not open the URL\n{0}"), referenceFile), null); + showWarning(tr("Problem Opening URL"), format(tr("Could not open the URL\n{0}"), referenceFile), null); } } @@ -2301,7 +2436,7 @@ public void handleAddLibrary() { String libName = libFolder.getName(); if (!BaseNoGui.isSanitaryName(libName)) { - String mess = I18n.format(tr("The library \"{0}\" cannot be used.\n" + String mess = format(tr("The library \"{0}\" 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)"), libName); @@ -2310,8 +2445,10 @@ public void handleAddLibrary() { } String[] headers; - if (new File(libFolder, "library.properties").exists()) { - headers = BaseNoGui.headerListFromIncludePath(UserLibrary.create(libFolder).getSrcFolder()); + File libProp = new File(libFolder, "library.properties"); + File srcFolder = new File(libFolder, "src"); + if (libProp.exists() && srcFolder.isDirectory()) { + headers = BaseNoGui.headerListFromIncludePath(srcFolder); } else { headers = BaseNoGui.headerListFromIncludePath(libFolder); } @@ -2321,9 +2458,9 @@ public void handleAddLibrary() { } // copy folder - File destinationFolder = new File(BaseNoGui.getSketchbookLibrariesFolder(), sourceFile.getName()); + File destinationFolder = new File(BaseNoGui.getSketchbookLibrariesFolder().folder, sourceFile.getName()); if (!destinationFolder.mkdir()) { - activeEditor.statusError(I18n.format(tr("A library named {0} already exists"), sourceFile.getName())); + activeEditor.statusError(format(tr("A library named {0} already exists"), sourceFile.getName())); return; } try { diff --git a/app/src/processing/app/CommandHistory.java b/app/src/processing/app/CommandHistory.java new file mode 100644 index 00000000000..cae3c2fc498 --- /dev/null +++ b/app/src/processing/app/CommandHistory.java @@ -0,0 +1,167 @@ +package processing.app; + +import java.util.LinkedList; +import java.util.ListIterator; + +/** + * Keeps track of command history in console-like applications. + * @author P.J.S. Kools + */ +public class CommandHistory { + + private final LinkedList commandHistory = new LinkedList(); + private final int maxHistorySize; + private ListIterator iterator = null; + private boolean iteratorAsc; + + /** + * Create a new {@link CommandHistory}. + * @param maxHistorySize - The max command history size. + */ + public CommandHistory(int maxHistorySize) { + this.maxHistorySize = (maxHistorySize < 0 ? 0 : maxHistorySize); + this.commandHistory.addLast(""); // Current command placeholder. + } + + /** + * Adds the given command to the history and resets the history traversal + * position to the latest command. If the latest command in the history is + * equal to the given command, it will not be added to the history. + * If the max history size is exceeded, the oldest command will be removed + * from the history. + * @param command - The command to add. + */ + public void addCommand(String command) { + if (this.maxHistorySize == 0) { + return; + } + + // Remove 'current' command. + this.commandHistory.removeLast(); + + // Add new command if it differs from the latest command. + if (this.commandHistory.isEmpty() + || !this.commandHistory.getLast().equals(command)) { + + // Remove oldest command if max history size is exceeded. + if (this.commandHistory.size() >= this.maxHistorySize) { + this.commandHistory.removeFirst(); + } + + // Add new command and reset 'current' command. + this.commandHistory.addLast(command); + } + + // Re-add 'current' command and reset command iterator. + this.commandHistory.addLast(""); // Current command placeholder. + this.iterator = null; + } + + /** + * Gets whether a next (more recent) command is available in the history. + * @return {@code true} if a next command is available, + * returns {@code false} otherwise. + */ + public boolean hasNextCommand() { + if (this.iterator == null) { + return false; + } + if (!this.iteratorAsc) { + this.iterator.next(); // Current command, ascending. + this.iteratorAsc = true; + } + return this.iterator.hasNext(); + } + + /** + * Gets the next (more recent) command from the history. + * @return The next command or {@code null} if no next command is available. + */ + public String getNextCommand() { + + // Return null if there is no next command available. + if (!this.hasNextCommand()) { + return null; + } + + // Get next command. + String next = this.iterator.next(); + + // Reset 'current' command when at the end of the list. + if (this.iterator.nextIndex() == this.commandHistory.size()) { + this.iterator.set(""); // Reset 'current' command. + } + return next; + } + + /** + * Gets whether a previous (older) command is available in the history. + * @return {@code true} if a previous command is available, + * returns {@code false} otherwise. + */ + public boolean hasPreviousCommand() { + if (this.iterator == null) { + return this.commandHistory.size() > 1; + } + if (this.iteratorAsc) { + this.iterator.previous(); // Current command, descending. + this.iteratorAsc = false; + } + return this.iterator.hasPrevious(); + } + + /** + * Gets the previous (older) command from the history. + * When this method is called while the most recent command in the history is + * selected, this will store the current command as temporary latest command + * so that {@link #getNextCommand()} will return it once. This temporary + * latest command gets reset when this case occurs again or when + * {@link #addCommand(String)} is invoked. + * @param currentCommand - The current unexecuted command. + * @return The previous command or {@code null} if no previous command is + * available. + */ + public String getPreviousCommand(String currentCommand) { + + // Return null if there is no previous command available. + if (!this.hasPreviousCommand()) { + return null; + } + + // Store current unexecuted command and create iterator if not traversing. + if (this.iterator == null) { + this.iterator = + this.commandHistory.listIterator(this.commandHistory.size()); + this.iterator.previous(); // Last element, descending. + this.iteratorAsc = false; + } + + // Store current unexecuted command if on 'current' index. + if (this.iterator.nextIndex() == this.commandHistory.size() - 1) { + this.iterator.set(currentCommand == null ? "" : currentCommand); + } + + // Return the previous command. + return this.iterator.previous(); + } + + /** + * Resets the history location to the most recent command. + * @returns The latest unexecuted command as stored by + * {@link #getPreviousCommand(String)} or an empty string if no such command + * was set. + */ + public String resetHistoryLocation() { + this.iterator = null; + return this.commandHistory.set(this.commandHistory.size() - 1, ""); + } + + /** + * Clears the command history. + */ + public void clear() { + this.iterator = null; + this.commandHistory.clear(); + this.commandHistory.addLast(""); // Current command placeholder. + } +} diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 99e53e488dc..2ec29c498cb 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -22,6 +22,72 @@ package processing.app; +import static processing.app.I18n.tr; +import static processing.app.Theme.scale; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.event.ActionEvent; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.print.PageFormat; +import java.awt.print.PrinterException; +import java.awt.print.PrinterJob; +import java.io.File; +import java.io.FileFilter; +import java.io.FilenameFilter; +import java.io.IOException; +import java.net.ConnectException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.function.Predicate; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +import javax.swing.AbstractAction; +import javax.swing.Box; +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JSplitPane; +import javax.swing.JTextArea; +import javax.swing.KeyStroke; +import javax.swing.SwingUtilities; +import javax.swing.TransferHandler; +import javax.swing.event.MenuEvent; +import javax.swing.event.MenuListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; + +import org.fife.ui.rsyntaxtextarea.folding.FoldManager; + +import com.jcraft.jsch.JSchException; + +import cc.arduino.CompilerProgressListener; import cc.arduino.packages.BoardPort; import cc.arduino.packages.MonitorFactory; import cc.arduino.packages.Uploader; @@ -29,10 +95,9 @@ import cc.arduino.view.GoToLineNumber; import cc.arduino.view.StubMenuListener; import cc.arduino.view.findreplace.FindReplace; -import cc.arduino.CompilerProgressListener; -import com.jcraft.jsch.JSchException; import jssc.SerialPortException; import processing.app.debug.RunnerException; +import processing.app.debug.TargetBoard; import processing.app.forms.PasswordAuthorizationDialog; import processing.app.helpers.DocumentTextChangeListener; import processing.app.helpers.Keys; @@ -45,33 +110,6 @@ import processing.app.tools.MenuScroller; import processing.app.tools.Tool; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.text.BadLocationException; -import java.awt.*; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.event.*; -import java.awt.print.PageFormat; -import java.awt.print.PrinterException; -import java.awt.print.PrinterJob; -import java.io.File; -import java.io.FileFilter; -import java.io.FilenameFilter; -import java.io.IOException; -import java.net.ConnectException; -import java.net.URL; -import java.net.URLClassLoader; -import java.util.*; -import java.util.List; -import java.util.function.Predicate; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import java.util.ArrayList; - -import static processing.app.I18n.tr; -import static processing.app.Theme.scale; - /** * Main editor panel for the Processing Development Environment. */ @@ -94,24 +132,25 @@ private static class ShouldSaveIfModified public boolean test(SketchController controller) { return PreferencesData.getBoolean("editor.save_on_verify") && controller.getSketch().isModified() - && !controller.isReadOnly( - BaseNoGui.librariesIndexer - .getInstalledLibraries(), - BaseNoGui.getExamplesPath()); + && !controller.isReadOnly(); } } - private static class ShouldSaveReadOnly implements Predicate { + private static class CanExportInSketchFolder + implements Predicate { @Override - public boolean test(SketchController sketch) { - return sketch.isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath()); + public boolean test(SketchController controller) { + if (controller.isReadOnly()) { + return false; + } + if (controller.getSketch().isModified()) { + return PreferencesData.getBoolean("editor.save_on_verify"); + } + return true; } } - private final static List BOARD_PROTOCOLS_ORDER = Arrays.asList("serial", "network"); - private final static List BOARD_PROTOCOLS_ORDER_TRANSLATIONS = Arrays.asList(tr("Serial ports"), tr("Network ports")); - final Base base; // otherwise, if the window is resized with the message label @@ -144,7 +183,7 @@ public boolean test(SketchController sketch) { private int numTools = 0; - public boolean avoidMultipleOperations = false; + static public boolean avoidMultipleOperations = false; private final EditorToolbar toolbar; // these menus are shared so that they needn't be rebuilt for all windows @@ -182,7 +221,7 @@ public boolean test(SketchController sketch) { private JMenuItem saveAsMenuItem; //boolean presenting; - private boolean uploading; + static private boolean uploading; // undo fellers private JMenuItem undoItem; @@ -194,10 +233,12 @@ public boolean test(SketchController sketch) { Runnable presentHandler; private Runnable runAndSaveHandler; private Runnable presentAndSaveHandler; - Runnable exportHandler; - private Runnable exportAppHandler; + private UploadHandler uploadHandler; + private UploadHandler uploadUsingProgrammerHandler; private Runnable timeoutUploadHandler; + private Map internalToolCache = new HashMap(); + public Editor(Base ibase, File file, int[] storedLocation, int[] defaultLocation, Platform platform) throws Exception { super("Arduino"); this.base = ibase; @@ -228,8 +269,6 @@ public void windowActivated(WindowEvent e) { // added for 1.0.5 // http://dev.processing.org/bugs/show_bug.cgi?id=1260 public void windowDeactivated(WindowEvent e) { - fileMenu.remove(sketchbookMenu); - fileMenu.remove(examplesMenu); List toolsMenuItemsToRemove = new LinkedList<>(); for (Component menuItem : toolsMenu.getMenuComponents()) { if (menuItem instanceof JComponent) { @@ -278,7 +317,7 @@ public void windowDeactivated(WindowEvent e) { status = new EditorStatus(this); consolePanel.add(status, BorderLayout.NORTH); - console = new EditorConsole(); + console = new EditorConsole(base); console.setName("console"); // windows puts an ugly border on this guy console.setBorder(null); @@ -339,6 +378,9 @@ public void windowDeactivated(WindowEvent e) { // Open the document that was passed in boolean loaded = handleOpenInternal(file); if (!loaded) sketchController = null; + + // default the console output to the last opened editor + EditorConsole.setCurrentEditorConsole(console); } @@ -451,8 +493,13 @@ public void applyPreferences() { boolean external = PreferencesData.getBoolean("editor.external"); saveMenuItem.setEnabled(!external); saveAsMenuItem.setEnabled(!external); - for (EditorTab tab: tabs) + for (EditorTab tab: tabs) { tab.applyPreferences(); + } + console.applyPreferences(); + if (serialMonitor != null) { + serialMonitor.applyPreferences(); + } } @@ -465,11 +512,11 @@ private void buildMenuBar() { fileMenu.addMenuListener(new StubMenuListener() { @Override public void menuSelected(MenuEvent e) { - List components = Arrays.asList(fileMenu.getComponents()); + List components = Arrays.asList(fileMenu.getMenuComponents()); if (!components.contains(sketchbookMenu)) { fileMenu.insert(sketchbookMenu, 3); } - if (!components.contains(sketchbookMenu)) { + if (!components.contains(examplesMenu)) { fileMenu.insert(examplesMenu, 4); } fileMenu.revalidate(); @@ -498,7 +545,7 @@ public void menuSelected(MenuEvent e) { toolsMenu.addMenuListener(new StubMenuListener() { @Override public void menuSelected(MenuEvent e) { - List components = Arrays.asList(toolsMenu.getComponents()); + List components = Arrays.asList(toolsMenu.getMenuComponents()); int offset = 0; for (JMenu menu : base.getBoardsCustomMenus()) { if (!components.contains(menu)) { @@ -528,37 +575,28 @@ private JMenu buildFileMenu() { fileMenu.setMnemonic(KeyEvent.VK_F); item = newJMenuItem(tr("New"), 'N'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - try { - base.handleNew(); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - }); + item.addActionListener(event -> { + try { + base.handleNew(); + } catch (Exception e1) { + e1.printStackTrace(); + } + }); fileMenu.add(item); item = Editor.newJMenuItem(tr("Open..."), 'O'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - try { - base.handleOpenPrompt(); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - }); + item.addActionListener(event -> { + try { + base.handleOpenPrompt(); + } catch (Exception e1) { + e1.printStackTrace(); + } + }); fileMenu.add(item); base.rebuildRecentSketchesMenuItems(); recentSketchesMenu = new JMenu(tr("Open Recent")); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - rebuildRecentSketchesMenu(); - } - }); + SwingUtilities.invokeLater(() -> rebuildRecentSketchesMenu()); fileMenu.add(recentSketchesMenu); if (sketchbookMenu == null) { @@ -576,45 +614,25 @@ public void run() { fileMenu.add(examplesMenu); item = Editor.newJMenuItem(tr("Close"), 'W'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleClose(Editor.this); - } - }); + item.addActionListener(event -> base.handleClose(Editor.this)); fileMenu.add(item); saveMenuItem = newJMenuItem(tr("Save"), 'S'); - saveMenuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handleSave(false); - } - }); + saveMenuItem.addActionListener(event -> handleSave(false)); fileMenu.add(saveMenuItem); saveAsMenuItem = newJMenuItemShift(tr("Save As..."), 'S'); - saveAsMenuItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handleSaveAs(); - } - }); + saveAsMenuItem.addActionListener(event -> handleSaveAs()); fileMenu.add(saveAsMenuItem); fileMenu.addSeparator(); item = newJMenuItemShift(tr("Page Setup"), 'P'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handlePageSetup(); - } - }); + item.addActionListener(event -> handlePageSetup()); fileMenu.add(item); item = newJMenuItem(tr("Print"), 'P'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handlePrint(); - } - }); + item.addActionListener(event -> handlePrint()); fileMenu.add(item); // macosx already has its own preferences and quit menu @@ -622,21 +640,13 @@ public void actionPerformed(ActionEvent e) { fileMenu.addSeparator(); item = newJMenuItem(tr("Preferences"), ','); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handlePrefs(); - } - }); + item.addActionListener(event -> base.handlePrefs()); fileMenu.add(item); fileMenu.addSeparator(); item = newJMenuItem(tr("Quit"), 'Q'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleQuit(); - } - }); + item.addActionListener(event -> base.handleQuit()); fileMenu.add(item); } return fileMenu; @@ -653,58 +663,36 @@ private void buildSketchMenu(JMenu sketchMenu) { sketchMenu.removeAll(); JMenuItem item = newJMenuItem(tr("Verify/Compile"), 'R'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handleRun(false, Editor.this.presentHandler, Editor.this.runHandler); - } - }); + item.addActionListener(event -> handleRun(false, presentHandler, runHandler)); sketchMenu.add(item); item = newJMenuItem(tr("Upload"), 'U'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handleExport(false); - } - }); + item.addActionListener(event -> handleExport(false)); sketchMenu.add(item); item = newJMenuItemShift(tr("Upload Using Programmer"), 'U'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - handleExport(true); - } - }); + item.addActionListener(event -> handleExport(true)); sketchMenu.add(item); - item = newJMenuItemAlt(tr("Export compiled Binary"), 'S'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (new ShouldSaveReadOnly().test(sketchController) && !handleSave(true)) { - System.out.println(tr("Export canceled, changes must first be saved.")); - return; - } - handleRun(false, new ShouldSaveReadOnly(), Editor.this.presentAndSaveHandler, Editor.this.runAndSaveHandler); - } - }); + item.addActionListener(event -> { + if (!(new CanExportInSketchFolder().test(sketchController))) { + System.out.println(tr("Export canceled, changes must first be saved.")); + return; + } + handleRun(false, new CanExportInSketchFolder(), presentAndSaveHandler, runAndSaveHandler); + + }); sketchMenu.add(item); // item = new JMenuItem("Stop"); -// item.addActionListener(new ActionListener() { -// public void actionPerformed(ActionEvent e) { -// handleStop(); -// } -// }); +// item.addActionListener(event -> handleStop()); // sketchMenu.add(item); sketchMenu.addSeparator(); item = newJMenuItem(tr("Show Sketch Folder"), 'K'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.openFolder(sketch.getFolder()); - } - }); + item.addActionListener(event -> Base.openFolder(sketch.getFolder())); sketchMenu.add(item); item.setEnabled(Base.openFolderAvailable()); @@ -716,11 +704,7 @@ public void actionPerformed(ActionEvent e) { sketchMenu.add(importMenu); item = new JMenuItem(tr("Add File...")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - sketchController.handleAddFile(); - } - }); + item.addActionListener(event -> sketchController.handleAddFile()); sketchMenu.add(item); } @@ -777,6 +761,20 @@ private JMenu buildToolsMenu() { toolsMenu.add(item); toolsMenu.addMenuListener(new StubMenuListener() { + public JMenuItem getSelectedItemRecursive(JMenu menu) { + int count = menu.getItemCount(); + for (int i=0; i < count; i++) { + JMenuItem item = menu.getItem(i); + + if ((item instanceof JMenu)) + item = getSelectedItemRecursive((JMenu)item); + + if (item != null && item.isSelected()) + return item; + } + return null; + } + public void menuSelected(MenuEvent e) { //System.out.println("Tools menu selected."); populatePortMenu(); @@ -788,15 +786,9 @@ public void menuSelected(MenuEvent e) { String basename = name; int index = name.indexOf(':'); if (index > 0) basename = name.substring(0, index); - String sel = null; - int count = menu.getItemCount(); - for (int i=0; i < count; i++) { - JMenuItem item = menu.getItem(i); - if (item != null && item.isSelected()) { - sel = item.getText(); - if (sel != null) break; - } - } + + JMenuItem item = getSelectedItemRecursive(menu); + String sel = item != null ? item.getText() : null; if (sel == null) { if (!name.equals(basename)) menu.setText(basename); } else { @@ -894,11 +886,9 @@ public boolean accept(File dir, String name) { String title = tool.getMenuTitle(); JMenuItem item = new JMenuItem(title); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - SwingUtilities.invokeLater(tool); - //new Thread(tool).start(); - } + item.addActionListener(event -> { + SwingUtilities.invokeLater(tool); + //new Thread(tool).start(); }); //menu.add(item); toolItems.put(title, item); @@ -963,18 +953,13 @@ public void updateKeywords(PdeKeywords keywords) { JMenuItem createToolMenuItem(String className) { try { - Class toolClass = Class.forName(className); - final Tool tool = (Tool) toolClass.newInstance(); + final Tool tool = getOrCreateToolInstance(className); JMenuItem item = new JMenuItem(tool.getMenuTitle()); tool.init(Editor.this); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - SwingUtilities.invokeLater(tool); - } - }); + item.addActionListener(event -> SwingUtilities.invokeLater(tool)); return item; } catch (Exception e) { @@ -983,6 +968,20 @@ public void actionPerformed(ActionEvent e) { } } + private Tool getOrCreateToolInstance(String className) { + Tool internalTool = internalToolCache.get(className); + if (internalTool == null) { + try { + Class toolClass = Class.forName(className); + internalTool = (Tool) toolClass.newInstance(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + internalToolCache.put(className, internalTool); + } + return internalTool; + } private void addInternalTools(JMenu menu) { JMenuItem item; @@ -1003,21 +1002,6 @@ private void addInternalTools(JMenu menu) { } - class SerialMenuListener implements ActionListener { - - private final String serialPort; - - public SerialMenuListener(String serialPort) { - this.serialPort = serialPort; - } - - public void actionPerformed(ActionEvent e) { - selectSerialPort(serialPort); - base.onBoardOrPortChange(); - } - - } - private void selectSerialPort(String name) { if(portMenu == null) { System.out.println(tr("serialMenu is null")); @@ -1041,22 +1025,20 @@ private void selectSerialPort(String name) { //System.out.println(item.getLabel()); BaseNoGui.selectSerialPort(name); - if (serialMonitor != null) { - try { + try { + boolean reopenMonitor = ((serialMonitor != null && serialMonitor.isVisible()) || + serialPlotter != null && serialPlotter.isVisible()); + if (serialMonitor != null) { serialMonitor.close(); - serialMonitor.setVisible(false); - } catch (Exception e) { - // ignore } - } - - if (serialPlotter != null) { - try { + if (serialPlotter != null) { serialPlotter.close(); - serialPlotter.setVisible(false); - } catch (Exception e) { - // ignore } + if (reopenMonitor) { + handleSerial(); + } + } catch (Exception e) { + // ignore } onBoardOrPortChange(); @@ -1065,8 +1047,34 @@ private void selectSerialPort(String name) { //System.out.println("set to " + get("serial.port")); } + class BoardPortJCheckBoxMenuItem extends JCheckBoxMenuItem { + private BoardPort port; + + public BoardPortJCheckBoxMenuItem(BoardPort port) { + super(); + this.port = port; + setText(toString()); + addActionListener(e -> { + selectSerialPort(port.getAddress()); + base.onBoardOrPortChange(); + }); + } + + @Override + public String toString() { + // This is required for serialPrompt() + String label = port.getLabel(); + if (port.getBoardName() != null && !port.getBoardName().isEmpty()) { + label += " (" + port.getBoardName() + ")"; + } + return label; + } + } private void populatePortMenu() { + final List PROTOCOLS_ORDER = Arrays.asList("serial", "network"); + final List PROTOCOLS_LABELS = Arrays.asList(tr("Serial ports"), tr("Network ports")); + portMenu.removeAll(); String selectedPort = PreferencesData.get("serial.port"); @@ -1075,36 +1083,48 @@ private void populatePortMenu() { ports = platform.filterPorts(ports, PreferencesData.getBoolean("serial.ports.showall")); - Collections.sort(ports, new Comparator() { - @Override - public int compare(BoardPort o1, BoardPort o2) { - return BOARD_PROTOCOLS_ORDER.indexOf(o1.getProtocol()) - BOARD_PROTOCOLS_ORDER.indexOf(o2.getProtocol()); - } + ports.stream() // + .filter(port -> port.getProtocolLabel() == null || port.getProtocolLabel().isEmpty()) + .forEach(port -> { + int labelIdx = PROTOCOLS_ORDER.indexOf(port.getProtocol()); + if (labelIdx != -1) { + port.setProtocolLabel(PROTOCOLS_LABELS.get(labelIdx)); + } else { + port.setProtocolLabel(port.getProtocol()); + } + }); + + Collections.sort(ports, (port1, port2) -> { + String pr1 = port1.getProtocol(); + String pr2 = port2.getProtocol(); + int prIdx1 = PROTOCOLS_ORDER.contains(pr1) ? PROTOCOLS_ORDER.indexOf(pr1) : 999; + int prIdx2 = PROTOCOLS_ORDER.contains(pr2) ? PROTOCOLS_ORDER.indexOf(pr2) : 999; + int r = prIdx1 - prIdx2; + if (r != 0) + return r; + r = port1.getProtocolLabel().compareTo(port2.getProtocolLabel()); + if (r != 0) + return r; + return port1.getAddress().compareTo(port2.getAddress()); }); - String lastProtocol = null; - String lastProtocolTranslated; + String lastProtocol = ""; + String lastProtocolLabel = ""; for (BoardPort port : ports) { - if (lastProtocol == null || !port.getProtocol().equals(lastProtocol)) { - if (lastProtocol != null) { + if (!port.getProtocol().equals(lastProtocol) || !port.getProtocolLabel().equals(lastProtocolLabel)) { + if (!lastProtocol.isEmpty()) { portMenu.addSeparator(); } lastProtocol = port.getProtocol(); - - if (BOARD_PROTOCOLS_ORDER.indexOf(port.getProtocol()) != -1) { - lastProtocolTranslated = BOARD_PROTOCOLS_ORDER_TRANSLATIONS.get(BOARD_PROTOCOLS_ORDER.indexOf(port.getProtocol())); - } else { - lastProtocolTranslated = port.getProtocol(); - } - JMenuItem lastProtocolMenuItem = new JMenuItem(tr(lastProtocolTranslated)); - lastProtocolMenuItem.setEnabled(false); - portMenu.add(lastProtocolMenuItem); + lastProtocolLabel = port.getProtocolLabel(); + JMenuItem item = new JMenuItem(tr(lastProtocolLabel)); + item.setEnabled(false); + portMenu.add(item); } String address = port.getAddress(); - String label = port.getLabel(); - JCheckBoxMenuItem item = new JCheckBoxMenuItem(label, address.equals(selectedPort)); - item.addActionListener(new SerialMenuListener(address)); + BoardPortJCheckBoxMenuItem item = new BoardPortJCheckBoxMenuItem(port); + item.setSelected(address.equals(selectedPort)); portMenu.add(item); } @@ -1113,153 +1133,44 @@ public int compare(BoardPort o1, BoardPort o2) { private JMenu buildHelpMenu() { - // To deal with a Mac OS X 10.5 bug, add an extra space after the name - // so that the OS doesn't try to insert its slow help menu. JMenu menu = new JMenu(tr("Help")); menu.setMnemonic(KeyEvent.VK_H); - JMenuItem item; - - /* - // testing internal web server to serve up docs from a zip file - item = new JMenuItem("Web Server Test"); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - //WebServer ws = new WebServer(); - SwingUtilities.invokeLater(new Runnable() { - public void run() { - try { - int port = WebServer.launch("/Users/fry/coconut/processing/build/shared/reference.zip"); - Base.openURL("http://127.0.0.1:" + port + "/reference/setup_.html"); - - } catch (IOException e1) { - e1.printStackTrace(); - } - } - }); - } - }); - menu.add(item); - */ - - /* - item = new JMenuItem("Browser Test"); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - //Base.openURL("http://processing.org/learning/gettingstarted/"); - //JFrame browserFrame = new JFrame("Browser"); - BrowserStartup bs = new BrowserStartup("jar:file:/Users/fry/coconut/processing/build/shared/reference.zip!/reference/setup_.html"); - bs.initUI(); - bs.launch(); - } - }); - menu.add(item); - */ - item = new JMenuItem(tr("Getting Started")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showArduinoGettingStarted(); - } - }); + JMenuItem item = new JMenuItem(tr("Getting Started")); + item.addActionListener(event -> Base.showArduinoGettingStarted()); menu.add(item); item = new JMenuItem(tr("Environment")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showEnvironment(); - } - }); + item.addActionListener(event -> Base.showEnvironment()); menu.add(item); item = new JMenuItem(tr("Troubleshooting")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showTroubleshooting(); - } - }); + item.addActionListener(event -> Base.showTroubleshooting()); menu.add(item); item = new JMenuItem(tr("Reference")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showReference(); - } - }); - menu.add(item); - - menu.addSeparator(); - - item = new JMenuItem(tr("Galileo Help")); - item.setEnabled(false); - menu.add(item); - - item = new JMenuItem(tr("Getting Started")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showReference("reference/Galileo_help_files", "ArduinoIDE_guide_galileo"); - } - }); - menu.add(item); - item = new JMenuItem(tr("Troubleshooting")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showReference("reference/Galileo_help_files", "Guide_Troubleshooting_Galileo"); - } - }); - menu.add(item); - - menu.addSeparator(); - - item = new JMenuItem(tr("Edison Help")); - item.setEnabled(false); - menu.add(item); - - item = new JMenuItem(tr("Getting Started")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showReference("reference/Edison_help_files", "ArduinoIDE_guide_edison"); - } - }); - menu.add(item); - item = new JMenuItem(tr("Troubleshooting")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showReference("reference/Edison_help_files", "Guide_Troubleshooting_Edison"); - } - }); + item.addActionListener(event -> Base.showReference()); menu.add(item); menu.addSeparator(); item = newJMenuItemShift(tr("Find in Reference"), 'F'); - item.addActionListener(this::handleFindReference); + item.addActionListener(event -> handleFindReference(event)); menu.add(item); item = new JMenuItem(tr("Frequently Asked Questions")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.showFAQ(); - } - }); + item.addActionListener(event -> Base.showFAQ()); menu.add(item); item = new JMenuItem(tr("Visit Arduino.cc")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - Base.openURL(tr("http://www.arduino.cc/")); - } - }); + item.addActionListener(event -> Base.openURL(tr("http://www.arduino.cc/"))); menu.add(item); // macosx already has its own about menu if (!OSUtils.hasMacOSStyleMenus()) { menu.addSeparator(); item = new JMenuItem(tr("About Arduino")); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleAbout(); - } - }); + item.addActionListener(event -> base.handleAbout()); menu.add(item); } @@ -1274,7 +1185,7 @@ private JMenu buildEditMenu() { undoItem = newJMenuItem(tr("Undo"), 'Z'); undoItem.setName("menuEditUndo"); - undoItem.addActionListener(e -> getCurrentTab().handleUndo()); + undoItem.addActionListener(event -> getCurrentTab().handleUndo()); menu.add(undoItem); if (!OSUtils.isMacOS()) { @@ -1283,61 +1194,37 @@ private JMenu buildEditMenu() { redoItem = newJMenuItemShift(tr("Redo"), 'Z'); } redoItem.setName("menuEditRedo"); - redoItem.addActionListener(e -> getCurrentTab().handleRedo()); + redoItem.addActionListener(event -> getCurrentTab().handleRedo()); menu.add(redoItem); menu.addSeparator(); JMenuItem cutItem = newJMenuItem(tr("Cut"), 'X'); - cutItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleCut(); - } - }); + cutItem.addActionListener(event -> getCurrentTab().handleCut()); menu.add(cutItem); JMenuItem copyItem = newJMenuItem(tr("Copy"), 'C'); - copyItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().getTextArea().copy(); - } - }); + copyItem.addActionListener(event -> getCurrentTab().getTextArea().copy()); menu.add(copyItem); JMenuItem copyForumItem = newJMenuItemShift(tr("Copy for Forum"), 'C'); - copyForumItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleDiscourseCopy(); - } - }); + copyForumItem.addActionListener(event -> getCurrentTab().handleDiscourseCopy()); menu.add(copyForumItem); JMenuItem copyHTMLItem = newJMenuItemAlt(tr("Copy as HTML"), 'C'); - copyHTMLItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleHTMLCopy(); - } - }); + copyHTMLItem.addActionListener(event -> getCurrentTab().handleHTMLCopy()); menu.add(copyHTMLItem); JMenuItem pasteItem = newJMenuItem(tr("Paste"), 'V'); - pasteItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handlePaste(); - } - }); + pasteItem.addActionListener(event -> getCurrentTab().handlePaste()); menu.add(pasteItem); JMenuItem selectAllItem = newJMenuItem(tr("Select All"), 'A'); - selectAllItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleSelectAll(); - } - }); + selectAllItem.addActionListener(event -> getCurrentTab().handleSelectAll()); menu.add(selectAllItem); JMenuItem gotoLine = newJMenuItem(tr("Go to line..."), 'L'); - gotoLine.addActionListener(e -> { + gotoLine.addActionListener(event -> { GoToLineNumber goToLineNumber = new GoToLineNumber(Editor.this); goToLineNumber.setLocationRelativeTo(Editor.this); goToLineNumber.setVisible(true); @@ -1347,96 +1234,80 @@ public void actionPerformed(ActionEvent e) { menu.addSeparator(); JMenuItem commentItem = newJMenuItem(tr("Comment/Uncomment"), PreferencesData.get("editor.keys.shortcut_comment", "/").charAt(0)); - commentItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleCommentUncomment(); - } - }); + commentItem.addActionListener(event -> getCurrentTab().handleCommentUncomment()); menu.add(commentItem); JMenuItem increaseIndentItem = new JMenuItem(tr("Increase Indent")); increaseIndentItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0)); - increaseIndentItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleIndentOutdent(true); - } - }); + increaseIndentItem.addActionListener(event -> getCurrentTab().handleIndentOutdent(true)); menu.add(increaseIndentItem); JMenuItem decreseIndentItem = new JMenuItem(tr("Decrease Indent")); decreseIndentItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK)); decreseIndentItem.setName("menuDecreaseIndent"); - decreseIndentItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - getCurrentTab().handleIndentOutdent(false); - } - }); + decreseIndentItem.addActionListener(event -> getCurrentTab().handleIndentOutdent(false)); menu.add(decreseIndentItem); menu.addSeparator(); - JMenuItem increaseFontSizeItem = newJMenuItem(tr("Increase Font Size"), '+'); - increaseFontSizeItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleFontSizeChange(1); - } - }); + JMenuItem increaseFontSizeItem = newJMenuItem(tr("Increase Font Size"), KeyEvent.VK_PLUS); + increaseFontSizeItem.addActionListener(event -> base.handleFontSizeChange(1)); menu.add(increaseFontSizeItem); - - JMenuItem decreaseFontSizeItem = newJMenuItem(tr("Decrease Font Size"), '-'); - decreaseFontSizeItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleFontSizeChange(-1); - } + // Many keyboards have '+' and '=' on the same key. Allowing "CTRL +", + // "CTRL SHIFT +" and "CTRL =" covers the generally expected behavior. + KeyStroke ctrlShiftEq = KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, SHORTCUT_KEY_MASK | ActionEvent.SHIFT_MASK); + menu.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ctrlShiftEq, "IncreaseFontSize"); + KeyStroke ctrlEq = KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, SHORTCUT_KEY_MASK); + menu.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(ctrlEq, "IncreaseFontSize"); + menu.getActionMap().put("IncreaseFontSize", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + base.handleFontSizeChange(1); + } }); + + JMenuItem decreaseFontSizeItem = newJMenuItem(tr("Decrease Font Size"), KeyEvent.VK_MINUS); + decreaseFontSizeItem.addActionListener(event -> base.handleFontSizeChange(-1)); menu.add(decreaseFontSizeItem); menu.addSeparator(); JMenuItem findItem = newJMenuItem(tr("Find..."), 'F'); - findItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (find == null) { - find = new FindReplace(Editor.this, Base.FIND_DIALOG_STATE); - } - if (!OSUtils.isMacOS()) { - find.setFindText(getCurrentTab().getSelectedText()); - } - find.setLocationRelativeTo(Editor.this); - find.setVisible(true); + findItem.addActionListener(event -> { + if (find == null) { + find = new FindReplace(Editor.this, Base.FIND_DIALOG_STATE); + } + if (!OSUtils.isMacOS()) { + find.setFindText(getCurrentTab().getSelectedText()); } + find.setLocationRelativeTo(Editor.this); + find.setVisible(true); }); menu.add(findItem); JMenuItem findNextItem = newJMenuItem(tr("Find Next"), 'G'); - findNextItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (find != null) { - find.findNext(); - } + findNextItem.addActionListener(event -> { + if (find != null) { + find.findNext(); } }); menu.add(findNextItem); JMenuItem findPreviousItem = newJMenuItemShift(tr("Find Previous"), 'G'); - findPreviousItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (find != null) { - find.findPrevious(); - } + findPreviousItem.addActionListener(event -> { + if (find != null) { + find.findPrevious(); } }); menu.add(findPreviousItem); if (OSUtils.isMacOS()) { JMenuItem useSelectionForFindItem = newJMenuItem(tr("Use Selection For Find"), 'E'); - useSelectionForFindItem.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (find == null) { - find = new FindReplace(Editor.this, Base.FIND_DIALOG_STATE); - } - find.setFindText(getCurrentTab().getSelectedText()); + useSelectionForFindItem.addActionListener(event -> { + if (find == null) { + find = new FindReplace(Editor.this, Base.FIND_DIALOG_STATE); } + find.setFindText(getCurrentTab().getSelectedText()); }); menu.add(useSelectionForFindItem); } @@ -1519,8 +1390,10 @@ private void resetHandlers() { presentHandler = new BuildHandler(true); runAndSaveHandler = new BuildHandler(false, true); presentAndSaveHandler = new BuildHandler(true, true); - exportHandler = new DefaultExportHandler(); - exportAppHandler = new DefaultExportAppHandler(); + uploadHandler = new UploadHandler(); + uploadHandler.setUsingProgrammer(false); + uploadUsingProgrammerHandler = new UploadHandler(); + uploadUsingProgrammerHandler.setUsingProgrammer(true); timeoutUploadHandler = new TimeoutUploadHandler(); } @@ -1779,8 +1652,17 @@ public void removeAllLineHighlights() { } public void addLineHighlight(int line) throws BadLocationException { - getCurrentTab().getTextArea().addLineHighlight(line, new Color(1, 0, 0, 0.2f)); - getCurrentTab().getTextArea().setCaretPosition(getCurrentTab().getTextArea().getLineStartOffset(line)); + SketchTextArea textArea = getCurrentTab().getTextArea(); + FoldManager foldManager = textArea.getFoldManager(); + if (foldManager.isLineHidden(line)) { + for (int i = 0; i < foldManager.getFoldCount(); i++) { + if (foldManager.getFold(i).containsLine(line)) { + foldManager.getFold(i).setCollapsed(false); + } + } + } + textArea.addLineHighlight(line, new Color(1, 0, 0, 0.2f)); + textArea.setCaretPosition(textArea.getLineStartOffset(line)); } @@ -1951,7 +1833,7 @@ protected boolean handleOpenInternal(File sketchFile) { return true; } - private void updateTitle() { + public void updateTitle() { if (sketchController == null) { return; } @@ -2016,7 +1898,12 @@ private boolean handleSave2() { statusNotice(tr("Saving...")); boolean saved = false; try { - boolean wasReadOnly = sketchController.isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath()); + if (PreferencesData.getBoolean("editor.autoformat_currentfile_before_saving")) { + Tool formatTool = getOrCreateToolInstance("cc.arduino.packages.formatter.AStyle"); + formatTool.run(); + } + + boolean wasReadOnly = sketchController.isReadOnly(); String previousMainFilePath = sketch.getMainFilePath(); saved = sketchController.save(); if (saved) { @@ -2091,32 +1978,30 @@ public boolean handleSaveAs() { private boolean serialPrompt() { - int count = portMenu.getItemCount(); - Object[] names = new Object[count]; - for (int i = 0; i < count; i++) { - names[i] = portMenu.getItem(i).getText(); - } - - // FIXME: This is horribly unreadable - String result = (String) - JOptionPane.showInputDialog(this, - I18n.format( - tr("Serial port {0} not found.\n" + - "Retry the upload with another serial port?"), - PreferencesData.get("serial.port") - ), - "Serial port not found", - JOptionPane.PLAIN_MESSAGE, - null, - names, - 0); - if (result == null) return false; - selectSerialPort(result); + List items = new ArrayList<>(); + for (int i = 0; i < portMenu.getItemCount(); i++) { + if (portMenu.getItem(i) instanceof BoardPortJCheckBoxMenuItem) + items.add((BoardPortJCheckBoxMenuItem) portMenu.getItem(i)); + } + + String port = PreferencesData.get("serial.port"); + String title; + if (port == null || port.isEmpty()) { + title = tr("Serial port not selected."); + } else { + title = I18n.format(tr("Serial port {0} not found."), port); + } + String question = tr("Retry the upload with another serial port?"); + BoardPortJCheckBoxMenuItem result = (BoardPortJCheckBoxMenuItem) JOptionPane + .showInputDialog(this, title + "\n" + question, title, + JOptionPane.PLAIN_MESSAGE, null, items.toArray(), 0); + if (result == null) + return false; + result.doClick(); base.onBoardOrPortChange(); return true; } - /** * Called by Sketch → Export. * Handles calling the export() function on sketch, and @@ -2134,11 +2019,7 @@ private boolean serialPrompt() { */ synchronized public void handleExport(final boolean usingProgrammer) { if (PreferencesData.getBoolean("editor.save_on_verify")) { - if (sketch.isModified() - && !sketchController.isReadOnly( - BaseNoGui.librariesIndexer - .getInstalledLibraries(), - BaseNoGui.getExamplesPath())) { + if (sketch.isModified() && !sketchController.isReadOnly()) { handleSave(true); } } @@ -2149,14 +2030,20 @@ synchronized public void handleExport(final boolean usingProgrammer) { avoidMultipleOperations = true; new Thread(timeoutUploadHandler).start(); - new Thread(usingProgrammer ? exportAppHandler : exportHandler).start(); + new Thread(usingProgrammer ? uploadUsingProgrammerHandler : uploadHandler).start(); } - // DAM: in Arduino, this is upload - class DefaultExportHandler implements Runnable { - public void run() { + class UploadHandler implements Runnable { + boolean usingProgrammer = false; + + public void setUsingProgrammer(boolean usingProgrammer) { + this.usingProgrammer = usingProgrammer; + } + public void run() { try { + uploading = true; + removeAllLineHighlights(); if (serialMonitor != null) { serialMonitor.suspend(); @@ -2165,16 +2052,20 @@ public void run() { serialPlotter.suspend(); } - uploading = true; - - boolean success = sketchController.exportApplet(false); + boolean success = sketchController.exportApplet(usingProgrammer); if (success) { statusNotice(tr("Done uploading.")); } } catch (SerialNotFoundException e) { - if (portMenu.getItemCount() == 0) statusError(e); - else if (serialPrompt()) run(); - else statusNotice(tr("Upload canceled.")); + if (portMenu.getItemCount() == 0) { + statusError(tr("Serial port not selected.")); + } else { + if (serialPrompt()) { + run(); + } else { + statusNotice(tr("Upload canceled.")); + } + } } catch (PreferencesMapException e) { statusError(I18n.format( tr("Error while uploading: missing '{0}' configuration parameter"), @@ -2201,9 +2092,18 @@ public void run() { } } + static public boolean isUploading() { + return uploading; + } + private void resumeOrCloseSerialMonitor() { // Return the serial monitor window to its initial state if (serialMonitor != null) { + try { + Thread.sleep(200); + } catch (InterruptedException e) { + // noop + } BoardPort boardPort = BaseNoGui.getDiscoveryManager().find(PreferencesData.get("serial.port")); long sleptFor = 0; while (boardPort == null && sleptFor < MAX_TIME_AWAITING_FOR_RESUMING_SERIAL_MONITOR) { @@ -2250,55 +2150,6 @@ private void resumeOrCloseSerialPlotter() { } } - // DAM: in Arduino, this is upload (with verbose output) - class DefaultExportAppHandler implements Runnable { - public void run() { - - try { - if (serialMonitor != null) { - serialMonitor.suspend(); - } - if (serialPlotter != null) { - serialPlotter.suspend(); - } - - uploading = true; - - boolean success = sketchController.exportApplet(true); - if (success) { - statusNotice(tr("Done uploading.")); - } - } catch (SerialNotFoundException e) { - if (portMenu.getItemCount() == 0) statusError(e); - else if (serialPrompt()) run(); - else statusNotice(tr("Upload canceled.")); - } catch (PreferencesMapException e) { - statusError(I18n.format( - tr("Error while uploading: missing '{0}' configuration parameter"), - e.getMessage())); - } catch (RunnerException e) { - //statusError("Error during upload."); - //e.printStackTrace(); - status.unprogress(); - statusError(e); - } catch (Exception e) { - e.printStackTrace(); - } finally { - avoidMultipleOperations = false; - populatePortMenu(); - } - status.unprogress(); - uploading = false; - //toolbar.clear(); - toolbar.deactivateExport(); - - resumeOrCloseSerialMonitor(); - resumeOrCloseSerialPlotter(); - - base.onBoardOrPortChange(); - } - } - class TimeoutUploadHandler implements Runnable { public void run() { @@ -2361,6 +2212,7 @@ public void handleSerial() { return; } + base.addEditorFontResizeListeners(serialMonitor); Base.setIcon(serialMonitor); // If currently uploading, disable the monitor (it will be later @@ -2389,11 +2241,12 @@ public void handleSerial() { } try { - serialMonitor.setVisible(true); if (!avoidMultipleOperations) { serialMonitor.open(); } + serialMonitor.setVisible(true); success = true; + statusEmpty(); } catch (ConnectException e) { statusError(tr("Unable to connect: is the sketch using the bridge?")); } catch (JSchException e) { @@ -2403,6 +2256,7 @@ public void handleSerial() { if (e.getCause() != null && e.getCause() instanceof SerialPortException) { errorMessage += " (" + ((SerialPortException) e.getCause()).getExceptionType() + ")"; } + serialMonitor = null; statusError(errorMessage); try { serialMonitor.close(); @@ -2412,12 +2266,12 @@ public void handleSerial() { } catch (Exception e) { statusError(e); } finally { - if (serialMonitor.requiresAuthorization() && !success) { + if (serialMonitor != null && serialMonitor.requiresAuthorization() && !success) { PreferencesData.remove(serialMonitor.getAuthorizationKey()); } } - } while (serialMonitor.requiresAuthorization() && !success); + } while (serialMonitor != null && serialMonitor.requiresAuthorization() && !success); } @@ -2437,6 +2291,7 @@ public void handlePlotter() { if (serialPlotter.isClosed()) { // If it's closed, clear the refrence to the existing // plotter and create a new one + serialPlotter.dispose(); serialPlotter = null; } else { @@ -2490,6 +2345,7 @@ public void handlePlotter() { serialPlotter.open(); serialPlotter.setVisible(true); success = true; + statusEmpty(); } catch (ConnectException e) { statusError(tr("Unable to connect: is the sketch using the bridge?")); } catch (JSchException e) { @@ -2500,20 +2356,22 @@ public void handlePlotter() { errorMessage += " (" + ((SerialPortException) e.getCause()).getExceptionType() + ")"; } statusError(errorMessage); + serialPlotter = null; } catch (Exception e) { statusError(e); } finally { - if (serialPlotter.requiresAuthorization() && !success) { + if (serialPlotter != null && serialPlotter.requiresAuthorization() && !success) { PreferencesData.remove(serialPlotter.getAuthorizationKey()); } } - } while (serialPlotter.requiresAuthorization() && !success); + } while (serialPlotter != null && serialPlotter.requiresAuthorization() && !success); } private void handleBurnBootloader() { console.clear(); + EditorConsole.setCurrentEditorConsole(this.console); statusNotice(tr("Burning bootloader to I/O Board (this may take a minute)...")); new Thread(() -> { try { @@ -2524,6 +2382,8 @@ private void handleBurnBootloader() { SwingUtilities.invokeLater(() -> statusError(tr("Error while burning bootloader."))); // error message will already be visible } + } catch (SerialNotFoundException e) { + SwingUtilities.invokeLater(() -> statusError(tr("Error while burning bootloader: please select a serial port."))); } catch (PreferencesMapException e) { SwingUtilities.invokeLater(() -> { statusError(I18n.format( @@ -2555,9 +2415,9 @@ private void handleBoardInfo() { for (BoardPort port : ports) { if (port.getAddress().equals(selectedPort)) { label = port.getBoardName(); - vid = port.getVID(); - pid = port.getPID(); - iserial = port.getISerial(); + vid = port.getPrefs().get("vid"); + pid = port.getPrefs().get("pid"); + iserial = port.getPrefs().get("iserial"); protocol = port.getProtocol(); found = true; break; @@ -2727,12 +2587,12 @@ private void statusEmpty() { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . protected void onBoardOrPortChange() { - Map boardPreferences = BaseNoGui.getBoardPreferences(); - if (boardPreferences != null) - lineStatus.setBoardName(boardPreferences.get("name")); + TargetBoard board = BaseNoGui.getTargetBoard(); + if (board != null) + lineStatus.setBoardName(board.getName()); else lineStatus.setBoardName("-"); - lineStatus.setSerialPort(PreferencesData.get("serial.port")); + lineStatus.setPort(PreferencesData.get("serial.port")); lineStatus.repaint(); } diff --git a/app/src/processing/app/EditorConsole.java b/app/src/processing/app/EditorConsole.java index b32382354ec..3942908a1da 100644 --- a/app/src/processing/app/EditorConsole.java +++ b/app/src/processing/app/EditorConsole.java @@ -27,6 +27,8 @@ import javax.swing.text.*; import java.awt.*; import java.io.PrintStream; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import static processing.app.Theme.scale; @@ -37,20 +39,21 @@ public class EditorConsole extends JScrollPane { private static ConsoleOutputStream out; private static ConsoleOutputStream err; + private int startOfLine = 0; + private int insertPosition = 0; - private static synchronized void init(SimpleAttributeSet outStyle, PrintStream outStream, SimpleAttributeSet errStyle, PrintStream errStream) { - if (out != null) { - return; - } + // Regex for linesplitting, see insertString for comments. + private static final Pattern newLinePattern = Pattern.compile("([^\r\n]*)([\r\n]*\n)?(\r+)?"); - out = new ConsoleOutputStream(outStyle, outStream); - System.setOut(new PrintStream(out, true)); + public static synchronized void setCurrentEditorConsole(EditorConsole console) { + if (out == null) { + out = new ConsoleOutputStream(console.stdOutStyle, System.out); + System.setOut(new PrintStream(out, true)); - err = new ConsoleOutputStream(errStyle, errStream); - System.setErr(new PrintStream(err, true)); - } + err = new ConsoleOutputStream(console.stdErrStyle, System.err); + System.setErr(new PrintStream(err, true)); + } - public static void setCurrentEditorConsole(EditorConsole console) { out.setCurrentEditorConsole(console); err.setCurrentEditorConsole(console); } @@ -58,7 +61,10 @@ public static void setCurrentEditorConsole(EditorConsole console) { private final DefaultStyledDocument document; private final JTextPane consoleTextPane; - public EditorConsole() { + private SimpleAttributeSet stdOutStyle; + private SimpleAttributeSet stdErrStyle; + + public EditorConsole(Base base) { document = new DefaultStyledDocument(); consoleTextPane = new JTextPane(document); @@ -74,7 +80,7 @@ public EditorConsole() { Font editorFont = PreferencesData.getFont("editor.font"); Font actualFont = new Font(consoleFont.getName(), consoleFont.getStyle(), scale(editorFont.getSize())); - SimpleAttributeSet stdOutStyle = new SimpleAttributeSet(); + stdOutStyle = new SimpleAttributeSet(); StyleConstants.setForeground(stdOutStyle, Theme.getColor("console.output.color")); StyleConstants.setBackground(stdOutStyle, backgroundColour); StyleConstants.setFontSize(stdOutStyle, actualFont.getSize()); @@ -84,7 +90,7 @@ public EditorConsole() { consoleTextPane.setParagraphAttributes(stdOutStyle, true); - SimpleAttributeSet stdErrStyle = new SimpleAttributeSet(); + stdErrStyle = new SimpleAttributeSet(); StyleConstants.setForeground(stdErrStyle, Theme.getColor("console.error.color")); StyleConstants.setBackground(stdErrStyle, backgroundColour); StyleConstants.setFontSize(stdErrStyle, actualFont.getSize()); @@ -106,12 +112,64 @@ public EditorConsole() { setPreferredSize(new Dimension(100, (height * lines))); setMinimumSize(new Dimension(100, (height * lines))); - EditorConsole.init(stdOutStyle, System.out, stdErrStyle, System.err); + // Add font size adjustment listeners. + if (base != null) + base.addEditorFontResizeListeners(consoleTextPane); + } + + public void applyPreferences() { + + // Update the console text pane font from the preferences. + Font consoleFont = Theme.getFont("console.font"); + Font editorFont = PreferencesData.getFont("editor.font"); + Font actualFont = new Font(consoleFont.getName(), consoleFont.getStyle(), scale(editorFont.getSize())); + + AttributeSet stdOutStyleOld = stdOutStyle.copyAttributes(); + AttributeSet stdErrStyleOld = stdErrStyle.copyAttributes(); + StyleConstants.setFontSize(stdOutStyle, actualFont.getSize()); + StyleConstants.setFontSize(stdErrStyle, actualFont.getSize()); + + // Re-insert console text with the new preferences if there were changes. + // This assumes that the document has single-child paragraphs (default). + if (!stdOutStyle.isEqual(stdOutStyleOld) || !stdErrStyle.isEqual(stdOutStyleOld)) { + if (out != null) + out.setAttibutes(stdOutStyle); + if (err != null) + err.setAttibutes(stdErrStyle); + + int start; + for (int end = document.getLength() - 1; end >= 0; end = start - 1) { + Element elem = document.getParagraphElement(end); + start = elem.getStartOffset(); + AttributeSet attrs = elem.getElement(0).getAttributes(); + AttributeSet newAttrs; + if (attrs.isEqual(stdErrStyleOld)) { + newAttrs = stdErrStyle; + } else if (attrs.isEqual(stdOutStyleOld)) { + newAttrs = stdOutStyle; + } else { + continue; + } + try { + String text = document.getText(start, end - start); + document.remove(start, end - start); + document.insertString(start, text, newAttrs); + } catch (BadLocationException e) { + // Should only happen when text is async removed (through clear()). + // Accept this case, but throw an error when text could mess up. + if (document.getLength() != 0) { + throw new Error(e); + } + } + } + } } public void clear() { try { document.remove(0, document.getLength()); + startOfLine = 0; + insertPosition = 0; } catch (BadLocationException e) { // ignore the error otherwise this will cause an infinite loop // maybe not a good idea in the long run? @@ -127,14 +185,53 @@ public boolean isEmpty() { return document.getLength() == 0; } - public void insertString(String line, SimpleAttributeSet attributes) throws BadLocationException { - line = line.replace("\r\n", "\n").replace("\r", "\n"); - int offset = document.getLength(); - document.insertString(offset, line, attributes); + public void insertString(String str, SimpleAttributeSet attributes) throws BadLocationException { + // Separate the string into content, newlines and lone carriage + // returns. + // + // Doing so allows lone CRs to move the insertPosition back to the + // start of the line to allow overwriting the most recent line (e.g. + // for a progress bar). Any CR or NL that are immediately followed + // by another NL are bunched together for efficiency, since these + // can just be inserted into the document directly and still be + // correct. + // + // The regex is written so it will necessarily match any string + // completely if applied repeatedly. This is important because any + // part not matched would be silently dropped. + Matcher m = newLinePattern.matcher(str); + + while (m.find()) { + String content = m.group(1); + String newlines = m.group(2); + String crs = m.group(3); + + // Replace (or append if at end of the document) the content first + int replaceLength = Math.min(content.length(), document.getLength() - insertPosition); + document.replace(insertPosition, replaceLength, content, attributes); + insertPosition += content.length(); + + // Then insert any newlines, but always at the end of the document + // e.g. if insertPosition is halfway a line, do not delete + // anything, just add the newline(s) at the end). + if (newlines != null) { + document.insertString(document.getLength(), newlines, attributes); + insertPosition = document.getLength(); + startOfLine = insertPosition; + } + + // Then, for any CRs not followed by newlines, move insertPosition + // to the start of the line. Note that if a newline follows before + // any content in the next call to insertString, it will be added + // at the end of the document anyway, as expected. + if (crs != null) { + insertPosition = startOfLine; + } + } } public String getText() { - return consoleTextPane.getText().trim(); + return consoleTextPane.getText(); } } diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java index 25c09a8dfaa..c5695cf8abd 100644 --- a/app/src/processing/app/EditorHeader.java +++ b/app/src/processing/app/EditorHeader.java @@ -73,6 +73,7 @@ public class EditorHeader extends JComponent { static final int PIECE_WIDTH = scale(4); static final int PIECE_HEIGHT = scale(33); + static final int TAB_HEIGHT = scale(27); // value for the size bars, buttons, etc // TODO: Should be a Theme value? @@ -270,8 +271,8 @@ public void paintComponent(Graphics screen) { int textLeft = contentLeft + (pieceWidth - textWidth) / 2; g.setColor(textColor[state]); - int baseline = (sizeH + fontAscent) / 2; - //g.drawString(sketch.code[i].name, textLeft, baseline); + int tabMarginTop = sizeH - TAB_HEIGHT; + int baseline = tabMarginTop + ((TAB_HEIGHT + fontAscent) / 2) ; g.drawString(text, textLeft, baseline); g.drawImage(pieces[state][RIGHT], x, 0, null); diff --git a/app/src/processing/app/EditorLineStatus.java b/app/src/processing/app/EditorLineStatus.java index 7d4e80b6577..7635437da4f 100644 --- a/app/src/processing/app/EditorLineStatus.java +++ b/app/src/processing/app/EditorLineStatus.java @@ -51,8 +51,7 @@ public class EditorLineStatus extends JComponent { String text = ""; String name = ""; - String serialport = ""; - String serialnumber = ""; + String port = ""; public EditorLineStatus() { background = Theme.getColor("linestatus.bgcolor"); @@ -92,13 +91,13 @@ public void set(int newStart, int newStop) { public void paintComponent(Graphics graphics) { Graphics2D g = Theme.setupGraphics2D(graphics); - if (name.isEmpty() && serialport.isEmpty()) { + if (name.isEmpty() && port.isEmpty()) { PreferencesMap boardPreferences = BaseNoGui.getBoardPreferences(); if (boardPreferences != null) setBoardName(boardPreferences.get("name")); else setBoardName("-"); - setSerialPort(PreferencesData.get("serial.port")); + setPort(PreferencesData.get("serial.port")); } g.setColor(background); Dimension size = getSize(); @@ -110,11 +109,17 @@ public void paintComponent(Graphics graphics) { g.drawString(text, scale(6), baseline); g.setColor(messageForeground); - String tmp = I18n.format(tr("{0} on {1}"), name, serialport); - - Rectangle2D bounds = g.getFontMetrics().getStringBounds(tmp, null); - - g.drawString(tmp, size.width - (int) bounds.getWidth() - RESIZE_IMAGE_SIZE, + + String statusText; + if (port != null && !port.isEmpty()) { + statusText = I18n.format(tr("{0} on {1}"), name, port); + } else { + statusText = name; + } + + Rectangle2D bounds = g.getFontMetrics().getStringBounds(statusText, null); + + g.drawString(statusText, size.width - (int) bounds.getWidth() - RESIZE_IMAGE_SIZE, baseline); if (OSUtils.isMacOS()) { @@ -126,12 +131,8 @@ public void setBoardName(String name) { this.name = name; } - public void setSerialPort(String serialport) { - this.serialport = serialport; - } - - public void setSerialNumber(String serialnumber) { - this.serialnumber = serialnumber; + public void setPort(String port) { + this.port = port; } public Dimension getPreferredSize() { diff --git a/app/src/processing/app/EditorTab.java b/app/src/processing/app/EditorTab.java index 33dabdbbbc2..5e8f3e4bfcf 100644 --- a/app/src/processing/app/EditorTab.java +++ b/app/src/processing/app/EditorTab.java @@ -30,9 +30,8 @@ import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.MouseWheelListener; -import java.awt.event.MouseWheelEvent; - +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; import java.io.IOException; import javax.swing.Action; @@ -50,6 +49,7 @@ import javax.swing.text.DefaultCaret; import javax.swing.text.Document; +import org.apache.commons.lang3.StringUtils; import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; import org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaEditorKit; import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities; @@ -67,7 +67,7 @@ /** * Single tab, editing a single file, in the main window. */ -public class EditorTab extends JPanel implements SketchFile.TextStorage, MouseWheelListener { +public class EditorTab extends JPanel implements SketchFile.TextStorage { protected Editor editor; protected SketchTextArea textarea; protected RTextScrollPane scrollPane; @@ -109,7 +109,7 @@ public EditorTab(Editor editor, SketchFile file, String contents) file.setStorage(this); applyPreferences(); add(scrollPane, BorderLayout.CENTER); - textarea.addMouseWheelListener(this); + editor.base.addEditorFontResizeMouseWheelListener(textarea); } private RSyntaxDocument createDocument(String contents) { @@ -176,23 +176,20 @@ private SketchTextArea createTextArea(RSyntaxDocument document) editor.lineStatus.set(lineStart, lineEnd); }); + textArea.addFocusListener(new FocusListener() { + public void focusGained(FocusEvent e) { + Element root = textArea.getDocument().getDefaultRootElement(); + int lineStart = root.getElementIndex(textArea.getCaret().getMark()); + int lineEnd = root.getElementIndex(textArea.getCaret().getDot()); + editor.lineStatus.set(lineStart, lineEnd); + }; + public void focusLost(FocusEvent e) {}; + }); ToolTipManager.sharedInstance().registerComponent(textArea); configurePopupMenu(textArea); return textArea; } - - public void mouseWheelMoved(MouseWheelEvent e) { - if (e.isControlDown()) { - if (e.getWheelRotation() < 0) { - editor.base.handleFontSizeChange(1); - } else { - editor.base.handleFontSizeChange(-1); - } - } else { - e.getComponent().getParent().dispatchEvent(e); - } - } private void configurePopupMenu(final SketchTextArea textarea){ @@ -319,6 +316,20 @@ public void applyPreferences() { } // apply changes to the font size for the editor Font editorFont = scale(PreferencesData.getFont("editor.font")); + + // check whether a theme-defined editor font is available + Font themeFont = Theme.getFont("editor.font"); + if (themeFont != null) + { + // Apply theme font if the editor font has *not* been changed by the user, + // This allows themes to specify an editor font which will only be applied + // if the user hasn't already changed their editor font via preferences.txt + String defaultFontName = StringUtils.defaultIfEmpty(PreferencesData.getDefault("editor.font"), "").split(",")[0]; + if (defaultFontName.equals(editorFont.getName())) { + editorFont = new Font(themeFont.getName(), themeFont.getStyle(), editorFont.getSize()); + } + } + textarea.setFont(editorFont); scrollPane.getGutter().setLineNumberFont(editorFont); } @@ -431,6 +442,9 @@ public void setText(String what) { } finally { caret.setUpdatePolicy(policy); } + // A trick to force textarea to recalculate the bracket matching rectangle. + // In the worst case scenario, this should be ineffective. + textarea.setLineWrap(textarea.getLineWrap()); } /** diff --git a/app/src/processing/app/EditorToolbar.java b/app/src/processing/app/EditorToolbar.java index 00da0f37ac7..d37d0cc96a7 100644 --- a/app/src/processing/app/EditorToolbar.java +++ b/app/src/processing/app/EditorToolbar.java @@ -23,11 +23,25 @@ package processing.app; +import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.event.MouseInputListener; + +import com.thizzer.jtouchbar.JTouchBar; +import com.thizzer.jtouchbar.item.TouchBarItem; +import com.thizzer.jtouchbar.item.view.TouchBarButton; + +import cc.arduino.contributions.VersionComparator; +import processing.app.helpers.OSUtils; + import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import static processing.app.I18n.tr; import static processing.app.Theme.scale; @@ -92,10 +106,13 @@ public class EditorToolbar extends JComponent implements MouseInputListener, Key private final Color bgcolor; private static Image[][] buttonImages; + private static com.thizzer.jtouchbar.common.Image[][] touchBarImages; private int currentRollover; private JPopupMenu popup; private final JMenu menu; + private JTouchBar touchBar; + private TouchBarButton[] touchBarButtons; private int buttonCount; private int[] state = new int[BUTTON_COUNT]; @@ -133,10 +150,60 @@ public EditorToolbar(Editor editor, JMenu menu) { statusFont = Theme.getFont("buttons.status.font"); statusColor = Theme.getColor("buttons.status.color"); + if (OSUtils.isMacOS() && VersionComparator.greaterThanOrEqual(OSUtils.version(), "10.12")) { + editor.addWindowListener(new WindowAdapter() { + public void windowActivated(WindowEvent e) { + if (touchBar == null) { + buildTouchBar(); + + touchBar.show(editor); + } + } + }); + } + addMouseListener(this); addMouseMotionListener(this); KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this); } + + private void buildTouchBar() { + if (touchBarImages == null) { + loadTouchBarImages(); + } + + touchBar = new JTouchBar(); + touchBarButtons = new TouchBarButton[BUTTON_COUNT]; + touchBar.setCustomizationIdentifier("Arduino"); + + for (int i = 0; i < BUTTON_COUNT; i++) { + final int selection = i; + + // add spacers before NEW and SERIAL buttons + if (i == NEW) { + touchBar.addItem(new TouchBarItem(TouchBarItem.NSTouchBarItemIdentifierFixedSpaceSmall)); + } else if (i == SERIAL) { + touchBar.addItem(new TouchBarItem(TouchBarItem.NSTouchBarItemIdentifierFlexibleSpace)); + } + + touchBarButtons[i] = new TouchBarButton(); + touchBarButtons[i].setImage(touchBarImages[i][ROLLOVER]); + touchBarButtons[i].setAction(event -> { + // Run event handler later to prevent hanging if a dialog needs to be open + EventQueue.invokeLater(new Runnable() { + @Override + public void run() { + handleSelectionPressed(selection); + } + }); + }); + + TouchBarItem touchBarItem = new TouchBarItem(title[i], touchBarButtons[i], true); + touchBarItem.setCustomizationLabel(title[i]); + + touchBar.addItem(touchBarItem); + } + } private void loadButtons() { Image allButtons = Theme.getThemeImage("buttons", this, @@ -157,6 +224,36 @@ private void loadButtons() { } } } + + private void loadTouchBarImages() { + Image allButtonsRetina = Theme.getThemeImage("buttons", this, + BUTTON_IMAGE_SIZE * BUTTON_COUNT * 2, + BUTTON_IMAGE_SIZE * 3 * 2); + touchBarImages = new com.thizzer.jtouchbar.common.Image[BUTTON_COUNT][3]; + + for (int i = 0; i < BUTTON_COUNT; i++) { + for (int state = 0; state < 3; state++) { + BufferedImage image = new BufferedImage(BUTTON_WIDTH * 2, BUTTON_HEIGHT * 2, + BufferedImage.TYPE_INT_ARGB); + Graphics g = image.getGraphics(); + + int offset = (BUTTON_IMAGE_SIZE * 2 - BUTTON_WIDTH * 2) / 2; + g.drawImage(allButtonsRetina, -(i * BUTTON_IMAGE_SIZE * 2) - offset, + (-2 + state) * BUTTON_IMAGE_SIZE * 2, null); + + // convert the image to a PNG to display on the touch bar + ByteArrayOutputStream pngStream = new ByteArrayOutputStream(); + + try { + ImageIO.write(image, "PNG", pngStream); + + touchBarImages[i][state] = new com.thizzer.jtouchbar.common.Image(pngStream.toByteArray()); + } catch (IOException e) { + // ignore errors + } + } + } + } @Override public void paintComponent(Graphics screen) { @@ -305,6 +402,15 @@ private void setState(int slot, int newState, boolean updateAfter) { if (updateAfter) { repaint(); } + + if (touchBarButtons != null) { + if (newState == INACTIVE) { + // use ROLLOVER state when INACTIVE + newState = ROLLOVER; + } + + touchBarButtons[slot].setImage(touchBarImages[slot][newState]); + } } @@ -339,6 +445,20 @@ public void mousePressed(MouseEvent e) { if (sel == -1) return; currentRollover = -1; + handleSelectionPressed(sel, e.isShiftDown(), x, y); + } + + public void mouseClicked(MouseEvent e) { + } + + public void mouseReleased(MouseEvent e) { + } + + private void handleSelectionPressed(int sel) { + handleSelectionPressed(sel, false, 0, 0); + } + + private void handleSelectionPressed(int sel, boolean isShiftDown, int x, int y) { switch (sel) { case RUN: if (!editor.avoidMultipleOperations) { @@ -347,10 +467,10 @@ public void mousePressed(MouseEvent e) { } break; -// case STOP: -// editor.handleStop(); -// break; -// +// case STOP: +// editor.handleStop(); +// break; +// case OPEN: popup = menu.getPopupMenu(); popup.show(EditorToolbar.this, x, y); @@ -365,7 +485,7 @@ public void mousePressed(MouseEvent e) { break; case SAVE: - if (e.isShiftDown()) { + if (isShiftDown) { editor.handleSaveAs(); } else { editor.handleSave(false); @@ -375,7 +495,7 @@ public void mousePressed(MouseEvent e) { case EXPORT: // launch a timeout timer which can reenable to upload button functionality an if (!editor.avoidMultipleOperations) { - editor.handleExport(e.isShiftDown()); + editor.handleExport(isShiftDown); } break; @@ -388,15 +508,6 @@ public void mousePressed(MouseEvent e) { } } - - public void mouseClicked(MouseEvent e) { - } - - - public void mouseReleased(MouseEvent e) { - } - - /** * Set a particular button to be active. */ diff --git a/app/src/processing/app/SerialMonitor.java b/app/src/processing/app/SerialMonitor.java index 45adbd7d54b..b2656ca653d 100644 --- a/app/src/processing/app/SerialMonitor.java +++ b/app/src/processing/app/SerialMonitor.java @@ -21,9 +21,10 @@ import cc.arduino.packages.BoardPort; import processing.app.legacy.PApplet; -import java.awt.*; +import java.awt.Color; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; import static processing.app.I18n.tr; @@ -33,17 +34,21 @@ public class SerialMonitor extends AbstractTextMonitor { private Serial serial; private int serialRate; + private static final int COMMAND_HISTORY_SIZE = 100; + private final CommandHistory commandHistory = + new CommandHistory(COMMAND_HISTORY_SIZE); + public SerialMonitor(BoardPort port) { super(port); serialRate = PreferencesData.getInteger("serial.debug_rate"); serialRates.setSelectedItem(serialRate + " " + tr("baud")); - onSerialRateChange(new ActionListener() { - public void actionPerformed(ActionEvent event) { - String wholeString = (String) serialRates.getSelectedItem(); - String rateString = wholeString.substring(0, wholeString.indexOf(' ')); - serialRate = Integer.parseInt(rateString); - PreferencesData.set("serial.debug_rate", rateString); + onSerialRateChange((ActionEvent event) -> { + String wholeString = (String) serialRates.getSelectedItem(); + String rateString = wholeString.substring(0, wholeString.indexOf(' ')); + serialRate = Integer.parseInt(rateString); + PreferencesData.set("serial.debug_rate", rateString); + if (serial != null) { try { close(); Thread.sleep(100); // Wait for serial port to properly close @@ -56,16 +61,41 @@ public void actionPerformed(ActionEvent event) { } }); - onSendCommand(new ActionListener() { - public void actionPerformed(ActionEvent e) { - send(textField.getText()); - textField.setText(""); - } + onSendCommand((ActionEvent event) -> { + String command = textField.getText(); + send(command); + commandHistory.addCommand(command); + textField.setText(""); }); - - onClearCommand(new ActionListener() { - public void actionPerformed(ActionEvent e) { - textArea.setText(""); + + onClearCommand((ActionEvent event) -> textArea.setText("")); + + // Add key listener to UP, DOWN, ESC keys for command history traversal. + textField.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + switch (e.getKeyCode()) { + + // Select previous command. + case KeyEvent.VK_UP: + if (commandHistory.hasPreviousCommand()) { + textField.setText( + commandHistory.getPreviousCommand(textField.getText())); + } + break; + + // Select next command. + case KeyEvent.VK_DOWN: + if (commandHistory.hasNextCommand()) { + textField.setText(commandHistory.getNextCommand()); + } + break; + + // Reset history location, restoring the last unexecuted command. + case KeyEvent.VK_ESCAPE: + textField.setText(commandHistory.resetHistoryLocation()); + break; + } } }); } @@ -93,6 +123,7 @@ private void send(String s) { } } + @Override public void open() throws Exception { super.open(); @@ -106,13 +137,13 @@ protected void message(char buff[], int n) { }; } + @Override public void close() throws Exception { super.close(); if (serial != null) { int[] location = getPlacement(); String locationStr = PApplet.join(PApplet.str(location), ","); PreferencesData.set("last.serial.location", locationStr); - textArea.setText(""); serial.dispose(); serial = null; } diff --git a/app/src/processing/app/SerialPlotter.java b/app/src/processing/app/SerialPlotter.java index 363753749fe..035005ac362 100644 --- a/app/src/processing/app/SerialPlotter.java +++ b/app/src/processing/app/SerialPlotter.java @@ -26,8 +26,12 @@ import java.util.ArrayList; import javax.swing.*; import javax.swing.border.EmptyBorder; +import javax.swing.text.DefaultEditorKit; import java.awt.*; +import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; @@ -40,12 +44,18 @@ public class SerialPlotter extends AbstractMonitor { private Serial serial; private int serialRate, xCount; + private JLabel noLineEndingAlert; + private JTextField textField; + private JButton sendButton; + private JComboBox lineEndings; + private ArrayList graphs; private final static int BUFFER_CAPACITY = 500; private static class Graph { public CircularBuffer buffer; private Color color; + public String label; public Graph(int id) { buffer = new CircularBuffer(BUFFER_CAPACITY); @@ -185,12 +195,24 @@ public void paintComponent(Graphics g1) { g.setTransform(AffineTransform.getTranslateInstance(xOffset, 0)); float xstep = (float) (bounds.width - xOffset - xPadding) / (float) BUFFER_CAPACITY; - int legendLength = graphs.size() * 10 + (graphs.size() - 1) * 3; + // draw legend + int legendXOffset = 0; for(int i = 0; i < graphs.size(); ++i) { graphs.get(i).paint(g, xstep, minY, maxY, rangeY, bounds.height); - if(graphs.size() > 1) { - g.fillRect(bounds.width - (xOffset + legendLength + 10) + i * 13, 10, 10, 10); + if(graphs.size() > 1) { + //draw legend rectangle + g.fillRect(10 + legendXOffset, 10, 10, 10); + legendXOffset += 13; + //draw label + g.setColor(boundsColor); + String s = graphs.get(i).label; + if(s != null && s.length() > 0) { + Rectangle2D fBounds = fm.getStringBounds(s, g); + int sWidth = (int)fBounds.getWidth(); + g.drawString(s, 10 + legendXOffset, 10 + (int)fBounds.getHeight() /2); + legendXOffset += sWidth + 3; + } } } } @@ -220,12 +242,14 @@ public SerialPlotter(BoardPort port) { String rateString = wholeString.substring(0, wholeString.indexOf(' ')); serialRate = Integer.parseInt(rateString); PreferencesData.set("serial.debug_rate", rateString); - try { - close(); - Thread.sleep(100); // Wait for serial port to properly close - open(); - } catch (Exception e) { - // ignore + if (serial != null) { + try { + close(); + Thread.sleep(100); // Wait for serial port to properly close + open(); + } catch (Exception e) { + // ignore + } } }); @@ -254,10 +278,111 @@ protected void onCreateWindow(Container mainPane) { pane.add(serialRates); mainPane.add(pane, BorderLayout.SOUTH); + + textField = new JTextField(40); + // textField is selected every time the window is focused + addWindowFocusListener(new WindowAdapter() { + @Override + public void windowGainedFocus(WindowEvent e) { + textField.requestFocusInWindow(); + } + }); + + // Add cut/copy/paste contextual menu to the text input field. + JPopupMenu menu = new JPopupMenu(); + + Action cut = new DefaultEditorKit.CutAction(); + cut.putValue(Action.NAME, tr("Cut")); + menu.add(cut); + + Action copy = new DefaultEditorKit.CopyAction(); + copy.putValue(Action.NAME, tr("Copy")); + menu.add(copy); + + Action paste = new DefaultEditorKit.PasteAction(); + paste.putValue(Action.NAME, tr("Paste")); + menu.add(paste); + + textField.setComponentPopupMenu(menu); + + sendButton = new JButton(tr("Send")); + + JPanel lowerPane = new JPanel(); + lowerPane.setLayout(new BoxLayout(lowerPane, BoxLayout.X_AXIS)); + lowerPane.setBorder(new EmptyBorder(4, 4, 4, 4)); + + noLineEndingAlert = new JLabel(I18n.format(tr("You've pressed {0} but nothing was sent. Should you select a line ending?"), tr("Send"))); + noLineEndingAlert.setToolTipText(noLineEndingAlert.getText()); + noLineEndingAlert.setForeground(pane.getBackground()); + Dimension minimumSize = new Dimension(noLineEndingAlert.getMinimumSize()); + minimumSize.setSize(minimumSize.getWidth() / 3, minimumSize.getHeight()); + noLineEndingAlert.setMinimumSize(minimumSize); + + + lineEndings = new JComboBox(new String[]{tr("No line ending"), tr("Newline"), tr("Carriage return"), tr("Both NL & CR")}); + lineEndings.addActionListener((ActionEvent event) -> { + PreferencesData.setInteger("serial.line_ending", lineEndings.getSelectedIndex()); + noLineEndingAlert.setForeground(pane.getBackground()); + }); + lineEndings.setMaximumSize(lineEndings.getMinimumSize()); + + lowerPane.add(textField); + lowerPane.add(Box.createRigidArea(new Dimension(4, 0))); + lowerPane.add(sendButton); + + pane.add(lowerPane); + pane.add(noLineEndingAlert); + pane.add(Box.createRigidArea(new Dimension(8, 0))); + pane.add(lineEndings); + + applyPreferences(); + + onSendCommand((ActionEvent event) -> { + send(textField.getText()); + textField.setText(""); + }); + + } + + private void send(String string) { + String s = string; + if (serial != null) { + switch (lineEndings.getSelectedIndex()) { + case 1: + s += "\n"; + break; + case 2: + s += "\r"; + break; + case 3: + s += "\r\n"; + break; + default: + break; + } + if ("".equals(s) && lineEndings.getSelectedIndex() == 0 && !PreferencesData.has("runtime.line.ending.alert.notified")) { + noLineEndingAlert.setForeground(Color.RED); + PreferencesData.set("runtime.line.ending.alert.notified", "true"); + } + serial.write(s); + } + } + + public void onSendCommand(ActionListener listener) { + textField.addActionListener(listener); + sendButton.addActionListener(listener); + } + + public void appyPreferences() { + // Apply line endings. + if (PreferencesData.get("serial.line_ending") != null) { + lineEndings.setSelectedIndex(PreferencesData.getInteger("serial.line_ending")); + } } protected void onEnableWindow(boolean enable) { - serialRates.setEnabled(enable); + textField.setEnabled(enable); + sendButton.setEnabled(enable); } private void onSerialRateChange(ActionListener listener) { @@ -276,23 +401,70 @@ public void message(final String s) { messageBuffer.delete(0, linebreak + 1); line = line.trim(); + if (line.length() == 0) { + // the line only contained trimmable characters + continue; + } String[] parts = line.split("[, \t]+"); if(parts.length == 0) { continue; } int validParts = 0; + int validLabels = 0; for(int i = 0; i < parts.length; ++i) { - try { - double value = Double.valueOf(parts[i]); + Double value = null; + String label = null; + + // column formated name value pair + if(parts[i].contains(":")) { + // get label + String[] subString = parts[i].split("[:]+"); + + if(subString.length > 0) { + int labelLength = subString[0].length(); + + if(labelLength > 32) { + labelLength = 32; + } + label = subString[0].substring(0, labelLength); + } else { + label = ""; + } + + if(subString.length > 1) { + parts[i] = subString[1]; + } else { + parts[i] = ""; + } + } + + try { + value = Double.valueOf(parts[i]); + } catch (NumberFormatException e) { + // ignored + } + //CSV header + if(label == null && value == null) { + label = parts[i]; + } + + if(value != null) { if(validParts >= graphs.size()) { graphs.add(new Graph(validParts)); } graphs.get(validParts).buffer.add(value); validParts++; - } catch (NumberFormatException e) { - // ignore } + if(label != null) { + if(validLabels >= graphs.size()) { + graphs.add(new Graph(validLabels)); + } + graphs.get(validLabels).label = label; + validLabels++; + } + if(validParts > validLabels) validLabels = validParts; + else if(validLabels > validParts) validParts = validLabels; } } diff --git a/app/src/processing/app/SketchController.java b/app/src/processing/app/SketchController.java index ae775f57873..ce9e468cc68 100644 --- a/app/src/processing/app/SketchController.java +++ b/app/src/processing/app/SketchController.java @@ -75,7 +75,7 @@ public void handleNewCode() { ensureExistence(); // if read-only, give an error - if (isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath())) { + if (isReadOnly()) { // if the files are read-only, need to first do a "save as". Base.showMessage(tr("Sketch is Read-Only"), tr("Some files are marked \"read-only\", so you'll\n" + @@ -107,7 +107,7 @@ public void handleRenameCode() { } // if read-only, give an error - if (isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath())) { + if (isReadOnly()) { // if the files are read-only, need to first do a "save as". Base.showMessage(tr("Sketch is Read-Only"), tr("Some files are marked \"read-only\", so you'll\n" + @@ -225,7 +225,7 @@ public void handleDeleteCode() throws IOException { ensureExistence(); // if read-only, give an error - if (isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath())) { + if (isReadOnly()) { // if the files are read-only, need to first do a "save as". Base.showMessage(tr("Sketch is Read-Only"), tr("Some files are marked \"read-only\", so you'll\n" + @@ -253,13 +253,21 @@ public void handleDeleteCode() throws IOException { sketch.delete(); editor.base.handleClose(editor); } else { + + boolean neverSavedTab = !current.fileExists(); + // delete the file - if (!current.delete(sketch.getBuildPath().toPath())) { + if (!current.delete(sketch.getBuildPath().toPath()) && !neverSavedTab) { Base.showMessage(tr("Couldn't do it"), I18n.format(tr("Could not delete \"{0}\"."), current.getFileName())); return; } + if (neverSavedTab) { + // remove the file from the sketch list + sketch.removeFile(current); + } + editor.removeTab(current); // just set current tab to the main tab @@ -295,7 +303,7 @@ public boolean save() throws IOException { // make sure the user didn't hide the sketch folder ensureExistence(); - if (isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath())) { + if (isReadOnly()) { Base.showMessage(tr("Sketch is read-only"), tr("Some files are marked \"read-only\", so you'll\n" + "need to re-save this sketch to another location.")); @@ -359,7 +367,7 @@ public boolean save() throws IOException { protected boolean saveAs() throws IOException { // get new name for folder FileDialog fd = new FileDialog(editor, tr("Save sketch folder as..."), FileDialog.SAVE); - if (isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath()) || isUntitled()) { + if (isReadOnly() || isUntitled()) { // default to the sketchbook folder fd.setDirectory(BaseNoGui.getSketchbookFolder().getAbsolutePath()); } else { @@ -379,7 +387,14 @@ protected boolean saveAs() throws IOException { if (newName == null) return false; newName = SketchController.checkName(newName); - File newFolder = new File(newParentDir, newName); + File newFolder; + // User may want to overwrite a .ino + // check if the parent folder name ends with the sketch name + if (newName.endsWith(".ino") && newParentDir.endsWith(newName.substring(0, newName.lastIndexOf('.'))+ File.separator)) { + newFolder = new File(newParentDir); + } else { + newFolder = new File(newParentDir, newName); + } // check if the paths are identical if (newFolder.equals(sketch.getFolder())) { @@ -423,7 +438,7 @@ protected boolean saveAs() throws IOException { //editor.sketchbook.rebuildMenusAsync(); editor.base.rebuildSketchbookMenus(); editor.header.rebuild(); - + editor.updateTitle(); // Make sure that it's not an untitled sketch setUntitled(false); @@ -441,7 +456,7 @@ public void handleAddFile() { ensureExistence(); // if read-only, give an error - if (isReadOnly(BaseNoGui.librariesIndexer.getInstalledLibraries(), BaseNoGui.getExamplesPath())) { + if (isReadOnly()) { // if the files are read-only, need to first do a "save as". Base.showMessage(tr("Sketch is Read-Only"), tr("Some files are marked \"read-only\", so you'll\n" + @@ -631,6 +646,8 @@ public String build(boolean verbose, boolean save) throws RunnerException, Prefe progressListener.progress(20); } + EditorConsole.setCurrentEditorConsole(editor.console); + ensureExistence(); @@ -657,7 +674,7 @@ private File saveSketchInTempFolder() throws IOException { FileUtils.copy(sketch.getFolder(), tempFolder); for (SketchFile file : Stream.of(sketch.getFiles()).filter(SketchFile::isModified).collect(Collectors.toList())) { - Files.write(Paths.get(tempFolder.getAbsolutePath(), file.getFileName()), file.getProgram().getBytes()); + Files.write(Paths.get(tempFolder.getAbsolutePath(), file.getFileName()), file.getProgram().getBytes("UTF-8")); } return Paths.get(tempFolder.getAbsolutePath(), sketch.getPrimaryFile().getFileName()).toFile(); @@ -693,6 +710,8 @@ private boolean upload(String suggestedClassName, boolean usingProgrammer) throw UploaderUtils uploaderInstance = new UploaderUtils(); Uploader uploader = uploaderInstance.getUploaderByPreferences(false); + EditorConsole.setCurrentEditorConsole(editor.console); + boolean success = false; do { if (uploader.requiresAuthorization() && !PreferencesData.has(uploader.getAuthorizationKey())) { @@ -772,7 +791,9 @@ private void ensureExistence() { * examples directory, or when sketches are loaded from read-only * volumes or folders without appropriate permissions. */ - public boolean isReadOnly(LibraryList libraries, String examplesPath) { + public boolean isReadOnly() { + LibraryList libraries = BaseNoGui.librariesIndexer.getInstalledLibraries(); + String examplesPath = BaseNoGui.getExamplesPath(); String apath = sketch.getFolder().getAbsolutePath(); Optional libraryThatIncludesSketch = libraries.stream().filter(lib -> apath.startsWith(lib.getInstalledFolder().getAbsolutePath())).findFirst(); @@ -825,8 +846,9 @@ private static String checkName(String origName) { if (!newName.equals(origName)) { String msg = - tr("The sketch name had to be modified. Sketch names can only consist\n" + - "of ASCII characters and numbers and be less than 64 characters long."); + tr("The sketch name had to be modified.\n" + + "Sketch names must start with a letter or number, followed by letters,\n" + + "numbers, dashes, dots and underscores. Maximum length is 63 characters."); System.out.println(msg); } return newName; diff --git a/app/src/processing/app/Theme.java b/app/src/processing/app/Theme.java index bfa39349888..d38875b3597 100644 --- a/app/src/processing/app/Theme.java +++ b/app/src/processing/app/Theme.java @@ -21,6 +21,7 @@ package processing.app; +import static processing.app.I18n.format; import static processing.app.I18n.tr; import java.awt.Color; @@ -38,10 +39,23 @@ import java.awt.font.TextAttribute; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; +import java.util.Properties; +import java.util.TreeMap; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; import javax.swing.text.StyleContext; @@ -50,7 +64,8 @@ import org.apache.batik.transcoder.TranscoderInput; import org.apache.batik.transcoder.TranscoderOutput; import org.apache.batik.transcoder.image.PNGTranscoder; - +import org.apache.commons.compress.utils.IOUtils; +import org.apache.commons.lang3.StringUtils; import processing.app.helpers.OSUtils; import processing.app.helpers.PreferencesHelper; import processing.app.helpers.PreferencesMap; @@ -61,6 +76,238 @@ * and to make way for future ability to customize. */ public class Theme { + + static final String THEME_DIR = "theme/"; + static final String THEME_FILE_NAME = "theme.txt"; + + static final String NAMESPACE_APP = "app:"; + static final String NAMESPACE_USER = "user:"; + + /** + * A theme resource, this is returned instead of {@link File} so that we can + * support zip-packaged resources as well as files in the file system + */ + public static class Resource { + + // Priority levels used to determine whether one resource should override + // another + static public final int PRIORITY_DEFAULT = 0; + static public final int PRIORITY_USER_ZIP = 1; + static public final int PRIORITY_USER_FILE = 2; + + /** + * Priority of this resource. + */ + private final int priority; + + /** + * Resource name (original name of requested resource, relative path only). + */ + private final String name; + + /** + * File if this resource represents a file, can be null. + */ + private final File file; + + /** + * Zip theme if the resource is contained within a zipped theme + */ + private final ZippedTheme theme; + + /** + * Zip entry if this resource represents a zip entry, can be null. + */ + private final ZipEntry zipEntry; + + /** + * URL of this resource regardless of type, theoretically shouldn't ever be + * null though it might be if a particular resource path can't be + * successfully transformed into a URL (eg. {@link Theme#getUrl} traps a + * MalformedURLException). + */ + private final URL url; + + /** + * If this resource supercedes a resource with a lower priority, this field + * stores a reference to the superceded resource. This allows consumers to + * traverse the resource hierarchy if required. + */ + private Resource parent; + + /** + * ctor for file resources + */ + Resource(int priority, String name, URL url, File file) { + this(priority, name, url, file, null, null); + } + + /** + * ctor for zip resources + */ + Resource(int priority, String name, URL url, ZippedTheme theme, ZipEntry entry) { + this(priority, name, url, null, theme, entry); + } + + private Resource(int priority, String name, URL url, File file, ZippedTheme theme, ZipEntry zipEntry) { + this.priority = priority; + this.name = name; + this.file = file; + this.theme = theme; + this.zipEntry = zipEntry; + this.url = url; + } + + public Resource getParent() { + return this.parent; + } + + public String getName() { + return this.name; + } + + public URL getUrl() { + return this.url; + } + + public int getPriority() { + return this.priority; + } + + public boolean isUserDefined() { + return this.priority > PRIORITY_DEFAULT; + } + + public boolean exists() { + return this.zipEntry != null || this.file == null || this.file.exists(); + } + + public InputStream getInputStream() throws IOException { + if (this.file != null) { + return new FileInputStream(this.file); + } + + if (this.zipEntry != null) { + return this.theme.getZip().getInputStream(this.zipEntry); + } + + if (this.url != null) { + return this.url.openStream(); + } + + throw new FileNotFoundException(this.name); + } + + public String toString() { + return this.name; + } + + Resource withParent(Resource parent) { + this.parent = parent; + return this; + } + } + + /** + * Struct which keeps information about a discovered .zip theme file + */ + public static class ZippedTheme { + + /** + * Configuration key, this key consists of a "namespace" which determines + * the root folder the theme was found in without actually storing the path + * itself, followed by the file name. + */ + private final String key; + + /** + * File containing the theme + */ + private final File file; + + /** + * Zip file handle for retrieving entries + */ + private final ZipFile zip; + + /** + * Display name, defaulted to filename but can be read from metadata + */ + private final String name; + + /** + * Version number, plain text string read from metadata + */ + private final String version; + + private ZippedTheme(String namespace, File file, ZipFile zip, String name, String version) { + this.key = namespace + file.getName(); + this.file = file; + this.zip = zip; + this.name = name; + this.version = version; + } + + public String getKey() { + return this.key; + } + + public File getFile() { + return this.file; + } + + public ZipFile getZip() { + return this.zip; + } + + public String getName() { + return this.name; + } + + public String getVersion() { + return this.version; + } + + public String toString() { + String description = String.format("%s %s (%s)", this.getName(), this.getVersion(), this.file.getName()); + return StringUtils.abbreviate(description, 40); + } + + /** + * Attempts to parse the supplied zip file as a theme file. This is largely + * determined by the file being readable and containing a theme.txt entry. + * Returns null if the file is unreadable or doesn't contain theme.txt + */ + static ZippedTheme load(String namespace, File file) { + ZipFile zip = null; + try { + zip = new ZipFile(file); + ZipEntry themeTxtEntry = zip.getEntry(THEME_FILE_NAME); + if (themeTxtEntry != null) { + String name = file.getName().substring(0, file.getName().length() - 4); + String version = ""; + + ZipEntry themePropsEntry = zip.getEntry("theme.properties"); + if (themePropsEntry != null) { + Properties themeProperties = new Properties(); + themeProperties.load(zip.getInputStream(themePropsEntry)); + + name = themeProperties.getProperty("name", name); + version = themeProperties.getProperty("version", version); + } + + return new ZippedTheme(namespace, file, zip, name, version); + } + } catch (Exception ex) { + System.err.println(format(tr("Error loading theme {0}: {1}"), + file.getAbsolutePath(), ex.getMessage())); + IOUtils.closeQuietly(zip); + } + + return null; + } + + } /** * Copy of the defaults in case the user mangles a preference. @@ -70,10 +317,22 @@ public class Theme { * Table of attributes/values for the theme. */ static PreferencesMap table = new PreferencesMap(); - + + /** + * Available zipped themes + */ + static private final Map availableThemes = new TreeMap<>(); + + /** + * Zip file containing user-defined theme elements + */ + static private ZippedTheme zipTheme; + static protected void init() { + zipTheme = openZipTheme(); + try { - table.load(new File(BaseNoGui.getContentFile("lib"), "theme/theme.txt")); + loadFromResource(table, THEME_DIR + THEME_FILE_NAME); } catch (Exception te) { Base.showError(null, tr("Could not read color theme settings.\n" + "You'll need to reinstall Arduino."), @@ -86,6 +345,44 @@ static protected void init() { // clone the hash table defaults = new PreferencesMap(table); } + + static private ZippedTheme openZipTheme() { + refreshAvailableThemes(); + String selectedTheme = PreferencesData.get("theme.file", ""); + synchronized(availableThemes) { + return availableThemes.get(selectedTheme); + } + } + + static private void refreshAvailableThemes() { + Map discoveredThemes = new TreeMap<>(); + + refreshAvailableThemes(discoveredThemes, NAMESPACE_APP, new File(BaseNoGui.getContentFile("lib"), THEME_DIR)); + refreshAvailableThemes(discoveredThemes, NAMESPACE_USER, new File(BaseNoGui.getSketchbookFolder(), THEME_DIR)); + + synchronized (availableThemes) { + availableThemes.clear(); + availableThemes.putAll(discoveredThemes); + } + } + + static private void refreshAvailableThemes(Map discoveredThemes, String namespace, File folder) { + if (!folder.isDirectory()) { + return; + } + + for (File zipFile : folder.listFiles((dir, name) -> name.endsWith(".zip"))) { + ZippedTheme theme = ZippedTheme.load(namespace, zipFile); + if (theme != null) { + discoveredThemes.put(theme.getKey(), theme); + } + } + } + + public static Collection getAvailablethemes() { + refreshAvailableThemes(); + return Collections.unmodifiableCollection(availableThemes.values()); + } static public String get(String attribute) { return table.get(attribute); @@ -177,6 +474,9 @@ static public Font getFont(String attr) { String value = getDefault(attr); set(attr, value); font = PreferencesHelper.getFont(table, attr); + if (font == null) { + return null; + } } return font.deriveFont((float) scale(font.getSize())); } @@ -245,33 +545,34 @@ public static Map getStyledFont(String what, Font font) { */ static public Image getLibImage(String filename, Component who, int width, int height) { - File libFolder = BaseNoGui.getContentFile("lib"); Image image = null; // Use vector image when available - File vectorFile = new File(libFolder, filename + ".svg"); + Resource vectorFile = getThemeResource(filename + ".svg"); if (vectorFile.exists()) { try { - image = imageFromSVG(vectorFile.toURI().toURL(), width, height); + image = imageFromSVG(vectorFile.getUrl(), width, height); } catch (Exception e) { - System.err.println("Failed to load " + vectorFile.getAbsolutePath() - + ": " + e.getMessage()); + System.err.println("Failed to load " + vectorFile + ": " + e.getMessage()); } } - // Otherwise fall-back to PNG bitmaps - if (image == null) { - File bitmapFile = new File(libFolder, filename + ".png"); - File bitmap2xFile = new File(libFolder, filename + "@2x.png"); + Resource bitmapFile = getThemeResource(filename + ".png"); + + // Otherwise fall-back to PNG bitmaps, allowing user-defined bitmaps to + // override built-in svgs + if (image == null || bitmapFile.getPriority() > vectorFile.getPriority()) { + Resource bitmap2xFile = getThemeResource(filename + "@2x.png"); - File imageFile; - if ((getScale() > 125 && bitmap2xFile.exists()) || !bitmapFile.exists()) { + Resource imageFile; + if (((getScale() > 125 && bitmap2xFile.exists()) || !bitmapFile.exists()) + && (bitmapFile.isUserDefined() && bitmap2xFile.isUserDefined())) { imageFile = bitmap2xFile; } else { imageFile = bitmapFile; } Toolkit tk = Toolkit.getDefaultToolkit(); - image = tk.getImage(imageFile.getAbsolutePath()); + image = tk.getImage(imageFile.getUrl()); } MediaTracker tracker = new MediaTracker(who); @@ -298,7 +599,7 @@ static public Image getLibImage(String filename, Component who, int width, */ static public Image getThemeImage(String name, Component who, int width, int height) { - return getLibImage("theme/" + name, who, width, height); + return getLibImage(THEME_DIR + name, who, width, height); } private static Image imageFromSVG(URL url, int width, int height) @@ -324,5 +625,103 @@ static public Graphics2D setupGraphics2D(Graphics graphics) { } return g; } + + /** + * Loads the supplied {@link PreferencesMap} from the specified resource, + * recursively loading parent resources such that entries are loaded in order + * of priority (lowest first). + * + * @param map preference map to populate + * @param name name of resource to load + */ + static public PreferencesMap loadFromResource(PreferencesMap map, String name) throws IOException { + return loadFromResource(map, getThemeResource(name)); + } + static private PreferencesMap loadFromResource(PreferencesMap map, Resource resource) throws IOException { + if (resource != null) { + loadFromResource(map, resource.getParent()); + map.load(resource.getInputStream()); + } + return map; + } + + /** + * @param name + * @return + */ + static public Resource getThemeResource(String name) { + File defaultfile = getDefaultFile(name); + Resource resource = new Resource(Resource.PRIORITY_DEFAULT, name, getUrl(defaultfile), defaultfile); + + ZipEntry themeZipEntry = getThemeZipEntry(name); + if (themeZipEntry != null) { + resource = new Resource(Resource.PRIORITY_USER_ZIP, name, getUrl(themeZipEntry), zipTheme, themeZipEntry).withParent(resource); + } + + File themeFile = getThemeFile(name); + if (themeFile != null) { + resource = new Resource(Resource.PRIORITY_USER_FILE, name, getUrl(themeFile), themeFile).withParent(resource); + } + + return resource; + } + + static private File getThemeFile(String name) { + File sketchBookThemeFolder = new File(BaseNoGui.getSketchbookFolder(), THEME_DIR); + File themeFile = new File(sketchBookThemeFolder, name); + if (themeFile.exists()) { + return themeFile; + } + + if (name.startsWith(THEME_DIR)) { + themeFile = new File(sketchBookThemeFolder, name.substring(THEME_DIR.length())); + if (themeFile.exists()) { + return themeFile; + } + } + + return null; + } + + static private ZipEntry getThemeZipEntry(String name) { + if (zipTheme == null) { + return null; + } + + if (name.startsWith(THEME_DIR)) { + name = name.substring(THEME_DIR.length()); + } + + return zipTheme.getZip().getEntry(name); + } + + static private File getDefaultFile(String name) { + return new File(BaseNoGui.getContentFile("lib"), name); + } + + static URL getUrl(File file) { + try { + return file.toURI().toURL(); + } catch (MalformedURLException ex) { + return null; + } + } + + static URL getUrl(ZipEntry entry) { + try { + // Adjust file name for URL format on Windows + String zipFile = zipTheme.getZip().getName().replace('\\', '/'); + if (!zipFile.startsWith("/")) { + zipFile = "/" + zipFile; + } + + // Construct a URL which points to the internal resource + URI uri = new URI("jar", "file:" + zipFile + "!/" + entry.getName(), null); + return uri.toURL(); + + } catch (MalformedURLException | URISyntaxException ex) { + return null; + } + } } diff --git a/app/src/processing/app/UpdateCheck.java b/app/src/processing/app/UpdateCheck.java index 39c555069a1..cdca1b71783 100644 --- a/app/src/processing/app/UpdateCheck.java +++ b/app/src/processing/app/UpdateCheck.java @@ -51,7 +51,7 @@ */ public class UpdateCheck implements Runnable { Base base; - String downloadURL = tr("http://www.arduino.cc/latest.txt"); + String downloadURL = tr("https://www.arduino.cc/latest.txt"); static final long ONE_DAY = 24 * 60 * 60 * 1000; @@ -66,14 +66,14 @@ public UpdateCheck(Base base) { public void run() { //System.out.println("checking for updates..."); - // generate a random id in case none exists yet - Random r = new Random(); - long id = r.nextLong(); - + long id; String idString = PreferencesData.get("update.id"); if (idString != null) { id = Long.parseLong(idString); } else { + // generate a random id in case none exists yet + Random r = new Random(); + id = r.nextLong(); PreferencesData.set("update.id", String.valueOf(id)); } @@ -116,7 +116,7 @@ public void run() { options, options[0]); if (result == JOptionPane.YES_OPTION) { - Base.openURL(tr("http://www.arduino.cc/en/Main/Software")); + Base.openURL(tr("https://www.arduino.cc/en/Main/Software")); } } } diff --git a/app/src/processing/app/forms/PasswordAuthorizationDialog.java b/app/src/processing/app/forms/PasswordAuthorizationDialog.java index d050a8ce2ff..983c36e73ff 100644 --- a/app/src/processing/app/forms/PasswordAuthorizationDialog.java +++ b/app/src/processing/app/forms/PasswordAuthorizationDialog.java @@ -1,12 +1,12 @@ package processing.app.forms; import processing.app.Base; +import processing.app.Theme; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.WindowEvent; -import java.io.File; import static processing.app.I18n.tr; @@ -34,7 +34,7 @@ public PasswordAuthorizationDialog(Frame parent, String dialogText) { typePasswordLabel.setText(dialogText); - icon.setIcon(new ImageIcon(new File(Base.getContentFile("lib"), "theme/lock.png").getAbsolutePath())); + icon.setIcon(new ImageIcon(Theme.getThemeResource("theme/lock.png").getUrl())); passwordLabel.setText(tr("Password:")); diff --git a/app/src/processing/app/macosx/ThinkDifferent.java b/app/src/processing/app/macosx/ThinkDifferent.java index e946bdc0fd7..590196ace95 100644 --- a/app/src/processing/app/macosx/ThinkDifferent.java +++ b/app/src/processing/app/macosx/ThinkDifferent.java @@ -23,6 +23,8 @@ package processing.app.macosx; import com.apple.eawt.*; +import com.apple.eawt.AppEvent.AppReOpenedEvent; + import processing.app.Base; import processing.app.Editor; @@ -45,6 +47,20 @@ public class ThinkDifferent { static public void init() { Application application = Application.getApplication(); + + application.addAppEventListener(new AppReOpenedListener() { + @Override + public void appReOpened(AppReOpenedEvent aroe) { + try { + if (Base.INSTANCE.getEditors().size() == 0) { + Base.INSTANCE.handleNew(); + } + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); application.setAboutHandler(new AboutHandler() { @Override public void handleAbout(AppEvent.AboutEvent aboutEvent) { diff --git a/app/src/processing/app/syntax/PdeKeywords.java b/app/src/processing/app/syntax/PdeKeywords.java index 62d719f9746..838800b3d5d 100644 --- a/app/src/processing/app/syntax/PdeKeywords.java +++ b/app/src/processing/app/syntax/PdeKeywords.java @@ -24,12 +24,12 @@ package processing.app.syntax; -import cc.arduino.contributions.libraries.ContributedLibrary; import org.apache.commons.compress.utils.IOUtils; import org.fife.ui.rsyntaxtextarea.TokenMap; import org.fife.ui.rsyntaxtextarea.TokenTypes; import processing.app.Base; import processing.app.BaseNoGui; +import processing.app.packages.UserLibrary; import processing.app.debug.TargetPlatform; import java.io.BufferedReader; @@ -89,7 +89,7 @@ public void reload() { File platformKeywords = new File(tp.getFolder(), "keywords.txt"); if (platformKeywords.exists()) parseKeywordsTxt(platformKeywords); } - for (ContributedLibrary lib : BaseNoGui.librariesIndexer.getInstalledLibraries()) { + for (UserLibrary lib : BaseNoGui.librariesIndexer.getInstalledLibraries()) { File keywords = new File(lib.getInstalledFolder(), "keywords.txt"); if (keywords.exists()) { parseKeywordsTxt(keywords); diff --git a/app/src/processing/app/syntax/SketchTextArea.java b/app/src/processing/app/syntax/SketchTextArea.java index a2d78703ac1..ce74a3f1f8f 100644 --- a/app/src/processing/app/syntax/SketchTextArea.java +++ b/app/src/processing/app/syntax/SketchTextArea.java @@ -30,32 +30,42 @@ package processing.app.syntax; +import java.awt.Color; +import java.awt.Cursor; +import java.awt.Font; +import java.awt.Insets; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Map; +import java.util.logging.Logger; + import javax.swing.KeyStroke; +import javax.swing.event.EventListenerList; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.HyperlinkListener; +import javax.swing.text.BadLocationException; +import javax.swing.text.Segment; + import org.apache.commons.compress.utils.IOUtils; -import org.fife.ui.rsyntaxtextarea.*; +import org.fife.ui.rsyntaxtextarea.LinkGenerator; +import org.fife.ui.rsyntaxtextarea.LinkGeneratorResult; +import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; +import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; +import org.fife.ui.rsyntaxtextarea.Style; +import org.fife.ui.rsyntaxtextarea.Theme; import org.fife.ui.rsyntaxtextarea.Token; +import org.fife.ui.rsyntaxtextarea.TokenImpl; +import org.fife.ui.rsyntaxtextarea.TokenTypes; import org.fife.ui.rtextarea.RTextArea; import org.fife.ui.rtextarea.RTextAreaUI; + import processing.app.Base; -import processing.app.BaseNoGui; import processing.app.PreferencesData; - -import javax.swing.event.EventListenerList; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.HyperlinkListener; -import javax.swing.text.BadLocationException; -import javax.swing.text.Segment; -import java.awt.*; -import java.awt.event.MouseEvent; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Map; -import java.util.logging.Logger; import processing.app.helpers.OSUtils; /** @@ -91,9 +101,9 @@ private void installFeatures() throws IOException { } private void setTheme(String name) throws IOException { - FileInputStream defaultXmlInputStream = null; + InputStream defaultXmlInputStream = null; try { - defaultXmlInputStream = new FileInputStream(new File(BaseNoGui.getContentFile("lib"), "theme/syntax/" + name + ".xml")); + defaultXmlInputStream = processing.app.Theme.getThemeResource("theme/syntax/" + name + ".xml").getInputStream(); Theme theme = Theme.load(defaultXmlInputStream); theme.apply(this); } finally { diff --git a/app/src/processing/app/tools/MenuScroller.java b/app/src/processing/app/tools/MenuScroller.java index 3523ec7ceca..9e9aacbcafd 100644 --- a/app/src/processing/app/tools/MenuScroller.java +++ b/app/src/processing/app/tools/MenuScroller.java @@ -3,6 +3,8 @@ */ package processing.app.tools; +import processing.app.PreferencesData; + import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -567,6 +569,43 @@ public MenuScrollTimer(final int increment, int interval) { public void actionPerformed(ActionEvent e) { firstIndex += increment * accelerator; refreshMenu(); + if (PreferencesData.getBoolean("ide.accessible")) { + // If the user has chosen to use accessibility features, it means that they are using a screen reader + // to assist them in development of their project. This scroller is very unfriendly toward screen readers + // because it does not tell the user that it is scrolling through the board options, and it does not read + // the name of the boards as they scroll by. It is possible that the desired board will never become + // accessible. + // Because this scroller is quite nice for the sighted user, the idea here is to continue to use the + // scroller, but to fool it into scrolling one item at a time for accessible features users so that the + // screen readers work well, too. + // It's not the prettiest of code, but it works. + String itemClassName; + int keyEvent; + + // The blind user likely used an arrow key to get to the scroller. Determine which arrow key + // so we can send an event for the opposite arrow key. This fools the scroller into scrolling + // a single item. Get the class name of the new item while we're here + if (increment > 0) { + itemClassName = menuItems[firstIndex + scrollCount - 1].getClass().getName(); + keyEvent = KeyEvent.VK_UP; + } + else { + itemClassName = menuItems[firstIndex].getClass().getName(); + keyEvent = KeyEvent.VK_DOWN; + } + + // Use the class name to check if the next item is a separator. If it is, just let it scroll on like + // normal, otherwise move the cursor back with the opposite key event to the new item so that item is read + // by a screen reader and the user can use their arrow keys to navigate the list one item at a time + if (!itemClassName.equals(JSeparator.class.getName()) ) { + KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); + Component comp = manager.getFocusOwner(); + KeyEvent event = new KeyEvent(comp, + KeyEvent.KEY_PRESSED, System.currentTimeMillis(), 0, + keyEvent, KeyEvent.CHAR_UNDEFINED); + comp.dispatchEvent(event); + } + } } }); } diff --git a/app/test/cc/arduino/contributions/GzippedJsonDownloaderTest.java b/app/test/cc/arduino/contributions/GzippedJsonDownloaderTest.java index e1e231acd3a..0892c361516 100644 --- a/app/test/cc/arduino/contributions/GzippedJsonDownloaderTest.java +++ b/app/test/cc/arduino/contributions/GzippedJsonDownloaderTest.java @@ -4,10 +4,11 @@ import cc.arduino.utils.MultiStepProgress; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.module.mrbean.MrBeanModule; import org.junit.After; import org.junit.Before; import org.junit.Test; + +import processing.app.BaseNoGui; import processing.app.helpers.FileUtils; import java.io.File; @@ -38,11 +39,13 @@ public void tearDown() throws Exception { @Test public void testJsonDownload() throws Exception { - new GZippedJsonDownloader(downloader, new URL("http://downloads.arduino.cc/libraries/library_index.json"), new URL("http://downloads.arduino.cc/libraries/library_index.json.gz")).download(tempFile, new MultiStepProgress(1), "", new NoopProgressListener()); + BaseNoGui.initPlatform(); + new GZippedJsonDownloader(downloader, new URL("http://downloads.arduino.cc/libraries/library_index.json"), + new URL("http://downloads.arduino.cc/libraries/library_index.json.gz")) + .download(tempFile, new MultiStepProgress(1), "", new NoopProgressListener(), true); InputStream indexIn = new FileInputStream(tempFile); ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new MrBeanModule()); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); mapper.configure(DeserializationFeature.EAGER_DESERIALIZER_FETCH, true); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); diff --git a/app/test/cc/arduino/contributions/JsonDownloaderTest.java b/app/test/cc/arduino/contributions/JsonDownloaderTest.java index ebf3c0913ce..1315fe223a0 100644 --- a/app/test/cc/arduino/contributions/JsonDownloaderTest.java +++ b/app/test/cc/arduino/contributions/JsonDownloaderTest.java @@ -4,10 +4,11 @@ import cc.arduino.utils.MultiStepProgress; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.module.mrbean.MrBeanModule; import org.junit.After; import org.junit.Before; import org.junit.Test; + +import processing.app.BaseNoGui; import processing.app.helpers.FileUtils; import java.io.File; @@ -38,11 +39,12 @@ public void tearDown() throws Exception { @Test public void testJsonDownload() throws Exception { - new JsonDownloader(downloader, new URL("http://downloads.arduino.cc/libraries/library_index.json")).download(tempFile, new MultiStepProgress(1), "", new NoopProgressListener()); + BaseNoGui.initPlatform(); + new JsonDownloader(downloader, new URL("http://downloads.arduino.cc/libraries/library_index.json")) + .download(tempFile, new MultiStepProgress(1), "", new NoopProgressListener(), true); InputStream indexIn = new FileInputStream(tempFile); ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new MrBeanModule()); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); mapper.configure(DeserializationFeature.EAGER_DESERIALIZER_FETCH, true); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); diff --git a/app/test/cc/arduino/contributions/UpdatableLibraryTest.java b/app/test/cc/arduino/contributions/UpdatableLibraryTest.java new file mode 100644 index 00000000000..0dab3531cd1 --- /dev/null +++ b/app/test/cc/arduino/contributions/UpdatableLibraryTest.java @@ -0,0 +1,82 @@ +package cc.arduino.contributions; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +import cc.arduino.contributions.libraries.ContributedLibrary; +import cc.arduino.contributions.libraries.LibrariesIndexer; +import processing.app.BaseNoGui; +import processing.app.packages.UserLibraryFolder; +import processing.app.packages.UserLibraryFolder.Location; + +public class UpdatableLibraryTest { + + File testdata = new File( + UpdatableLibraryTest.class.getResource("/").getFile(), + "../testdata/libraries"); + File index_SD_only = new File(testdata, "index_SD_only"); + File SD111 = new File(testdata, "SD_1.1.1"); + File SD121 = new File(testdata, "SD_1.2.1"); + File index_Bridge_only = new File(testdata, "index_Bridge_only"); + File Bridge163 = new File(testdata, "Bridge_1.6.3"); + File Bridge170 = new File(testdata, "Bridge_1.7.0"); + + @Test + public void testUpdatableLibrary() throws Exception { + List folders = new ArrayList<>(); + folders.add(new UserLibraryFolder(SD111, Location.IDE_BUILTIN)); + + LibrariesIndexer indexer = new LibrariesIndexer(index_SD_only); + BaseNoGui.librariesIndexer = indexer; + indexer.parseIndex(); + indexer.setLibrariesFoldersAndRescan(folders); + + ContributedLibrary sdLib = indexer.getIndex().getInstalled("SD").get(); + assertTrue("SD lib is installed", sdLib.isLibraryInstalled()); + assertEquals("SD installed version", "1.1.1", sdLib.getParsedVersion()); + + assertTrue(ContributionsSelfCheck.checkForUpdatableLibraries()); + + folders.add(new UserLibraryFolder(SD121, Location.SKETCHBOOK)); + indexer.setLibrariesFoldersAndRescan(folders); + + sdLib = indexer.getIndex().getInstalled("SD").get(); + assertTrue("SD lib is installed", sdLib.isLibraryInstalled()); + assertEquals("SD installed version", "1.2.1", sdLib.getParsedVersion()); + + assertFalse(ContributionsSelfCheck.checkForUpdatableLibraries()); + } + + @Test + public void testUpdatableLibraryWithBundled() throws Exception { + List folders = new ArrayList<>(); + folders.add(new UserLibraryFolder(Bridge163, Location.IDE_BUILTIN)); + + LibrariesIndexer indexer = new LibrariesIndexer(index_Bridge_only); + BaseNoGui.librariesIndexer = indexer; + indexer.parseIndex(); + indexer.setLibrariesFoldersAndRescan(folders); + + ContributedLibrary l = indexer.getIndex().getInstalled("Bridge").get(); + assertTrue("Bridge lib is installed", l.isLibraryInstalled()); + assertEquals("Bridge installed version", "1.6.3", l.getParsedVersion()); + + assertTrue(ContributionsSelfCheck.checkForUpdatableLibraries()); + + folders.add(new UserLibraryFolder(Bridge170, Location.SKETCHBOOK)); + indexer.setLibrariesFoldersAndRescan(folders); + + l = indexer.getIndex().getInstalled("Bridge").get(); + assertTrue("Bridge lib is installed", l.isLibraryInstalled()); + assertEquals("Bridge installed version", "1.7.0", l.getParsedVersion()); + + assertFalse(ContributionsSelfCheck.checkForUpdatableLibraries()); + } +} diff --git a/app/test/cc/arduino/contributions/VersionHelperTest.java b/app/test/cc/arduino/contributions/VersionHelperTest.java index fecbcb8a8cb..de7463da16d 100644 --- a/app/test/cc/arduino/contributions/VersionHelperTest.java +++ b/app/test/cc/arduino/contributions/VersionHelperTest.java @@ -30,28 +30,38 @@ package cc.arduino.contributions; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.Optional; import org.junit.Test; +import com.github.zafarkhaja.semver.Version; + public class VersionHelperTest { + public void assertOptionalEquals(String expected, Optional value) { + assertTrue(value.isPresent()); + assertEquals(expected, value.get().toString()); + } + @Test public void testVersions() throws Exception { - assertEquals("1.0.0", VersionHelper.valueOf("1.0.0").toString()); - assertEquals("1.0.0", VersionHelper.valueOf("1.0").toString()); - assertEquals("1.0.0", VersionHelper.valueOf("1").toString()); - assertEquals("1.0.0-abc", VersionHelper.valueOf("1.0.0-abc").toString()); - assertEquals("1.0.0-abc", VersionHelper.valueOf("1.0-abc").toString()); - assertEquals("1.0.0-abc", VersionHelper.valueOf("1-abc").toString()); - assertEquals("1.0.0+abc", VersionHelper.valueOf("1.0.0+abc").toString()); - assertEquals("1.0.0+abc", VersionHelper.valueOf("1.0+abc").toString()); - assertEquals("1.0.0+abc", VersionHelper.valueOf("1+abc").toString()); - assertEquals("1.0.0-def+abc", VersionHelper.valueOf("1.0.0-def+abc").toString()); - assertEquals("1.0.0-def+abc", VersionHelper.valueOf("1.0-def+abc").toString()); - assertEquals("1.0.0-def+abc", VersionHelper.valueOf("1-def+abc").toString()); - assertEquals("1.0.0+def-abc", VersionHelper.valueOf("1.0.0+def-abc").toString()); - assertEquals("1.0.0+def-abc", VersionHelper.valueOf("1.0+def-abc").toString()); - assertEquals("1.0.0+def-abc", VersionHelper.valueOf("1+def-abc").toString()); + assertOptionalEquals("1.0.0", VersionHelper.valueOf("1.0.0")); + assertOptionalEquals("1.0.0", VersionHelper.valueOf("1.0")); + assertOptionalEquals("1.0.0", VersionHelper.valueOf("1")); + assertOptionalEquals("1.0.0-abc", VersionHelper.valueOf("1.0.0-abc")); + assertOptionalEquals("1.0.0-abc", VersionHelper.valueOf("1.0-abc")); + assertOptionalEquals("1.0.0-abc", VersionHelper.valueOf("1-abc")); + assertOptionalEquals("1.0.0+abc", VersionHelper.valueOf("1.0.0+abc")); + assertOptionalEquals("1.0.0+abc", VersionHelper.valueOf("1.0+abc")); + assertOptionalEquals("1.0.0+abc", VersionHelper.valueOf("1+abc")); + assertOptionalEquals("1.0.0-def+abc", VersionHelper.valueOf("1.0.0-def+abc")); + assertOptionalEquals("1.0.0-def+abc", VersionHelper.valueOf("1.0-def+abc")); + assertOptionalEquals("1.0.0-def+abc", VersionHelper.valueOf("1-def+abc")); + assertOptionalEquals("1.0.0+def-abc", VersionHelper.valueOf("1.0.0+def-abc")); + assertOptionalEquals("1.0.0+def-abc", VersionHelper.valueOf("1.0+def-abc")); + assertOptionalEquals("1.0.0+def-abc", VersionHelper.valueOf("1+def-abc")); } } diff --git a/app/test/cc/arduino/net/CustomProxySelectorTest.java b/app/test/cc/arduino/net/CustomProxySelectorTest.java index 005f5cce822..411f1aa2366 100644 --- a/app/test/cc/arduino/net/CustomProxySelectorTest.java +++ b/app/test/cc/arduino/net/CustomProxySelectorTest.java @@ -83,8 +83,8 @@ public void testProxyPACHTTP() throws Exception { public void testProxyPACHTTPWithLogin() throws Exception { preferences.put(Constants.PREF_PROXY_TYPE, Constants.PROXY_TYPE_AUTO); preferences.put(Constants.PREF_PROXY_PAC_URL, CustomProxySelectorTest.class.getResource("proxy_http.pac").toExternalForm()); - preferences.put(Constants.PREF_PROXY_AUTO_USERNAME, "auto"); - preferences.put(Constants.PREF_PROXY_AUTO_PASSWORD, "autopassword"); + preferences.put(Constants.PREF_PROXY_USERNAME, "auto"); + preferences.put(Constants.PREF_PROXY_PASSWORD, "autopassword"); CustomProxySelector proxySelector = new CustomProxySelector(preferences); Proxy proxy = proxySelector.getProxyFor(uri); @@ -154,8 +154,8 @@ public void testManualProxyWithLogin() throws Exception { preferences.put(Constants.PREF_PROXY_MANUAL_TYPE, Constants.PROXY_MANUAL_TYPE_HTTP); preferences.put(Constants.PREF_PROXY_MANUAL_HOSTNAME, "localhost"); preferences.put(Constants.PREF_PROXY_MANUAL_PORT, "8080"); - preferences.put(Constants.PREF_PROXY_MANUAL_USERNAME, "username"); - preferences.put(Constants.PREF_PROXY_MANUAL_PASSWORD, "pwd"); + preferences.put(Constants.PREF_PROXY_USERNAME, "username"); + preferences.put(Constants.PREF_PROXY_PASSWORD, "pwd"); CustomProxySelector proxySelector = new CustomProxySelector(preferences); Proxy proxy = proxySelector.getProxyFor(uri); diff --git a/app/test/cc/arduino/packages/uploaders/MergeSketchWithUploaderTest.java b/app/test/cc/arduino/packages/uploaders/MergeSketchWithUploaderTest.java index 384aa169deb..2f048b2a48b 100644 --- a/app/test/cc/arduino/packages/uploaders/MergeSketchWithUploaderTest.java +++ b/app/test/cc/arduino/packages/uploaders/MergeSketchWithUploaderTest.java @@ -35,18 +35,29 @@ import processing.app.helpers.FileUtils; import java.io.File; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.List; import static org.junit.Assert.assertEquals; public class MergeSketchWithUploaderTest { private File sketch; + private File bootloader; @Before public void setup() throws Exception { - File originalSketch = new File(MergeSketchWithUploaderTest.class.getResource("/sketch.hex").getFile()); + File originalSketch = getResourceFile("/sketch.hex"); sketch = new File(System.getProperty("java.io.tmpdir"), "sketch.hex"); FileUtils.copyFile(originalSketch, sketch); + removeCariageReturns(sketch); + + File originalBootloader = getResourceFile("/optiboot_atmega328.hex"); + bootloader = new File(System.getProperty("java.io.tmpdir"), "optiboot_atmega328.hex"); + FileUtils.copyFile(originalBootloader, bootloader); + removeCariageReturns(bootloader); } @After @@ -57,11 +68,24 @@ public void removeTmpFile() { @Test public void shouldMergeWithOptiboot() throws Exception { assertEquals(11720, sketch.length()); + assertEquals(1432, bootloader.length()); - File bootloader = new File(MergeSketchWithUploaderTest.class.getResource("/optiboot_atmega328.hex").getFile()); + File bootloader = getResourceFile("/optiboot_atmega328.hex"); new MergeSketchWithBooloader().merge(sketch, bootloader); assertEquals(13140, sketch.length()); } + private static File getResourceFile(String resourcePath) throws Exception { + return new File(URLDecoder.decode( + MergeSketchWithUploaderTest.class.getResource(resourcePath).getFile(), "UTF-8")); + } + private static void removeCariageReturns(File file) throws Exception { + List lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8); + StringBuilder contentBuilder = new StringBuilder(); + for(String line : lines) { + contentBuilder.append(line).append('\n'); + } + Files.write(file.toPath(), contentBuilder.toString().getBytes(StandardCharsets.UTF_8)); + } } diff --git a/app/test/processing/app/AbstractGUITest.java b/app/test/processing/app/AbstractGUITest.java index d1db60d98aa..37f0ebefe58 100644 --- a/app/test/processing/app/AbstractGUITest.java +++ b/app/test/processing/app/AbstractGUITest.java @@ -41,30 +41,26 @@ import javax.swing.*; import java.util.Random; -public abstract class AbstractGUITest { +public abstract class AbstractGUITest extends AbstractWithPreferencesTest { protected ArduinoFrameFixture window; @Before public void startUpTheIDE() throws Exception { + // This relies on AbstractWithPreferencesTest to set up the + // non-gui-specific stuff. + System.setProperty("mrj.version", "whynot"); //makes sense only on osx. See https://github.com/alexruiz/fest-swing-1.x/issues/2#issuecomment-86532042 - Runtime.getRuntime().addShutdownHook(new Thread(DeleteFilesOnShutdown.INSTANCE)); FailOnThreadViolationRepaintManager.install(); - BaseNoGui.initPlatform(); - BaseNoGui.getPlatform().init(); - PreferencesData.init(null); JPopupMenu.setDefaultLightWeightPopupEnabled(false); - Theme.init(); BaseNoGui.getPlatform().setLookAndFeel(); - Base.untitledFolder = FileUtils.createTempFolder("untitled" + new Random().nextInt(Integer.MAX_VALUE), ".tmp"); - DeleteFilesOnShutdown.add(Base.untitledFolder); window = GuiActionRunner.execute(new GuiQuery() { @Override protected ArduinoFrameFixture executeInEDT() throws Throwable { - return new ArduinoFrameFixture(new Base(new String[0]).editors.get(0)); + return new ArduinoFrameFixture(createBase().editors.get(0)); } }); } diff --git a/app/test/processing/app/AbstractWithPreferencesTest.java b/app/test/processing/app/AbstractWithPreferencesTest.java index f0d2f3a2b07..1075aebda4f 100644 --- a/app/test/processing/app/AbstractWithPreferencesTest.java +++ b/app/test/processing/app/AbstractWithPreferencesTest.java @@ -29,26 +29,88 @@ package processing.app; -import cc.arduino.files.DeleteFilesOnShutdown; +import static org.junit.Assert.assertEquals; import org.junit.Before; +import org.junit.After; + import processing.app.helpers.FileUtils; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.util.Random; +import java.util.List; +import java.util.LinkedList; public abstract class AbstractWithPreferencesTest { + /** + * Files or directories that will be deleted after each test. + * Subclasses can add files here in @Test or @Before functions. + */ + protected List deleteAfter = new LinkedList(); + protected File preferencesFile; @Before public void init() throws Exception { - Runtime.getRuntime().addShutdownHook(new Thread(DeleteFilesOnShutdown.INSTANCE)); + File settingsDir = Files.createTempDirectory("arduino_test_settings").toFile(); + deleteAfter.add(settingsDir); + + preferencesFile = new File(settingsDir, "preferences.txt"); + File sketchbookDir = new File(settingsDir, "sketchbook"); + sketchbookDir.mkdir(); + BaseNoGui.initPlatform(); BaseNoGui.getPlatform().init(); - PreferencesData.init(null); + + PreferencesData.init(preferencesFile); + // Do not read anything from e.g. ~/.arduino15 + PreferencesData.set("settings.path", settingsDir.toString()); + // Do not read or write the default ~/Arduino sketchbook + PreferencesData.set("sketchbook.path", sketchbookDir.toString()); + // Do not perform any update checks + PreferencesData.set("update.check", sketchbookDir.toString()); + // Write the defaults, with these changes to file. This allows them + // to be reloaded when creating a Base instance (see getBaseArgs() + // below). + PreferencesData.save(); + Theme.init(); BaseNoGui.initPackages(); Base.untitledFolder = FileUtils.createTempFolder("untitled" + new Random().nextInt(Integer.MAX_VALUE), ".tmp"); - DeleteFilesOnShutdown.add(Base.untitledFolder); + deleteAfter.add(Base.untitledFolder); } + /** + * Returns arguments to be passed to the Base constructor or on the + * commandline to set up the created dummy environment. + */ + protected String[] getBaseArgs() { + return new String[] { + // Preferences are loaded (using --preferences-file) before + // processing any other commandline options (e.g. --pref), so only + // use --preferences-file here. Also, this does not affect the + // "action" mode, for tests that require the GUI to be loaded. + "--preferences-file", preferencesFile.toString(), + }; + } + + /** + * Creates a new instance of Base. Always use this rather than calling + * it directly, to ensure the right settings are used. + */ + protected Base createBase() throws Exception { + Base base = new Base(getBaseArgs()); + // Doublecheck that the right preferencesFile was loaded + assertEquals(preferencesFile, PreferencesData.preferencesFile); + return base; + } + + @After + public void cleanup() throws IOException { + for (File f : deleteAfter) + FileUtils.recursiveDelete(f); + deleteAfter = new LinkedList(); + } } diff --git a/app/test/processing/app/CommandLineTest.java b/app/test/processing/app/CommandLineTest.java index a2532ff8116..1db6afe12f1 100644 --- a/app/test/processing/app/CommandLineTest.java +++ b/app/test/processing/app/CommandLineTest.java @@ -32,21 +32,32 @@ import static org.junit.Assert.*; import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; import org.apache.commons.compress.utils.IOUtils; -import org.junit.Before; +import org.fest.assertions.Assertions; +import org.junit.BeforeClass; import org.junit.Test; import processing.app.helpers.OSUtils; import processing.app.helpers.PreferencesMap; -public class CommandLineTest { +/** + * This extends AbstractWithPreferencesTest which initializes part of + * the internal Arduino structures. Most of that is not required, but it + * also conveniently sets up a settings directory and preferences file, + * which we can use here (through getBaseArgs()). + */ +public class CommandLineTest extends AbstractWithPreferencesTest { - File buildPath; - File arduinoPath; + private static File buildPath; + private static File arduinoPath; - @Before - public void findBuildPaths() throws Exception { + @BeforeClass + public static void findBuildPaths() throws Exception { buildPath = new File(System.getProperty("user.dir")); while (!new File(buildPath, "build").isDirectory()) { buildPath = buildPath.getParentFile(); @@ -71,60 +82,84 @@ public void findBuildPaths() throws Exception { System.out.println("found arduino: " + arduinoPath); } + public Process runArduino(boolean output, boolean success, File wd, String[] extraArgs) throws IOException, InterruptedException { + Runtime rt = Runtime.getRuntime(); + + List args = new ArrayList(); + args.add(arduinoPath.getAbsolutePath()); + args.addAll(Arrays.asList(getBaseArgs())); + args.addAll(Arrays.asList(extraArgs)); + + System.out.println("Running: " + String.join(" ", args)); + + Process pr = rt.exec(args.toArray(new String[0]), null, wd); + if (output) { + IOUtils.copy(pr.getInputStream(), System.out); + IOUtils.copy(pr.getErrorStream(), System.out); + } + pr.waitFor(); + if (success) + assertEquals(0, pr.exitValue()); + return pr; + } + @Test public void testCommandLineBuildWithRelativePath() throws Exception { - Runtime rt = Runtime.getRuntime(); File wd = new File(buildPath, "build/shared/examples/01.Basics/Blink/"); - Process pr = rt - .exec(arduinoPath + " --board arduino:avr:uno --verify Blink.ino", null, - wd); - IOUtils.copy(pr.getInputStream(), System.out); - pr.waitFor(); - assertEquals(0, pr.exitValue()); + runArduino(true, true, wd, new String[] { + "--board", "arduino:avr:uno", + "--verify", "Blink.ino", + }); } @Test public void testCommandLinePreferencesSave() throws Exception { - Runtime rt = Runtime.getRuntime(); File prefFile = File.createTempFile("test_pref", ".txt"); prefFile.deleteOnExit(); - Process pr = rt.exec(new String[] { - arduinoPath.getAbsolutePath(), + runArduino(true, true, null, new String[] { "--save-prefs", "--preferences-file", prefFile.getAbsolutePath(), - "--get-pref", // avoids starting the GUI + "--version", // avoids starting the GUI }); - IOUtils.copy(pr.getInputStream(), System.out); - IOUtils.copy(pr.getErrorStream(), System.out); - pr.waitFor(); - assertEquals(0, pr.exitValue()); - pr = rt.exec(new String[] { - arduinoPath.getAbsolutePath(), + runArduino(true, true, null, new String[] { "--pref", "test_pref=xxx", "--preferences-file", prefFile.getAbsolutePath(), }); - IOUtils.copy(pr.getInputStream(), System.out); - IOUtils.copy(pr.getErrorStream(), System.out); - pr.waitFor(); - assertEquals(0, pr.exitValue()); PreferencesMap prefs = new PreferencesMap(prefFile); assertNull("preference should not be saved", prefs.get("test_pref")); - pr = rt.exec(new String[] { - arduinoPath.getAbsolutePath(), + runArduino(true, true, null, new String[] { "--pref", "test_pref=xxx", "--preferences-file", prefFile.getAbsolutePath(), "--save-prefs", }); - IOUtils.copy(pr.getInputStream(), System.out); - IOUtils.copy(pr.getErrorStream(), System.out); - pr.waitFor(); - assertEquals(0, pr.exitValue()); prefs = new PreferencesMap(prefFile); assertEquals("preference should be saved", "xxx", prefs.get("test_pref")); -} + } + + @Test + public void testCommandLineVersion() throws Exception { + Process pr = runArduino(false, true, null, new String[] { + "--version", + }); + + Assertions.assertThat(new String(IOUtils.toByteArray(pr.getInputStream()))) + .matches("Arduino: \\d+\\.\\d+\\.\\d+.*\r?\n"); + } + + @Test + public void testCommandLineMultipleAction() throws Exception { + Process pr = runArduino(true, false, null, new String[] { + "--version", + "--verify", + }); + + Assertions.assertThat(pr.exitValue()) + .as("Multiple Action will be rejected") + .isEqualTo(3); + } } diff --git a/app/test/processing/app/DefaultTargetTest.java b/app/test/processing/app/DefaultTargetTest.java index 37819c84cff..24767bee30d 100644 --- a/app/test/processing/app/DefaultTargetTest.java +++ b/app/test/processing/app/DefaultTargetTest.java @@ -57,7 +57,7 @@ public void testDefaultTarget() throws Exception { PreferencesData.set("board", "unreal_board"); // should not raise an exception - new Base(new String[0]); + createBase(); // skip test if no target platforms are available Assume.assumeNotNull(BaseNoGui.getTargetPlatform()); diff --git a/app/test/processing/app/EditorConsoleTest.java b/app/test/processing/app/EditorConsoleTest.java new file mode 100644 index 00000000000..308523ce6ef --- /dev/null +++ b/app/test/processing/app/EditorConsoleTest.java @@ -0,0 +1,155 @@ +/* + * This file is part of Arduino. + * + * Copyright 2020 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package processing.app; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; + +public class EditorConsoleTest extends AbstractWithPreferencesTest { + private EditorConsole console; + + @Before + public void createConsole() { + console = new EditorConsole(null); + } + + public String escapeString(String input) { + // This escapes backslashes, newlines and carriage returns, to get + // more readable assertion failures. + return input.replace("\\", "\\\\").replace("\n", "\\n").replace("\r", "\\r"); + } + + public void assertOutput(String output) { + assertEquals(escapeString(output), escapeString(console.getText())); + } + + @Test + public void testHelloWorld() throws Exception { + console.insertString("Hello, world!", null); + + assertOutput("Hello, world!"); + } + + @Test + public void testCrNlHandling() throws Exception { + // Do some basic tests with \r\n + console.insertString("abc\r\ndef", null); + assertOutput("abc\r\ndef"); + + console.insertString("xyz", null); + assertOutput("abc\r\ndefxyz"); + + console.insertString("000\r\n123", null); + assertOutput("abc\r\ndefxyz000\r\n123"); + + console.insertString("\r\n", null); + assertOutput("abc\r\ndefxyz000\r\n123\r\n"); + } + + @Test + public void testNlHandling() throws Exception { + // Basic tests, but with just \n + console.insertString("abc\ndef", null); + assertOutput("abc\ndef"); + + console.insertString("xyz", null); + assertOutput("abc\ndefxyz"); + + console.insertString("000\n123", null); + assertOutput("abc\ndefxyz000\n123"); + + console.insertString("\n", null); + assertOutput("abc\ndefxyz000\n123\n"); + } + + @Test + public void testCrHandling() throws Exception { + // Then test that single \r clears the current line + console.clear(); + console.insertString("abc\rdef", null); + assertOutput("def"); + + // A single \r at the end is not added to the document + console.insertString("\r", null); + assertOutput("def"); + + // Nor are multiple \r at the end + console.insertString("\r\r\r", null); + assertOutput("def"); + + // But it does clear the line on the next write + console.insertString("123", null); + assertOutput("123"); + + // Same when combined with some data + console.insertString("\r456\r\r", null); + assertOutput("456"); + + console.insertString("000", null); + assertOutput("000"); + + // Then add a newline so preceding data is kept + console.insertString("\r\nxxx\r", null); + assertOutput("000\r\nxxx"); + + // But data after the newline is removed + console.insertString("yyy", null); + assertOutput("000\r\nyyy"); + + // When a \r\n is split across inserts, it becomes a lone \n + console.insertString("\r", null); + assertOutput("000\r\nyyy"); + console.insertString("\n", null); + assertOutput("000\r\nyyy\n"); + } + + @Test + public void testCrPartialOverwrite() throws Exception { + console.insertString("abcdef\r", null); + assertOutput("abcdef"); + + console.insertString("123", null); + assertOutput("123def"); + + console.insertString("4", null); + assertOutput("1234ef"); + + console.insertString("\r\n56", null); + assertOutput("1234ef\r\n56"); + } + + @Test + public void testTogether() throws Exception { + console.insertString("abc\n123456\rdef\rx\r\nyyy\nzzz\r999", null); + assertOutput("abc\nxef456\r\nyyy\n999"); + } +} diff --git a/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java b/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java index 83897b1963c..59dff4c3595 100644 --- a/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java +++ b/app/test/processing/app/HittingEscapeOnCloseConfirmationDialogTest.java @@ -30,6 +30,7 @@ package processing.app; import org.fest.swing.core.KeyPressInfo; +import org.fest.swing.core.matcher.DialogMatcher; import org.fest.swing.finder.WindowFinder; import org.fest.swing.fixture.DialogFixture; import org.junit.Test; @@ -39,6 +40,7 @@ import java.awt.event.KeyEvent; import static org.junit.Assert.assertEquals; +import static processing.app.I18n.tr; public class HittingEscapeOnCloseConfirmationDialogTest extends AbstractGUITest { @@ -49,7 +51,8 @@ public void shouldJustCloseTheDialog() throws Exception { window.close(); - DialogFixture dialog = WindowFinder.findDialog(JDialog.class).using(window.robot); + DialogMatcher matcher = DialogMatcher.withTitle(tr("Close")).andShowing(); + DialogFixture dialog = WindowFinder.findDialog(matcher).using(window.robot); dialog.pressAndReleaseKey(KeyPressInfo.keyCode(KeyEvent.VK_ESCAPE)); EditorConsole console = (EditorConsole) window.scrollPane("console").component(); diff --git a/app/test/processing/app/SerialTest.java b/app/test/processing/app/SerialTest.java new file mode 100644 index 00000000000..63280811e24 --- /dev/null +++ b/app/test/processing/app/SerialTest.java @@ -0,0 +1,58 @@ +/* + * This file is part of Arduino. + * + * Copyright 2020 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package processing.app; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class SerialTest { + class NullSerial extends Serial { + public NullSerial() throws SerialException { + super("none", 0, 'n', 0, 0, false, false); + } + + @Override + protected void message(char[] chars, int length) { + output += new String(chars, 0, length); + } + + String output = ""; + } + + @Test + public void testSerialUTF8Decoder() throws Exception { + NullSerial s = new NullSerial(); + // https://github.com/arduino/Arduino/issues/9808 + String testdata = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789°0123456789"; + s.processSerialEvent(testdata.getBytes()); + assertEquals(s.output, testdata); + } +} diff --git a/app/test/processing/app/UpdateTextAreaActionTest.java b/app/test/processing/app/UpdateTextAreaActionTest.java new file mode 100644 index 00000000000..b32ea1850be --- /dev/null +++ b/app/test/processing/app/UpdateTextAreaActionTest.java @@ -0,0 +1,91 @@ +package processing.app; + +import static org.fest.assertions.Assertions.assertThat; + +import org.junit.Before; +import org.junit.Test; + +import cc.arduino.packages.BoardPort; +import processing.app.helpers.PreferencesMap; + +public class UpdateTextAreaActionTest { + + private static final String TIMESTAMP_REGEX = "\\d\\d:\\d\\d:\\d\\d.\\d\\d\\d"; + + class DummyTextMonitor extends AbstractTextMonitor { + public DummyTextMonitor(BoardPort boardPort) { + super(boardPort); + } + } + + @Before + public void setup() { + PreferencesData.defaults = new PreferencesMap(); + PreferencesData.set("editor.font", "Monospaced,plain,12"); + PreferencesData.set("gui.scale", "100"); + Theme.defaults = new PreferencesMap(); + Theme.table.put("console.font", "Monospaced,plain,12"); + } + + @Test + public void noTimestampAdded() { + DummyTextMonitor textMon = new DummyTextMonitor(new BoardPort()); + textMon.addTimeStampBox.setSelected(false); + + textMon.updateTextArea("line1\nline2\r\nline3"); + assertThat(textMon.textArea.getText()).matches("line1\nline2\r\nline3"); + } + + @Test + public void all3LinesHaveTimestampAdded() { + DummyTextMonitor textMon = new DummyTextMonitor(new BoardPort()); + textMon.addTimeStampBox.setSelected(true); + + textMon.updateTextArea("line1\nline2\r\nline3"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> line1\\n" + // + TIMESTAMP_REGEX + " -> line2\\r\\n" + // + TIMESTAMP_REGEX + " -> line3"); + } + + @Test + public void emptyLinesHaveTimestampToo() { + DummyTextMonitor textMon = new DummyTextMonitor(new BoardPort()); + textMon.addTimeStampBox.setSelected(true); + + textMon.updateTextArea("line_1\n\nline_2"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> line_1\\n" + // + TIMESTAMP_REGEX + " -> \\n" + // + TIMESTAMP_REGEX + " -> line_2"); + } + + @Test + public void newLinesAreRememberedWhenNewBufferIsUsed() { + DummyTextMonitor textMon = new DummyTextMonitor(new BoardPort()); + textMon.addTimeStampBox.setSelected(true); + + textMon.updateTextArea("no newline"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> no newline"); + + textMon.updateTextArea(" more text"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> no newline more text"); + + textMon.updateTextArea("\n"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> no newline more text\n"); + + textMon.updateTextArea("\n"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> no newline more text\n" + // + TIMESTAMP_REGEX + " -> \n"); + + textMon.updateTextArea("third line"); + assertThat(textMon.textArea.getText()) + .matches(TIMESTAMP_REGEX + " -> no newline more text\n" + // + TIMESTAMP_REGEX + " -> \n" + // + TIMESTAMP_REGEX + " -> third line"); + } +} \ No newline at end of file diff --git a/app/test/processing/app/debug/TargetPlatformStub.java b/app/test/processing/app/debug/TargetPlatformStub.java index a8048c514a4..59b655f96f5 100644 --- a/app/test/processing/app/debug/TargetPlatformStub.java +++ b/app/test/processing/app/debug/TargetPlatformStub.java @@ -99,4 +99,10 @@ public TargetBoard getBoard(String boardId) { public TargetPackage getContainerPackage() { return targetPackage; } + + @Override + public boolean isInSketchbook() { + // TODO Auto-generated method stub + return false; + } } diff --git a/app/test/processing/app/helpers/StringUtilsTest.java b/app/test/processing/app/helpers/StringUtilsTest.java deleted file mode 100644 index 1ddbf51b35e..00000000000 --- a/app/test/processing/app/helpers/StringUtilsTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is part of Arduino. - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - */ - -package processing.app.helpers; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class StringUtilsTest { - - @Test - public void shouldJoinAnArray() { - assertEquals("1 - 2 - 3", StringUtils.join(new String[]{"1", "2", "3"}, " - ")); - } -} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/README.adoc b/app/testdata/libraries/Bridge_1.6.3/Bridge/README.adoc new file mode 100644 index 00000000000..c660f86eec2 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/README.adoc @@ -0,0 +1,24 @@ += Bridge Library for Arduino = + +The Bridge library simplifies communication between the ATmega32U4 and the AR9331. + +For more information about this library please visit us at +http://www.arduino.cc/en/Reference/YunBridgeLibrary + +== License == + +Copyright (c) 2014 Arduino LLC. All right reserved. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library 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 +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Bridge/Bridge.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Bridge/Bridge.ino new file mode 100644 index 00000000000..35c3aac5a4a --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Bridge/Bridge.ino @@ -0,0 +1,183 @@ +/* + Arduino Yún Bridge example + + This example for the YunShield/Yún shows how + to use the Bridge library to access the digital and + analog pins on the board through REST calls. + It demonstrates how you can create your own API when + using REST style calls through the browser. + + Possible commands created in this shetch: + + "/arduino/digital/13" -> digitalRead(13) + "/arduino/digital/13/1" -> digitalWrite(13, HIGH) + "/arduino/analog/2/123" -> analogWrite(2, 123) + "/arduino/analog/2" -> analogRead(2) + "/arduino/mode/13/input" -> pinMode(13, INPUT) + "/arduino/mode/13/output" -> pinMode(13, OUTPUT) + + This example code is part of the public domain + + http://www.arduino.cc/en/Tutorial/Bridge + +*/ + +#include +#include +#include + +// Listen to the default port 5555, the Yún webserver +// will forward there all the HTTP requests you send +BridgeServer server; + +void setup() { + // Bridge startup + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + // Listen for incoming connection only from localhost + // (no one from the external network could connect) + server.listenOnLocalhost(); + server.begin(); +} + +void loop() { + // Get clients coming from server + BridgeClient client = server.accept(); + + // There is a new client? + if (client) { + // Process request + process(client); + + // Close connection and free resources. + client.stop(); + } + + delay(50); // Poll every 50ms +} + +void process(BridgeClient client) { + // read the command + String command = client.readStringUntil('/'); + + // is "digital" command? + if (command == "digital") { + digitalCommand(client); + } + + // is "analog" command? + if (command == "analog") { + analogCommand(client); + } + + // is "mode" command? + if (command == "mode") { + modeCommand(client); + } +} + +void digitalCommand(BridgeClient client) { + int pin, value; + + // Read pin number + pin = client.parseInt(); + + // If the next character is a '/' it means we have an URL + // with a value like: "/digital/13/1" + if (client.read() == '/') { + value = client.parseInt(); + digitalWrite(pin, value); + } else { + value = digitalRead(pin); + } + + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" set to ")); + client.println(value); + + // Update datastore key with the current pin value + String key = "D"; + key += pin; + Bridge.put(key, String(value)); +} + +void analogCommand(BridgeClient client) { + int pin, value; + + // Read pin number + pin = client.parseInt(); + + // If the next character is a '/' it means we have an URL + // with a value like: "/analog/5/120" + if (client.read() == '/') { + // Read value and execute command + value = client.parseInt(); + analogWrite(pin, value); + + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" set to analog ")); + client.println(value); + + // Update datastore key with the current pin value + String key = "D"; + key += pin; + Bridge.put(key, String(value)); + } else { + // Read analog pin + value = analogRead(pin); + + // Send feedback to client + client.print(F("Pin A")); + client.print(pin); + client.print(F(" reads analog ")); + client.println(value); + + // Update datastore key with the current pin value + String key = "A"; + key += pin; + Bridge.put(key, String(value)); + } +} + +void modeCommand(BridgeClient client) { + int pin; + + // Read pin number + pin = client.parseInt(); + + // If the next character is not a '/' we have a malformed URL + if (client.read() != '/') { + client.println(F("error")); + return; + } + + String mode = client.readStringUntil('\r'); + + if (mode == "input") { + pinMode(pin, INPUT); + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" configured as INPUT!")); + return; + } + + if (mode == "output") { + pinMode(pin, OUTPUT); + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" configured as OUTPUT!")); + return; + } + + client.print(F("error: invalid mode ")); + client.print(mode); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsoleAsciiTable/ConsoleAsciiTable.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsoleAsciiTable/ConsoleAsciiTable.ino new file mode 100644 index 00000000000..e8b07d7aa71 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsoleAsciiTable/ConsoleAsciiTable.ino @@ -0,0 +1,95 @@ +/* + Console ASCII table for YunShield/Yún + Prints out byte values in all possible formats: + * as raw binary values + * as ASCII-encoded decimal, hex, octal, and binary values + + For more on ASCII, see http://www.asciitable.com and http://en.wikipedia.org/wiki/ASCII + + The circuit: + - YunShield/Yún + + created 2006 + by Nicholas Zambetti + http://www.zambetti.com + modified 9 Apr 2012 + by Tom Igoe + modified 22 May 2013 + by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ConsoleAsciiTable + + */ + +#include + +void setup() { + //Initialize Console and wait for port to open: + Bridge.begin(); + Console.begin(); + + // Uncomment the following line to enable buffering: + // - better transmission speed and efficiency + // - needs to call Console.flush() to ensure that all + // transmitted data is sent + + //Console.buffer(64); + + while (!Console) { + ; // wait for Console port to connect. + } + + // prints title with ending line break + Console.println("ASCII Table ~ Character Map"); +} + +// first visible ASCIIcharacter '!' is number 33: +int thisByte = 33; +// you can also write ASCII characters in single quotes. +// for example. '!' is the same as 33, so you could also use this: +//int thisByte = '!'; + +void loop() { + // prints value unaltered, i.e. the raw binary version of the + // byte. The Console monitor interprets all bytes as + // ASCII, so 33, the first number, will show up as '!' + Console.write(thisByte); + + Console.print(", dec: "); + // prints value as string as an ASCII-encoded decimal (base 10). + // Decimal is the default format for Console.print() and Console.println(), + // so no modifier is needed: + Console.print(thisByte); + // But you can declare the modifier for decimal if you want to. + //this also works if you uncomment it: + + // Console.print(thisByte, DEC); + + Console.print(", hex: "); + // prints value as string in hexadecimal (base 16): + Console.print(thisByte, HEX); + + Console.print(", oct: "); + // prints value as string in octal (base 8); + Console.print(thisByte, OCT); + + Console.print(", bin: "); + // prints value as string in binary (base 2) + // also prints ending line break: + Console.println(thisByte, BIN); + + // if printed last visible character '~' or 126, stop: + if (thisByte == 126) { // you could also use if (thisByte == '~') { + // ensure the latest bit of data is sent + Console.flush(); + + // This loop loops forever and does nothing + while (true) { + continue; + } + } + // go on to the next character + thisByte++; +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsolePixel/ConsolePixel.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsolePixel/ConsolePixel.ino new file mode 100644 index 00000000000..6479b135b4e --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsolePixel/ConsolePixel.ino @@ -0,0 +1,63 @@ +/* + Console Pixel + + An example of using YunShield/Yún board to receive data from the + Console on the Yún. In this case, the board turns on an LED when + it receives the character 'H', and turns off the LED when it + receives the character 'L'. + + To see the Console, pick your Yún's name and IP address in the Port menu + then open the Port Monitor. You can also see it by opening a terminal window + and typing + ssh root@ yourYunsName.local 'telnet localhost 6571' + then pressing enter. When prompted for the password, enter it. + + + The circuit: + * LED connected from digital pin 13 to ground + + created 2006 + by David A. Mellis + modified 25 Jun 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ConsolePixel + + */ + +#include + +const int ledPin = 13; // the pin that the LED is attached to +char incomingByte; // a variable to read incoming Console data into + +void setup() { + Bridge.begin(); // Initialize Bridge + Console.begin(); // Initialize Console + + // Wait for the Console port to connect + while (!Console); + + Console.println("type H or L to turn pin 13 on or off"); + + // initialize the LED pin as an output: + pinMode(ledPin, OUTPUT); +} + +void loop() { + // see if there's incoming Console data: + if (Console.available() > 0) { + // read the oldest byte in the Console buffer: + incomingByte = Console.read(); + Console.println(incomingByte); + // if it's a capital H (ASCII 72), turn on the LED: + if (incomingByte == 'H') { + digitalWrite(ledPin, HIGH); + } + // if it's an L (ASCII 76) turn off the LED: + if (incomingByte == 'L') { + digitalWrite(ledPin, LOW); + } + } +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsoleRead/ConsoleRead.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsoleRead/ConsoleRead.ino new file mode 100644 index 00000000000..fc63fcc6dd3 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ConsoleRead/ConsoleRead.ino @@ -0,0 +1,58 @@ +/* +Console Read example for YunShield/Yún + + Read data coming from bridge using the Console.read() function + and store it in a string. + + To see the Console, pick your Yún's name and IP address in the Port menu + then open the Port Monitor. You can also see it by opening a terminal window + and typing: + ssh root@ yourYunsName.local 'telnet localhost 6571' + then pressing enter. When prompted for the password, enter it. + + created 13 Jun 2013 + by Angelo Scialabba + modified 16 June 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ConsoleRead + + */ + +#include + +String name; + +void setup() { + // Initialize Console and wait for port to open: + Bridge.begin(); + Console.begin(); + + // Wait for Console port to connect + while (!Console); + + Console.println("Hi, what's your name?"); +} + +void loop() { + if (Console.available() > 0) { + char c = Console.read(); // read the next char received + // look for the newline character, this is the last character in the string + if (c == '\n') { + //print text with the name received + Console.print("Hi "); + Console.print(name); + Console.println("! Nice to meet you!"); + Console.println(); + // Ask again for name and clear the old name + Console.println("Hi, what's your name?"); + name = ""; // clear the name string + } else { // if the buffer is empty Cosole.read() returns -1 + name += c; // append the read char from Console to the name string + } + } else { + delay(100); + } +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Datalogger/Datalogger.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Datalogger/Datalogger.ino new file mode 100644 index 00000000000..cc84828a080 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Datalogger/Datalogger.ino @@ -0,0 +1,102 @@ +/* + SD card datalogger + + This example shows how to log data from three analog sensors + to an SD card mounted on the YunShield/Yún using the Bridge library. + + The circuit: + * analog sensors on analog pins 0, 1 and 2 + * SD card attached to SD card slot of the YunShield/Yún + + Prepare your SD card creating an empty folder in the SD root + named "arduino". This will ensure that the Yún will create a link + to the SD to the "/mnt/sd" path. + + You can remove the SD card while the Linux and the + sketch are running but be careful not to remove it while + the system is writing to it. + + created 24 Nov 2010 + modified 9 Apr 2012 + by Tom Igoe + adapted to the Yún Bridge library 20 Jun 2013 + by Federico Vanzati + modified 21 Jun 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunDatalogger + + */ + +#include + +void setup() { + // Initialize the Bridge and the Serial + Bridge.begin(); + Serial.begin(9600); + FileSystem.begin(); + + while (!SerialUSB); // wait for Serial port to connect. + SerialUSB.println("Filesystem datalogger\n"); +} + + +void loop() { + // make a string that start with a timestamp for assembling the data to log: + String dataString; + dataString += getTimeStamp(); + dataString += " = "; + + // read three sensors and append to the string: + for (int analogPin = 0; analogPin < 3; analogPin++) { + int sensor = analogRead(analogPin); + dataString += String(sensor); + if (analogPin < 2) { + dataString += ","; // separate the values with a comma + } + } + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + // The FileSystem card is mounted at the following "/mnt/FileSystema1" + File dataFile = FileSystem.open("/mnt/sd/datalog.txt", FILE_APPEND); + + // if the file is available, write to it: + if (dataFile) { + dataFile.println(dataString); + dataFile.close(); + // print to the serial port too: + SerialUSB.println(dataString); + } + // if the file isn't open, pop up an error: + else { + SerialUSB.println("error opening datalog.txt"); + } + + delay(15000); + +} + +// This function return a string with the time stamp +String getTimeStamp() { + String result; + Process time; + // date is a command line utility to get the date and the time + // in different formats depending on the additional parameter + time.begin("date"); + time.addParameter("+%D-%T"); // parameters: D for the complete date mm/dd/yy + // T for the time hh:mm:ss + time.run(); // run the command + + // read the output of the command + while (time.available() > 0) { + char c = time.read(); + if (c != '\n') { + result += c; + } + } + + return result; +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/FileWriteScript/FileWriteScript.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/FileWriteScript/FileWriteScript.ino new file mode 100644 index 00000000000..e080bce36f4 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/FileWriteScript/FileWriteScript.ino @@ -0,0 +1,83 @@ +/* + Write to file using FileIO classes. + + This sketch demonstrate how to write file into the YunShield/Yún filesystem. + A shell script file is created in /tmp, and it is executed afterwards. + + created 7 June 2010 + by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/FileWriteScript + + */ + +#include + +void setup() { + // Setup Bridge (needed every time we communicate with the Arduino Yún) + Bridge.begin(); + // Initialize the Serial + SerialUSB.begin(9600); + + while (!SerialUSB); // wait for Serial port to connect. + SerialUSB.println("File Write Script example\n\n"); + + // Setup File IO + FileSystem.begin(); + + // Upload script used to gain network statistics + uploadScript(); +} + +void loop() { + // Run stats script every 5 secs. + runScript(); + delay(5000); +} + +// this function creates a file into the linux processor that contains a shell script +// to check the network traffic of the WiFi interface +void uploadScript() { + // Write our shell script in /tmp + // Using /tmp stores the script in RAM this way we can preserve + // the limited amount of FLASH erase/write cycles + File script = FileSystem.open("/tmp/wlan-stats.sh", FILE_WRITE); + // Shell script header + script.print("#!/bin/sh\n"); + // shell commands: + // ifconfig: is a command line utility for controlling the network interfaces. + // wlan0 is the interface we want to query + // grep: search inside the output of the ifconfig command the "RX bytes" keyword + // and extract the line that contains it + script.print("ifconfig wlan0 | grep 'RX bytes'\n"); + script.close(); // close the file + + // Make the script executable + Process chmod; + chmod.begin("chmod"); // chmod: change mode + chmod.addParameter("+x"); // x stays for executable + chmod.addParameter("/tmp/wlan-stats.sh"); // path to the file to make it executable + chmod.run(); +} + + +// this function run the script and read the output data +void runScript() { + // Run the script and show results on the Serial + Process myscript; + myscript.begin("/tmp/wlan-stats.sh"); + myscript.run(); + + String output = ""; + + // read the output of the script + while (myscript.available()) { + output += (char)myscript.read(); + } + // remove the blank spaces at the beginning and the ending of the string + output.trim(); + SerialUSB.println(output); + SerialUSB.flush(); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/HttpClient/HttpClient.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/HttpClient/HttpClient.ino new file mode 100644 index 00000000000..47a37c3f2eb --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/HttpClient/HttpClient.ino @@ -0,0 +1,51 @@ +/* + Yún HTTP Client + + This example for the YunShield/Yún shows how create a basic + HTTP client that connects to the internet and downloads + content. In this case, you'll connect to the Arduino + website and download a version of the logo as ASCII text. + + created by Tom igoe + May 2013 + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/HttpClient + + */ + +#include +#include + +void setup() { + // Bridge takes about two seconds to start up + // it can be helpful to use the on-board LED + // as an indicator for when it has initialized + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + SerialUSB.begin(9600); + + while (!SerialUSB); // wait for a serial connection +} + +void loop() { + // Initialize the client library + HttpClient client; + + // Make a HTTP request: + client.get("http://www.arduino.cc/asciilogo.txt"); + + // if there are incoming bytes available + // from the server, read them and print them: + while (client.available()) { + char c = client.read(); + SerialUSB.print(c); + } + SerialUSB.flush(); + + delay(5000); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/HttpClientConsole/HttpClientConsole.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/HttpClientConsole/HttpClientConsole.ino new file mode 100644 index 00000000000..3b07f601c8f --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/HttpClientConsole/HttpClientConsole.ino @@ -0,0 +1,53 @@ +/* + Yún HTTP Client Console version for Arduino Uno and Mega using Yún Shield + + This example for the YunShield/Yún shows how create a basic + HTTP client that connects to the internet and downloads + content. In this case, you'll connect to the Arduino + website and download a version of the logo as ASCII text. + + created by Tom igoe + May 2013 + modified by Marco Brianza to use Console + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/HttpClient + + */ + +#include +#include +#include + +void setup() { + // Bridge takes about two seconds to start up + // it can be helpful to use the on-board LED + // as an indicator for when it has initialized + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + Console.begin(); + + while (!Console); // wait for a serial connection +} + +void loop() { + // Initialize the client library + HttpClient client; + + // Make a HTTP request: + client.get("http://www.arduino.cc/asciilogo.txt"); + + // if there are incoming bytes available + // from the server, read them and print them: + while (client.available()) { + char c = client.read(); + Console.print(c); + } + Console.flush(); + + delay(5000); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/MailboxReadMessage/MailboxReadMessage.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/MailboxReadMessage/MailboxReadMessage.ino new file mode 100644 index 00000000000..11aaecd3d24 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/MailboxReadMessage/MailboxReadMessage.ino @@ -0,0 +1,58 @@ +/* + Read Messages from the Mailbox + + This example for the YunShield/Yún shows how to + read the messages queue, called Mailbox, using the + Bridge library. + The messages can be sent to the queue through REST calls. + Appen the message in the URL after the keyword "/mailbox". + Example + + "/mailbox/hello" + + created 3 Feb 2014 + by Federico Vanzati & Federico Fissore + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/MailboxReadMessage + + */ + +#include + +void setup() { + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + // Initialize Bridge and Mailbox + Bridge.begin(); + Mailbox.begin(); + digitalWrite(13, HIGH); + + // Initialize Serial + SerialUSB.begin(9600); + + // Wait until a Serial Monitor is connected. + while (!SerialUSB); + + SerialUSB.println("Mailbox Read Message\n"); + SerialUSB.println("The Mailbox is checked every 10 seconds. The incoming messages will be shown below.\n"); +} + +void loop() { + String message; + + // if there is a message in the Mailbox + if (Mailbox.messageAvailable()) { + // read all the messages present in the queue + while (Mailbox.messageAvailable()) { + Mailbox.readMessage(message); + SerialUSB.println(message); + } + + SerialUSB.println("Waiting 10 seconds before checking the Mailbox again"); + } + + // wait 10 seconds + delay(10000); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Process/Process.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Process/Process.ino new file mode 100644 index 00000000000..7f5752c7780 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/Process/Process.ino @@ -0,0 +1,71 @@ +/* + Running process using Process class. + + This sketch demonstrate how to run linux processes + using a YunShield/Yún + + created 5 Jun 2013 + by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/Process + + */ + +#include + +void setup() { + // Initialize Bridge + Bridge.begin(); + + // Initialize Serial + SerialUSB.begin(9600); + + // Wait until a Serial Monitor is connected. + while (!SerialUSB); + + // run various example processes + runCurl(); + runCpuInfo(); +} + +void loop() { + // Do nothing here. +} + +void runCurl() { + // Launch "curl" command and get Arduino ascii art logo from the network + // curl is command line program for transferring data using different internet protocols + Process p; // Create a process and call it "p" + p.begin("curl"); // Process that launch the "curl" command + p.addParameter("http://www.arduino.cc/asciilogo.txt"); // Add the URL parameter to "curl" + p.run(); // Run the process and wait for its termination + + // Print arduino logo over the Serial + // A process output can be read with the stream methods + while (p.available() > 0) { + char c = p.read(); + SerialUSB.print(c); + } + // Ensure the last bit of data is sent. + SerialUSB.flush(); +} + +void runCpuInfo() { + // Launch "cat /proc/cpuinfo" command (shows info on Atheros CPU) + // cat is a command line utility that shows the content of a file + Process p; // Create a process and call it "p" + p.begin("cat"); // Process that launch the "cat" command + p.addParameter("/proc/cpuinfo"); // Add the cpuifo file path as parameter to cut + p.run(); // Run the process and wait for its termination + + // Print command output on the SerialUSB. + // A process output can be read with the stream methods + while (p.available() > 0) { + char c = p.read(); + SerialUSB.print(c); + } + // Ensure the last bit of data is sent. + SerialUSB.flush(); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/RemoteDueBlink/RemoteDueBlink.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/RemoteDueBlink/RemoteDueBlink.ino new file mode 100644 index 00000000000..4b5d2713cf1 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/RemoteDueBlink/RemoteDueBlink.ino @@ -0,0 +1,33 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + Most Arduinos have an on-board LED you can control. On the Uno and + Leonardo, it is attached to digital pin 13. If you're unsure what + pin the on-board LED is connected to on your Arduino model, check + the documentation at http://www.arduino.cc + + This example code is in the public domain. + + modified 8 May 2014 + by Scott Fitzgerald + + modified by Marco Brianza to show the remote sketch update feature on Arduino Due using Yún Shield + */ + +#include + +// the setup function runs once when you press reset or power the board +void setup() { + checkForRemoteSketchUpdate(); + // initialize digital pin 13 as an output. + pinMode(13, OUTPUT); +} + +// the loop function runs over and over again forever +void loop() { + digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) + delay(100); // wait for a second + digitalWrite(13, LOW); // turn the LED off by making the voltage LOW + delay(100); // wait for a second +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ShellCommands/ShellCommands.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ShellCommands/ShellCommands.ino new file mode 100644 index 00000000000..acd82896e32 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/ShellCommands/ShellCommands.ino @@ -0,0 +1,52 @@ +/* + Running shell commands using Process class. + + This sketch demonstrate how to run linux shell commands + using a YunShield/Yún. It runs the wifiCheck script on the Linux side + of the Yún, then uses grep to get just the signal strength line. + Then it uses parseInt() to read the wifi signal strength as an integer, + and finally uses that number to fade an LED using analogWrite(). + + The circuit: + * YunShield/Yún with LED connected to pin 9 + + created 12 Jun 2013 + by Cristian Maglie + modified 25 June 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ShellCommands + + */ + +#include + +void setup() { + Bridge.begin(); // Initialize the Bridge + SerialUSB.begin(9600); // Initialize the Serial + + // Wait until a Serial Monitor is connected. + while (!SerialUSB); +} + +void loop() { + Process p; + // This command line runs the WifiStatus script, (/usr/bin/pretty-wifi-info.lua), then + // sends the result to the grep command to look for a line containing the word + // "Signal:" the result is passed to this sketch: + p.runShellCommand("/usr/bin/pretty-wifi-info.lua | grep Signal"); + + // do nothing until the process finishes, so you get the whole output: + while (p.running()); + + // Read command output. runShellCommand() should have passed "Signal: xx&": + while (p.available()) { + int result = p.parseInt(); // look for an integer + int signal = map(result, 0, 100, 0, 255); // map result from 0-100 range to 0-255 + analogWrite(9, signal); // set the brightness of LED on pin 9 + SerialUSB.println(result); // print the number as well + } + delay(5000); // wait 5 seconds before you do it again +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino new file mode 100644 index 00000000000..7bf25a8a0e2 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino @@ -0,0 +1,122 @@ +/* + Temperature web interface + + This example shows how to serve data from an analog input + via the YunShield/Yún built-in webserver using the Bridge library. + + The circuit: + * TMP36 temperature sensor on analog pin A1 + * SD card attached to SD card slot of the YunShield/Yún + + This sketch must be uploaded via wifi. REST API must be set to "open". + + Prepare your SD card with an empty folder in the SD root + named "arduino" and a subfolder of that named "www". + This will ensure that the Yún will create a link + to the SD to the "/mnt/sd" path. + + In this sketch folder is a basic webpage and a copy of zepto.js, a + minimized version of jQuery. When you upload your sketch, these files + will be placed in the /arduino/www/TemperatureWebPanel folder on your SD card. + + You can then go to http://arduino.local/sd/TemperatureWebPanel + to see the output of this sketch. + + You can remove the SD card while the Linux and the + sketch are running but be careful not to remove it while + the system is writing to it. + + created 6 July 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/TemperatureWebPanel + + */ + +#include +#include +#include + +// Listen on default port 5555, the webserver on the Yún +// will forward there all the HTTP requests for us. +BridgeServer server; +String startString; +long hits = 0; + +void setup() { + SerialUSB.begin(9600); + + // Bridge startup + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + // using A0 and A2 as vcc and gnd for the TMP36 sensor: + pinMode(A0, OUTPUT); + pinMode(A2, OUTPUT); + digitalWrite(A0, HIGH); + digitalWrite(A2, LOW); + + // Listen for incoming connection only from localhost + // (no one from the external network could connect) + server.listenOnLocalhost(); + server.begin(); + + // get the time that this sketch started: + Process startTime; + startTime.runShellCommand("date"); + while (startTime.available()) { + char c = startTime.read(); + startString += c; + } +} + +void loop() { + // Get clients coming from server + BridgeClient client = server.accept(); + + // There is a new client? + if (client) { + // read the command + String command = client.readString(); + command.trim(); //kill whitespace + SerialUSB.println(command); + // is "temperature" command? + if (command == "temperature") { + + // get the time from the server: + Process time; + time.runShellCommand("date"); + String timeString = ""; + while (time.available()) { + char c = time.read(); + timeString += c; + } + SerialUSB.println(timeString); + int sensorValue = analogRead(A1); + // convert the reading to millivolts: + float voltage = sensorValue * (5000.0f / 1024.0f); + // convert the millivolts to temperature celsius: + float temperature = (voltage - 500.0f) / 10.0f; + // print the temperature: + client.print("Current time on the Yún: "); + client.println(timeString); + client.print("
Current temperature: "); + client.print(temperature); + client.print(" °C"); + client.print("
This sketch has been running since "); + client.print(startString); + client.print("
Hits so far: "); + client.print(hits); + } + + // Close connection and free resources. + client.stop(); + hits++; + } + + delay(50); // Poll every 50ms +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/www/index.html b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/www/index.html new file mode 100644 index 00000000000..c6b674771a5 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/www/index.html @@ -0,0 +1,16 @@ + + + + + + + + + 0 + + + diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/www/zepto.min.js b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/www/zepto.min.js new file mode 100644 index 00000000000..dbe4e3c3f89 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TemperatureWebPanel/www/zepto.min.js @@ -0,0 +1,2 @@ +/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ +(function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Array.prototype.reduce===a&&(Array.prototype.reduce=function(b){if(this===void 0||this===null)throw new TypeError;var c=Object(this),d=c.length>>>0,e=0,f;if(typeof b!="function")throw new TypeError;if(d==0&&arguments.length==1)throw new TypeError;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);while(e0?c.fn.concat.apply([],a):a}function O(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function P(a){return a in j?j[a]:j[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function Q(a,b){return typeof b=="number"&&!l[O(a)]?b+"px":b}function R(a){var b,c;return i[a]||(b=h.createElement(a),h.body.appendChild(b),c=k(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),i[a]=c),i[a]}function S(a){return"children"in a?f.call(a.children):c.map(a.childNodes,function(a){if(a.nodeType==1)return a})}function T(c,d,e){for(b in d)e&&(J(d[b])||K(d[b]))?(J(d[b])&&!J(c[b])&&(c[b]={}),K(d[b])&&!K(c[b])&&(c[b]=[]),T(c[b],d[b],e)):d[b]!==a&&(c[b]=d[b])}function U(b,d){return d===a?c(b):c(b).filter(d)}function V(a,b,c,d){return F(b)?b.call(a,c,d):b}function W(a,b,c){c==null?a.removeAttribute(b):a.setAttribute(b,c)}function X(b,c){var d=b.className,e=d&&d.baseVal!==a;if(c===a)return e?d.baseVal:d;e?d.baseVal=c:b.className=c}function Y(a){var b;try{return a?a=="true"||(a=="false"?!1:a=="null"?null:isNaN(b=Number(a))?/^[\[\{]/.test(a)?c.parseJSON(a):a:b):a}catch(d){return a}}function Z(a,b){b(a);for(var c in a.childNodes)Z(a.childNodes[c],b)}var a,b,c,d,e=[],f=e.slice,g=e.filter,h=window.document,i={},j={},k=h.defaultView.getComputedStyle,l={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},m=/^\s*<(\w+|!)[^>]*>/,n=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,o=/^(?:body|html)$/i,p=["val","css","html","text","data","width","height","offset"],q=["after","prepend","before","append"],r=h.createElement("table"),s=h.createElement("tr"),t={tr:h.createElement("tbody"),tbody:r,thead:r,tfoot:r,td:s,th:s,"*":h.createElement("div")},u=/complete|loaded|interactive/,v=/^\.([\w-]+)$/,w=/^#([\w-]*)$/,x=/^[\w-]+$/,y={},z=y.toString,A={},B,C,D=h.createElement("div");return A.matches=function(a,b){if(!a||a.nodeType!==1)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=D).appendChild(a),d=~A.qsa(e,b).indexOf(a),f&&D.removeChild(a),d},B=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},C=function(a){return g.call(a,function(b,c){return a.indexOf(b)==c})},A.fragment=function(b,d,e){b.replace&&(b=b.replace(n,"<$1>")),d===a&&(d=m.test(b)&&RegExp.$1),d in t||(d="*");var g,h,i=t[d];return i.innerHTML=""+b,h=c.each(f.call(i.childNodes),function(){i.removeChild(this)}),J(e)&&(g=c(h),c.each(e,function(a,b){p.indexOf(a)>-1?g[a](b):g.attr(a,b)})),h},A.Z=function(a,b){return a=a||[],a.__proto__=c.fn,a.selector=b||"",a},A.isZ=function(a){return a instanceof A.Z},A.init=function(b,d){if(!b)return A.Z();if(F(b))return c(h).ready(b);if(A.isZ(b))return b;var e;if(K(b))e=M(b);else if(I(b))e=[J(b)?c.extend({},b):b],b=null;else if(m.test(b))e=A.fragment(b.trim(),RegExp.$1,d),b=null;else{if(d!==a)return c(d).find(b);e=A.qsa(h,b)}return A.Z(e,b)},c=function(a,b){return A.init(a,b)},c.extend=function(a){var b,c=f.call(arguments,1);return typeof a=="boolean"&&(b=a,a=c.shift()),c.forEach(function(c){T(a,c,b)}),a},A.qsa=function(a,b){var c;return H(a)&&w.test(b)?(c=a.getElementById(RegExp.$1))?[c]:[]:a.nodeType!==1&&a.nodeType!==9?[]:f.call(v.test(b)?a.getElementsByClassName(RegExp.$1):x.test(b)?a.getElementsByTagName(b):a.querySelectorAll(b))},c.contains=function(a,b){return a!==b&&a.contains(b)},c.type=E,c.isFunction=F,c.isWindow=G,c.isArray=K,c.isPlainObject=J,c.isEmptyObject=function(a){var b;for(b in a)return!1;return!0},c.inArray=function(a,b,c){return e.indexOf.call(b,a,c)},c.camelCase=B,c.trim=function(a){return a.trim()},c.uuid=0,c.support={},c.expr={},c.map=function(a,b){var c,d=[],e,f;if(L(a))for(e=0;e=0?b:b+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){this.parentNode!=null&&this.parentNode.removeChild(this)})},each:function(a){return e.every.call(this,function(b,c){return a.call(b,c,b)!==!1}),this},filter:function(a){return F(a)?this.not(this.not(a)):c(g.call(this,function(b){return A.matches(b,a)}))},add:function(a,b){return c(C(this.concat(c(a,b))))},is:function(a){return this.length>0&&A.matches(this[0],a)},not:function(b){var d=[];if(F(b)&&b.call!==a)this.each(function(a){b.call(this,a)||d.push(this)});else{var e=typeof b=="string"?this.filter(b):L(b)&&F(b.item)?f.call(b):c(b);this.forEach(function(a){e.indexOf(a)<0&&d.push(a)})}return c(d)},has:function(a){return this.filter(function(){return I(a)?c.contains(this,a):c(this).find(a).size()})},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!I(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!I(a)?a:c(a)},find:function(a){var b,d=this;return typeof a=="object"?b=c(a).filter(function(){var a=this;return e.some.call(d,function(b){return c.contains(b,a)})}):this.length==1?b=c(A.qsa(this[0],a)):b=this.map(function(){return A.qsa(this,a)}),b},closest:function(a,b){var d=this[0],e=!1;typeof a=="object"&&(e=c(a));while(d&&!(e?e.indexOf(d)>=0:A.matches(d,a)))d=d!==b&&!H(d)&&d.parentNode;return c(d)},parents:function(a){var b=[],d=this;while(d.length>0)d=c.map(d,function(a){if((a=a.parentNode)&&!H(a)&&b.indexOf(a)<0)return b.push(a),a});return U(b,a)},parent:function(a){return U(C(this.pluck("parentNode")),a)},children:function(a){return U(this.map(function(){return S(this)}),a)},contents:function(){return this.map(function(){return f.call(this.childNodes)})},siblings:function(a){return U(this.map(function(a,b){return g.call(S(b.parentNode),function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return c.map(this,function(b){return b[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=null),k(this,"").getPropertyValue("display")=="none"&&(this.style.display=R(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var b=F(a);if(this[0]&&!b)var d=c(a).get(0),e=d.parentNode||this.length>1;return this.each(function(f){c(this).wrapAll(b?a.call(this,f):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){c(this[0]).before(a=c(a));var b;while((b=a.children()).length)a=b.first();c(a).append(this)}return this},wrapInner:function(a){var b=F(a);return this.each(function(d){var e=c(this),f=e.contents(),g=b?a.call(this,d):a;f.length?f.wrapAll(g):e.append(g)})},unwrap:function(){return this.parent().each(function(){c(this).replaceWith(c(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(b){return this.each(function(){var d=c(this);(b===a?d.css("display")=="none":b)?d.show():d.hide()})},prev:function(a){return c(this.pluck("previousElementSibling")).filter(a||"*")},next:function(a){return c(this.pluck("nextElementSibling")).filter(a||"*")},html:function(b){return b===a?this.length>0?this[0].innerHTML:null:this.each(function(a){var d=this.innerHTML;c(this).empty().append(V(this,b,a,d))})},text:function(b){return b===a?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b})},attr:function(c,d){var e;return typeof c=="string"&&d===a?this.length==0||this[0].nodeType!==1?a:c=="value"&&this[0].nodeName=="INPUT"?this.val():!(e=this[0].getAttribute(c))&&c in this[0]?this[0][c]:e:this.each(function(a){if(this.nodeType!==1)return;if(I(c))for(b in c)W(this,b,c[b]);else W(this,c,V(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.nodeType===1&&W(this,a)})},prop:function(b,c){return c===a?this[0]&&this[0][b]:this.each(function(a){this[b]=V(this,c,a,this[b])})},data:function(b,c){var d=this.attr("data-"+O(b),c);return d!==null?Y(d):a},val:function(b){return b===a?this[0]&&(this[0].multiple?c(this[0]).find("option").filter(function(a){return this.selected}).pluck("value"):this[0].value):this.each(function(a){this.value=V(this,b,a,this.value)})},offset:function(a){if(a)return this.each(function(b){var d=c(this),e=V(this,a,b,d.offset()),f=d.offsetParent().offset(),g={top:e.top-f.top,left:e.left-f.left};d.css("position")=="static"&&(g.position="relative"),d.css(g)});if(this.length==0)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(a,c){if(arguments.length<2&&typeof a=="string")return this[0]&&(this[0].style[B(a)]||k(this[0],"").getPropertyValue(a));var d="";if(E(a)=="string")!c&&c!==0?this.each(function(){this.style.removeProperty(O(a))}):d=O(a)+":"+Q(a,c);else for(b in a)!a[b]&&a[b]!==0?this.each(function(){this.style.removeProperty(O(b))}):d+=O(b)+":"+Q(b,a[b])+";";return this.each(function(){this.style.cssText+=";"+d})},index:function(a){return a?this.indexOf(c(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return e.some.call(this,function(a){return this.test(X(a))},P(a))},addClass:function(a){return this.each(function(b){d=[];var e=X(this),f=V(this,a,b,e);f.split(/\s+/g).forEach(function(a){c(this).hasClass(a)||d.push(a)},this),d.length&&X(this,e+(e?" ":"")+d.join(" "))})},removeClass:function(b){return this.each(function(c){if(b===a)return X(this,"");d=X(this),V(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(P(a)," ")}),X(this,d.trim())})},toggleClass:function(b,d){return this.each(function(e){var f=c(this),g=V(this,b,e,X(this));g.split(/\s+/g).forEach(function(b){(d===a?!f.hasClass(b):d)?f.addClass(b):f.removeClass(b)})})},scrollTop:function(){if(!this.length)return;return"scrollTop"in this[0]?this[0].scrollTop:this[0].scrollY},position:function(){if(!this.length)return;var a=this[0],b=this.offsetParent(),d=this.offset(),e=o.test(b[0].nodeName)?{top:0,left:0}:b.offset();return d.top-=parseFloat(c(a).css("margin-top"))||0,d.left-=parseFloat(c(a).css("margin-left"))||0,e.top+=parseFloat(c(b[0]).css("border-top-width"))||0,e.left+=parseFloat(c(b[0]).css("border-left-width"))||0,{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||h.body;while(a&&!o.test(a.nodeName)&&c(a).css("position")=="static")a=a.offsetParent;return a})}},c.fn.detach=c.fn.remove,["width","height"].forEach(function(b){c.fn[b]=function(d){var e,f=this[0],g=b.replace(/./,function(a){return a[0].toUpperCase()});return d===a?G(f)?f["inner"+g]:H(f)?f.documentElement["offset"+g]:(e=this.offset())&&e[b]:this.each(function(a){f=c(this),f.css(b,V(this,d,a,f[b]()))})}}),q.forEach(function(a,b){var d=b%2;c.fn[a]=function(){var a,e=c.map(arguments,function(b){return a=E(b),a=="object"||a=="array"||b==null?b:A.fragment(b)}),f,g=this.length>1;return e.length<1?this:this.each(function(a,h){f=d?h:h.parentNode,h=b==0?h.nextSibling:b==1?h.firstChild:b==2?h:null,e.forEach(function(a){if(g)a=a.cloneNode(!0);else if(!f)return c(a).remove();Z(f.insertBefore(a,h),function(a){a.nodeName!=null&&a.nodeName.toUpperCase()==="SCRIPT"&&(!a.type||a.type==="text/javascript")&&!a.src&&window.eval.call(window,a.innerHTML)})})})},c.fn[d?a+"To":"insert"+(b?"Before":"After")]=function(b){return c(b)[a](this),this}}),A.Z.prototype=c.fn,A.uniq=C,A.deserializeValue=Y,c.zepto=A,c}();window.Zepto=Zepto,"$"in window||(window.$=Zepto),function(a){function b(a){var b=this.os={},c=this.browser={},d=a.match(/WebKit\/([\d.]+)/),e=a.match(/(Android)\s+([\d.]+)/),f=a.match(/(iPad).*OS\s([\d_]+)/),g=!f&&a.match(/(iPhone\sOS)\s([\d_]+)/),h=a.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),i=h&&a.match(/TouchPad/),j=a.match(/Kindle\/([\d.]+)/),k=a.match(/Silk\/([\d._]+)/),l=a.match(/(BlackBerry).*Version\/([\d.]+)/),m=a.match(/(BB10).*Version\/([\d.]+)/),n=a.match(/(RIM\sTablet\sOS)\s([\d.]+)/),o=a.match(/PlayBook/),p=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),q=a.match(/Firefox\/([\d.]+)/);if(c.webkit=!!d)c.version=d[1];e&&(b.android=!0,b.version=e[2]),g&&(b.ios=b.iphone=!0,b.version=g[2].replace(/_/g,".")),f&&(b.ios=b.ipad=!0,b.version=f[2].replace(/_/g,".")),h&&(b.webos=!0,b.version=h[2]),i&&(b.touchpad=!0),l&&(b.blackberry=!0,b.version=l[2]),m&&(b.bb10=!0,b.version=m[2]),n&&(b.rimtabletos=!0,b.version=n[2]),o&&(c.playbook=!0),j&&(b.kindle=!0,b.version=j[1]),k&&(c.silk=!0,c.version=k[1]),!k&&b.android&&a.match(/Kindle Fire/)&&(c.silk=!0),p&&(c.chrome=!0,c.version=p[1]),q&&(c.firefox=!0,c.version=q[1]),b.tablet=!!(f||o||e&&!a.match(/Mobile/)||q&&a.match(/Tablet/)),b.phone=!b.tablet&&!!(e||g||h||l||m||p&&a.match(/Android/)||p&&a.match(/CriOS\/([\d.]+)/)||q&&a.match(/Mobile/))}b.call(a,navigator.userAgent),a.__detect=b}(Zepto),function(a){function g(a){return a._zid||(a._zid=d++)}function h(a,b,d,e){b=i(b);if(b.ns)var f=j(b.ns);return(c[g(a)]||[]).filter(function(a){return a&&(!b.e||a.e==b.e)&&(!b.ns||f.test(a.ns))&&(!d||g(a.fn)===g(d))&&(!e||a.sel==e)})}function i(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function j(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function k(b,c,d){a.type(b)!="string"?a.each(b,d):b.split(/\s/).forEach(function(a){d(a,c)})}function l(a,b){return a.del&&(a.e=="focus"||a.e=="blur")||!!b}function m(a){return f[a]||a}function n(b,d,e,h,j,n){var o=g(b),p=c[o]||(c[o]=[]);k(d,e,function(c,d){var e=i(c);e.fn=d,e.sel=h,e.e in f&&(d=function(b){var c=b.relatedTarget;if(!c||c!==this&&!a.contains(this,c))return e.fn.apply(this,arguments)}),e.del=j&&j(d,c);var g=e.del||d;e.proxy=function(a){var c=g.apply(b,[a].concat(a.data));return c===!1&&(a.preventDefault(),a.stopPropagation()),c},e.i=p.length,p.push(e),b.addEventListener(m(e.e),e.proxy,l(e,n))})}function o(a,b,d,e,f){var i=g(a);k(b||"",d,function(b,d){h(a,b,d,e).forEach(function(b){delete c[i][b.i],a.removeEventListener(m(b.e),b.proxy,l(b,f))})})}function t(b){var c,d={originalEvent:b};for(c in b)!r.test(c)&&b[c]!==undefined&&(d[c]=b[c]);return a.each(s,function(a,c){d[a]=function(){return this[c]=p,b[a].apply(b,arguments)},d[c]=q}),d}function u(a){if(!("defaultPrevented"in a)){a.defaultPrevented=!1;var b=a.preventDefault;a.preventDefault=function(){this.defaultPrevented=!0,b.call(this)}}}var b=a.zepto.qsa,c={},d=1,e={},f={mouseenter:"mouseover",mouseleave:"mouseout"};e.click=e.mousedown=e.mouseup=e.mousemove="MouseEvents",a.event={add:n,remove:o},a.proxy=function(b,c){if(a.isFunction(b)){var d=function(){return b.apply(c,arguments)};return d._zid=g(b),d}if(typeof c=="string")return a.proxy(b[c],b);throw new TypeError("expected function")},a.fn.bind=function(a,b){return this.each(function(){n(this,a,b)})},a.fn.unbind=function(a,b){return this.each(function(){o(this,a,b)})},a.fn.one=function(a,b){return this.each(function(c,d){n(this,a,b,null,function(a,b){return function(){var c=a.apply(d,arguments);return o(d,b,a),c}})})};var p=function(){return!0},q=function(){return!1},r=/^([A-Z]|layer[XY]$)/,s={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(b,c,d){return this.each(function(e,f){n(f,c,d,b,function(c){return function(d){var e,g=a(d.target).closest(b,f).get(0);if(g)return e=a.extend(t(d),{currentTarget:g,liveFired:f}),c.apply(g,[e].concat([].slice.call(arguments,1)))}})})},a.fn.undelegate=function(a,b,c){return this.each(function(){o(this,b,c,a)})},a.fn.live=function(b,c){return a(document.body).delegate(this.selector,b,c),this},a.fn.die=function(b,c){return a(document.body).undelegate(this.selector,b,c),this},a.fn.on=function(b,c,d){return!c||a.isFunction(c)?this.bind(b,c||d):this.delegate(c,b,d)},a.fn.off=function(b,c,d){return!c||a.isFunction(c)?this.unbind(b,c||d):this.undelegate(c,b,d)},a.fn.trigger=function(b,c){if(typeof b=="string"||a.isPlainObject(b))b=a.Event(b);return u(b),b.data=c,this.each(function(){"dispatchEvent"in this&&this.dispatchEvent(b)})},a.fn.triggerHandler=function(b,c){var d,e;return this.each(function(f,g){d=t(typeof b=="string"?a.Event(b):b),d.data=c,d.target=g,a.each(h(g,b.type||b),function(a,b){e=b.proxy(d);if(d.isImmediatePropagationStopped())return!1})}),e},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.trigger(b)}}),["focus","blur"].forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.each(function(){try{this[b]()}catch(a){}}),this}}),a.Event=function(a,b){typeof a!="string"&&(b=a,a=b.type);var c=document.createEvent(e[a]||"Events"),d=!0;if(b)for(var f in b)f=="bubbles"?d=!!b[f]:c[f]=b[f];return c.initEvent(a,d,!0,null,null,null,null,null,null,null,null,null,null,null,null),c.isDefaultPrevented=function(){return this.defaultPrevented},c}}(Zepto),function($){function triggerAndReturn(a,b,c){var d=$.Event(b);return $(a).trigger(d,c),!d.defaultPrevented}function triggerGlobal(a,b,c,d){if(a.global)return triggerAndReturn(b||document,c,d)}function ajaxStart(a){a.global&&$.active++===0&&triggerGlobal(a,null,"ajaxStart")}function ajaxStop(a){a.global&&!--$.active&&triggerGlobal(a,null,"ajaxStop")}function ajaxBeforeSend(a,b){var c=b.context;if(b.beforeSend.call(c,a,b)===!1||triggerGlobal(b,c,"ajaxBeforeSend",[a,b])===!1)return!1;triggerGlobal(b,c,"ajaxSend",[a,b])}function ajaxSuccess(a,b,c){var d=c.context,e="success";c.success.call(d,a,e,b),triggerGlobal(c,d,"ajaxSuccess",[b,c,a]),ajaxComplete(e,b,c)}function ajaxError(a,b,c,d){var e=d.context;d.error.call(e,c,b,a),triggerGlobal(d,e,"ajaxError",[c,d,a]),ajaxComplete(b,c,d)}function ajaxComplete(a,b,c){var d=c.context;c.complete.call(d,b,a),triggerGlobal(c,d,"ajaxComplete",[b,c]),ajaxStop(c)}function empty(){}function mimeToDataType(a){return a&&(a=a.split(";",2)[0]),a&&(a==htmlType?"html":a==jsonType?"json":scriptTypeRE.test(a)?"script":xmlTypeRE.test(a)&&"xml")||"text"}function appendQuery(a,b){return(a+"&"+b).replace(/[&?]{1,2}/,"?")}function serializeData(a){a.processData&&a.data&&$.type(a.data)!="string"&&(a.data=$.param(a.data,a.traditional)),a.data&&(!a.type||a.type.toUpperCase()=="GET")&&(a.url=appendQuery(a.url,a.data))}function parseArguments(a,b,c,d){var e=!$.isFunction(b);return{url:a,data:e?b:undefined,success:e?$.isFunction(c)?c:undefined:b,dataType:e?d||c:c}}function serialize(a,b,c,d){var e,f=$.isArray(b);$.each(b,function(b,g){e=$.type(g),d&&(b=c?d:d+"["+(f?"":b)+"]"),!d&&f?a.add(g.name,g.value):e=="array"||!c&&e=="object"?serialize(a,g,c,b):a.add(b,g)})}var jsonpID=0,document=window.document,key,name,rscript=/)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;$.active=0,$.ajaxJSONP=function(a){if("type"in a){var b="jsonp"+ ++jsonpID,c=document.createElement("script"),d=function(){clearTimeout(g),$(c).remove(),delete window[b]},e=function(c){d();if(!c||c=="timeout")window[b]=empty;ajaxError(null,c||"abort",f,a)},f={abort:e},g;return ajaxBeforeSend(f,a)===!1?(e("abort"),!1):(window[b]=function(b){d(),ajaxSuccess(b,f,a)},c.onerror=function(){e("error")},c.src=a.url.replace(/=\?/,"="+b),$("head").append(c),a.timeout>0&&(g=setTimeout(function(){e("timeout")},a.timeout)),f)}return $.ajax(a)},$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},$.ajax=function(options){var settings=$.extend({},options||{});for(key in $.ajaxSettings)settings[key]===undefined&&(settings[key]=$.ajaxSettings[key]);ajaxStart(settings),settings.crossDomain||(settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host),settings.url||(settings.url=window.location.toString()),serializeData(settings),settings.cache===!1&&(settings.url=appendQuery(settings.url,"_="+Date.now()));var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder)return hasPlaceholder||(settings.url=appendQuery(settings.url,"callback=?")),$.ajaxJSONP(settings);var mime=settings.accepts[dataType],baseHeaders={},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=settings.xhr(),abortTimeout;settings.crossDomain||(baseHeaders["X-Requested-With"]="XMLHttpRequest"),mime&&(baseHeaders.Accept=mime,mime.indexOf(",")>-1&&(mime=mime.split(",",2)[0]),xhr.overrideMimeType&&xhr.overrideMimeType(mime));if(settings.contentType||settings.contentType!==!1&&settings.data&&settings.type.toUpperCase()!="GET")baseHeaders["Content-Type"]=settings.contentType||"application/x-www-form-urlencoded";settings.headers=$.extend(baseHeaders,settings.headers||{}),xhr.onreadystatechange=function(){if(xhr.readyState==4){xhr.onreadystatechange=empty,clearTimeout(abortTimeout);var result,error=!1;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(xhr.getResponseHeader("content-type")),result=xhr.responseText;try{dataType=="script"?(1,eval)(result):dataType=="xml"?result=xhr.responseXML:dataType=="json"&&(result=blankRE.test(result)?null:$.parseJSON(result))}catch(e){error=e}error?ajaxError(error,"parsererror",xhr,settings):ajaxSuccess(result,xhr,settings)}else ajaxError(null,xhr.status?"error":"abort",xhr,settings)}};var async="async"in settings?settings.async:!0;xhr.open(settings.type,settings.url,async);for(name in settings.headers)xhr.setRequestHeader(name,settings.headers[name]);return ajaxBeforeSend(xhr,settings)===!1?(xhr.abort(),!1):(settings.timeout>0&&(abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty,xhr.abort(),ajaxError(null,"timeout",xhr,settings)},settings.timeout)),xhr.send(settings.data?settings.data:null),xhr)},$.get=function(a,b,c,d){return $.ajax(parseArguments.apply(null,arguments))},$.post=function(a,b,c,d){var e=parseArguments.apply(null,arguments);return e.type="POST",$.ajax(e)},$.getJSON=function(a,b,c){var d=parseArguments.apply(null,arguments);return d.dataType="json",$.ajax(d)},$.fn.load=function(a,b,c){if(!this.length)return this;var d=this,e=a.split(/\s/),f,g=parseArguments(a,b,c),h=g.success;return e.length>1&&(g.url=e[0],f=e[1]),g.success=function(a){d.html(f?$("
").html(a.replace(rscript,"")).find(f):a),h&&h.apply(d,arguments)},$.ajax(g),this};var escape=encodeURIComponent;$.param=function(a,b){var c=[];return c.add=function(a,b){this.push(escape(a)+"="+escape(b))},serialize(c,a,b),c.join("&").replace(/%20/g,"+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;return a(Array.prototype.slice.call(this.get(0).elements)).each(function(){c=a(this);var d=c.attr("type");this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&d!="submit"&&d!="reset"&&d!="button"&&(d!="radio"&&d!="checkbox"||this.checked)&&b.push({name:c.attr("name"),value:c.val()})}),b},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(a,b){function s(a){return t(a.replace(/([a-z])([A-Z])/,"$1-$2"))}function t(a){return a.toLowerCase()}function u(a){return d?d+a:t(a)}var c="",d,e,f,g={Webkit:"webkit",Moz:"",O:"o",ms:"MS"},h=window.document,i=h.createElement("div"),j=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,k,l,m,n,o,p,q,r={};a.each(g,function(a,e){if(i.style[a+"TransitionProperty"]!==b)return c="-"+t(a)+"-",d=e,!1}),k=c+"transform",r[l=c+"transition-property"]=r[m=c+"transition-duration"]=r[n=c+"transition-timing-function"]=r[o=c+"animation-name"]=r[p=c+"animation-duration"]=r[q=c+"animation-timing-function"]="",a.fx={off:d===b&&i.style.transitionProperty===b,speeds:{_default:400,fast:200,slow:600},cssPrefix:c,transitionEnd:u("TransitionEnd"),animationEnd:u("AnimationEnd")},a.fn.animate=function(b,c,d,e){return a.isPlainObject(c)&&(d=c.easing,e=c.complete,c=c.duration),c&&(c=(typeof c=="number"?c:a.fx.speeds[c]||a.fx.speeds._default)/1e3),this.anim(b,c,d,e)},a.fn.anim=function(c,d,e,f){var g,h={},i,t="",u=this,v,w=a.fx.transitionEnd;d===b&&(d=.4),a.fx.off&&(d=0);if(typeof c=="string")h[o]=c,h[p]=d+"s",h[q]=e||"linear",w=a.fx.animationEnd;else{i=[];for(g in c)j.test(g)?t+=g+"("+c[g]+") ":(h[g]=c[g],i.push(s(g)));t&&(h[k]=t,i.push(k)),d>0&&typeof c=="object"&&(h[l]=i.join(", "),h[m]=d+"s",h[n]=e||"linear")}return v=function(b){if(typeof b!="undefined"){if(b.target!==b.currentTarget)return;a(b.target).unbind(w,v)}a(this).css(r),f&&f.call(this)},d>0&&this.bind(w,v),this.size()&&this.get(0).clientLeft,this.css(h),d<=0&&setTimeout(function(){u.each(function(){v.call(this)})},0),this},i=null}(Zepto) diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TimeCheck/TimeCheck.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TimeCheck/TimeCheck.ino new file mode 100644 index 00000000000..0403aa49a97 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/TimeCheck/TimeCheck.ino @@ -0,0 +1,88 @@ +/* + Time Check + + Gets the time from Linux via Bridge then parses out hours, + minutes and seconds using a YunShield/Yún. + + created 27 May 2013 + modified 21 June 2013 + By Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/TimeCheck + + */ + + +#include + +Process date; // process used to get the date +int hours, minutes, seconds; // for the results +int lastSecond = -1; // need an impossible value for comparison + +void setup() { + Bridge.begin(); // initialize Bridge + SerialUSB.begin(9600); // initialize serial + + while (!Serial); // wait for Serial Monitor to open + SerialUSB.println("Time Check"); // Title of sketch + + // run an initial date process. Should return: + // hh:mm:ss : + if (!date.running()) { + date.begin("date"); + date.addParameter("+%T"); + date.run(); + } +} + +void loop() { + + if (lastSecond != seconds) { // if a second has passed + // print the time: + if (hours <= 9) { + SerialUSB.print("0"); // adjust for 0-9 + } + SerialUSB.print(hours); + SerialUSB.print(":"); + if (minutes <= 9) { + SerialUSB.print("0"); // adjust for 0-9 + } + SerialUSB.print(minutes); + SerialUSB.print(":"); + if (seconds <= 9) { + SerialUSB.print("0"); // adjust for 0-9 + } + SerialUSB.println(seconds); + + // restart the date process: + if (!date.running()) { + date.begin("date"); + date.addParameter("+%T"); + date.run(); + } + } + + //if there's a result from the date process, parse it: + while (date.available() > 0) { + // get the result of the date process (should be hh:mm:ss): + String timeString = date.readString(); + + // find the colons: + int firstColon = timeString.indexOf(":"); + int secondColon = timeString.lastIndexOf(":"); + + // get the substrings for hour, minute second: + String hourString = timeString.substring(0, firstColon); + String minString = timeString.substring(firstColon + 1, secondColon); + String secString = timeString.substring(secondColon + 1); + + // convert to ints,saving the previous second: + hours = hourString.toInt(); + minutes = minString.toInt(); + lastSecond = seconds; // save to do a time comparison + seconds = secString.toInt(); + } + +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/WiFiStatus/WiFiStatus.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/WiFiStatus/WiFiStatus.ino new file mode 100644 index 00000000000..198761ba26b --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/WiFiStatus/WiFiStatus.ino @@ -0,0 +1,51 @@ +/* + WiFi Status + + This sketch runs a script called "pretty-wifi-info.lua" + installed on your Yún in folder /usr/bin. + It prints information about the status of your wifi connection. + + It uses Serial to print, so you need to connect your YunShield/Yún to your + computer using a USB cable and select the appropriate port from + the Port menu + + created 18 June 2013 + By Federico Fissore + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunWiFiStatus + + */ + +#include + +void setup() { + SerialUSB.begin(9600); // initialize serial communication + while (!SerialUSB); // do nothing until the serial monitor is opened + + SerialUSB.println("Starting bridge...\n"); + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); // make contact with the linux processor + digitalWrite(13, HIGH); // Led on pin 13 turns on when the bridge is ready + + delay(2000); // wait 2 seconds +} + +void loop() { + Process wifiCheck; // initialize a new process + + wifiCheck.runShellCommand("/usr/bin/pretty-wifi-info.lua"); // command you want to run + + // while there's any characters coming back from the + // process, print them to the serial monitor: + while (wifiCheck.available() > 0) { + char c = wifiCheck.read(); + SerialUSB.print(c); + } + + SerialUSB.println(); + + delay(5000); +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/YunFirstConfig/YunFirstConfig.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/YunFirstConfig/YunFirstConfig.ino new file mode 100644 index 00000000000..72bf9e00bff --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/YunFirstConfig/YunFirstConfig.ino @@ -0,0 +1,328 @@ + +/* + Arduino Yún First configuration sketch + + Configures the YunShield/Yún WiFi and infos via the Bridge + Works correctly if Line Ending is set as "NewLine" + If your board has two USB ports, use the Native one + + The circuit: + Arduino YunShield + (or any Yun model with firmware > 1.6.1) + + created March 2016 + by Arduino LLC + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunFirstConfig +*/ + +#include + +#define MAX_WIFI_LIST 10 + +String networks[MAX_WIFI_LIST]; +String yunName; +String yunPassword; + +void setup() { + SERIAL_PORT_USBVIRTUAL.begin(9600); // initialize serial communication + while (!SERIAL_PORT_USBVIRTUAL); // do nothing until the serial monitor is opened + + SERIAL_PORT_USBVIRTUAL.println(F("Hi! Nice to see you!")); + SERIAL_PORT_USBVIRTUAL.println(F("I'm your YunShield assistant sketch")); + SERIAL_PORT_USBVIRTUAL.println(F("I'll help you configuring your Yun in a matter of minutes")); + + SERIAL_PORT_USBVIRTUAL.println(F("Let's start by communicating with the Linux processor")); + SERIAL_PORT_USBVIRTUAL.println(F("When LED (L13) will light up we'll be ready to go!")); + SERIAL_PORT_USBVIRTUAL.println(F("Waiting...")); + SERIAL_PORT_USBVIRTUAL.println(F("(in the meanwhile, if you are using the IDE's serial monitor, make sure that it's configured to send a \"Newline\")\n")); + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); // make contact with the linux processor + digitalWrite(13, HIGH); // Led on pin 13 turns on when the bridge is ready + + // Recover if the board is in AP mode - unused + Process wifiList; + bool master = false; + wifiList.runShellCommand(F("iwinfo | grep \"Mode: Master\"")); + while (wifiList.available() > 0) { + wifiList.read(); + master = true; + } + + // Get the list of reachable networks + wifiList.runShellCommand(F("iwinfo wlan0 scan | grep ESSID | cut -d\"\\\"\" -f2")); + + uint8_t num_networks = 0; + uint8_t i = 0; + char c; + bool dropNet = false; + + networks[0].reserve(32); + + while (wifiList.available() > 0) { + c = wifiList.read(); + if (c != '\n') { + networks[i] += c; + } else { + // check if we already found networks[i] and eventually drop it + for (uint8_t s = 0; s < i; s++) { + if (networks[i].equals(networks[s])) { + dropNet = true; + } + } + if (i <= MAX_WIFI_LIST && dropNet == false) { + networks[i++].reserve(32); + } else { + dropNet = false; + networks[i]=""; + } + } + } + + num_networks = i; + + String encryption; + String password; + int chose = 0; + + // If networks number is 0, start manual configuration + if (num_networks == 0) { + SERIAL_PORT_USBVIRTUAL.println(F("Oops, it seems that you have no WiFi network available")); + SERIAL_PORT_USBVIRTUAL.println(F("Let's configure it manually")); + SERIAL_PORT_USBVIRTUAL.println(F("SSID of the network you want to connect to: ")); + networks[0] = getUserInput(networks[0], false); + SERIAL_PORT_USBVIRTUAL.println(F("Password for the network you want to connect to: ")); + password = getUserInput(password, true); + SERIAL_PORT_USBVIRTUAL.print(F("Encryption (eg WPA, WPA2, WEP): ")); + encryption = getUserInput(encryption, false); + } else { + // else print them prepending a number + SERIAL_PORT_USBVIRTUAL.print(F("It looks like you have ")); + SERIAL_PORT_USBVIRTUAL.print(num_networks); + SERIAL_PORT_USBVIRTUAL.println(F(" networks around you ")); + SERIAL_PORT_USBVIRTUAL.println(F("Which one do you want to connect to?\n")); + for (i = 0; i < num_networks && i < MAX_WIFI_LIST; i++) { + SERIAL_PORT_USBVIRTUAL.print(i); + SERIAL_PORT_USBVIRTUAL.println(") " + networks[i]); + } + String selection; + selection = getUserInput(selection, false); + chose = atoi(selection.c_str()); + } + + // Extract the selected network security + bool openNet = false; + wifiList.runShellCommand("iwinfo wlan0 scan | grep \"" + networks[chose] + "\" -A5 | grep Encryption | cut -f2 -d\":\""); + while (wifiList.available() > 0) { + c = wifiList.read(); + encryption += c; + } + + if (encryption.indexOf("none") >= 0) { + openNet = true; + encryption = "none"; + } + if (encryption.indexOf("WPA2") >= 0) { + encryption = "psk2"; + } + if (encryption.indexOf("WPA") >= 0) { + encryption = "psk"; + } + if (encryption.indexOf("WEP") >= 0) { + encryption = "wep"; + } + + if (openNet == false && password.length() == 0) { + SERIAL_PORT_USBVIRTUAL.print(F("It looks like you need a password to connect to ")); + SERIAL_PORT_USBVIRTUAL.println(networks[chose]); + SERIAL_PORT_USBVIRTUAL.print(F("Write it here: ")); + password = getUserInput(password, true); + } + + // Change hostname/root password + SERIAL_PORT_USBVIRTUAL.println(F("We are almost done! Give a name and a password to your Yun")); + SERIAL_PORT_USBVIRTUAL.print(F("Name: ")); + yunName = getUserInput(yunName, false); + SERIAL_PORT_USBVIRTUAL.print(F("Password: ")); + yunPassword = getUserInput(yunPassword, true); + + // Select a country code + String countryCode; + SERIAL_PORT_USBVIRTUAL.println(F("One last question: where do you live?")); + SERIAL_PORT_USBVIRTUAL.print(F("Insert a two letters county code (eg IT, US, DE): ")); + countryCode = getUserInput(countryCode, false); + + yunName.trim(); + yunPassword.trim(); + networks[chose].trim(); + password.trim(); + countryCode.trim(); + + // Configure the Yun with user provided strings + wifiConfig(yunName, yunPassword, networks[chose], password, "YUN" + yunName + "AP", countryCode, encryption); + + SERIAL_PORT_USBVIRTUAL.print(F("Waiting for the Yun to connect to the network")); +} + +bool Connected = false; +bool serialTerminalMode = false; +int runs = 0; + +void loop() { + if (!serialTerminalMode) { + String resultStr = ""; + + if (!Connected) { + SERIAL_PORT_USBVIRTUAL.print("."); + runs++; + } + + // If it takes more than 20 seconds to connect, stop trying + if (runs > 20) { + SERIAL_PORT_USBVIRTUAL.println(""); + SERIAL_PORT_USBVIRTUAL.println(F("We couldn't connect to the network.")); + SERIAL_PORT_USBVIRTUAL.println(F("Restart the board if you want to execute the wizard again")); + resultStr = getUserInput(resultStr, false); + } + + // Check if we have an IP address + Process wifiCheck; + wifiCheck.runShellCommand(F("/usr/bin/pretty-wifi-info.lua | grep \"IP address\" | cut -f2 -d\":\" | cut -f1 -d\"/\"" )); // command you want to run + while (wifiCheck.available() > 0) { + char c = wifiCheck.read(); + resultStr += c; + } + + delay(1000); + + if (resultStr != "") { + // We got an IP, freeze the loop, display the value and "spawn" a serial terminal + Connected = true; + resultStr.trim(); + SERIAL_PORT_USBVIRTUAL.println(""); + SERIAL_PORT_USBVIRTUAL.print(F("\nGreat! You can now reach your Yun from a browser typing http://")); + SERIAL_PORT_USBVIRTUAL.println(resultStr); + SERIAL_PORT_USBVIRTUAL.print(F("Press 'Enter' key twice to start a serial terminal")); + resultStr = getUserInput(resultStr, false); + serialTerminalMode = true; + //startSerialTerminal(); + SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command + delay(100); + SERIAL_PORT_HARDWARE.println("\nreset\n\n"); + SERIAL_PORT_HARDWARE.flush(); + SERIAL_PORT_HARDWARE.println("\nreset\n\n"); + SERIAL_PORT_HARDWARE.write((uint8_t *)"\n", 1); + } + + } else { + loopSerialTerminal(); + } +} + +String getUserInput(String out, bool obfuscated) { + /* + while (SerialUSB.available() <= 0) {} + while (SerialUSB.available() > 0) { + char c = SerialUSB.read(); + out += c; + } + return out; + */ + while (SERIAL_PORT_USBVIRTUAL.available() <= 0) {} + while (1) { + char c = SERIAL_PORT_USBVIRTUAL.read(); + if (c == '\n' || c == '\r') + break; + else { + if (c != -1) { + out += c; + if (obfuscated) + SERIAL_PORT_USBVIRTUAL.print("*"); + else + SERIAL_PORT_USBVIRTUAL.print(c); + } + } + } + SERIAL_PORT_USBVIRTUAL.println(""); + return out; +} + +void wifiConfig(String yunName, String yunPsw, String wifissid, String wifipsw, String wifiAPname, String countryCode, String encryption) { + Process p; + + p.runShellCommand("blink-start 100"); //start the blue blink + + p.runShellCommand("hostname " + yunName); //change the current hostname + p.runShellCommand("uci set system.@system[0].hostname='" + yunName + "'"); //change teh hostname in uci + + p.runShellCommand("uci set arduino.@arduino[0].access_point_wifi_name='" + wifiAPname + "'"); + + //this block resets the wifi psw + p.runShellCommand("uci set wireless.@wifi-iface[0].encryption='" + encryption + "'"); + p.runShellCommand("uci set wireless.@wifi-iface[0].mode='sta'\n"); + p.runShellCommand("uci set wireless.@wifi-iface[0].ssid='" + wifissid + "'"); + p.runShellCommand("uci set wireless.@wifi-iface[0].key='" + wifipsw + "'"); + p.runShellCommand("uci set wireless.radio0.channel='auto'"); + p.runShellCommand("uci set wireless.radio0.country='" + countryCode + "'"); + p.runShellCommand("uci delete network.lan.ipaddr"); + p.runShellCommand("uci delete network.lan.netmask"); + p.runShellCommand("uci set network.lan.proto='dhcp'"); + + p.runShellCommand("echo -e \"" + yunPsw + "\n" + yunPsw + "\" | passwd root"); //change the passwors + p.runShellCommand("uci commit"); //save the mods done via UCI + p.runShellCommand("blink-stop"); //start the blue blink + + p.runShellCommand("wifi "); +} + +long linuxBaud = 250000; + +void startSerialTerminal() { + SERIAL_PORT_USBVIRTUAL.begin(115200); // open serial connection via USB-Serial + SERIAL_PORT_HARDWARE.begin(linuxBaud); // open serial connection to Linux +} + +boolean commandMode = false; +void loopSerialTerminal() { + // copy from USB-CDC to UART + int c = SERIAL_PORT_USBVIRTUAL.read(); // read from USB-CDC + if (c != -1) { // got anything? + if (commandMode == false) { // if we aren't in command mode... + if (c == '~') { // Tilde '~' key pressed? + commandMode = true; // enter in command mode + } else { + SERIAL_PORT_HARDWARE.write(c); // otherwise write char to UART + } + } else { // if we are in command mode... + if (c == '0') { // '0' key pressed? + SERIAL_PORT_HARDWARE.begin(57600); // set speed to 57600 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 57600"); + } else if (c == '1') { // '1' key pressed? + SERIAL_PORT_HARDWARE.begin(115200); // set speed to 115200 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 115200"); + } else if (c == '2') { // '2' key pressed? + SERIAL_PORT_HARDWARE.begin(250000); // set speed to 250000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 250000"); + } else if (c == '3') { // '3' key pressed? + SERIAL_PORT_HARDWARE.begin(500000); // set speed to 500000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 500000"); + } else if (c == '~') { // '~` key pressed? + SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command + SERIAL_PORT_USBVIRTUAL.println("Sending bridge's shutdown command"); + } else { // any other key pressed? + SERIAL_PORT_HARDWARE.write('~'); // write '~' to UART + SERIAL_PORT_HARDWARE.write(c); // write char to UART + } + commandMode = false; // in all cases exit from command mode + } + } + + // copy from UART to USB-CDC + c = SERIAL_PORT_HARDWARE.read(); // read from UART + if (c != -1) { // got anything? + SERIAL_PORT_USBVIRTUAL.write(c); // write to USB-CDC + } +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino new file mode 100644 index 00000000000..641c1e9f00e --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino @@ -0,0 +1,82 @@ +/* + Arduino Yún USB-to-Serial + + Allows you to use the YunShield/Yún processor as a + serial terminal for the Linux side on the Yún. + + Upload this to a YunShield/Yún via serial (not WiFi) then open + the serial monitor at 115200 to see the boot process of Linux. + You can also use the serial monitor as a basic command line + interface for Linux using this sketch. + + From the serial monitor the following commands can be issued: + + '~' followed by '0' -> Set the UART speed to 57600 baud + '~' followed by '1' -> Set the UART speed to 115200 baud + '~' followed by '2' -> Set the UART speed to 250000 baud + '~' followed by '3' -> Set the UART speed to 500000 baud + '~' followed by '~' -> Sends the bridge's shutdown command to + obtain the console. + + The circuit: + YunShield/Yún + + created March 2013 + by Massimo Banzi + modified by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunSerialTerminal + +*/ + +long linuxBaud = 250000; + +void setup() { + SERIAL_PORT_USBVIRTUAL.begin(115200); // open serial connection via USB-Serial + SERIAL_PORT_HARDWARE.begin(linuxBaud); // open serial connection to Linux +} + +boolean commandMode = false; + +void loop() { + // copy from USB-CDC to UART + int c = SERIAL_PORT_USBVIRTUAL.read(); // read from USB-CDC + if (c != -1) { // got anything? + if (commandMode == false) { // if we aren't in command mode... + if (c == '~') { // Tilde '~' key pressed? + commandMode = true; // enter in command mode + } else { + SERIAL_PORT_HARDWARE.write(c); // otherwise write char to UART + } + } else { // if we are in command mode... + if (c == '0') { // '0' key pressed? + SERIAL_PORT_HARDWARE.begin(57600); // set speed to 57600 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 57600"); + } else if (c == '1') { // '1' key pressed? + SERIAL_PORT_HARDWARE.begin(115200); // set speed to 115200 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 115200"); + } else if (c == '2') { // '2' key pressed? + SERIAL_PORT_HARDWARE.begin(250000); // set speed to 250000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 250000"); + } else if (c == '3') { // '3' key pressed? + SERIAL_PORT_HARDWARE.begin(500000); // set speed to 500000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 500000"); + } else if (c == '~') { // '~` key pressed? + SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command + SERIAL_PORT_USBVIRTUAL.println("Sending bridge's shutdown command"); + } else { // any other key pressed? + SERIAL_PORT_HARDWARE.write('~'); // write '~' to UART + SERIAL_PORT_HARDWARE.write(c); // write char to UART + } + commandMode = false; // in all cases exit from command mode + } + } + + // copy from UART to USB-CDC + c = SERIAL_PORT_HARDWARE.read(); // read from UART + if (c != -1) { // got anything? + SERIAL_PORT_USBVIRTUAL.write(c); // write to USB-CDC + } +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/keywords.txt b/app/testdata/libraries/Bridge_1.6.3/Bridge/keywords.txt new file mode 100644 index 00000000000..ef5d5eb7db0 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/keywords.txt @@ -0,0 +1,92 @@ +####################################### +# Syntax Coloring Map For Bridge +####################################### + +####################################### +# Class (KEYWORD1) +####################################### + +Bridge KEYWORD1 YunBridgeLibrary +FileIO KEYWORD4 YunFileIOConstructor +FileSystem KEYWORD1 YunFileIOConstructor +Console KEYWORD1 YunConsoleConstructor +Process KEYWORD1 YunProcessConstructor +Mailbox KEYWORD1 YunMailboxConstructor +HttpClient KEYWORD1 YunHttpClientConstructor +YunServer KEYWORD1 YunServerConstructor +YunClient KEYWORD1 YunClientConstructor +BridgeServer KEYWORD1 YunServerConstructor +BridgeClient KEYWORD1 YunClientConstructor +BridgeSSLClient KEYWORD1 YunClientConstructor + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +# methods names in commond +begin KEYWORD2 +end KEYWORD2 +available KEYWORD2 +read KEYWORD2 +peek KEYWORD2 +write KEYWORD2 +flush KEYWORD2 +bool KEYWORD2 + +# Bridge Class +transfer KEYWORD2 +put KEYWORD2 +get KEYWORD2 + +# Console Class +buffer KEYWORD2 +noBuffer KEYWORD2 +connected KEYWORD2 + +# FileIO Class +File KEYWORD2 +BridgeFile KEYWORD2 +seek KEYWORD2 +position KEYWORD2 +size KEYWORD2 +close KEYWORD2 +name KEYWORD2 +isDirectory KEYWORD2 +openNextFile KEYWORD2 +rewindDirectory KEYWORD2 + +# Process Class +addParameter KEYWORD2 +runAsynchronously KEYWORD2 +run KEYWORD2 +running KEYWORD2 +exitValue KEYWORD2 +runShellCommand KEYWORD2 +runShellCommandAsynchronously KEYWORD2 + +# Mailbox Class +readMessage KEYWORD2 +writeMessage KEYWORD2 +writeJSON KEYWORD2 +message Available KEYWORD2 + +# HttpClient Class +getAsynchronously KEYWORD2 +ready KEYWORD2 +getResult KEYWORD2 + +# BridgeServer Class +accept KEYWORD2 +stop KEYWORD2 +connect KEYWORD2 +connectSSL KEYWORD2 +connected KEYWORD2 + + +####################################### +# Constants (LITERAL1) +####################################### + +FILE_READ LITERAL1 +FILE_WRITE LITERAL1 +FILE_APPEND LITERAL1 diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/library.properties b/app/testdata/libraries/Bridge_1.6.3/Bridge/library.properties new file mode 100644 index 00000000000..ce642f255e4 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/library.properties @@ -0,0 +1,10 @@ +name=Bridge +version=1.6.3 +author=Arduino +maintainer=Arduino +sentence=Enables the communication between the Linux processor and the microcontroller. For Arduino/Genuino Yún, Yún Shield and TRE only. +paragraph=The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers. +category=Communication +url=http://www.arduino.cc/en/Reference/YunBridgeLibrary +architectures=* +dot_a_linkage=true diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Bridge.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Bridge.cpp new file mode 100644 index 00000000000..02be3805e1d --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Bridge.cpp @@ -0,0 +1,281 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "Bridge.h" + +BridgeClass::BridgeClass(Stream &_stream) : + index(0), stream(_stream), started(false), max_retries(0) { + // Empty +} + +void BridgeClass::begin() { + if (started) + return; + started = true; + + // Wait for U-boot to finish startup + do { + dropAll(); + delay(1000); + } while (stream.available() > 0); + + while (true) { + // Bridge interrupt: + // - Ask the bridge to close itself + uint8_t quit_cmd[] = {'X', 'X', 'X', 'X', 'X'}; + max_retries = 1; + transfer(quit_cmd, 5); + + // Bridge startup: + // - If the bridge is not running starts it safely + stream.print(CTRL_C); + delay(250); + stream.print(F("\n")); + delay(250); + stream.print(F("\n")); + delay(500); + // Wait for OpenWRT message + // "Press enter to activate console" + stream.print(F("run-bridge\n")); + delay(500); + dropAll(); + + // Reset the brigde to check if it is running + uint8_t cmd[] = {'X', 'X', '1', '0', '0'}; + uint8_t res[4]; + max_retries = 50; + uint16_t l = transfer(cmd, 5, res, 4); + if (l == TRANSFER_TIMEOUT) { + // Bridge didn't start... + // Maybe the board is starting-up? + + // Wait and retry + delay(1000); + continue; + } + if (res[0] != 0) + while (true); + + // Detect bridge version + if (l == 4) { + bridgeVersion = (res[1]-'0')*100 + (res[2]-'0')*10 + (res[3]-'0'); + } else { + // Bridge v1.0.0 didn't send any version info + bridgeVersion = 100; + } + + max_retries = 50; + return; + } +} + +void BridgeClass::put(const char *key, const char *value) { + // TODO: do it in a more efficient way + String cmd = "D"; + uint8_t res[1]; + cmd += key; + cmd += "\xFE"; + cmd += value; + transfer((uint8_t*)cmd.c_str(), cmd.length(), res, 1); +} + +unsigned int BridgeClass::get(const char *key, uint8_t *value, unsigned int maxlen) { + uint8_t cmd[] = {'d'}; + unsigned int l = transfer(cmd, 1, (uint8_t *)key, strlen(key), value, maxlen); + if (l < maxlen) + value[l] = 0; // Zero-terminate string + return l; +} + +#if defined(ARDUINO_ARCH_AVR) +// AVR use an optimized implementation of CRC +#include +#else +// Generic implementation for non-AVR architectures +uint16_t _crc_ccitt_update(uint16_t crc, uint8_t data) +{ + data ^= crc & 0xff; + data ^= data << 4; + return ((((uint16_t)data << 8) | ((crc >> 8) & 0xff)) ^ + (uint8_t)(data >> 4) ^ + ((uint16_t)data << 3)); +} +#endif + +void BridgeClass::crcUpdate(uint8_t c) { + CRC = _crc_ccitt_update(CRC, c); +} + +void BridgeClass::crcReset() { + CRC = 0xFFFF; +} + +void BridgeClass::crcWrite() { + stream.write((char)(CRC >> 8)); + stream.write((char)(CRC & 0xFF)); +} + +bool BridgeClass::crcCheck(uint16_t _CRC) { + return CRC == _CRC; +} + +uint16_t BridgeClass::transfer(const uint8_t *buff1, uint16_t len1, + const uint8_t *buff2, uint16_t len2, + const uint8_t *buff3, uint16_t len3, + uint8_t *rxbuff, uint16_t rxlen) +{ + uint16_t len = len1 + len2 + len3; + uint8_t retries = 0; + for ( ; retries < max_retries; retries++, delay(100), dropAll() /* Delay for retransmission */) { + // Send packet + crcReset(); + stream.write((char)0xFF); // Start of packet (0xFF) + crcUpdate(0xFF); + stream.write((char)index); // Message index + crcUpdate(index); + stream.write((char)((len >> 8) & 0xFF)); // Message length (hi) + crcUpdate((len >> 8) & 0xFF); + stream.write((char)(len & 0xFF)); // Message length (lo) + crcUpdate(len & 0xFF); + for (uint16_t i = 0; i < len1; i++) { // Payload + stream.write((char)buff1[i]); + crcUpdate(buff1[i]); + } + for (uint16_t i = 0; i < len2; i++) { // Payload + stream.write((char)buff2[i]); + crcUpdate(buff2[i]); + } + for (uint16_t i = 0; i < len3; i++) { // Payload + stream.write((char)buff3[i]); + crcUpdate(buff3[i]); + } + crcWrite(); // CRC + + // Wait for ACK in 100ms + if (timedRead(100) != 0xFF) + continue; + crcReset(); + crcUpdate(0xFF); + + // Check packet index + if (timedRead(5) != index) + continue; + crcUpdate(index); + + // Recv len + int lh = timedRead(10); + if (lh < 0) + continue; + crcUpdate(lh); + int ll = timedRead(10); + if (ll < 0) + continue; + crcUpdate(ll); + uint16_t l = lh; + l <<= 8; + l += ll; + + // Recv data + for (uint16_t i = 0; i < l; i++) { + // Cut received data if rxbuffer is too small + if (i >= rxlen) + break; + int c = timedRead(5); + if (c < 0) + continue; + rxbuff[i] = c; + crcUpdate(c); + } + + // Check CRC + int crc_hi = timedRead(5); + if (crc_hi < 0) + continue; + int crc_lo = timedRead(5); + if (crc_lo < 0) + continue; + if (!crcCheck((crc_hi << 8) + crc_lo)) + continue; + + // Increase index + index++; + + // Return bytes received + if (l > rxlen) + return rxlen; + return l; + } + + // Max retries exceeded + return TRANSFER_TIMEOUT; +} + +int BridgeClass::timedRead(unsigned int timeout) { + int c; + unsigned long _startMillis = millis(); + do { + c = stream.read(); + if (c >= 0) return c; + } while (millis() - _startMillis < timeout); + return -1; // -1 indicates timeout +} + +void BridgeClass::dropAll() { + while (stream.available() > 0) { + stream.read(); + } +} + +#if defined(ARDUINO_ARCH_SAM) +#include +#endif + +#if defined(ARDUINO_ARCH_SAM) +void checkForRemoteSketchUpdate(uint8_t pin) { + // The host force pin LOW to signal that a new sketch is coming + pinMode(pin, INPUT_PULLUP); + delay(50); + if (digitalRead(pin) == LOW) { + initiateReset(1); + while (true) + ; // Wait for reset to SAM-BA + } + + // Restore in standard state + pinMode(pin, INPUT); +} +#else +void checkForRemoteSketchUpdate(uint8_t /* pin */) { + // Empty, bootloader is enough. +} +#endif + +// Bridge instance +#if defined(SERIAL_PORT_LINUXBRIDGE) +SerialBridgeClass Bridge(SERIAL_PORT_LINUXBRIDGE); +#elif defined(SERIAL_PORT_HARDWARE) +SerialBridgeClass Bridge(SERIAL_PORT_HARDWARE); +#elif defined(SERIAL_PORT_HARDWARE_OPEN) +SerialBridgeClass Bridge(SERIAL_PORT_HARDWARE_OPEN); +#elif defined(__AVR_ATmega32U4__) // Legacy fallback +// Leonardo variants (where HardwareSerial is Serial1) +SerialBridgeClass Bridge(Serial1); +#else +SerialBridgeClass Bridge(Serial); +#endif + diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Bridge.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Bridge.h new file mode 100644 index 00000000000..63361f17295 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Bridge.h @@ -0,0 +1,125 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef BRIDGE_H_ +#define BRIDGE_H_ + +#ifndef BRIDGE_BAUDRATE +#define BRIDGE_BAUDRATE 250000 +#endif + +#include +#include + +class BridgeClass { + public: + BridgeClass(Stream &_stream); + void begin(); + + // Methods to handle key/value datastore + void put(const char *key, const char *value); + void put(const String &key, const String &value) + { + put(key.c_str(), value.c_str()); + } + unsigned int get(const char *key, uint8_t *buff, unsigned int size); + unsigned int get(const char *key, char *value, unsigned int maxlen) + { + return get(key, reinterpret_cast(value), maxlen); + } + + // Trasnfer a frame (with error correction and response) + uint16_t transfer(const uint8_t *buff1, uint16_t len1, + const uint8_t *buff2, uint16_t len2, + const uint8_t *buff3, uint16_t len3, + uint8_t *rxbuff, uint16_t rxlen); + // multiple inline versions of the same function to allow efficient frame concatenation + uint16_t transfer(const uint8_t *buff1, uint16_t len1) + { + return transfer(buff1, len1, NULL, 0); + } + uint16_t transfer(const uint8_t *buff1, uint16_t len1, + uint8_t *rxbuff, uint16_t rxlen) + { + return transfer(buff1, len1, NULL, 0, rxbuff, rxlen); + } + uint16_t transfer(const uint8_t *buff1, uint16_t len1, + const uint8_t *buff2, uint16_t len2, + uint8_t *rxbuff, uint16_t rxlen) + { + return transfer(buff1, len1, buff2, len2, NULL, 0, rxbuff, rxlen); + } + + uint16_t getBridgeVersion() + { + return bridgeVersion; + } + + static const uint16_t TRANSFER_TIMEOUT = 0xFFFF; + + private: + uint8_t index; + int timedRead(unsigned int timeout); + void dropAll(); + uint16_t bridgeVersion; + + private: + void crcUpdate(uint8_t c); + void crcReset(); + void crcWrite(); + bool crcCheck(uint16_t _CRC); + uint16_t CRC; + + private: + static const char CTRL_C = 3; + Stream &stream; + bool started; + uint8_t max_retries; +}; + +// This subclass uses a serial port Stream +class SerialBridgeClass : public BridgeClass { + public: + SerialBridgeClass(HardwareSerial &_serial) + : BridgeClass(_serial), serial(_serial) { + // Empty + } + + void begin(unsigned long baudrate = BRIDGE_BAUDRATE) { + serial.begin(baudrate); + BridgeClass::begin(); + } + + private: + HardwareSerial &serial; +}; + +extern SerialBridgeClass Bridge; + +// Some microcrontrollers don't start the bootloader after a reset. +// This function is intended to let the microcontroller erase its +// flash after checking a specific signal coming from the external +// device without the need to press the erase button on the board. +// The purpose is to enable a software update that does not require +// a manual interaction with the board. +extern void checkForRemoteSketchUpdate(uint8_t pin = 7); + +#endif /* BRIDGE_H_ */ + +#include +#include diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeClient.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeClient.cpp new file mode 100644 index 00000000000..a342abcf2aa --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeClient.cpp @@ -0,0 +1,207 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +BridgeClient::BridgeClient(uint8_t _h, BridgeClass &_b) : + bridge(_b), handle(_h), opened(true), buffered(0) { +} + +BridgeClient::BridgeClient(BridgeClass &_b) : + bridge(_b), handle(0), opened(false), buffered(0) { +} + +BridgeClient::~BridgeClient() { +} + +BridgeClient& BridgeClient::operator=(const BridgeClient &_x) { + opened = _x.opened; + handle = _x.handle; + return *this; +} + +void BridgeClient::stop() { + if (opened) { + uint8_t cmd[] = {'j', handle}; + bridge.transfer(cmd, 2); + } + opened = false; + buffered = 0; + readPos = 0; +} + +void BridgeClient::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + + // Try to buffer up to 32 characters + readPos = 0; + uint8_t cmd[] = {'K', handle, sizeof(buffer)}; + buffered = bridge.transfer(cmd, 3, buffer, sizeof(buffer)); +} + +int BridgeClient::available() { + // Look if there is new data available + doBuffer(); + return buffered; +} + +int BridgeClient::read() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else { + buffered--; + return buffer[readPos++]; + } +} + +int BridgeClient::read(uint8_t *buff, size_t size) { + size_t readed = 0; + do { + if (buffered == 0) { + doBuffer(); + if (buffered == 0) + return readed; + } + buff[readed++] = buffer[readPos++]; + buffered--; + } while (readed < size); + return readed; +} + +int BridgeClient::peek() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else + return buffer[readPos]; +} + +size_t BridgeClient::write(uint8_t c) { + if (!opened) + return 0; + uint8_t cmd[] = {'l', handle, c}; + bridge.transfer(cmd, 3); + return 1; +} + +size_t BridgeClient::write(const uint8_t *buf, size_t size) { + if (!opened) + return 0; + uint8_t cmd[] = {'l', handle}; + bridge.transfer(cmd, 2, buf, size, NULL, 0); + return size; +} + +void BridgeClient::flush() { +} + +uint8_t BridgeClient::connected() { + if (!opened) + return false; + // Client is "connected" if it has unread bytes + if (available()) + return true; + + uint8_t cmd[] = {'L', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, res, 1); + return (res[0] == 1); +} + +int BridgeClient::connect(IPAddress ip, uint16_t port) { + String address; + address.reserve(18); + address += ip[0]; + address += '.'; + address += ip[1]; + address += '.'; + address += ip[2]; + address += '.'; + address += ip[3]; + return connect(address.c_str(), port); +} + +int BridgeClient::connect(const char *host, uint16_t port) { + uint8_t tmp[] = { + 'C', + static_cast(port >> 8), + static_cast(port) + }; + uint8_t res[1]; + int l = bridge.transfer(tmp, 3, (const uint8_t *)host, strlen(host), res, 1); + if (l == 0) + return 0; + handle = res[0]; + + // wait for connection + uint8_t tmp2[] = { 'c', handle }; + uint8_t res2[1]; + while (true) { + bridge.transfer(tmp2, 2, res2, 1); + if (res2[0] == 0) + break; + delay(1); + } + opened = true; + + // check for successful connection + if (connected()) + return 1; + + stop(); + handle = 0; + return 0; +} + +int BridgeClient::connectSSL(const char *host, uint16_t port) { + if (bridge.getBridgeVersion() < 161) + return -1; + + uint8_t tmp[] = { + 'Z', + static_cast(port >> 8), + static_cast(port) + }; + uint8_t res[1]; + int l = bridge.transfer(tmp, 3, (const uint8_t *)host, strlen(host), res, 1); + if (l == 0) + return 0; + handle = res[0]; + + // wait for connection + uint8_t tmp2[] = { 'c', handle }; + uint8_t res2[1]; + while (true) { + bridge.transfer(tmp2, 2, res2, 1); + if (res2[0] == 0) + break; + delay(1); + } + opened = true; + + // check for successful connection + if (connected()) + return 1; + + stop(); + handle = 0; + return 0; +} \ No newline at end of file diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeClient.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeClient.h new file mode 100644 index 00000000000..a55ebb71294 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeClient.h @@ -0,0 +1,71 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _BRIDGE_CLIENT_H_ +#define _BRIDGE_CLIENT_H_ + +#include +#include + +class BridgeClient : public Client { + public: + // Constructor with a user provided BridgeClass instance + BridgeClient(uint8_t _h, BridgeClass &_b = Bridge); + BridgeClient(BridgeClass &_b = Bridge); + ~BridgeClient(); + + // Stream methods + // (read message) + virtual int available(); + virtual int read(); + virtual int read(uint8_t *buf, size_t size); + virtual int peek(); + // (write response) + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *buf, size_t size); + virtual void flush(); + // TODO: add optimized function for block write + + virtual operator bool () { + return opened; + } + + virtual BridgeClient& operator=(const BridgeClient &_x); + + virtual void stop(); + virtual uint8_t connected(); + + virtual int connect(IPAddress ip, uint16_t port); + virtual int connect(const char *host, uint16_t port); + int connectSSL(const char* host, uint16_t port); + + private: + BridgeClass &bridge; + uint8_t handle; + boolean opened; + + private: + void doBuffer(); + uint8_t buffered; + uint8_t readPos; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; + +}; + +#endif // _BRIDGE_CLIENT_H_ diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeSSLClient.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeSSLClient.cpp new file mode 100644 index 00000000000..dd8d34b0a2c --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeSSLClient.cpp @@ -0,0 +1,36 @@ +/* + Copyright (c) 2016 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +BridgeSSLClient::BridgeSSLClient(uint8_t _h, BridgeClass &_b) : + BridgeClient(_h, _b) +{ +} + +BridgeSSLClient::BridgeSSLClient(BridgeClass &_b): + BridgeClient(_b) +{ +} + +BridgeSSLClient::~BridgeSSLClient() { +} + +int BridgeSSLClient::connect(const char *host, uint16_t port) { + return BridgeClient::connectSSL(host, port); +} \ No newline at end of file diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeSSLClient.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeSSLClient.h new file mode 100644 index 00000000000..2f09afbeb6c --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeSSLClient.h @@ -0,0 +1,36 @@ +/* + Copyright (c) 2016 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _BRIDGE_SSL_CLIENT_H_ +#define _BRIDGE_SSL_CLIENT_H_ + +#include +#include +#include + +class BridgeSSLClient : public BridgeClient { + public: + // Constructor with a user provided BridgeClass instance + BridgeSSLClient(uint8_t _h, BridgeClass &_b = Bridge); + BridgeSSLClient(BridgeClass &_b = Bridge); + ~BridgeSSLClient(); + + virtual int connect(const char* host, uint16_t port); +}; + +#endif // _BRIDGE_SSL_CLIENT_H_ diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeServer.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeServer.cpp new file mode 100644 index 00000000000..a7aa9b0ae7d --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeServer.cpp @@ -0,0 +1,54 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include +#include + +BridgeServer::BridgeServer(uint16_t _p, BridgeClass &_b) : + bridge(_b), port(_p), listening(false), useLocalhost(false) { +} + +void BridgeServer::begin() { + uint8_t tmp[] = { + 'N', + static_cast(port >> 8), + static_cast(port) + }; + uint8_t res[1]; + String address = F("127.0.0.1"); + if (!useLocalhost) + address = F("0.0.0.0"); + bridge.transfer(tmp, 3, (const uint8_t *)address.c_str(), address.length(), res, 1); + listening = (res[0] == 1); +} + +BridgeClient BridgeServer::accept() { + uint8_t cmd[] = {'k'}; + uint8_t res[1]; + unsigned int l = bridge.transfer(cmd, 1, res, 1); + if (l == 0) + return BridgeClient(); + return BridgeClient(res[0]); +} + +size_t BridgeServer::write(uint8_t c) { + uint8_t cmd[] = { 'b', c }; + bridge.transfer(cmd, 2); + return 1; +} + diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeServer.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeServer.h new file mode 100644 index 00000000000..676a9729bd6 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeServer.h @@ -0,0 +1,51 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _BRIDGE_SERVER_H_ +#define _BRIDGE_SERVER_H_ + +#include +#include + +class BridgeClient; + +class BridgeServer : public Server { + public: + // Constructor with a user provided BridgeClass instance + BridgeServer(uint16_t port = 5555, BridgeClass &_b = Bridge); + + void begin(); + BridgeClient accept(); + + virtual size_t write(uint8_t c); + + void listenOnLocalhost() { + useLocalhost = true; + } + void noListenOnLocalhost() { + useLocalhost = false; + } + + private: + BridgeClass &bridge; + uint16_t port; + bool listening; + bool useLocalhost; +}; + +#endif // _BRIDGE_SERVER_H_ diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeUdp.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeUdp.cpp new file mode 100644 index 00000000000..ae630e3ab8f --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeUdp.cpp @@ -0,0 +1,198 @@ +/* + Copyright (c) 2015 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "BridgeUdp.h" + +BridgeUDP::BridgeUDP(BridgeClass &_b) : + bridge(_b), opened(false), avail(0), buffered(0), readPos(0) { +} + +/* Start BridgeUDP socket, listening at local port PORT */ +uint8_t BridgeUDP::begin(uint16_t port) { + if (opened) + return 0; + uint8_t cmd[] = {'e', (uint8_t)((port >> 8) & 0xFF), (uint8_t)(port & 0xFF)}; + uint8_t res[2]; + bridge.transfer(cmd, 3, res, 2); + if (res[1] == 1) // Error... + return 0; + handle = res[0]; + opened = true; + return 1; +} + +/* Release any resources being used by this BridgeUDP instance */ +void BridgeUDP::stop() +{ + if (!opened) + return; + uint8_t cmd[] = {'q', handle}; + bridge.transfer(cmd, 2); + opened = false; +} + +int BridgeUDP::beginPacket(const char *host, uint16_t port) +{ + if (!opened) + return 0; + uint8_t cmd[] = {'E', handle, (uint8_t)((port >> 8) & 0xFF), (uint8_t)(port & 0xFF)}; + uint8_t res[1]; + bridge.transfer(cmd, 4, (const uint8_t *)host, strlen(host), res, 1); + return res[0]; // 1=Success, 0=Error +} + +int BridgeUDP::beginBroadcastPacket(uint16_t port) +{ + if (!opened) + return 0; + uint8_t cmd[] = {'v', handle, (uint8_t)((port >> 8) & 0xFF), (uint8_t)(port & 0xFF)}; + uint8_t res[1]; + bridge.transfer(cmd, 4, res, 1); + return res[0]; // 1=Success, 0=Error +} + +int BridgeUDP::beginPacket(IPAddress ip, uint16_t port) +{ + if (!opened) + return 0; + String address; + address.reserve(18); + address += ip[0]; + address += '.'; + address += ip[1]; + address += '.'; + address += ip[2]; + address += '.'; + address += ip[3]; + return beginPacket(address.c_str(), port); +} + +int BridgeUDP::endPacket() +{ + if (!opened) + return 0; + uint8_t cmd[] = {'H', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, res, 1); + return res[0]; // 1=Success, 0=Error +} + +size_t BridgeUDP::write(const uint8_t *buffer, size_t size) +{ + if (!opened) + return 0; + uint8_t cmd[] = {'h', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, buffer, size, res, 1); + return res[0]; // 1=Success, 0=Error +} + +int BridgeUDP::parsePacket() +{ + if (!opened) + return 0; + buffered = 0; + readPos = 0; + uint8_t cmd[] = {'Q', handle}; + uint8_t res[3]; + bridge.transfer(cmd, 2, res, 3); + if (res[0] == 0) { + // There aren't any packets available + return 0; + } + avail = (res[1] << 8) + res[2]; + return 1; +} + +void BridgeUDP::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + if (avail == 0) + return; + + // Try to buffer up to 32 characters + readPos = 0; + uint8_t cmd[] = {'u', handle, sizeof(buffer)}; + buffered = bridge.transfer(cmd, 3, buffer, sizeof(buffer)); +} + +int BridgeUDP::read() +{ + if (!opened) + return -1; + doBuffer(); + if (buffered == 0) { + return -1; // no chars available + } + buffered--; + avail--; + return buffer[readPos++]; +} + +int BridgeUDP::read(unsigned char* buff, size_t size) +{ + if (!opened) + return -1; + size_t readed = 0; + do { + if (buffered == 0) { + doBuffer(); + if (buffered == 0) + return readed; + } + buff[readed++] = buffer[readPos++]; + buffered--; + avail--; + } while (readed < size); + return readed; +} + +int BridgeUDP::peek() +{ + if (!opened) + return -1; + doBuffer(); + if (buffered == 0) + return -1; // no chars available + return buffer[readPos]; +} + +IPAddress BridgeUDP::remoteIP() +{ + if (!opened) + return -1; + uint8_t cmd[] = {'T', handle}; + uint8_t res[7]; + bridge.transfer(cmd, 2, res, 7); + if (res[0] == 0) + return IPAddress(0,0,0,0); + return IPAddress(res[1], res[2], res[3], res[4]); +} + +uint16_t BridgeUDP::remotePort() +{ + if (!opened) + return -1; + uint8_t cmd[] = {'T', handle}; + uint8_t res[7]; + bridge.transfer(cmd, 2, res, 7); + if (res[0] == 0) + return 0; + return (res[5] << 8) + res[6]; +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeUdp.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeUdp.h new file mode 100644 index 00000000000..73cec54ea62 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/BridgeUdp.h @@ -0,0 +1,65 @@ +/* + Copyright (c) 2015 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include +#include "Bridge.h" + +class BridgeUDP : public UDP { + + public: + BridgeUDP(BridgeClass &_b = Bridge); + virtual uint8_t begin(uint16_t); + virtual void stop(); + + virtual int beginPacket(IPAddress ip, uint16_t port); + virtual int beginPacket(const char *host, uint16_t port); + virtual int beginBroadcastPacket(uint16_t port); + virtual int endPacket(); + virtual size_t write(uint8_t d) { return write(&d, 1); } + virtual size_t write(const uint8_t *buffer, size_t size); + + using Print::write; + + virtual int parsePacket(); + /* return number of bytes available in the current packet, + will return zero if parsePacket hasn't been called yet */ + virtual int available() { return avail; } + virtual int read(); + virtual int read(unsigned char* buffer, size_t len); + virtual int read(char* buffer, size_t len) { return read((unsigned char*)buffer, len); }; + virtual int peek(); + virtual void flush() { avail = 0; } + + virtual IPAddress remoteIP(); + virtual uint16_t remotePort(); + + private: + BridgeClass &bridge; + uint8_t handle; + boolean opened; + + private: + void doBuffer(); + uint16_t avail; + uint8_t buffered; + uint8_t readPos; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; +}; diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Console.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Console.cpp new file mode 100644 index 00000000000..7e8323d4504 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Console.cpp @@ -0,0 +1,150 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +// Default constructor uses global Bridge instance +ConsoleClass::ConsoleClass() : + bridge(Bridge), inBuffered(0), inReadPos(0), inBuffer(NULL), + autoFlush(true) +{ + // Empty +} + +// Constructor with a user provided BridgeClass instance +ConsoleClass::ConsoleClass(BridgeClass &_b) : + bridge(_b), inBuffered(0), inReadPos(0), inBuffer(NULL), + autoFlush(true) +{ + // Empty +} + +ConsoleClass::~ConsoleClass() { + end(); +} + +size_t ConsoleClass::write(uint8_t c) { + if (autoFlush) { + uint8_t tmp[] = { 'P', c }; + bridge.transfer(tmp, 2); + } else { + outBuffer[outBuffered++] = c; + if (outBuffered == outBufferSize) + flush(); + } + return 1; +} + +size_t ConsoleClass::write(const uint8_t *buff, size_t size) { + if (autoFlush) { + uint8_t tmp[] = { 'P' }; + bridge.transfer(tmp, 1, buff, size, NULL, 0); + } else { + size_t sent = size; + while (sent > 0) { + outBuffer[outBuffered++] = *buff++; + sent--; + if (outBuffered == outBufferSize) + flush(); + } + } + return size; +} + +void ConsoleClass::flush() { + if (autoFlush) + return; + + bridge.transfer(outBuffer, outBuffered); + outBuffered = 1; +} + +void ConsoleClass::noBuffer() { + if (autoFlush) + return; + delete[] outBuffer; + autoFlush = true; +} + +void ConsoleClass::buffer(uint8_t size) { + noBuffer(); + if (size == 0) + return; + outBuffer = new uint8_t[size + 1]; + outBuffer[0] = 'P'; // WRITE tag + outBufferSize = size + 1; + outBuffered = 1; + autoFlush = false; +} + +bool ConsoleClass::connected() { + uint8_t tmp = 'a'; + bridge.transfer(&tmp, 1, &tmp, 1); + return tmp == 1; +} + +int ConsoleClass::available() { + // Look if there is new data available + doBuffer(); + return inBuffered; +} + +int ConsoleClass::read() { + doBuffer(); + if (inBuffered == 0) + return -1; // no chars available + else { + inBuffered--; + return inBuffer[inReadPos++]; + } +} + +int ConsoleClass::peek() { + doBuffer(); + if (inBuffered == 0) + return -1; // no chars available + else + return inBuffer[inReadPos]; +} + +void ConsoleClass::doBuffer() { + // If there are already char in buffer exit + if (inBuffered > 0) + return; + + // Try to buffer up to 32 characters + inReadPos = 0; + uint8_t tmp[] = { 'p', BUFFER_SIZE }; + inBuffered = bridge.transfer(tmp, 2, inBuffer, BUFFER_SIZE); +} + +void ConsoleClass::begin() { + bridge.begin(); + end(); + inBuffer = new uint8_t[BUFFER_SIZE]; +} + +void ConsoleClass::end() { + noBuffer(); + if (inBuffer) { + delete[] inBuffer; + inBuffer = NULL; + } +} + +ConsoleClass Console; diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Console.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Console.h new file mode 100644 index 00000000000..ca05b08cf71 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Console.h @@ -0,0 +1,71 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef CONSOLE_H_ +#define CONSOLE_H_ + +#include + +class ConsoleClass : public Stream { + public: + // Default constructor uses global Bridge instance + ConsoleClass(); + // Constructor with a user provided BridgeClass instance + ConsoleClass(BridgeClass &_b); + ~ConsoleClass(); + + void begin(); + void end(); + + void buffer(uint8_t size); + void noBuffer(); + + bool connected(); + + // Stream methods + // (read from console socket) + int available(); + int read(); + int peek(); + // (write to console socket) + size_t write(uint8_t); + size_t write(const uint8_t *buffer, size_t size); + void flush(); + + operator bool () { + return connected(); + } + + private: + BridgeClass &bridge; + + void doBuffer(); + uint8_t inBuffered; + uint8_t inReadPos; + static const int BUFFER_SIZE = 32; + uint8_t *inBuffer; + + bool autoFlush; + uint8_t outBuffered; + uint8_t outBufferSize; + uint8_t *outBuffer; +}; + +extern ConsoleClass Console; + +#endif diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/FileIO.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/FileIO.cpp new file mode 100644 index 00000000000..e24a5679643 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/FileIO.cpp @@ -0,0 +1,283 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +namespace BridgeLib { + +File::File(BridgeClass &b) : bridge(b), mode(255) { + // Empty +} + +File::File(const char *_filename, uint8_t _mode, BridgeClass &b) : bridge(b), mode(_mode) { + filename = _filename; + uint8_t modes[] = {'r', 'w', 'a'}; + uint8_t cmd[] = {'F', modes[mode]}; + uint8_t res[2]; + dirPosition = 1; + bridge.transfer(cmd, 2, (uint8_t*)filename.c_str(), filename.length(), res, 2); + if (res[0] != 0) { // res[0] contains error code + mode = 255; // In case of error keep the file closed + return; + } + handle = res[1]; + buffered = 0; +} + +File::operator bool() { + return (mode != 255); +} + +File::~File() { + close(); +} + +size_t File::write(uint8_t c) { + return write(&c, 1); +} + +size_t File::write(const uint8_t *buf, size_t size) { + if (mode == 255) + return -1; + uint8_t cmd[] = {'g', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, buf, size, res, 1); + if (res[0] != 0) // res[0] contains error code + return -res[0]; + return size; +} + +int File::read() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else { + buffered--; + return buffer[readPos++]; + } +} + +int File::peek() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else + return buffer[readPos]; +} + +boolean File::seek(uint32_t position) { + uint8_t cmd[] = { + 's', + handle, + static_cast(position >> 24), + static_cast(position >> 16), + static_cast(position >> 8), + static_cast(position) + }; + uint8_t res[1]; + bridge.transfer(cmd, 6, res, 1); + if (res[0] == 0) { + // If seek succeed then flush buffers + buffered = 0; + return true; + } + return false; +} + +uint32_t File::position() { + uint8_t cmd[] = {'S', handle}; + uint8_t res[5]; + bridge.transfer(cmd, 2, res, 5); + //err = res[0]; // res[0] contains error code + uint32_t pos; + pos = static_cast(res[1]) << 24; + pos += static_cast(res[2]) << 16; + pos += static_cast(res[3]) << 8; + pos += static_cast(res[4]); + return pos - buffered; +} + +void File::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + + // Try to buffer up to BUFFER_SIZE characters + readPos = 0; + uint8_t cmd[] = {'G', handle, BUFFER_SIZE - 1}; + uint16_t readed = bridge.transfer(cmd, 3, buffer, BUFFER_SIZE); + //err = buff[0]; // First byte is error code + if (readed == BridgeClass::TRANSFER_TIMEOUT || readed == 0) { + // transfer failed to retrieve any data + buffered = 0; + } else { + // transfer retrieved at least one byte of data so skip the error code character + readPos++; + buffered = readed - 1; + } +} + +int File::available() { + // Look if there is new data available + doBuffer(); + return buffered; +} + +void File::flush() { +} + +int File::read(void *buff, uint16_t nbyte) { + uint16_t n = 0; + uint8_t *p = reinterpret_cast(buff); + while (n < nbyte) { + if (buffered == 0) { + doBuffer(); + if (buffered == 0) + break; + } + *p++ = buffer[readPos++]; + buffered--; + n++; + } + return n; +} + +uint32_t File::size() { + if (bridge.getBridgeVersion() < 101) + return 0; + uint8_t cmd[] = {'t', handle}; + uint8_t buff[5]; + bridge.transfer(cmd, 2, buff, 5); + //err = res[0]; // First byte is error code + uint32_t res; + res = ((uint32_t)buff[1]) << 24; + res |= ((uint32_t)buff[2]) << 16; + res |= ((uint32_t)buff[3]) << 8; + res |= ((uint32_t)buff[4]); + return res; +} + +void File::close() { + if (mode == 255) + return; + uint8_t cmd[] = {'f', handle}; + uint8_t ret[1]; + bridge.transfer(cmd, 2, ret, 1); + mode = 255; +} + +const char *File::name() { + return filename.c_str(); +} + + +boolean File::isDirectory() { + uint8_t res[1]; + uint8_t cmd[] = {'i'}; + if (mode != 255) + return 0; + + bridge.transfer(cmd, 1, (uint8_t *)filename.c_str(), filename.length(), res, 1); + return res[0]; +} + + +File File::openNextFile(uint8_t mode) { + Process awk; + char tmp; + String command; + String filepath; + if (dirPosition == 0xFFFF) return File(); + + command = "ls "; + command += filename; + command += " | awk 'NR=="; + command += dirPosition; + command += "'"; + + awk.runShellCommand(command); + + while (awk.running()); + + command = ""; + + while (awk.available()) { + tmp = awk.read(); + if (tmp != '\n') command += tmp; + } + if (command.length() == 0) + return File(); + dirPosition++; + filepath = filename + "/" + command; + return File(filepath.c_str(), mode); + +} + +void File::rewindDirectory(void) { + dirPosition = 1; +} + + + + + + +boolean FileSystemClass::begin() { + return true; +} + +File FileSystemClass::open(const char *filename, uint8_t mode) { + return File(filename, mode); +} + +boolean FileSystemClass::exists(const char *filepath) { + Process ls; + ls.begin("ls"); + ls.addParameter(filepath); + int res = ls.run(); + return (res == 0); +} + +boolean FileSystemClass::mkdir(const char *filepath) { + Process mk; + mk.begin("mkdir"); + mk.addParameter("-p"); + mk.addParameter(filepath); + int res = mk.run(); + return (res == 0); +} + +boolean FileSystemClass::remove(const char *filepath) { + Process rm; + rm.begin("rm"); + rm.addParameter(filepath); + int res = rm.run(); + return (res == 0); +} + +boolean FileSystemClass::rmdir(const char *filepath) { + Process rm; + rm.begin("rmdir"); + rm.addParameter(filepath); + int res = rm.run(); + return (res == 0); +} + +FileSystemClass FileSystem; + +} diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/FileIO.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/FileIO.h new file mode 100644 index 00000000000..c5a8e9eac07 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/FileIO.h @@ -0,0 +1,120 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef __FILEIO_H__ +#define __FILEIO_H__ + +#include + +#define FILE_READ 0 +#define FILE_WRITE 1 +#define FILE_APPEND 2 + +namespace BridgeLib { + +class File : public Stream { + + public: + File(BridgeClass &b = Bridge); + File(const char *_filename, uint8_t _mode, BridgeClass &b = Bridge); + ~File(); + + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *buf, size_t size); + virtual int read(); + virtual int peek(); + virtual int available(); + virtual void flush(); + int read(void *buf, uint16_t nbyte); + boolean seek(uint32_t pos); + uint32_t position(); + uint32_t size(); + void close(); + operator bool(); + const char * name(); + boolean isDirectory(); + File openNextFile(uint8_t mode = FILE_READ); + void rewindDirectory(void); + + //using Print::write; + + private: + void doBuffer(); + uint8_t buffered; + uint8_t readPos; + uint16_t dirPosition; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; + + + private: + BridgeClass &bridge; + String filename; + uint8_t mode; + uint8_t handle; + +}; + +class FileSystemClass { + public: + FileSystemClass() : bridge(Bridge) { } + FileSystemClass(BridgeClass &_b) : bridge(_b) { } + + boolean begin(); + + // Open the specified file/directory with the supplied mode (e.g. read or + // write, etc). Returns a File object for interacting with the file. + // Note that currently only one file can be open at a time. + File open(const char *filename, uint8_t mode = FILE_READ); + + // Methods to determine if the requested file path exists. + boolean exists(const char *filepath); + + // Create the requested directory hierarchy--if intermediate directories + // do not exist they will be created. + boolean mkdir(const char *filepath); + + // Delete the file. + boolean remove(const char *filepath); + + boolean rmdir(const char *filepath); + + private: + friend class File; + + BridgeClass &bridge; +}; + +extern FileSystemClass FileSystem; + +}; + +// We enclose File and FileSystem classes in namespace BridgeLib to avoid +// conflicts with legacy SD library. + +// This ensure compatibility with older sketches that uses only Bridge lib +// (the user can still use File instead of BridgeFile) +using namespace BridgeLib; + +// This allows sketches to use BridgeLib::File together with SD library +// (you must use BridgeFile instead of File when needed to disambiguate) +typedef BridgeLib::File BridgeFile; +typedef BridgeLib::FileSystemClass BridgeFileSystemClass; +#define BridgeFileSystem BridgeLib::FileSystem + +#endif diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/HttpClient.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/HttpClient.cpp new file mode 100644 index 00000000000..ee1629cc3b7 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/HttpClient.cpp @@ -0,0 +1,204 @@ +/* + Copyright (c) 2013-2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "HttpClient.h" + +HttpClient::HttpClient() : + insecure(false) { + // Empty +} + +unsigned int HttpClient::get(String &url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + return run(); +} + +unsigned int HttpClient::get(const char *url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::getAsynchronously(String &url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + runAsynchronously(); +} + +void HttpClient::getAsynchronously(const char *url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + runAsynchronously(); +} + +unsigned int HttpClient::post(String &url, String &data) { + return post(url.c_str(), data.c_str()); +} + +unsigned int HttpClient::post(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("POST"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::postAsynchronously(String &url, String &data) { + postAsynchronously(url.c_str(), data.c_str()); +} + +void HttpClient::postAsynchronously(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("POST"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + runAsynchronously(); +} + +unsigned int HttpClient::patch(String &url, String &data) { + return patch(url.c_str(), data.c_str()); +} + +unsigned int HttpClient::patch(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PATCH"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::patchAsynchronously(String &url, String &data) { + patchAsynchronously(url.c_str(), data.c_str()); +} + +void HttpClient::patchAsynchronously(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PATCH"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + runAsynchronously(); +} + +unsigned int HttpClient::put(String &url, String &data) { + return put(url.c_str(), data.c_str()); +} + +unsigned int HttpClient::put(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PUT"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::putAsynchronously(String &url, String &data) { + putAsynchronously(url.c_str(), data.c_str()); +} + +void HttpClient::putAsynchronously(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PUT"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + runAsynchronously(); +} + +boolean HttpClient::ready() { + return !running(); +} + +unsigned int HttpClient::getResult() { + return exitValue(); +} + +void HttpClient::noCheckSSL() { + insecure = true; +} + +void HttpClient::checkSSL() { + insecure = false; +} + +void HttpClient::setHeader(String &header) { + this->header = header; +} + +void HttpClient::setHeader(const char * header) { + this->header = String(header); +} + +void HttpClient::addHeader() { + if (header.length() > 0) { + addParameter("--header"); + addParameter(header); + } +} + diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/HttpClient.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/HttpClient.h new file mode 100644 index 00000000000..a6e3c77aa1a --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/HttpClient.h @@ -0,0 +1,59 @@ +/* + Copyright (c) 2013-2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef HTTPCLIENT_H_ +#define HTTPCLIENT_H_ + +#include + +class HttpClient : public Process { + public: + HttpClient(); + + unsigned int get(String &url); + unsigned int get(const char * url); + void getAsynchronously(String &url); + void getAsynchronously(const char * url); + unsigned int post(String &url, String &data); + unsigned int post(const char * url, const char * data); + void postAsynchronously(String &url, String &data); + void postAsynchronously(const char * url, const char * data); + unsigned int patch(String &url, String &data); + unsigned int patch(const char * url, const char * data); + void patchAsynchronously(String &url, String &data); + void patchAsynchronously(const char * url, const char * data); + unsigned int put(String &url, String &data); + unsigned int put(const char * url, const char * data); + void putAsynchronously(String &url, String &data); + void putAsynchronously(const char * url, const char * data); + void setHeader(String &header); + void setHeader(const char * header); + boolean ready(); + unsigned int getResult(); + void noCheckSSL(); + void checkSSL(); + + private: + boolean insecure; + + private: + void addHeader(); + String header; +}; + +#endif /* HTTPCLIENT_H_ */ diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Mailbox.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Mailbox.cpp new file mode 100644 index 00000000000..0c571f73a33 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Mailbox.cpp @@ -0,0 +1,56 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +unsigned int MailboxClass::readMessage(uint8_t *buff, unsigned int size) { + uint8_t tmp[] = { 'm' }; + return bridge.transfer(tmp, 1, buff, size); +} + +void MailboxClass::readMessage(String &str, unsigned int maxLength) { + uint8_t tmp[] = { 'm' }; + // XXX: Is there a better way to create the string? + uint8_t buff[maxLength + 1]; + int l = bridge.transfer(tmp, 1, buff, maxLength); + buff[l] = 0; + str = (const char *)buff; +} + +void MailboxClass::writeMessage(const uint8_t *buff, unsigned int size) { + uint8_t cmd[] = {'M'}; + bridge.transfer(cmd, 1, buff, size, NULL, 0); +} + +void MailboxClass::writeMessage(const String& str) { + writeMessage((uint8_t*) str.c_str(), str.length()); +} + +void MailboxClass::writeJSON(const String& str) { + uint8_t cmd[] = {'J'}; + bridge.transfer(cmd, 1, (uint8_t*) str.c_str(), str.length(), NULL, 0); +} + +unsigned int MailboxClass::messageAvailable() { + uint8_t tmp[] = {'n'}; + uint8_t res[2]; + bridge.transfer(tmp, 1, res, 2); + return (res[0] << 8) + res[1]; +} + +MailboxClass Mailbox(Bridge); diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Mailbox.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Mailbox.h new file mode 100644 index 00000000000..b2e383308a3 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Mailbox.h @@ -0,0 +1,53 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _MAILBOX_CLASS_H_INCLUDED_ +#define _MAILBOX_CLASS_H_INCLUDED_ + +#include + +class MailboxClass { + public: + MailboxClass(BridgeClass &b = Bridge) : bridge(b) { } + + void begin() { } + void end() { } + + // Receive a message and store it inside a buffer + unsigned int readMessage(uint8_t *buffer, unsigned int size); + // Receive a message and store it inside a String + void readMessage(String &str, unsigned int maxLength = 128); + + // Send a message + void writeMessage(const uint8_t *buffer, unsigned int size); + // Send a message + void writeMessage(const String& str); + // Send a JSON message + void writeJSON(const String& str); + + // Return the size of the next available message, 0 if there are + // no messages in queue. + unsigned int messageAvailable(); + + private: + BridgeClass &bridge; +}; + +extern MailboxClass Mailbox; + +#endif // _MAILBOX_CLASS_H_INCLUDED_ diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Process.cpp b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Process.cpp new file mode 100644 index 00000000000..987f0b8ac16 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Process.cpp @@ -0,0 +1,142 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +Process::~Process() { + close(); +} + +size_t Process::write(uint8_t c) { + uint8_t cmd[] = {'I', handle, c}; + bridge.transfer(cmd, 3); + return 1; +} + +void Process::flush() { +} + +int Process::available() { + // Look if there is new data available + doBuffer(); + return buffered; +} + +int Process::read() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else { + buffered--; + return buffer[readPos++]; + } +} + +int Process::peek() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else + return buffer[readPos]; +} + +void Process::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + + // Try to buffer up to 32 characters + readPos = 0; + uint8_t cmd[] = {'O', handle, sizeof(buffer)}; + buffered = bridge.transfer(cmd, 3, buffer, sizeof(buffer)); +} + +void Process::begin(const String &command) { + close(); + cmdline = new String(command); +} + +void Process::addParameter(const String ¶m) { + *cmdline += "\xFE"; + *cmdline += param; +} + +void Process::runAsynchronously() { + uint8_t cmd[] = {'R'}; + uint8_t res[2]; + bridge.transfer(cmd, 1, (uint8_t*)cmdline->c_str(), cmdline->length(), res, 2); + handle = res[1]; + + delete cmdline; + cmdline = NULL; + + if (res[0] == 0) // res[0] contains error code + started = true; +} + +boolean Process::running() { + uint8_t cmd[] = {'r', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, res, 1); + return (res[0] == 1); +} + +unsigned int Process::exitValue() { + uint8_t cmd[] = {'W', handle}; + uint8_t res[2]; + bridge.transfer(cmd, 2, res, 2); + return (res[0] << 8) + res[1]; +} + +unsigned int Process::run() { + runAsynchronously(); + while (running()) + delay(100); + return exitValue(); +} + +void Process::close() { + if (started) { + uint8_t cmd[] = {'w', handle}; + bridge.transfer(cmd, 2); + } + started = false; +} + +unsigned int Process::runShellCommand(const String &command) { + runShellCommandAsynchronously(command); + while (running()) + delay(100); + return exitValue(); +} + +void Process::runShellCommandAsynchronously(const String &command) { + begin("/bin/ash"); + addParameter("-c"); + addParameter(command); + runAsynchronously(); +} + +// This method is currently unused +//static unsigned int __commandOutputAvailable(uint8_t handle) { +// uint8_t cmd[] = {'o', handle}; +// uint8_t res[1]; +// Bridge.transfer(cmd, 2, res, 1); +// return res[0]; +//} + diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Process.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Process.h new file mode 100644 index 00000000000..7002764a03b --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/Process.h @@ -0,0 +1,71 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef PROCESS_H_ +#define PROCESS_H_ + +#include + +class Process : public Stream { + public: + // Constructor with a user provided BridgeClass instance + Process(BridgeClass &_b = Bridge) : + bridge(_b), started(false), buffered(0), readPos(0) { } + ~Process(); + + void begin(const String &command); + void addParameter(const String ¶m); + unsigned int run(); + void runAsynchronously(); + boolean running(); + unsigned int exitValue(); + void close(); + + unsigned int runShellCommand(const String &command); + void runShellCommandAsynchronously(const String &command); + + operator bool () { + return started; + } + + // Stream methods + // (read from process stdout) + int available(); + int read(); + int peek(); + // (write to process stdin) + size_t write(uint8_t); + void flush(); + // TODO: add optimized function for block write + + private: + BridgeClass &bridge; + uint8_t handle; + String *cmdline; + boolean started; + + private: + void doBuffer(); + uint8_t buffered; + uint8_t readPos; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; + +}; + +#endif diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/YunClient.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/YunClient.h new file mode 100644 index 00000000000..faff247c9b4 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/YunClient.h @@ -0,0 +1,27 @@ +/* + Copyright (c) 2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _YUN_CLIENT_H_ +#define _YUN_CLIENT_H_ + +#include + +#warning "The use of YunClient is deprecated. Use BridgeClient instead!" +typedef BridgeClient YunClient; + +#endif // _YUN_CLIENT_H_ diff --git a/app/testdata/libraries/Bridge_1.6.3/Bridge/src/YunServer.h b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/YunServer.h new file mode 100644 index 00000000000..95d05cd71e5 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.6.3/Bridge/src/YunServer.h @@ -0,0 +1,27 @@ +/* + Copyright (c) 2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _YUN_SERVER_H_ +#define _YUN_SERVER_H_ + +#include + +#warning "The use of YunServer is deprecated. Use BridgeServer instead!" +typedef BridgeServer YunServer; + +#endif // _YUN_SERVER_H_ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/README.adoc b/app/testdata/libraries/Bridge_1.7.0/Bridge/README.adoc new file mode 100644 index 00000000000..c660f86eec2 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/README.adoc @@ -0,0 +1,24 @@ += Bridge Library for Arduino = + +The Bridge library simplifies communication between the ATmega32U4 and the AR9331. + +For more information about this library please visit us at +http://www.arduino.cc/en/Reference/YunBridgeLibrary + +== License == + +Copyright (c) 2014 Arduino LLC. All right reserved. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library 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 +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Bridge/Bridge.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Bridge/Bridge.ino new file mode 100644 index 00000000000..35c3aac5a4a --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Bridge/Bridge.ino @@ -0,0 +1,183 @@ +/* + Arduino Yún Bridge example + + This example for the YunShield/Yún shows how + to use the Bridge library to access the digital and + analog pins on the board through REST calls. + It demonstrates how you can create your own API when + using REST style calls through the browser. + + Possible commands created in this shetch: + + "/arduino/digital/13" -> digitalRead(13) + "/arduino/digital/13/1" -> digitalWrite(13, HIGH) + "/arduino/analog/2/123" -> analogWrite(2, 123) + "/arduino/analog/2" -> analogRead(2) + "/arduino/mode/13/input" -> pinMode(13, INPUT) + "/arduino/mode/13/output" -> pinMode(13, OUTPUT) + + This example code is part of the public domain + + http://www.arduino.cc/en/Tutorial/Bridge + +*/ + +#include +#include +#include + +// Listen to the default port 5555, the Yún webserver +// will forward there all the HTTP requests you send +BridgeServer server; + +void setup() { + // Bridge startup + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + // Listen for incoming connection only from localhost + // (no one from the external network could connect) + server.listenOnLocalhost(); + server.begin(); +} + +void loop() { + // Get clients coming from server + BridgeClient client = server.accept(); + + // There is a new client? + if (client) { + // Process request + process(client); + + // Close connection and free resources. + client.stop(); + } + + delay(50); // Poll every 50ms +} + +void process(BridgeClient client) { + // read the command + String command = client.readStringUntil('/'); + + // is "digital" command? + if (command == "digital") { + digitalCommand(client); + } + + // is "analog" command? + if (command == "analog") { + analogCommand(client); + } + + // is "mode" command? + if (command == "mode") { + modeCommand(client); + } +} + +void digitalCommand(BridgeClient client) { + int pin, value; + + // Read pin number + pin = client.parseInt(); + + // If the next character is a '/' it means we have an URL + // with a value like: "/digital/13/1" + if (client.read() == '/') { + value = client.parseInt(); + digitalWrite(pin, value); + } else { + value = digitalRead(pin); + } + + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" set to ")); + client.println(value); + + // Update datastore key with the current pin value + String key = "D"; + key += pin; + Bridge.put(key, String(value)); +} + +void analogCommand(BridgeClient client) { + int pin, value; + + // Read pin number + pin = client.parseInt(); + + // If the next character is a '/' it means we have an URL + // with a value like: "/analog/5/120" + if (client.read() == '/') { + // Read value and execute command + value = client.parseInt(); + analogWrite(pin, value); + + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" set to analog ")); + client.println(value); + + // Update datastore key with the current pin value + String key = "D"; + key += pin; + Bridge.put(key, String(value)); + } else { + // Read analog pin + value = analogRead(pin); + + // Send feedback to client + client.print(F("Pin A")); + client.print(pin); + client.print(F(" reads analog ")); + client.println(value); + + // Update datastore key with the current pin value + String key = "A"; + key += pin; + Bridge.put(key, String(value)); + } +} + +void modeCommand(BridgeClient client) { + int pin; + + // Read pin number + pin = client.parseInt(); + + // If the next character is not a '/' we have a malformed URL + if (client.read() != '/') { + client.println(F("error")); + return; + } + + String mode = client.readStringUntil('\r'); + + if (mode == "input") { + pinMode(pin, INPUT); + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" configured as INPUT!")); + return; + } + + if (mode == "output") { + pinMode(pin, OUTPUT); + // Send feedback to client + client.print(F("Pin D")); + client.print(pin); + client.print(F(" configured as OUTPUT!")); + return; + } + + client.print(F("error: invalid mode ")); + client.print(mode); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsoleAsciiTable/ConsoleAsciiTable.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsoleAsciiTable/ConsoleAsciiTable.ino new file mode 100644 index 00000000000..e8b07d7aa71 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsoleAsciiTable/ConsoleAsciiTable.ino @@ -0,0 +1,95 @@ +/* + Console ASCII table for YunShield/Yún + Prints out byte values in all possible formats: + * as raw binary values + * as ASCII-encoded decimal, hex, octal, and binary values + + For more on ASCII, see http://www.asciitable.com and http://en.wikipedia.org/wiki/ASCII + + The circuit: + - YunShield/Yún + + created 2006 + by Nicholas Zambetti + http://www.zambetti.com + modified 9 Apr 2012 + by Tom Igoe + modified 22 May 2013 + by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ConsoleAsciiTable + + */ + +#include + +void setup() { + //Initialize Console and wait for port to open: + Bridge.begin(); + Console.begin(); + + // Uncomment the following line to enable buffering: + // - better transmission speed and efficiency + // - needs to call Console.flush() to ensure that all + // transmitted data is sent + + //Console.buffer(64); + + while (!Console) { + ; // wait for Console port to connect. + } + + // prints title with ending line break + Console.println("ASCII Table ~ Character Map"); +} + +// first visible ASCIIcharacter '!' is number 33: +int thisByte = 33; +// you can also write ASCII characters in single quotes. +// for example. '!' is the same as 33, so you could also use this: +//int thisByte = '!'; + +void loop() { + // prints value unaltered, i.e. the raw binary version of the + // byte. The Console monitor interprets all bytes as + // ASCII, so 33, the first number, will show up as '!' + Console.write(thisByte); + + Console.print(", dec: "); + // prints value as string as an ASCII-encoded decimal (base 10). + // Decimal is the default format for Console.print() and Console.println(), + // so no modifier is needed: + Console.print(thisByte); + // But you can declare the modifier for decimal if you want to. + //this also works if you uncomment it: + + // Console.print(thisByte, DEC); + + Console.print(", hex: "); + // prints value as string in hexadecimal (base 16): + Console.print(thisByte, HEX); + + Console.print(", oct: "); + // prints value as string in octal (base 8); + Console.print(thisByte, OCT); + + Console.print(", bin: "); + // prints value as string in binary (base 2) + // also prints ending line break: + Console.println(thisByte, BIN); + + // if printed last visible character '~' or 126, stop: + if (thisByte == 126) { // you could also use if (thisByte == '~') { + // ensure the latest bit of data is sent + Console.flush(); + + // This loop loops forever and does nothing + while (true) { + continue; + } + } + // go on to the next character + thisByte++; +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsolePixel/ConsolePixel.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsolePixel/ConsolePixel.ino new file mode 100644 index 00000000000..6479b135b4e --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsolePixel/ConsolePixel.ino @@ -0,0 +1,63 @@ +/* + Console Pixel + + An example of using YunShield/Yún board to receive data from the + Console on the Yún. In this case, the board turns on an LED when + it receives the character 'H', and turns off the LED when it + receives the character 'L'. + + To see the Console, pick your Yún's name and IP address in the Port menu + then open the Port Monitor. You can also see it by opening a terminal window + and typing + ssh root@ yourYunsName.local 'telnet localhost 6571' + then pressing enter. When prompted for the password, enter it. + + + The circuit: + * LED connected from digital pin 13 to ground + + created 2006 + by David A. Mellis + modified 25 Jun 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ConsolePixel + + */ + +#include + +const int ledPin = 13; // the pin that the LED is attached to +char incomingByte; // a variable to read incoming Console data into + +void setup() { + Bridge.begin(); // Initialize Bridge + Console.begin(); // Initialize Console + + // Wait for the Console port to connect + while (!Console); + + Console.println("type H or L to turn pin 13 on or off"); + + // initialize the LED pin as an output: + pinMode(ledPin, OUTPUT); +} + +void loop() { + // see if there's incoming Console data: + if (Console.available() > 0) { + // read the oldest byte in the Console buffer: + incomingByte = Console.read(); + Console.println(incomingByte); + // if it's a capital H (ASCII 72), turn on the LED: + if (incomingByte == 'H') { + digitalWrite(ledPin, HIGH); + } + // if it's an L (ASCII 76) turn off the LED: + if (incomingByte == 'L') { + digitalWrite(ledPin, LOW); + } + } +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsoleRead/ConsoleRead.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsoleRead/ConsoleRead.ino new file mode 100644 index 00000000000..fc63fcc6dd3 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ConsoleRead/ConsoleRead.ino @@ -0,0 +1,58 @@ +/* +Console Read example for YunShield/Yún + + Read data coming from bridge using the Console.read() function + and store it in a string. + + To see the Console, pick your Yún's name and IP address in the Port menu + then open the Port Monitor. You can also see it by opening a terminal window + and typing: + ssh root@ yourYunsName.local 'telnet localhost 6571' + then pressing enter. When prompted for the password, enter it. + + created 13 Jun 2013 + by Angelo Scialabba + modified 16 June 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ConsoleRead + + */ + +#include + +String name; + +void setup() { + // Initialize Console and wait for port to open: + Bridge.begin(); + Console.begin(); + + // Wait for Console port to connect + while (!Console); + + Console.println("Hi, what's your name?"); +} + +void loop() { + if (Console.available() > 0) { + char c = Console.read(); // read the next char received + // look for the newline character, this is the last character in the string + if (c == '\n') { + //print text with the name received + Console.print("Hi "); + Console.print(name); + Console.println("! Nice to meet you!"); + Console.println(); + // Ask again for name and clear the old name + Console.println("Hi, what's your name?"); + name = ""; // clear the name string + } else { // if the buffer is empty Cosole.read() returns -1 + name += c; // append the read char from Console to the name string + } + } else { + delay(100); + } +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Datalogger/Datalogger.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Datalogger/Datalogger.ino new file mode 100644 index 00000000000..cc84828a080 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Datalogger/Datalogger.ino @@ -0,0 +1,102 @@ +/* + SD card datalogger + + This example shows how to log data from three analog sensors + to an SD card mounted on the YunShield/Yún using the Bridge library. + + The circuit: + * analog sensors on analog pins 0, 1 and 2 + * SD card attached to SD card slot of the YunShield/Yún + + Prepare your SD card creating an empty folder in the SD root + named "arduino". This will ensure that the Yún will create a link + to the SD to the "/mnt/sd" path. + + You can remove the SD card while the Linux and the + sketch are running but be careful not to remove it while + the system is writing to it. + + created 24 Nov 2010 + modified 9 Apr 2012 + by Tom Igoe + adapted to the Yún Bridge library 20 Jun 2013 + by Federico Vanzati + modified 21 Jun 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunDatalogger + + */ + +#include + +void setup() { + // Initialize the Bridge and the Serial + Bridge.begin(); + Serial.begin(9600); + FileSystem.begin(); + + while (!SerialUSB); // wait for Serial port to connect. + SerialUSB.println("Filesystem datalogger\n"); +} + + +void loop() { + // make a string that start with a timestamp for assembling the data to log: + String dataString; + dataString += getTimeStamp(); + dataString += " = "; + + // read three sensors and append to the string: + for (int analogPin = 0; analogPin < 3; analogPin++) { + int sensor = analogRead(analogPin); + dataString += String(sensor); + if (analogPin < 2) { + dataString += ","; // separate the values with a comma + } + } + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + // The FileSystem card is mounted at the following "/mnt/FileSystema1" + File dataFile = FileSystem.open("/mnt/sd/datalog.txt", FILE_APPEND); + + // if the file is available, write to it: + if (dataFile) { + dataFile.println(dataString); + dataFile.close(); + // print to the serial port too: + SerialUSB.println(dataString); + } + // if the file isn't open, pop up an error: + else { + SerialUSB.println("error opening datalog.txt"); + } + + delay(15000); + +} + +// This function return a string with the time stamp +String getTimeStamp() { + String result; + Process time; + // date is a command line utility to get the date and the time + // in different formats depending on the additional parameter + time.begin("date"); + time.addParameter("+%D-%T"); // parameters: D for the complete date mm/dd/yy + // T for the time hh:mm:ss + time.run(); // run the command + + // read the output of the command + while (time.available() > 0) { + char c = time.read(); + if (c != '\n') { + result += c; + } + } + + return result; +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/FileWriteScript/FileWriteScript.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/FileWriteScript/FileWriteScript.ino new file mode 100644 index 00000000000..e080bce36f4 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/FileWriteScript/FileWriteScript.ino @@ -0,0 +1,83 @@ +/* + Write to file using FileIO classes. + + This sketch demonstrate how to write file into the YunShield/Yún filesystem. + A shell script file is created in /tmp, and it is executed afterwards. + + created 7 June 2010 + by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/FileWriteScript + + */ + +#include + +void setup() { + // Setup Bridge (needed every time we communicate with the Arduino Yún) + Bridge.begin(); + // Initialize the Serial + SerialUSB.begin(9600); + + while (!SerialUSB); // wait for Serial port to connect. + SerialUSB.println("File Write Script example\n\n"); + + // Setup File IO + FileSystem.begin(); + + // Upload script used to gain network statistics + uploadScript(); +} + +void loop() { + // Run stats script every 5 secs. + runScript(); + delay(5000); +} + +// this function creates a file into the linux processor that contains a shell script +// to check the network traffic of the WiFi interface +void uploadScript() { + // Write our shell script in /tmp + // Using /tmp stores the script in RAM this way we can preserve + // the limited amount of FLASH erase/write cycles + File script = FileSystem.open("/tmp/wlan-stats.sh", FILE_WRITE); + // Shell script header + script.print("#!/bin/sh\n"); + // shell commands: + // ifconfig: is a command line utility for controlling the network interfaces. + // wlan0 is the interface we want to query + // grep: search inside the output of the ifconfig command the "RX bytes" keyword + // and extract the line that contains it + script.print("ifconfig wlan0 | grep 'RX bytes'\n"); + script.close(); // close the file + + // Make the script executable + Process chmod; + chmod.begin("chmod"); // chmod: change mode + chmod.addParameter("+x"); // x stays for executable + chmod.addParameter("/tmp/wlan-stats.sh"); // path to the file to make it executable + chmod.run(); +} + + +// this function run the script and read the output data +void runScript() { + // Run the script and show results on the Serial + Process myscript; + myscript.begin("/tmp/wlan-stats.sh"); + myscript.run(); + + String output = ""; + + // read the output of the script + while (myscript.available()) { + output += (char)myscript.read(); + } + // remove the blank spaces at the beginning and the ending of the string + output.trim(); + SerialUSB.println(output); + SerialUSB.flush(); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/HttpClient/HttpClient.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/HttpClient/HttpClient.ino new file mode 100644 index 00000000000..47a37c3f2eb --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/HttpClient/HttpClient.ino @@ -0,0 +1,51 @@ +/* + Yún HTTP Client + + This example for the YunShield/Yún shows how create a basic + HTTP client that connects to the internet and downloads + content. In this case, you'll connect to the Arduino + website and download a version of the logo as ASCII text. + + created by Tom igoe + May 2013 + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/HttpClient + + */ + +#include +#include + +void setup() { + // Bridge takes about two seconds to start up + // it can be helpful to use the on-board LED + // as an indicator for when it has initialized + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + SerialUSB.begin(9600); + + while (!SerialUSB); // wait for a serial connection +} + +void loop() { + // Initialize the client library + HttpClient client; + + // Make a HTTP request: + client.get("http://www.arduino.cc/asciilogo.txt"); + + // if there are incoming bytes available + // from the server, read them and print them: + while (client.available()) { + char c = client.read(); + SerialUSB.print(c); + } + SerialUSB.flush(); + + delay(5000); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/HttpClientConsole/HttpClientConsole.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/HttpClientConsole/HttpClientConsole.ino new file mode 100644 index 00000000000..3b07f601c8f --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/HttpClientConsole/HttpClientConsole.ino @@ -0,0 +1,53 @@ +/* + Yún HTTP Client Console version for Arduino Uno and Mega using Yún Shield + + This example for the YunShield/Yún shows how create a basic + HTTP client that connects to the internet and downloads + content. In this case, you'll connect to the Arduino + website and download a version of the logo as ASCII text. + + created by Tom igoe + May 2013 + modified by Marco Brianza to use Console + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/HttpClient + + */ + +#include +#include +#include + +void setup() { + // Bridge takes about two seconds to start up + // it can be helpful to use the on-board LED + // as an indicator for when it has initialized + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + Console.begin(); + + while (!Console); // wait for a serial connection +} + +void loop() { + // Initialize the client library + HttpClient client; + + // Make a HTTP request: + client.get("http://www.arduino.cc/asciilogo.txt"); + + // if there are incoming bytes available + // from the server, read them and print them: + while (client.available()) { + char c = client.read(); + Console.print(c); + } + Console.flush(); + + delay(5000); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/MailboxReadMessage/MailboxReadMessage.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/MailboxReadMessage/MailboxReadMessage.ino new file mode 100644 index 00000000000..11aaecd3d24 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/MailboxReadMessage/MailboxReadMessage.ino @@ -0,0 +1,58 @@ +/* + Read Messages from the Mailbox + + This example for the YunShield/Yún shows how to + read the messages queue, called Mailbox, using the + Bridge library. + The messages can be sent to the queue through REST calls. + Appen the message in the URL after the keyword "/mailbox". + Example + + "/mailbox/hello" + + created 3 Feb 2014 + by Federico Vanzati & Federico Fissore + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/MailboxReadMessage + + */ + +#include + +void setup() { + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + // Initialize Bridge and Mailbox + Bridge.begin(); + Mailbox.begin(); + digitalWrite(13, HIGH); + + // Initialize Serial + SerialUSB.begin(9600); + + // Wait until a Serial Monitor is connected. + while (!SerialUSB); + + SerialUSB.println("Mailbox Read Message\n"); + SerialUSB.println("The Mailbox is checked every 10 seconds. The incoming messages will be shown below.\n"); +} + +void loop() { + String message; + + // if there is a message in the Mailbox + if (Mailbox.messageAvailable()) { + // read all the messages present in the queue + while (Mailbox.messageAvailable()) { + Mailbox.readMessage(message); + SerialUSB.println(message); + } + + SerialUSB.println("Waiting 10 seconds before checking the Mailbox again"); + } + + // wait 10 seconds + delay(10000); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Process/Process.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Process/Process.ino new file mode 100644 index 00000000000..7f5752c7780 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/Process/Process.ino @@ -0,0 +1,71 @@ +/* + Running process using Process class. + + This sketch demonstrate how to run linux processes + using a YunShield/Yún + + created 5 Jun 2013 + by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/Process + + */ + +#include + +void setup() { + // Initialize Bridge + Bridge.begin(); + + // Initialize Serial + SerialUSB.begin(9600); + + // Wait until a Serial Monitor is connected. + while (!SerialUSB); + + // run various example processes + runCurl(); + runCpuInfo(); +} + +void loop() { + // Do nothing here. +} + +void runCurl() { + // Launch "curl" command and get Arduino ascii art logo from the network + // curl is command line program for transferring data using different internet protocols + Process p; // Create a process and call it "p" + p.begin("curl"); // Process that launch the "curl" command + p.addParameter("http://www.arduino.cc/asciilogo.txt"); // Add the URL parameter to "curl" + p.run(); // Run the process and wait for its termination + + // Print arduino logo over the Serial + // A process output can be read with the stream methods + while (p.available() > 0) { + char c = p.read(); + SerialUSB.print(c); + } + // Ensure the last bit of data is sent. + SerialUSB.flush(); +} + +void runCpuInfo() { + // Launch "cat /proc/cpuinfo" command (shows info on Atheros CPU) + // cat is a command line utility that shows the content of a file + Process p; // Create a process and call it "p" + p.begin("cat"); // Process that launch the "cat" command + p.addParameter("/proc/cpuinfo"); // Add the cpuifo file path as parameter to cut + p.run(); // Run the process and wait for its termination + + // Print command output on the SerialUSB. + // A process output can be read with the stream methods + while (p.available() > 0) { + char c = p.read(); + SerialUSB.print(c); + } + // Ensure the last bit of data is sent. + SerialUSB.flush(); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/RemoteDueBlink/RemoteDueBlink.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/RemoteDueBlink/RemoteDueBlink.ino new file mode 100644 index 00000000000..4b5d2713cf1 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/RemoteDueBlink/RemoteDueBlink.ino @@ -0,0 +1,33 @@ +/* + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + + Most Arduinos have an on-board LED you can control. On the Uno and + Leonardo, it is attached to digital pin 13. If you're unsure what + pin the on-board LED is connected to on your Arduino model, check + the documentation at http://www.arduino.cc + + This example code is in the public domain. + + modified 8 May 2014 + by Scott Fitzgerald + + modified by Marco Brianza to show the remote sketch update feature on Arduino Due using Yún Shield + */ + +#include + +// the setup function runs once when you press reset or power the board +void setup() { + checkForRemoteSketchUpdate(); + // initialize digital pin 13 as an output. + pinMode(13, OUTPUT); +} + +// the loop function runs over and over again forever +void loop() { + digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) + delay(100); // wait for a second + digitalWrite(13, LOW); // turn the LED off by making the voltage LOW + delay(100); // wait for a second +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ShellCommands/ShellCommands.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ShellCommands/ShellCommands.ino new file mode 100644 index 00000000000..acd82896e32 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/ShellCommands/ShellCommands.ino @@ -0,0 +1,52 @@ +/* + Running shell commands using Process class. + + This sketch demonstrate how to run linux shell commands + using a YunShield/Yún. It runs the wifiCheck script on the Linux side + of the Yún, then uses grep to get just the signal strength line. + Then it uses parseInt() to read the wifi signal strength as an integer, + and finally uses that number to fade an LED using analogWrite(). + + The circuit: + * YunShield/Yún with LED connected to pin 9 + + created 12 Jun 2013 + by Cristian Maglie + modified 25 June 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/ShellCommands + + */ + +#include + +void setup() { + Bridge.begin(); // Initialize the Bridge + SerialUSB.begin(9600); // Initialize the Serial + + // Wait until a Serial Monitor is connected. + while (!SerialUSB); +} + +void loop() { + Process p; + // This command line runs the WifiStatus script, (/usr/bin/pretty-wifi-info.lua), then + // sends the result to the grep command to look for a line containing the word + // "Signal:" the result is passed to this sketch: + p.runShellCommand("/usr/bin/pretty-wifi-info.lua | grep Signal"); + + // do nothing until the process finishes, so you get the whole output: + while (p.running()); + + // Read command output. runShellCommand() should have passed "Signal: xx&": + while (p.available()) { + int result = p.parseInt(); // look for an integer + int signal = map(result, 0, 100, 0, 255); // map result from 0-100 range to 0-255 + analogWrite(9, signal); // set the brightness of LED on pin 9 + SerialUSB.println(result); // print the number as well + } + delay(5000); // wait 5 seconds before you do it again +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino new file mode 100644 index 00000000000..7bf25a8a0e2 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino @@ -0,0 +1,122 @@ +/* + Temperature web interface + + This example shows how to serve data from an analog input + via the YunShield/Yún built-in webserver using the Bridge library. + + The circuit: + * TMP36 temperature sensor on analog pin A1 + * SD card attached to SD card slot of the YunShield/Yún + + This sketch must be uploaded via wifi. REST API must be set to "open". + + Prepare your SD card with an empty folder in the SD root + named "arduino" and a subfolder of that named "www". + This will ensure that the Yún will create a link + to the SD to the "/mnt/sd" path. + + In this sketch folder is a basic webpage and a copy of zepto.js, a + minimized version of jQuery. When you upload your sketch, these files + will be placed in the /arduino/www/TemperatureWebPanel folder on your SD card. + + You can then go to http://arduino.local/sd/TemperatureWebPanel + to see the output of this sketch. + + You can remove the SD card while the Linux and the + sketch are running but be careful not to remove it while + the system is writing to it. + + created 6 July 2013 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/TemperatureWebPanel + + */ + +#include +#include +#include + +// Listen on default port 5555, the webserver on the Yún +// will forward there all the HTTP requests for us. +BridgeServer server; +String startString; +long hits = 0; + +void setup() { + SerialUSB.begin(9600); + + // Bridge startup + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); + digitalWrite(13, HIGH); + + // using A0 and A2 as vcc and gnd for the TMP36 sensor: + pinMode(A0, OUTPUT); + pinMode(A2, OUTPUT); + digitalWrite(A0, HIGH); + digitalWrite(A2, LOW); + + // Listen for incoming connection only from localhost + // (no one from the external network could connect) + server.listenOnLocalhost(); + server.begin(); + + // get the time that this sketch started: + Process startTime; + startTime.runShellCommand("date"); + while (startTime.available()) { + char c = startTime.read(); + startString += c; + } +} + +void loop() { + // Get clients coming from server + BridgeClient client = server.accept(); + + // There is a new client? + if (client) { + // read the command + String command = client.readString(); + command.trim(); //kill whitespace + SerialUSB.println(command); + // is "temperature" command? + if (command == "temperature") { + + // get the time from the server: + Process time; + time.runShellCommand("date"); + String timeString = ""; + while (time.available()) { + char c = time.read(); + timeString += c; + } + SerialUSB.println(timeString); + int sensorValue = analogRead(A1); + // convert the reading to millivolts: + float voltage = sensorValue * (5000.0f / 1024.0f); + // convert the millivolts to temperature celsius: + float temperature = (voltage - 500.0f) / 10.0f; + // print the temperature: + client.print("Current time on the Yún: "); + client.println(timeString); + client.print("
Current temperature: "); + client.print(temperature); + client.print(" °C"); + client.print("
This sketch has been running since "); + client.print(startString); + client.print("
Hits so far: "); + client.print(hits); + } + + // Close connection and free resources. + client.stop(); + hits++; + } + + delay(50); // Poll every 50ms +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/www/index.html b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/www/index.html new file mode 100644 index 00000000000..c6b674771a5 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/www/index.html @@ -0,0 +1,16 @@ + + + + + + + + + 0 + + + diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/www/zepto.min.js b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/www/zepto.min.js new file mode 100644 index 00000000000..dbe4e3c3f89 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TemperatureWebPanel/www/zepto.min.js @@ -0,0 +1,2 @@ +/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ +(function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Array.prototype.reduce===a&&(Array.prototype.reduce=function(b){if(this===void 0||this===null)throw new TypeError;var c=Object(this),d=c.length>>>0,e=0,f;if(typeof b!="function")throw new TypeError;if(d==0&&arguments.length==1)throw new TypeError;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);while(e0?c.fn.concat.apply([],a):a}function O(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function P(a){return a in j?j[a]:j[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function Q(a,b){return typeof b=="number"&&!l[O(a)]?b+"px":b}function R(a){var b,c;return i[a]||(b=h.createElement(a),h.body.appendChild(b),c=k(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),i[a]=c),i[a]}function S(a){return"children"in a?f.call(a.children):c.map(a.childNodes,function(a){if(a.nodeType==1)return a})}function T(c,d,e){for(b in d)e&&(J(d[b])||K(d[b]))?(J(d[b])&&!J(c[b])&&(c[b]={}),K(d[b])&&!K(c[b])&&(c[b]=[]),T(c[b],d[b],e)):d[b]!==a&&(c[b]=d[b])}function U(b,d){return d===a?c(b):c(b).filter(d)}function V(a,b,c,d){return F(b)?b.call(a,c,d):b}function W(a,b,c){c==null?a.removeAttribute(b):a.setAttribute(b,c)}function X(b,c){var d=b.className,e=d&&d.baseVal!==a;if(c===a)return e?d.baseVal:d;e?d.baseVal=c:b.className=c}function Y(a){var b;try{return a?a=="true"||(a=="false"?!1:a=="null"?null:isNaN(b=Number(a))?/^[\[\{]/.test(a)?c.parseJSON(a):a:b):a}catch(d){return a}}function Z(a,b){b(a);for(var c in a.childNodes)Z(a.childNodes[c],b)}var a,b,c,d,e=[],f=e.slice,g=e.filter,h=window.document,i={},j={},k=h.defaultView.getComputedStyle,l={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},m=/^\s*<(\w+|!)[^>]*>/,n=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,o=/^(?:body|html)$/i,p=["val","css","html","text","data","width","height","offset"],q=["after","prepend","before","append"],r=h.createElement("table"),s=h.createElement("tr"),t={tr:h.createElement("tbody"),tbody:r,thead:r,tfoot:r,td:s,th:s,"*":h.createElement("div")},u=/complete|loaded|interactive/,v=/^\.([\w-]+)$/,w=/^#([\w-]*)$/,x=/^[\w-]+$/,y={},z=y.toString,A={},B,C,D=h.createElement("div");return A.matches=function(a,b){if(!a||a.nodeType!==1)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=D).appendChild(a),d=~A.qsa(e,b).indexOf(a),f&&D.removeChild(a),d},B=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},C=function(a){return g.call(a,function(b,c){return a.indexOf(b)==c})},A.fragment=function(b,d,e){b.replace&&(b=b.replace(n,"<$1>")),d===a&&(d=m.test(b)&&RegExp.$1),d in t||(d="*");var g,h,i=t[d];return i.innerHTML=""+b,h=c.each(f.call(i.childNodes),function(){i.removeChild(this)}),J(e)&&(g=c(h),c.each(e,function(a,b){p.indexOf(a)>-1?g[a](b):g.attr(a,b)})),h},A.Z=function(a,b){return a=a||[],a.__proto__=c.fn,a.selector=b||"",a},A.isZ=function(a){return a instanceof A.Z},A.init=function(b,d){if(!b)return A.Z();if(F(b))return c(h).ready(b);if(A.isZ(b))return b;var e;if(K(b))e=M(b);else if(I(b))e=[J(b)?c.extend({},b):b],b=null;else if(m.test(b))e=A.fragment(b.trim(),RegExp.$1,d),b=null;else{if(d!==a)return c(d).find(b);e=A.qsa(h,b)}return A.Z(e,b)},c=function(a,b){return A.init(a,b)},c.extend=function(a){var b,c=f.call(arguments,1);return typeof a=="boolean"&&(b=a,a=c.shift()),c.forEach(function(c){T(a,c,b)}),a},A.qsa=function(a,b){var c;return H(a)&&w.test(b)?(c=a.getElementById(RegExp.$1))?[c]:[]:a.nodeType!==1&&a.nodeType!==9?[]:f.call(v.test(b)?a.getElementsByClassName(RegExp.$1):x.test(b)?a.getElementsByTagName(b):a.querySelectorAll(b))},c.contains=function(a,b){return a!==b&&a.contains(b)},c.type=E,c.isFunction=F,c.isWindow=G,c.isArray=K,c.isPlainObject=J,c.isEmptyObject=function(a){var b;for(b in a)return!1;return!0},c.inArray=function(a,b,c){return e.indexOf.call(b,a,c)},c.camelCase=B,c.trim=function(a){return a.trim()},c.uuid=0,c.support={},c.expr={},c.map=function(a,b){var c,d=[],e,f;if(L(a))for(e=0;e=0?b:b+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){this.parentNode!=null&&this.parentNode.removeChild(this)})},each:function(a){return e.every.call(this,function(b,c){return a.call(b,c,b)!==!1}),this},filter:function(a){return F(a)?this.not(this.not(a)):c(g.call(this,function(b){return A.matches(b,a)}))},add:function(a,b){return c(C(this.concat(c(a,b))))},is:function(a){return this.length>0&&A.matches(this[0],a)},not:function(b){var d=[];if(F(b)&&b.call!==a)this.each(function(a){b.call(this,a)||d.push(this)});else{var e=typeof b=="string"?this.filter(b):L(b)&&F(b.item)?f.call(b):c(b);this.forEach(function(a){e.indexOf(a)<0&&d.push(a)})}return c(d)},has:function(a){return this.filter(function(){return I(a)?c.contains(this,a):c(this).find(a).size()})},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!I(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!I(a)?a:c(a)},find:function(a){var b,d=this;return typeof a=="object"?b=c(a).filter(function(){var a=this;return e.some.call(d,function(b){return c.contains(b,a)})}):this.length==1?b=c(A.qsa(this[0],a)):b=this.map(function(){return A.qsa(this,a)}),b},closest:function(a,b){var d=this[0],e=!1;typeof a=="object"&&(e=c(a));while(d&&!(e?e.indexOf(d)>=0:A.matches(d,a)))d=d!==b&&!H(d)&&d.parentNode;return c(d)},parents:function(a){var b=[],d=this;while(d.length>0)d=c.map(d,function(a){if((a=a.parentNode)&&!H(a)&&b.indexOf(a)<0)return b.push(a),a});return U(b,a)},parent:function(a){return U(C(this.pluck("parentNode")),a)},children:function(a){return U(this.map(function(){return S(this)}),a)},contents:function(){return this.map(function(){return f.call(this.childNodes)})},siblings:function(a){return U(this.map(function(a,b){return g.call(S(b.parentNode),function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return c.map(this,function(b){return b[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=null),k(this,"").getPropertyValue("display")=="none"&&(this.style.display=R(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var b=F(a);if(this[0]&&!b)var d=c(a).get(0),e=d.parentNode||this.length>1;return this.each(function(f){c(this).wrapAll(b?a.call(this,f):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){c(this[0]).before(a=c(a));var b;while((b=a.children()).length)a=b.first();c(a).append(this)}return this},wrapInner:function(a){var b=F(a);return this.each(function(d){var e=c(this),f=e.contents(),g=b?a.call(this,d):a;f.length?f.wrapAll(g):e.append(g)})},unwrap:function(){return this.parent().each(function(){c(this).replaceWith(c(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(b){return this.each(function(){var d=c(this);(b===a?d.css("display")=="none":b)?d.show():d.hide()})},prev:function(a){return c(this.pluck("previousElementSibling")).filter(a||"*")},next:function(a){return c(this.pluck("nextElementSibling")).filter(a||"*")},html:function(b){return b===a?this.length>0?this[0].innerHTML:null:this.each(function(a){var d=this.innerHTML;c(this).empty().append(V(this,b,a,d))})},text:function(b){return b===a?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b})},attr:function(c,d){var e;return typeof c=="string"&&d===a?this.length==0||this[0].nodeType!==1?a:c=="value"&&this[0].nodeName=="INPUT"?this.val():!(e=this[0].getAttribute(c))&&c in this[0]?this[0][c]:e:this.each(function(a){if(this.nodeType!==1)return;if(I(c))for(b in c)W(this,b,c[b]);else W(this,c,V(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.nodeType===1&&W(this,a)})},prop:function(b,c){return c===a?this[0]&&this[0][b]:this.each(function(a){this[b]=V(this,c,a,this[b])})},data:function(b,c){var d=this.attr("data-"+O(b),c);return d!==null?Y(d):a},val:function(b){return b===a?this[0]&&(this[0].multiple?c(this[0]).find("option").filter(function(a){return this.selected}).pluck("value"):this[0].value):this.each(function(a){this.value=V(this,b,a,this.value)})},offset:function(a){if(a)return this.each(function(b){var d=c(this),e=V(this,a,b,d.offset()),f=d.offsetParent().offset(),g={top:e.top-f.top,left:e.left-f.left};d.css("position")=="static"&&(g.position="relative"),d.css(g)});if(this.length==0)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(a,c){if(arguments.length<2&&typeof a=="string")return this[0]&&(this[0].style[B(a)]||k(this[0],"").getPropertyValue(a));var d="";if(E(a)=="string")!c&&c!==0?this.each(function(){this.style.removeProperty(O(a))}):d=O(a)+":"+Q(a,c);else for(b in a)!a[b]&&a[b]!==0?this.each(function(){this.style.removeProperty(O(b))}):d+=O(b)+":"+Q(b,a[b])+";";return this.each(function(){this.style.cssText+=";"+d})},index:function(a){return a?this.indexOf(c(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return e.some.call(this,function(a){return this.test(X(a))},P(a))},addClass:function(a){return this.each(function(b){d=[];var e=X(this),f=V(this,a,b,e);f.split(/\s+/g).forEach(function(a){c(this).hasClass(a)||d.push(a)},this),d.length&&X(this,e+(e?" ":"")+d.join(" "))})},removeClass:function(b){return this.each(function(c){if(b===a)return X(this,"");d=X(this),V(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(P(a)," ")}),X(this,d.trim())})},toggleClass:function(b,d){return this.each(function(e){var f=c(this),g=V(this,b,e,X(this));g.split(/\s+/g).forEach(function(b){(d===a?!f.hasClass(b):d)?f.addClass(b):f.removeClass(b)})})},scrollTop:function(){if(!this.length)return;return"scrollTop"in this[0]?this[0].scrollTop:this[0].scrollY},position:function(){if(!this.length)return;var a=this[0],b=this.offsetParent(),d=this.offset(),e=o.test(b[0].nodeName)?{top:0,left:0}:b.offset();return d.top-=parseFloat(c(a).css("margin-top"))||0,d.left-=parseFloat(c(a).css("margin-left"))||0,e.top+=parseFloat(c(b[0]).css("border-top-width"))||0,e.left+=parseFloat(c(b[0]).css("border-left-width"))||0,{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||h.body;while(a&&!o.test(a.nodeName)&&c(a).css("position")=="static")a=a.offsetParent;return a})}},c.fn.detach=c.fn.remove,["width","height"].forEach(function(b){c.fn[b]=function(d){var e,f=this[0],g=b.replace(/./,function(a){return a[0].toUpperCase()});return d===a?G(f)?f["inner"+g]:H(f)?f.documentElement["offset"+g]:(e=this.offset())&&e[b]:this.each(function(a){f=c(this),f.css(b,V(this,d,a,f[b]()))})}}),q.forEach(function(a,b){var d=b%2;c.fn[a]=function(){var a,e=c.map(arguments,function(b){return a=E(b),a=="object"||a=="array"||b==null?b:A.fragment(b)}),f,g=this.length>1;return e.length<1?this:this.each(function(a,h){f=d?h:h.parentNode,h=b==0?h.nextSibling:b==1?h.firstChild:b==2?h:null,e.forEach(function(a){if(g)a=a.cloneNode(!0);else if(!f)return c(a).remove();Z(f.insertBefore(a,h),function(a){a.nodeName!=null&&a.nodeName.toUpperCase()==="SCRIPT"&&(!a.type||a.type==="text/javascript")&&!a.src&&window.eval.call(window,a.innerHTML)})})})},c.fn[d?a+"To":"insert"+(b?"Before":"After")]=function(b){return c(b)[a](this),this}}),A.Z.prototype=c.fn,A.uniq=C,A.deserializeValue=Y,c.zepto=A,c}();window.Zepto=Zepto,"$"in window||(window.$=Zepto),function(a){function b(a){var b=this.os={},c=this.browser={},d=a.match(/WebKit\/([\d.]+)/),e=a.match(/(Android)\s+([\d.]+)/),f=a.match(/(iPad).*OS\s([\d_]+)/),g=!f&&a.match(/(iPhone\sOS)\s([\d_]+)/),h=a.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),i=h&&a.match(/TouchPad/),j=a.match(/Kindle\/([\d.]+)/),k=a.match(/Silk\/([\d._]+)/),l=a.match(/(BlackBerry).*Version\/([\d.]+)/),m=a.match(/(BB10).*Version\/([\d.]+)/),n=a.match(/(RIM\sTablet\sOS)\s([\d.]+)/),o=a.match(/PlayBook/),p=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),q=a.match(/Firefox\/([\d.]+)/);if(c.webkit=!!d)c.version=d[1];e&&(b.android=!0,b.version=e[2]),g&&(b.ios=b.iphone=!0,b.version=g[2].replace(/_/g,".")),f&&(b.ios=b.ipad=!0,b.version=f[2].replace(/_/g,".")),h&&(b.webos=!0,b.version=h[2]),i&&(b.touchpad=!0),l&&(b.blackberry=!0,b.version=l[2]),m&&(b.bb10=!0,b.version=m[2]),n&&(b.rimtabletos=!0,b.version=n[2]),o&&(c.playbook=!0),j&&(b.kindle=!0,b.version=j[1]),k&&(c.silk=!0,c.version=k[1]),!k&&b.android&&a.match(/Kindle Fire/)&&(c.silk=!0),p&&(c.chrome=!0,c.version=p[1]),q&&(c.firefox=!0,c.version=q[1]),b.tablet=!!(f||o||e&&!a.match(/Mobile/)||q&&a.match(/Tablet/)),b.phone=!b.tablet&&!!(e||g||h||l||m||p&&a.match(/Android/)||p&&a.match(/CriOS\/([\d.]+)/)||q&&a.match(/Mobile/))}b.call(a,navigator.userAgent),a.__detect=b}(Zepto),function(a){function g(a){return a._zid||(a._zid=d++)}function h(a,b,d,e){b=i(b);if(b.ns)var f=j(b.ns);return(c[g(a)]||[]).filter(function(a){return a&&(!b.e||a.e==b.e)&&(!b.ns||f.test(a.ns))&&(!d||g(a.fn)===g(d))&&(!e||a.sel==e)})}function i(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function j(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function k(b,c,d){a.type(b)!="string"?a.each(b,d):b.split(/\s/).forEach(function(a){d(a,c)})}function l(a,b){return a.del&&(a.e=="focus"||a.e=="blur")||!!b}function m(a){return f[a]||a}function n(b,d,e,h,j,n){var o=g(b),p=c[o]||(c[o]=[]);k(d,e,function(c,d){var e=i(c);e.fn=d,e.sel=h,e.e in f&&(d=function(b){var c=b.relatedTarget;if(!c||c!==this&&!a.contains(this,c))return e.fn.apply(this,arguments)}),e.del=j&&j(d,c);var g=e.del||d;e.proxy=function(a){var c=g.apply(b,[a].concat(a.data));return c===!1&&(a.preventDefault(),a.stopPropagation()),c},e.i=p.length,p.push(e),b.addEventListener(m(e.e),e.proxy,l(e,n))})}function o(a,b,d,e,f){var i=g(a);k(b||"",d,function(b,d){h(a,b,d,e).forEach(function(b){delete c[i][b.i],a.removeEventListener(m(b.e),b.proxy,l(b,f))})})}function t(b){var c,d={originalEvent:b};for(c in b)!r.test(c)&&b[c]!==undefined&&(d[c]=b[c]);return a.each(s,function(a,c){d[a]=function(){return this[c]=p,b[a].apply(b,arguments)},d[c]=q}),d}function u(a){if(!("defaultPrevented"in a)){a.defaultPrevented=!1;var b=a.preventDefault;a.preventDefault=function(){this.defaultPrevented=!0,b.call(this)}}}var b=a.zepto.qsa,c={},d=1,e={},f={mouseenter:"mouseover",mouseleave:"mouseout"};e.click=e.mousedown=e.mouseup=e.mousemove="MouseEvents",a.event={add:n,remove:o},a.proxy=function(b,c){if(a.isFunction(b)){var d=function(){return b.apply(c,arguments)};return d._zid=g(b),d}if(typeof c=="string")return a.proxy(b[c],b);throw new TypeError("expected function")},a.fn.bind=function(a,b){return this.each(function(){n(this,a,b)})},a.fn.unbind=function(a,b){return this.each(function(){o(this,a,b)})},a.fn.one=function(a,b){return this.each(function(c,d){n(this,a,b,null,function(a,b){return function(){var c=a.apply(d,arguments);return o(d,b,a),c}})})};var p=function(){return!0},q=function(){return!1},r=/^([A-Z]|layer[XY]$)/,s={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(b,c,d){return this.each(function(e,f){n(f,c,d,b,function(c){return function(d){var e,g=a(d.target).closest(b,f).get(0);if(g)return e=a.extend(t(d),{currentTarget:g,liveFired:f}),c.apply(g,[e].concat([].slice.call(arguments,1)))}})})},a.fn.undelegate=function(a,b,c){return this.each(function(){o(this,b,c,a)})},a.fn.live=function(b,c){return a(document.body).delegate(this.selector,b,c),this},a.fn.die=function(b,c){return a(document.body).undelegate(this.selector,b,c),this},a.fn.on=function(b,c,d){return!c||a.isFunction(c)?this.bind(b,c||d):this.delegate(c,b,d)},a.fn.off=function(b,c,d){return!c||a.isFunction(c)?this.unbind(b,c||d):this.undelegate(c,b,d)},a.fn.trigger=function(b,c){if(typeof b=="string"||a.isPlainObject(b))b=a.Event(b);return u(b),b.data=c,this.each(function(){"dispatchEvent"in this&&this.dispatchEvent(b)})},a.fn.triggerHandler=function(b,c){var d,e;return this.each(function(f,g){d=t(typeof b=="string"?a.Event(b):b),d.data=c,d.target=g,a.each(h(g,b.type||b),function(a,b){e=b.proxy(d);if(d.isImmediatePropagationStopped())return!1})}),e},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.trigger(b)}}),["focus","blur"].forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.each(function(){try{this[b]()}catch(a){}}),this}}),a.Event=function(a,b){typeof a!="string"&&(b=a,a=b.type);var c=document.createEvent(e[a]||"Events"),d=!0;if(b)for(var f in b)f=="bubbles"?d=!!b[f]:c[f]=b[f];return c.initEvent(a,d,!0,null,null,null,null,null,null,null,null,null,null,null,null),c.isDefaultPrevented=function(){return this.defaultPrevented},c}}(Zepto),function($){function triggerAndReturn(a,b,c){var d=$.Event(b);return $(a).trigger(d,c),!d.defaultPrevented}function triggerGlobal(a,b,c,d){if(a.global)return triggerAndReturn(b||document,c,d)}function ajaxStart(a){a.global&&$.active++===0&&triggerGlobal(a,null,"ajaxStart")}function ajaxStop(a){a.global&&!--$.active&&triggerGlobal(a,null,"ajaxStop")}function ajaxBeforeSend(a,b){var c=b.context;if(b.beforeSend.call(c,a,b)===!1||triggerGlobal(b,c,"ajaxBeforeSend",[a,b])===!1)return!1;triggerGlobal(b,c,"ajaxSend",[a,b])}function ajaxSuccess(a,b,c){var d=c.context,e="success";c.success.call(d,a,e,b),triggerGlobal(c,d,"ajaxSuccess",[b,c,a]),ajaxComplete(e,b,c)}function ajaxError(a,b,c,d){var e=d.context;d.error.call(e,c,b,a),triggerGlobal(d,e,"ajaxError",[c,d,a]),ajaxComplete(b,c,d)}function ajaxComplete(a,b,c){var d=c.context;c.complete.call(d,b,a),triggerGlobal(c,d,"ajaxComplete",[b,c]),ajaxStop(c)}function empty(){}function mimeToDataType(a){return a&&(a=a.split(";",2)[0]),a&&(a==htmlType?"html":a==jsonType?"json":scriptTypeRE.test(a)?"script":xmlTypeRE.test(a)&&"xml")||"text"}function appendQuery(a,b){return(a+"&"+b).replace(/[&?]{1,2}/,"?")}function serializeData(a){a.processData&&a.data&&$.type(a.data)!="string"&&(a.data=$.param(a.data,a.traditional)),a.data&&(!a.type||a.type.toUpperCase()=="GET")&&(a.url=appendQuery(a.url,a.data))}function parseArguments(a,b,c,d){var e=!$.isFunction(b);return{url:a,data:e?b:undefined,success:e?$.isFunction(c)?c:undefined:b,dataType:e?d||c:c}}function serialize(a,b,c,d){var e,f=$.isArray(b);$.each(b,function(b,g){e=$.type(g),d&&(b=c?d:d+"["+(f?"":b)+"]"),!d&&f?a.add(g.name,g.value):e=="array"||!c&&e=="object"?serialize(a,g,c,b):a.add(b,g)})}var jsonpID=0,document=window.document,key,name,rscript=/)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;$.active=0,$.ajaxJSONP=function(a){if("type"in a){var b="jsonp"+ ++jsonpID,c=document.createElement("script"),d=function(){clearTimeout(g),$(c).remove(),delete window[b]},e=function(c){d();if(!c||c=="timeout")window[b]=empty;ajaxError(null,c||"abort",f,a)},f={abort:e},g;return ajaxBeforeSend(f,a)===!1?(e("abort"),!1):(window[b]=function(b){d(),ajaxSuccess(b,f,a)},c.onerror=function(){e("error")},c.src=a.url.replace(/=\?/,"="+b),$("head").append(c),a.timeout>0&&(g=setTimeout(function(){e("timeout")},a.timeout)),f)}return $.ajax(a)},$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},$.ajax=function(options){var settings=$.extend({},options||{});for(key in $.ajaxSettings)settings[key]===undefined&&(settings[key]=$.ajaxSettings[key]);ajaxStart(settings),settings.crossDomain||(settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host),settings.url||(settings.url=window.location.toString()),serializeData(settings),settings.cache===!1&&(settings.url=appendQuery(settings.url,"_="+Date.now()));var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder)return hasPlaceholder||(settings.url=appendQuery(settings.url,"callback=?")),$.ajaxJSONP(settings);var mime=settings.accepts[dataType],baseHeaders={},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=settings.xhr(),abortTimeout;settings.crossDomain||(baseHeaders["X-Requested-With"]="XMLHttpRequest"),mime&&(baseHeaders.Accept=mime,mime.indexOf(",")>-1&&(mime=mime.split(",",2)[0]),xhr.overrideMimeType&&xhr.overrideMimeType(mime));if(settings.contentType||settings.contentType!==!1&&settings.data&&settings.type.toUpperCase()!="GET")baseHeaders["Content-Type"]=settings.contentType||"application/x-www-form-urlencoded";settings.headers=$.extend(baseHeaders,settings.headers||{}),xhr.onreadystatechange=function(){if(xhr.readyState==4){xhr.onreadystatechange=empty,clearTimeout(abortTimeout);var result,error=!1;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(xhr.getResponseHeader("content-type")),result=xhr.responseText;try{dataType=="script"?(1,eval)(result):dataType=="xml"?result=xhr.responseXML:dataType=="json"&&(result=blankRE.test(result)?null:$.parseJSON(result))}catch(e){error=e}error?ajaxError(error,"parsererror",xhr,settings):ajaxSuccess(result,xhr,settings)}else ajaxError(null,xhr.status?"error":"abort",xhr,settings)}};var async="async"in settings?settings.async:!0;xhr.open(settings.type,settings.url,async);for(name in settings.headers)xhr.setRequestHeader(name,settings.headers[name]);return ajaxBeforeSend(xhr,settings)===!1?(xhr.abort(),!1):(settings.timeout>0&&(abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty,xhr.abort(),ajaxError(null,"timeout",xhr,settings)},settings.timeout)),xhr.send(settings.data?settings.data:null),xhr)},$.get=function(a,b,c,d){return $.ajax(parseArguments.apply(null,arguments))},$.post=function(a,b,c,d){var e=parseArguments.apply(null,arguments);return e.type="POST",$.ajax(e)},$.getJSON=function(a,b,c){var d=parseArguments.apply(null,arguments);return d.dataType="json",$.ajax(d)},$.fn.load=function(a,b,c){if(!this.length)return this;var d=this,e=a.split(/\s/),f,g=parseArguments(a,b,c),h=g.success;return e.length>1&&(g.url=e[0],f=e[1]),g.success=function(a){d.html(f?$("
").html(a.replace(rscript,"")).find(f):a),h&&h.apply(d,arguments)},$.ajax(g),this};var escape=encodeURIComponent;$.param=function(a,b){var c=[];return c.add=function(a,b){this.push(escape(a)+"="+escape(b))},serialize(c,a,b),c.join("&").replace(/%20/g,"+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;return a(Array.prototype.slice.call(this.get(0).elements)).each(function(){c=a(this);var d=c.attr("type");this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&d!="submit"&&d!="reset"&&d!="button"&&(d!="radio"&&d!="checkbox"||this.checked)&&b.push({name:c.attr("name"),value:c.val()})}),b},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(a,b){function s(a){return t(a.replace(/([a-z])([A-Z])/,"$1-$2"))}function t(a){return a.toLowerCase()}function u(a){return d?d+a:t(a)}var c="",d,e,f,g={Webkit:"webkit",Moz:"",O:"o",ms:"MS"},h=window.document,i=h.createElement("div"),j=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,k,l,m,n,o,p,q,r={};a.each(g,function(a,e){if(i.style[a+"TransitionProperty"]!==b)return c="-"+t(a)+"-",d=e,!1}),k=c+"transform",r[l=c+"transition-property"]=r[m=c+"transition-duration"]=r[n=c+"transition-timing-function"]=r[o=c+"animation-name"]=r[p=c+"animation-duration"]=r[q=c+"animation-timing-function"]="",a.fx={off:d===b&&i.style.transitionProperty===b,speeds:{_default:400,fast:200,slow:600},cssPrefix:c,transitionEnd:u("TransitionEnd"),animationEnd:u("AnimationEnd")},a.fn.animate=function(b,c,d,e){return a.isPlainObject(c)&&(d=c.easing,e=c.complete,c=c.duration),c&&(c=(typeof c=="number"?c:a.fx.speeds[c]||a.fx.speeds._default)/1e3),this.anim(b,c,d,e)},a.fn.anim=function(c,d,e,f){var g,h={},i,t="",u=this,v,w=a.fx.transitionEnd;d===b&&(d=.4),a.fx.off&&(d=0);if(typeof c=="string")h[o]=c,h[p]=d+"s",h[q]=e||"linear",w=a.fx.animationEnd;else{i=[];for(g in c)j.test(g)?t+=g+"("+c[g]+") ":(h[g]=c[g],i.push(s(g)));t&&(h[k]=t,i.push(k)),d>0&&typeof c=="object"&&(h[l]=i.join(", "),h[m]=d+"s",h[n]=e||"linear")}return v=function(b){if(typeof b!="undefined"){if(b.target!==b.currentTarget)return;a(b.target).unbind(w,v)}a(this).css(r),f&&f.call(this)},d>0&&this.bind(w,v),this.size()&&this.get(0).clientLeft,this.css(h),d<=0&&setTimeout(function(){u.each(function(){v.call(this)})},0),this},i=null}(Zepto) diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TimeCheck/TimeCheck.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TimeCheck/TimeCheck.ino new file mode 100644 index 00000000000..0403aa49a97 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/TimeCheck/TimeCheck.ino @@ -0,0 +1,88 @@ +/* + Time Check + + Gets the time from Linux via Bridge then parses out hours, + minutes and seconds using a YunShield/Yún. + + created 27 May 2013 + modified 21 June 2013 + By Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/TimeCheck + + */ + + +#include + +Process date; // process used to get the date +int hours, minutes, seconds; // for the results +int lastSecond = -1; // need an impossible value for comparison + +void setup() { + Bridge.begin(); // initialize Bridge + SerialUSB.begin(9600); // initialize serial + + while (!Serial); // wait for Serial Monitor to open + SerialUSB.println("Time Check"); // Title of sketch + + // run an initial date process. Should return: + // hh:mm:ss : + if (!date.running()) { + date.begin("date"); + date.addParameter("+%T"); + date.run(); + } +} + +void loop() { + + if (lastSecond != seconds) { // if a second has passed + // print the time: + if (hours <= 9) { + SerialUSB.print("0"); // adjust for 0-9 + } + SerialUSB.print(hours); + SerialUSB.print(":"); + if (minutes <= 9) { + SerialUSB.print("0"); // adjust for 0-9 + } + SerialUSB.print(minutes); + SerialUSB.print(":"); + if (seconds <= 9) { + SerialUSB.print("0"); // adjust for 0-9 + } + SerialUSB.println(seconds); + + // restart the date process: + if (!date.running()) { + date.begin("date"); + date.addParameter("+%T"); + date.run(); + } + } + + //if there's a result from the date process, parse it: + while (date.available() > 0) { + // get the result of the date process (should be hh:mm:ss): + String timeString = date.readString(); + + // find the colons: + int firstColon = timeString.indexOf(":"); + int secondColon = timeString.lastIndexOf(":"); + + // get the substrings for hour, minute second: + String hourString = timeString.substring(0, firstColon); + String minString = timeString.substring(firstColon + 1, secondColon); + String secString = timeString.substring(secondColon + 1); + + // convert to ints,saving the previous second: + hours = hourString.toInt(); + minutes = minString.toInt(); + lastSecond = seconds; // save to do a time comparison + seconds = secString.toInt(); + } + +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/WiFiStatus/WiFiStatus.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/WiFiStatus/WiFiStatus.ino new file mode 100644 index 00000000000..198761ba26b --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/WiFiStatus/WiFiStatus.ino @@ -0,0 +1,51 @@ +/* + WiFi Status + + This sketch runs a script called "pretty-wifi-info.lua" + installed on your Yún in folder /usr/bin. + It prints information about the status of your wifi connection. + + It uses Serial to print, so you need to connect your YunShield/Yún to your + computer using a USB cable and select the appropriate port from + the Port menu + + created 18 June 2013 + By Federico Fissore + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunWiFiStatus + + */ + +#include + +void setup() { + SerialUSB.begin(9600); // initialize serial communication + while (!SerialUSB); // do nothing until the serial monitor is opened + + SerialUSB.println("Starting bridge...\n"); + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); // make contact with the linux processor + digitalWrite(13, HIGH); // Led on pin 13 turns on when the bridge is ready + + delay(2000); // wait 2 seconds +} + +void loop() { + Process wifiCheck; // initialize a new process + + wifiCheck.runShellCommand("/usr/bin/pretty-wifi-info.lua"); // command you want to run + + // while there's any characters coming back from the + // process, print them to the serial monitor: + while (wifiCheck.available() > 0) { + char c = wifiCheck.read(); + SerialUSB.print(c); + } + + SerialUSB.println(); + + delay(5000); +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/YunFirstConfig/YunFirstConfig.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/YunFirstConfig/YunFirstConfig.ino new file mode 100644 index 00000000000..72bf9e00bff --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/YunFirstConfig/YunFirstConfig.ino @@ -0,0 +1,328 @@ + +/* + Arduino Yún First configuration sketch + + Configures the YunShield/Yún WiFi and infos via the Bridge + Works correctly if Line Ending is set as "NewLine" + If your board has two USB ports, use the Native one + + The circuit: + Arduino YunShield + (or any Yun model with firmware > 1.6.1) + + created March 2016 + by Arduino LLC + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunFirstConfig +*/ + +#include + +#define MAX_WIFI_LIST 10 + +String networks[MAX_WIFI_LIST]; +String yunName; +String yunPassword; + +void setup() { + SERIAL_PORT_USBVIRTUAL.begin(9600); // initialize serial communication + while (!SERIAL_PORT_USBVIRTUAL); // do nothing until the serial monitor is opened + + SERIAL_PORT_USBVIRTUAL.println(F("Hi! Nice to see you!")); + SERIAL_PORT_USBVIRTUAL.println(F("I'm your YunShield assistant sketch")); + SERIAL_PORT_USBVIRTUAL.println(F("I'll help you configuring your Yun in a matter of minutes")); + + SERIAL_PORT_USBVIRTUAL.println(F("Let's start by communicating with the Linux processor")); + SERIAL_PORT_USBVIRTUAL.println(F("When LED (L13) will light up we'll be ready to go!")); + SERIAL_PORT_USBVIRTUAL.println(F("Waiting...")); + SERIAL_PORT_USBVIRTUAL.println(F("(in the meanwhile, if you are using the IDE's serial monitor, make sure that it's configured to send a \"Newline\")\n")); + pinMode(13, OUTPUT); + digitalWrite(13, LOW); + Bridge.begin(); // make contact with the linux processor + digitalWrite(13, HIGH); // Led on pin 13 turns on when the bridge is ready + + // Recover if the board is in AP mode - unused + Process wifiList; + bool master = false; + wifiList.runShellCommand(F("iwinfo | grep \"Mode: Master\"")); + while (wifiList.available() > 0) { + wifiList.read(); + master = true; + } + + // Get the list of reachable networks + wifiList.runShellCommand(F("iwinfo wlan0 scan | grep ESSID | cut -d\"\\\"\" -f2")); + + uint8_t num_networks = 0; + uint8_t i = 0; + char c; + bool dropNet = false; + + networks[0].reserve(32); + + while (wifiList.available() > 0) { + c = wifiList.read(); + if (c != '\n') { + networks[i] += c; + } else { + // check if we already found networks[i] and eventually drop it + for (uint8_t s = 0; s < i; s++) { + if (networks[i].equals(networks[s])) { + dropNet = true; + } + } + if (i <= MAX_WIFI_LIST && dropNet == false) { + networks[i++].reserve(32); + } else { + dropNet = false; + networks[i]=""; + } + } + } + + num_networks = i; + + String encryption; + String password; + int chose = 0; + + // If networks number is 0, start manual configuration + if (num_networks == 0) { + SERIAL_PORT_USBVIRTUAL.println(F("Oops, it seems that you have no WiFi network available")); + SERIAL_PORT_USBVIRTUAL.println(F("Let's configure it manually")); + SERIAL_PORT_USBVIRTUAL.println(F("SSID of the network you want to connect to: ")); + networks[0] = getUserInput(networks[0], false); + SERIAL_PORT_USBVIRTUAL.println(F("Password for the network you want to connect to: ")); + password = getUserInput(password, true); + SERIAL_PORT_USBVIRTUAL.print(F("Encryption (eg WPA, WPA2, WEP): ")); + encryption = getUserInput(encryption, false); + } else { + // else print them prepending a number + SERIAL_PORT_USBVIRTUAL.print(F("It looks like you have ")); + SERIAL_PORT_USBVIRTUAL.print(num_networks); + SERIAL_PORT_USBVIRTUAL.println(F(" networks around you ")); + SERIAL_PORT_USBVIRTUAL.println(F("Which one do you want to connect to?\n")); + for (i = 0; i < num_networks && i < MAX_WIFI_LIST; i++) { + SERIAL_PORT_USBVIRTUAL.print(i); + SERIAL_PORT_USBVIRTUAL.println(") " + networks[i]); + } + String selection; + selection = getUserInput(selection, false); + chose = atoi(selection.c_str()); + } + + // Extract the selected network security + bool openNet = false; + wifiList.runShellCommand("iwinfo wlan0 scan | grep \"" + networks[chose] + "\" -A5 | grep Encryption | cut -f2 -d\":\""); + while (wifiList.available() > 0) { + c = wifiList.read(); + encryption += c; + } + + if (encryption.indexOf("none") >= 0) { + openNet = true; + encryption = "none"; + } + if (encryption.indexOf("WPA2") >= 0) { + encryption = "psk2"; + } + if (encryption.indexOf("WPA") >= 0) { + encryption = "psk"; + } + if (encryption.indexOf("WEP") >= 0) { + encryption = "wep"; + } + + if (openNet == false && password.length() == 0) { + SERIAL_PORT_USBVIRTUAL.print(F("It looks like you need a password to connect to ")); + SERIAL_PORT_USBVIRTUAL.println(networks[chose]); + SERIAL_PORT_USBVIRTUAL.print(F("Write it here: ")); + password = getUserInput(password, true); + } + + // Change hostname/root password + SERIAL_PORT_USBVIRTUAL.println(F("We are almost done! Give a name and a password to your Yun")); + SERIAL_PORT_USBVIRTUAL.print(F("Name: ")); + yunName = getUserInput(yunName, false); + SERIAL_PORT_USBVIRTUAL.print(F("Password: ")); + yunPassword = getUserInput(yunPassword, true); + + // Select a country code + String countryCode; + SERIAL_PORT_USBVIRTUAL.println(F("One last question: where do you live?")); + SERIAL_PORT_USBVIRTUAL.print(F("Insert a two letters county code (eg IT, US, DE): ")); + countryCode = getUserInput(countryCode, false); + + yunName.trim(); + yunPassword.trim(); + networks[chose].trim(); + password.trim(); + countryCode.trim(); + + // Configure the Yun with user provided strings + wifiConfig(yunName, yunPassword, networks[chose], password, "YUN" + yunName + "AP", countryCode, encryption); + + SERIAL_PORT_USBVIRTUAL.print(F("Waiting for the Yun to connect to the network")); +} + +bool Connected = false; +bool serialTerminalMode = false; +int runs = 0; + +void loop() { + if (!serialTerminalMode) { + String resultStr = ""; + + if (!Connected) { + SERIAL_PORT_USBVIRTUAL.print("."); + runs++; + } + + // If it takes more than 20 seconds to connect, stop trying + if (runs > 20) { + SERIAL_PORT_USBVIRTUAL.println(""); + SERIAL_PORT_USBVIRTUAL.println(F("We couldn't connect to the network.")); + SERIAL_PORT_USBVIRTUAL.println(F("Restart the board if you want to execute the wizard again")); + resultStr = getUserInput(resultStr, false); + } + + // Check if we have an IP address + Process wifiCheck; + wifiCheck.runShellCommand(F("/usr/bin/pretty-wifi-info.lua | grep \"IP address\" | cut -f2 -d\":\" | cut -f1 -d\"/\"" )); // command you want to run + while (wifiCheck.available() > 0) { + char c = wifiCheck.read(); + resultStr += c; + } + + delay(1000); + + if (resultStr != "") { + // We got an IP, freeze the loop, display the value and "spawn" a serial terminal + Connected = true; + resultStr.trim(); + SERIAL_PORT_USBVIRTUAL.println(""); + SERIAL_PORT_USBVIRTUAL.print(F("\nGreat! You can now reach your Yun from a browser typing http://")); + SERIAL_PORT_USBVIRTUAL.println(resultStr); + SERIAL_PORT_USBVIRTUAL.print(F("Press 'Enter' key twice to start a serial terminal")); + resultStr = getUserInput(resultStr, false); + serialTerminalMode = true; + //startSerialTerminal(); + SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command + delay(100); + SERIAL_PORT_HARDWARE.println("\nreset\n\n"); + SERIAL_PORT_HARDWARE.flush(); + SERIAL_PORT_HARDWARE.println("\nreset\n\n"); + SERIAL_PORT_HARDWARE.write((uint8_t *)"\n", 1); + } + + } else { + loopSerialTerminal(); + } +} + +String getUserInput(String out, bool obfuscated) { + /* + while (SerialUSB.available() <= 0) {} + while (SerialUSB.available() > 0) { + char c = SerialUSB.read(); + out += c; + } + return out; + */ + while (SERIAL_PORT_USBVIRTUAL.available() <= 0) {} + while (1) { + char c = SERIAL_PORT_USBVIRTUAL.read(); + if (c == '\n' || c == '\r') + break; + else { + if (c != -1) { + out += c; + if (obfuscated) + SERIAL_PORT_USBVIRTUAL.print("*"); + else + SERIAL_PORT_USBVIRTUAL.print(c); + } + } + } + SERIAL_PORT_USBVIRTUAL.println(""); + return out; +} + +void wifiConfig(String yunName, String yunPsw, String wifissid, String wifipsw, String wifiAPname, String countryCode, String encryption) { + Process p; + + p.runShellCommand("blink-start 100"); //start the blue blink + + p.runShellCommand("hostname " + yunName); //change the current hostname + p.runShellCommand("uci set system.@system[0].hostname='" + yunName + "'"); //change teh hostname in uci + + p.runShellCommand("uci set arduino.@arduino[0].access_point_wifi_name='" + wifiAPname + "'"); + + //this block resets the wifi psw + p.runShellCommand("uci set wireless.@wifi-iface[0].encryption='" + encryption + "'"); + p.runShellCommand("uci set wireless.@wifi-iface[0].mode='sta'\n"); + p.runShellCommand("uci set wireless.@wifi-iface[0].ssid='" + wifissid + "'"); + p.runShellCommand("uci set wireless.@wifi-iface[0].key='" + wifipsw + "'"); + p.runShellCommand("uci set wireless.radio0.channel='auto'"); + p.runShellCommand("uci set wireless.radio0.country='" + countryCode + "'"); + p.runShellCommand("uci delete network.lan.ipaddr"); + p.runShellCommand("uci delete network.lan.netmask"); + p.runShellCommand("uci set network.lan.proto='dhcp'"); + + p.runShellCommand("echo -e \"" + yunPsw + "\n" + yunPsw + "\" | passwd root"); //change the passwors + p.runShellCommand("uci commit"); //save the mods done via UCI + p.runShellCommand("blink-stop"); //start the blue blink + + p.runShellCommand("wifi "); +} + +long linuxBaud = 250000; + +void startSerialTerminal() { + SERIAL_PORT_USBVIRTUAL.begin(115200); // open serial connection via USB-Serial + SERIAL_PORT_HARDWARE.begin(linuxBaud); // open serial connection to Linux +} + +boolean commandMode = false; +void loopSerialTerminal() { + // copy from USB-CDC to UART + int c = SERIAL_PORT_USBVIRTUAL.read(); // read from USB-CDC + if (c != -1) { // got anything? + if (commandMode == false) { // if we aren't in command mode... + if (c == '~') { // Tilde '~' key pressed? + commandMode = true; // enter in command mode + } else { + SERIAL_PORT_HARDWARE.write(c); // otherwise write char to UART + } + } else { // if we are in command mode... + if (c == '0') { // '0' key pressed? + SERIAL_PORT_HARDWARE.begin(57600); // set speed to 57600 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 57600"); + } else if (c == '1') { // '1' key pressed? + SERIAL_PORT_HARDWARE.begin(115200); // set speed to 115200 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 115200"); + } else if (c == '2') { // '2' key pressed? + SERIAL_PORT_HARDWARE.begin(250000); // set speed to 250000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 250000"); + } else if (c == '3') { // '3' key pressed? + SERIAL_PORT_HARDWARE.begin(500000); // set speed to 500000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 500000"); + } else if (c == '~') { // '~` key pressed? + SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command + SERIAL_PORT_USBVIRTUAL.println("Sending bridge's shutdown command"); + } else { // any other key pressed? + SERIAL_PORT_HARDWARE.write('~'); // write '~' to UART + SERIAL_PORT_HARDWARE.write(c); // write char to UART + } + commandMode = false; // in all cases exit from command mode + } + } + + // copy from UART to USB-CDC + c = SERIAL_PORT_HARDWARE.read(); // read from UART + if (c != -1) { // got anything? + SERIAL_PORT_USBVIRTUAL.write(c); // write to USB-CDC + } +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino new file mode 100644 index 00000000000..641c1e9f00e --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/examples/YunSerialTerminal/YunSerialTerminal.ino @@ -0,0 +1,82 @@ +/* + Arduino Yún USB-to-Serial + + Allows you to use the YunShield/Yún processor as a + serial terminal for the Linux side on the Yún. + + Upload this to a YunShield/Yún via serial (not WiFi) then open + the serial monitor at 115200 to see the boot process of Linux. + You can also use the serial monitor as a basic command line + interface for Linux using this sketch. + + From the serial monitor the following commands can be issued: + + '~' followed by '0' -> Set the UART speed to 57600 baud + '~' followed by '1' -> Set the UART speed to 115200 baud + '~' followed by '2' -> Set the UART speed to 250000 baud + '~' followed by '3' -> Set the UART speed to 500000 baud + '~' followed by '~' -> Sends the bridge's shutdown command to + obtain the console. + + The circuit: + YunShield/Yún + + created March 2013 + by Massimo Banzi + modified by Cristian Maglie + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/YunSerialTerminal + +*/ + +long linuxBaud = 250000; + +void setup() { + SERIAL_PORT_USBVIRTUAL.begin(115200); // open serial connection via USB-Serial + SERIAL_PORT_HARDWARE.begin(linuxBaud); // open serial connection to Linux +} + +boolean commandMode = false; + +void loop() { + // copy from USB-CDC to UART + int c = SERIAL_PORT_USBVIRTUAL.read(); // read from USB-CDC + if (c != -1) { // got anything? + if (commandMode == false) { // if we aren't in command mode... + if (c == '~') { // Tilde '~' key pressed? + commandMode = true; // enter in command mode + } else { + SERIAL_PORT_HARDWARE.write(c); // otherwise write char to UART + } + } else { // if we are in command mode... + if (c == '0') { // '0' key pressed? + SERIAL_PORT_HARDWARE.begin(57600); // set speed to 57600 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 57600"); + } else if (c == '1') { // '1' key pressed? + SERIAL_PORT_HARDWARE.begin(115200); // set speed to 115200 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 115200"); + } else if (c == '2') { // '2' key pressed? + SERIAL_PORT_HARDWARE.begin(250000); // set speed to 250000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 250000"); + } else if (c == '3') { // '3' key pressed? + SERIAL_PORT_HARDWARE.begin(500000); // set speed to 500000 + SERIAL_PORT_USBVIRTUAL.println("Speed set to 500000"); + } else if (c == '~') { // '~` key pressed? + SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command + SERIAL_PORT_USBVIRTUAL.println("Sending bridge's shutdown command"); + } else { // any other key pressed? + SERIAL_PORT_HARDWARE.write('~'); // write '~' to UART + SERIAL_PORT_HARDWARE.write(c); // write char to UART + } + commandMode = false; // in all cases exit from command mode + } + } + + // copy from UART to USB-CDC + c = SERIAL_PORT_HARDWARE.read(); // read from UART + if (c != -1) { // got anything? + SERIAL_PORT_USBVIRTUAL.write(c); // write to USB-CDC + } +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/keywords.txt b/app/testdata/libraries/Bridge_1.7.0/Bridge/keywords.txt new file mode 100644 index 00000000000..09fee88834d --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/keywords.txt @@ -0,0 +1,92 @@ +####################################### +# Syntax Coloring Map For Bridge +####################################### + +####################################### +# Class (KEYWORD1) +####################################### + +Bridge KEYWORD1 YunBridgeLibrary +FileIO KEYWORD4 YunFileIOConstructor +FileSystem KEYWORD1 YunFileIOConstructor +Console KEYWORD1 YunConsoleConstructor +Process KEYWORD1 YunProcessConstructor +Mailbox KEYWORD1 YunMailboxConstructor +HttpClient KEYWORD1 YunHttpClientConstructor +YunServer KEYWORD1 YunServerConstructor +YunClient KEYWORD1 YunClientConstructor +BridgeServer KEYWORD1 YunServerConstructor +BridgeClient KEYWORD1 YunClientConstructor +BridgeSSLClient KEYWORD1 YunClientConstructor + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +# methods names in commond +begin KEYWORD2 +end KEYWORD2 +available KEYWORD2 +read KEYWORD2 +peek KEYWORD2 +write KEYWORD2 +flush KEYWORD2 +bool KEYWORD2 + +# Bridge Class +transfer KEYWORD2 +put KEYWORD2 +get KEYWORD2 + +# Console Class +buffer KEYWORD2 +noBuffer KEYWORD2 +connected KEYWORD2 + +# FileIO Class +File KEYWORD2 +BridgeFile KEYWORD2 +seek KEYWORD2 +position KEYWORD2 +size KEYWORD2 +close KEYWORD2 +name KEYWORD2 +isDirectory KEYWORD2 +openNextFile KEYWORD2 +rewindDirectory KEYWORD2 + +# Process Class +addParameter KEYWORD2 +runAsynchronously KEYWORD2 +run KEYWORD2 +running KEYWORD2 +exitValue KEYWORD2 +runShellCommand KEYWORD2 +runShellCommandAsynchronously KEYWORD2 + +# Mailbox Class +readMessage KEYWORD2 +writeMessage KEYWORD2 +writeJSON KEYWORD2 +messageAvailable KEYWORD2 + +# HttpClient Class +getAsynchronously KEYWORD2 +ready KEYWORD2 +getResult KEYWORD2 + +# BridgeServer Class +accept KEYWORD2 +stop KEYWORD2 +connect KEYWORD2 +connectSSL KEYWORD2 +connected KEYWORD2 + + +####################################### +# Constants (LITERAL1) +####################################### + +FILE_READ LITERAL1 +FILE_WRITE LITERAL1 +FILE_APPEND LITERAL1 diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/library.properties b/app/testdata/libraries/Bridge_1.7.0/Bridge/library.properties new file mode 100644 index 00000000000..f49ff5e4f74 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/library.properties @@ -0,0 +1,10 @@ +name=Bridge +version=1.7.0 +author=Arduino +maintainer=Arduino +sentence=Enables the communication between the Linux processor and the microcontroller. For Arduino/Genuino Yún, Yún Shield and TRE only. +paragraph=The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers. +category=Communication +url=http://www.arduino.cc/en/Reference/YunBridgeLibrary +architectures=* +dot_a_linkage=true diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Bridge.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Bridge.cpp new file mode 100644 index 00000000000..54c9fef09a2 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Bridge.cpp @@ -0,0 +1,312 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "Bridge.h" + +BridgeClass::BridgeClass(Stream &_stream) : + index(0), stream(_stream), started(false), max_retries(0) { + // Empty +} + +void BridgeClass::begin() { + if (started) + return; + started = true; + + // Wait for U-boot to finish startup + do { + dropAll(); + delay(1000); + } while (stream.available() > 0); + + while (true) { + // Bridge interrupt: + // - Ask the bridge to close itself + uint8_t quit_cmd[] = {'X', 'X', 'X', 'X', 'X'}; + max_retries = 1; + transfer(quit_cmd, 5); + + // Bridge startup: + // - If the bridge is not running starts it safely + stream.print(CTRL_C); + delay(250); + stream.print(F("\n")); + delay(250); + stream.print(F("\n")); + delay(500); + // Wait for OpenWRT message + // "Press enter to activate console" + stream.print(F("run-bridge\n")); + delay(500); + dropAll(); + + // Reset the brigde to check if it is running + uint8_t cmd[] = {'X', 'X', '1', '0', '0'}; + uint8_t res[4]; + max_retries = 50; + uint16_t l = transfer(cmd, 5, res, 4); + if (l == TRANSFER_TIMEOUT) { + // Bridge didn't start... + // Maybe the board is starting-up? + + // Wait and retry + delay(1000); + continue; + } + if (res[0] != 0) + while (true); + + // Detect bridge version + if (l == 4) { + bridgeVersion = (res[1]-'0')*100 + (res[2]-'0')*10 + (res[3]-'0'); + } else { + // Bridge v1.0.0 didn't send any version info + bridgeVersion = 100; + } + + max_retries = 50; + return; + } +} + +void BridgeClass::end() { + + while (true) { + // Bridge interrupt: + // - Ask the bridge to close itself + uint8_t quit_cmd[] = {'X', 'X', 'X', 'X', 'X'}; + max_retries = 1; + transfer(quit_cmd, 5); + delay(100); + stream.print(CTRL_C); + delay(250); + stream.print(F("cd \n")); + //expect a shell + bool done = false; + delay(100); + while (stream.available()) { + char c = stream.read(); + if (c == '#') { + done = true; + break; + } + } + if (done) { + stream.print(F("reset\n")); + break; + } + } + delay(100); + dropAll(); +} + +void BridgeClass::put(const char *key, const char *value) { + // TODO: do it in a more efficient way + String cmd = "D"; + uint8_t res[1]; + cmd += key; + cmd += "\xFE"; + cmd += value; + transfer((uint8_t*)cmd.c_str(), cmd.length(), res, 1); +} + +unsigned int BridgeClass::get(const char *key, uint8_t *value, unsigned int maxlen) { + uint8_t cmd[] = {'d'}; + unsigned int l = transfer(cmd, 1, (uint8_t *)key, strlen(key), value, maxlen); + if (l < maxlen) + value[l] = 0; // Zero-terminate string + return l; +} + +#if defined(ARDUINO_ARCH_AVR) +// AVR use an optimized implementation of CRC +#include +#else +// Generic implementation for non-AVR architectures +uint16_t _crc_ccitt_update(uint16_t crc, uint8_t data) +{ + data ^= crc & 0xff; + data ^= data << 4; + return ((((uint16_t)data << 8) | ((crc >> 8) & 0xff)) ^ + (uint8_t)(data >> 4) ^ + ((uint16_t)data << 3)); +} +#endif + +void BridgeClass::crcUpdate(uint8_t c) { + CRC = _crc_ccitt_update(CRC, c); +} + +void BridgeClass::crcReset() { + CRC = 0xFFFF; +} + +void BridgeClass::crcWrite() { + stream.write((char)(CRC >> 8)); + stream.write((char)(CRC & 0xFF)); +} + +bool BridgeClass::crcCheck(uint16_t _CRC) { + return CRC == _CRC; +} + +uint16_t BridgeClass::transfer(const uint8_t *buff1, uint16_t len1, + const uint8_t *buff2, uint16_t len2, + const uint8_t *buff3, uint16_t len3, + uint8_t *rxbuff, uint16_t rxlen) +{ + uint16_t len = len1 + len2 + len3; + uint8_t retries = 0; + for ( ; retries < max_retries; retries++, delay(100), dropAll() /* Delay for retransmission */) { + // Send packet + crcReset(); + stream.write((char)0xFF); // Start of packet (0xFF) + crcUpdate(0xFF); + stream.write((char)index); // Message index + crcUpdate(index); + stream.write((char)((len >> 8) & 0xFF)); // Message length (hi) + crcUpdate((len >> 8) & 0xFF); + stream.write((char)(len & 0xFF)); // Message length (lo) + crcUpdate(len & 0xFF); + for (uint16_t i = 0; i < len1; i++) { // Payload + stream.write((char)buff1[i]); + crcUpdate(buff1[i]); + } + for (uint16_t i = 0; i < len2; i++) { // Payload + stream.write((char)buff2[i]); + crcUpdate(buff2[i]); + } + for (uint16_t i = 0; i < len3; i++) { // Payload + stream.write((char)buff3[i]); + crcUpdate(buff3[i]); + } + crcWrite(); // CRC + + // Wait for ACK in 200ms + if (timedRead(200) != 0xFF) + continue; + crcReset(); + crcUpdate(0xFF); + + // Check packet index + if (timedRead(5) != index) + continue; + crcUpdate(index); + + // Recv len + int lh = timedRead(10); + if (lh < 0) + continue; + crcUpdate(lh); + int ll = timedRead(10); + if (ll < 0) + continue; + crcUpdate(ll); + uint16_t l = lh; + l <<= 8; + l += ll; + + // Recv data + for (uint16_t i = 0; i < l; i++) { + // Cut received data if rxbuffer is too small + if (i >= rxlen) + break; + int c = timedRead(5); + if (c < 0) + continue; + rxbuff[i] = c; + crcUpdate(c); + } + + // Check CRC + int crc_hi = timedRead(5); + if (crc_hi < 0) + continue; + int crc_lo = timedRead(5); + if (crc_lo < 0) + continue; + if (!crcCheck((crc_hi << 8) + crc_lo)) + continue; + + // Increase index + index++; + + // Return bytes received + if (l > rxlen) + return rxlen; + return l; + } + + // Max retries exceeded + return TRANSFER_TIMEOUT; +} + +int BridgeClass::timedRead(unsigned int timeout) { + int c; + unsigned long _startMillis = millis(); + do { + c = stream.read(); + if (c >= 0) return c; + } while (millis() - _startMillis < timeout); + return -1; // -1 indicates timeout +} + +void BridgeClass::dropAll() { + while (stream.available() > 0) { + stream.read(); + } +} + +#if defined(ARDUINO_ARCH_SAM) +#include +#endif + +#if defined(ARDUINO_ARCH_SAM) +void checkForRemoteSketchUpdate(uint8_t pin) { + // The host force pin LOW to signal that a new sketch is coming + pinMode(pin, INPUT_PULLUP); + delay(50); + if (digitalRead(pin) == LOW) { + initiateReset(1); + while (true) + ; // Wait for reset to SAM-BA + } + + // Restore in standard state + pinMode(pin, INPUT); +} +#else +void checkForRemoteSketchUpdate(uint8_t /* pin */) { + // Empty, bootloader is enough. +} +#endif + +// Bridge instance +#if defined(SERIAL_PORT_LINUXBRIDGE) +SerialBridgeClass Bridge(SERIAL_PORT_LINUXBRIDGE); +#elif defined(SERIAL_PORT_HARDWARE) +SerialBridgeClass Bridge(SERIAL_PORT_HARDWARE); +#elif defined(SERIAL_PORT_HARDWARE_OPEN) +SerialBridgeClass Bridge(SERIAL_PORT_HARDWARE_OPEN); +#elif defined(__AVR_ATmega32U4__) // Legacy fallback +// Leonardo variants (where HardwareSerial is Serial1) +SerialBridgeClass Bridge(Serial1); +#else +SerialBridgeClass Bridge(Serial); +#endif + diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Bridge.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Bridge.h new file mode 100644 index 00000000000..519c096bfcc --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Bridge.h @@ -0,0 +1,131 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef BRIDGE_H_ +#define BRIDGE_H_ + +#ifndef BRIDGE_BAUDRATE +#define BRIDGE_BAUDRATE 250000 +#endif + +#include +#include + +class BridgeClass { + public: + BridgeClass(Stream &_stream); + void begin(); + void end(); + + // Methods to handle key/value datastore + void put(const char *key, const char *value); + void put(const String &key, const String &value) + { + put(key.c_str(), value.c_str()); + } + unsigned int get(const char *key, uint8_t *buff, unsigned int size); + unsigned int get(const char *key, char *value, unsigned int maxlen) + { + return get(key, reinterpret_cast(value), maxlen); + } + + // Trasnfer a frame (with error correction and response) + uint16_t transfer(const uint8_t *buff1, uint16_t len1, + const uint8_t *buff2, uint16_t len2, + const uint8_t *buff3, uint16_t len3, + uint8_t *rxbuff, uint16_t rxlen); + // multiple inline versions of the same function to allow efficient frame concatenation + uint16_t transfer(const uint8_t *buff1, uint16_t len1) + { + return transfer(buff1, len1, NULL, 0); + } + uint16_t transfer(const uint8_t *buff1, uint16_t len1, + uint8_t *rxbuff, uint16_t rxlen) + { + return transfer(buff1, len1, NULL, 0, rxbuff, rxlen); + } + uint16_t transfer(const uint8_t *buff1, uint16_t len1, + const uint8_t *buff2, uint16_t len2, + uint8_t *rxbuff, uint16_t rxlen) + { + return transfer(buff1, len1, buff2, len2, NULL, 0, rxbuff, rxlen); + } + + uint16_t getBridgeVersion() + { + return bridgeVersion; + } + + static const uint16_t TRANSFER_TIMEOUT = 0xFFFF; + + private: + uint8_t index; + int timedRead(unsigned int timeout); + void dropAll(); + uint16_t bridgeVersion; + + private: + void crcUpdate(uint8_t c); + void crcReset(); + void crcWrite(); + bool crcCheck(uint16_t _CRC); + uint16_t CRC; + + private: + static const char CTRL_C = 3; + Stream &stream; + bool started; + uint8_t max_retries; +}; + +// This subclass uses a serial port Stream +class SerialBridgeClass : public BridgeClass { + public: + SerialBridgeClass(HardwareSerial &_serial) + : BridgeClass(_serial), serial(_serial) { + // Empty + } + + void begin(unsigned long baudrate = BRIDGE_BAUDRATE) { + serial.begin(baudrate); + BridgeClass::begin(); + } + + void end(unsigned long baudrate = BRIDGE_BAUDRATE) { + serial.begin(baudrate); + BridgeClass::end(); + } + + private: + HardwareSerial &serial; +}; + +extern SerialBridgeClass Bridge; + +// Some microcrontrollers don't start the bootloader after a reset. +// This function is intended to let the microcontroller erase its +// flash after checking a specific signal coming from the external +// device without the need to press the erase button on the board. +// The purpose is to enable a software update that does not require +// a manual interaction with the board. +extern void checkForRemoteSketchUpdate(uint8_t pin = 7); + +#endif /* BRIDGE_H_ */ + +#include +#include diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeClient.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeClient.cpp new file mode 100644 index 00000000000..a342abcf2aa --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeClient.cpp @@ -0,0 +1,207 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +BridgeClient::BridgeClient(uint8_t _h, BridgeClass &_b) : + bridge(_b), handle(_h), opened(true), buffered(0) { +} + +BridgeClient::BridgeClient(BridgeClass &_b) : + bridge(_b), handle(0), opened(false), buffered(0) { +} + +BridgeClient::~BridgeClient() { +} + +BridgeClient& BridgeClient::operator=(const BridgeClient &_x) { + opened = _x.opened; + handle = _x.handle; + return *this; +} + +void BridgeClient::stop() { + if (opened) { + uint8_t cmd[] = {'j', handle}; + bridge.transfer(cmd, 2); + } + opened = false; + buffered = 0; + readPos = 0; +} + +void BridgeClient::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + + // Try to buffer up to 32 characters + readPos = 0; + uint8_t cmd[] = {'K', handle, sizeof(buffer)}; + buffered = bridge.transfer(cmd, 3, buffer, sizeof(buffer)); +} + +int BridgeClient::available() { + // Look if there is new data available + doBuffer(); + return buffered; +} + +int BridgeClient::read() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else { + buffered--; + return buffer[readPos++]; + } +} + +int BridgeClient::read(uint8_t *buff, size_t size) { + size_t readed = 0; + do { + if (buffered == 0) { + doBuffer(); + if (buffered == 0) + return readed; + } + buff[readed++] = buffer[readPos++]; + buffered--; + } while (readed < size); + return readed; +} + +int BridgeClient::peek() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else + return buffer[readPos]; +} + +size_t BridgeClient::write(uint8_t c) { + if (!opened) + return 0; + uint8_t cmd[] = {'l', handle, c}; + bridge.transfer(cmd, 3); + return 1; +} + +size_t BridgeClient::write(const uint8_t *buf, size_t size) { + if (!opened) + return 0; + uint8_t cmd[] = {'l', handle}; + bridge.transfer(cmd, 2, buf, size, NULL, 0); + return size; +} + +void BridgeClient::flush() { +} + +uint8_t BridgeClient::connected() { + if (!opened) + return false; + // Client is "connected" if it has unread bytes + if (available()) + return true; + + uint8_t cmd[] = {'L', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, res, 1); + return (res[0] == 1); +} + +int BridgeClient::connect(IPAddress ip, uint16_t port) { + String address; + address.reserve(18); + address += ip[0]; + address += '.'; + address += ip[1]; + address += '.'; + address += ip[2]; + address += '.'; + address += ip[3]; + return connect(address.c_str(), port); +} + +int BridgeClient::connect(const char *host, uint16_t port) { + uint8_t tmp[] = { + 'C', + static_cast(port >> 8), + static_cast(port) + }; + uint8_t res[1]; + int l = bridge.transfer(tmp, 3, (const uint8_t *)host, strlen(host), res, 1); + if (l == 0) + return 0; + handle = res[0]; + + // wait for connection + uint8_t tmp2[] = { 'c', handle }; + uint8_t res2[1]; + while (true) { + bridge.transfer(tmp2, 2, res2, 1); + if (res2[0] == 0) + break; + delay(1); + } + opened = true; + + // check for successful connection + if (connected()) + return 1; + + stop(); + handle = 0; + return 0; +} + +int BridgeClient::connectSSL(const char *host, uint16_t port) { + if (bridge.getBridgeVersion() < 161) + return -1; + + uint8_t tmp[] = { + 'Z', + static_cast(port >> 8), + static_cast(port) + }; + uint8_t res[1]; + int l = bridge.transfer(tmp, 3, (const uint8_t *)host, strlen(host), res, 1); + if (l == 0) + return 0; + handle = res[0]; + + // wait for connection + uint8_t tmp2[] = { 'c', handle }; + uint8_t res2[1]; + while (true) { + bridge.transfer(tmp2, 2, res2, 1); + if (res2[0] == 0) + break; + delay(1); + } + opened = true; + + // check for successful connection + if (connected()) + return 1; + + stop(); + handle = 0; + return 0; +} \ No newline at end of file diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeClient.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeClient.h new file mode 100644 index 00000000000..a55ebb71294 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeClient.h @@ -0,0 +1,71 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _BRIDGE_CLIENT_H_ +#define _BRIDGE_CLIENT_H_ + +#include +#include + +class BridgeClient : public Client { + public: + // Constructor with a user provided BridgeClass instance + BridgeClient(uint8_t _h, BridgeClass &_b = Bridge); + BridgeClient(BridgeClass &_b = Bridge); + ~BridgeClient(); + + // Stream methods + // (read message) + virtual int available(); + virtual int read(); + virtual int read(uint8_t *buf, size_t size); + virtual int peek(); + // (write response) + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *buf, size_t size); + virtual void flush(); + // TODO: add optimized function for block write + + virtual operator bool () { + return opened; + } + + virtual BridgeClient& operator=(const BridgeClient &_x); + + virtual void stop(); + virtual uint8_t connected(); + + virtual int connect(IPAddress ip, uint16_t port); + virtual int connect(const char *host, uint16_t port); + int connectSSL(const char* host, uint16_t port); + + private: + BridgeClass &bridge; + uint8_t handle; + boolean opened; + + private: + void doBuffer(); + uint8_t buffered; + uint8_t readPos; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; + +}; + +#endif // _BRIDGE_CLIENT_H_ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeSSLClient.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeSSLClient.cpp new file mode 100644 index 00000000000..dd8d34b0a2c --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeSSLClient.cpp @@ -0,0 +1,36 @@ +/* + Copyright (c) 2016 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +BridgeSSLClient::BridgeSSLClient(uint8_t _h, BridgeClass &_b) : + BridgeClient(_h, _b) +{ +} + +BridgeSSLClient::BridgeSSLClient(BridgeClass &_b): + BridgeClient(_b) +{ +} + +BridgeSSLClient::~BridgeSSLClient() { +} + +int BridgeSSLClient::connect(const char *host, uint16_t port) { + return BridgeClient::connectSSL(host, port); +} \ No newline at end of file diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeSSLClient.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeSSLClient.h new file mode 100644 index 00000000000..2f09afbeb6c --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeSSLClient.h @@ -0,0 +1,36 @@ +/* + Copyright (c) 2016 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _BRIDGE_SSL_CLIENT_H_ +#define _BRIDGE_SSL_CLIENT_H_ + +#include +#include +#include + +class BridgeSSLClient : public BridgeClient { + public: + // Constructor with a user provided BridgeClass instance + BridgeSSLClient(uint8_t _h, BridgeClass &_b = Bridge); + BridgeSSLClient(BridgeClass &_b = Bridge); + ~BridgeSSLClient(); + + virtual int connect(const char* host, uint16_t port); +}; + +#endif // _BRIDGE_SSL_CLIENT_H_ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeServer.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeServer.cpp new file mode 100644 index 00000000000..a7aa9b0ae7d --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeServer.cpp @@ -0,0 +1,54 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include +#include + +BridgeServer::BridgeServer(uint16_t _p, BridgeClass &_b) : + bridge(_b), port(_p), listening(false), useLocalhost(false) { +} + +void BridgeServer::begin() { + uint8_t tmp[] = { + 'N', + static_cast(port >> 8), + static_cast(port) + }; + uint8_t res[1]; + String address = F("127.0.0.1"); + if (!useLocalhost) + address = F("0.0.0.0"); + bridge.transfer(tmp, 3, (const uint8_t *)address.c_str(), address.length(), res, 1); + listening = (res[0] == 1); +} + +BridgeClient BridgeServer::accept() { + uint8_t cmd[] = {'k'}; + uint8_t res[1]; + unsigned int l = bridge.transfer(cmd, 1, res, 1); + if (l == 0) + return BridgeClient(); + return BridgeClient(res[0]); +} + +size_t BridgeServer::write(uint8_t c) { + uint8_t cmd[] = { 'b', c }; + bridge.transfer(cmd, 2); + return 1; +} + diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeServer.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeServer.h new file mode 100644 index 00000000000..676a9729bd6 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeServer.h @@ -0,0 +1,51 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _BRIDGE_SERVER_H_ +#define _BRIDGE_SERVER_H_ + +#include +#include + +class BridgeClient; + +class BridgeServer : public Server { + public: + // Constructor with a user provided BridgeClass instance + BridgeServer(uint16_t port = 5555, BridgeClass &_b = Bridge); + + void begin(); + BridgeClient accept(); + + virtual size_t write(uint8_t c); + + void listenOnLocalhost() { + useLocalhost = true; + } + void noListenOnLocalhost() { + useLocalhost = false; + } + + private: + BridgeClass &bridge; + uint16_t port; + bool listening; + bool useLocalhost; +}; + +#endif // _BRIDGE_SERVER_H_ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeUdp.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeUdp.cpp new file mode 100644 index 00000000000..ae630e3ab8f --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeUdp.cpp @@ -0,0 +1,198 @@ +/* + Copyright (c) 2015 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "BridgeUdp.h" + +BridgeUDP::BridgeUDP(BridgeClass &_b) : + bridge(_b), opened(false), avail(0), buffered(0), readPos(0) { +} + +/* Start BridgeUDP socket, listening at local port PORT */ +uint8_t BridgeUDP::begin(uint16_t port) { + if (opened) + return 0; + uint8_t cmd[] = {'e', (uint8_t)((port >> 8) & 0xFF), (uint8_t)(port & 0xFF)}; + uint8_t res[2]; + bridge.transfer(cmd, 3, res, 2); + if (res[1] == 1) // Error... + return 0; + handle = res[0]; + opened = true; + return 1; +} + +/* Release any resources being used by this BridgeUDP instance */ +void BridgeUDP::stop() +{ + if (!opened) + return; + uint8_t cmd[] = {'q', handle}; + bridge.transfer(cmd, 2); + opened = false; +} + +int BridgeUDP::beginPacket(const char *host, uint16_t port) +{ + if (!opened) + return 0; + uint8_t cmd[] = {'E', handle, (uint8_t)((port >> 8) & 0xFF), (uint8_t)(port & 0xFF)}; + uint8_t res[1]; + bridge.transfer(cmd, 4, (const uint8_t *)host, strlen(host), res, 1); + return res[0]; // 1=Success, 0=Error +} + +int BridgeUDP::beginBroadcastPacket(uint16_t port) +{ + if (!opened) + return 0; + uint8_t cmd[] = {'v', handle, (uint8_t)((port >> 8) & 0xFF), (uint8_t)(port & 0xFF)}; + uint8_t res[1]; + bridge.transfer(cmd, 4, res, 1); + return res[0]; // 1=Success, 0=Error +} + +int BridgeUDP::beginPacket(IPAddress ip, uint16_t port) +{ + if (!opened) + return 0; + String address; + address.reserve(18); + address += ip[0]; + address += '.'; + address += ip[1]; + address += '.'; + address += ip[2]; + address += '.'; + address += ip[3]; + return beginPacket(address.c_str(), port); +} + +int BridgeUDP::endPacket() +{ + if (!opened) + return 0; + uint8_t cmd[] = {'H', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, res, 1); + return res[0]; // 1=Success, 0=Error +} + +size_t BridgeUDP::write(const uint8_t *buffer, size_t size) +{ + if (!opened) + return 0; + uint8_t cmd[] = {'h', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, buffer, size, res, 1); + return res[0]; // 1=Success, 0=Error +} + +int BridgeUDP::parsePacket() +{ + if (!opened) + return 0; + buffered = 0; + readPos = 0; + uint8_t cmd[] = {'Q', handle}; + uint8_t res[3]; + bridge.transfer(cmd, 2, res, 3); + if (res[0] == 0) { + // There aren't any packets available + return 0; + } + avail = (res[1] << 8) + res[2]; + return 1; +} + +void BridgeUDP::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + if (avail == 0) + return; + + // Try to buffer up to 32 characters + readPos = 0; + uint8_t cmd[] = {'u', handle, sizeof(buffer)}; + buffered = bridge.transfer(cmd, 3, buffer, sizeof(buffer)); +} + +int BridgeUDP::read() +{ + if (!opened) + return -1; + doBuffer(); + if (buffered == 0) { + return -1; // no chars available + } + buffered--; + avail--; + return buffer[readPos++]; +} + +int BridgeUDP::read(unsigned char* buff, size_t size) +{ + if (!opened) + return -1; + size_t readed = 0; + do { + if (buffered == 0) { + doBuffer(); + if (buffered == 0) + return readed; + } + buff[readed++] = buffer[readPos++]; + buffered--; + avail--; + } while (readed < size); + return readed; +} + +int BridgeUDP::peek() +{ + if (!opened) + return -1; + doBuffer(); + if (buffered == 0) + return -1; // no chars available + return buffer[readPos]; +} + +IPAddress BridgeUDP::remoteIP() +{ + if (!opened) + return -1; + uint8_t cmd[] = {'T', handle}; + uint8_t res[7]; + bridge.transfer(cmd, 2, res, 7); + if (res[0] == 0) + return IPAddress(0,0,0,0); + return IPAddress(res[1], res[2], res[3], res[4]); +} + +uint16_t BridgeUDP::remotePort() +{ + if (!opened) + return -1; + uint8_t cmd[] = {'T', handle}; + uint8_t res[7]; + bridge.transfer(cmd, 2, res, 7); + if (res[0] == 0) + return 0; + return (res[5] << 8) + res[6]; +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeUdp.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeUdp.h new file mode 100644 index 00000000000..73cec54ea62 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/BridgeUdp.h @@ -0,0 +1,65 @@ +/* + Copyright (c) 2015 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include +#include "Bridge.h" + +class BridgeUDP : public UDP { + + public: + BridgeUDP(BridgeClass &_b = Bridge); + virtual uint8_t begin(uint16_t); + virtual void stop(); + + virtual int beginPacket(IPAddress ip, uint16_t port); + virtual int beginPacket(const char *host, uint16_t port); + virtual int beginBroadcastPacket(uint16_t port); + virtual int endPacket(); + virtual size_t write(uint8_t d) { return write(&d, 1); } + virtual size_t write(const uint8_t *buffer, size_t size); + + using Print::write; + + virtual int parsePacket(); + /* return number of bytes available in the current packet, + will return zero if parsePacket hasn't been called yet */ + virtual int available() { return avail; } + virtual int read(); + virtual int read(unsigned char* buffer, size_t len); + virtual int read(char* buffer, size_t len) { return read((unsigned char*)buffer, len); }; + virtual int peek(); + virtual void flush() { avail = 0; } + + virtual IPAddress remoteIP(); + virtual uint16_t remotePort(); + + private: + BridgeClass &bridge; + uint8_t handle; + boolean opened; + + private: + void doBuffer(); + uint16_t avail; + uint8_t buffered; + uint8_t readPos; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; +}; diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Console.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Console.cpp new file mode 100644 index 00000000000..7e8323d4504 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Console.cpp @@ -0,0 +1,150 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +// Default constructor uses global Bridge instance +ConsoleClass::ConsoleClass() : + bridge(Bridge), inBuffered(0), inReadPos(0), inBuffer(NULL), + autoFlush(true) +{ + // Empty +} + +// Constructor with a user provided BridgeClass instance +ConsoleClass::ConsoleClass(BridgeClass &_b) : + bridge(_b), inBuffered(0), inReadPos(0), inBuffer(NULL), + autoFlush(true) +{ + // Empty +} + +ConsoleClass::~ConsoleClass() { + end(); +} + +size_t ConsoleClass::write(uint8_t c) { + if (autoFlush) { + uint8_t tmp[] = { 'P', c }; + bridge.transfer(tmp, 2); + } else { + outBuffer[outBuffered++] = c; + if (outBuffered == outBufferSize) + flush(); + } + return 1; +} + +size_t ConsoleClass::write(const uint8_t *buff, size_t size) { + if (autoFlush) { + uint8_t tmp[] = { 'P' }; + bridge.transfer(tmp, 1, buff, size, NULL, 0); + } else { + size_t sent = size; + while (sent > 0) { + outBuffer[outBuffered++] = *buff++; + sent--; + if (outBuffered == outBufferSize) + flush(); + } + } + return size; +} + +void ConsoleClass::flush() { + if (autoFlush) + return; + + bridge.transfer(outBuffer, outBuffered); + outBuffered = 1; +} + +void ConsoleClass::noBuffer() { + if (autoFlush) + return; + delete[] outBuffer; + autoFlush = true; +} + +void ConsoleClass::buffer(uint8_t size) { + noBuffer(); + if (size == 0) + return; + outBuffer = new uint8_t[size + 1]; + outBuffer[0] = 'P'; // WRITE tag + outBufferSize = size + 1; + outBuffered = 1; + autoFlush = false; +} + +bool ConsoleClass::connected() { + uint8_t tmp = 'a'; + bridge.transfer(&tmp, 1, &tmp, 1); + return tmp == 1; +} + +int ConsoleClass::available() { + // Look if there is new data available + doBuffer(); + return inBuffered; +} + +int ConsoleClass::read() { + doBuffer(); + if (inBuffered == 0) + return -1; // no chars available + else { + inBuffered--; + return inBuffer[inReadPos++]; + } +} + +int ConsoleClass::peek() { + doBuffer(); + if (inBuffered == 0) + return -1; // no chars available + else + return inBuffer[inReadPos]; +} + +void ConsoleClass::doBuffer() { + // If there are already char in buffer exit + if (inBuffered > 0) + return; + + // Try to buffer up to 32 characters + inReadPos = 0; + uint8_t tmp[] = { 'p', BUFFER_SIZE }; + inBuffered = bridge.transfer(tmp, 2, inBuffer, BUFFER_SIZE); +} + +void ConsoleClass::begin() { + bridge.begin(); + end(); + inBuffer = new uint8_t[BUFFER_SIZE]; +} + +void ConsoleClass::end() { + noBuffer(); + if (inBuffer) { + delete[] inBuffer; + inBuffer = NULL; + } +} + +ConsoleClass Console; diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Console.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Console.h new file mode 100644 index 00000000000..ca05b08cf71 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Console.h @@ -0,0 +1,71 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef CONSOLE_H_ +#define CONSOLE_H_ + +#include + +class ConsoleClass : public Stream { + public: + // Default constructor uses global Bridge instance + ConsoleClass(); + // Constructor with a user provided BridgeClass instance + ConsoleClass(BridgeClass &_b); + ~ConsoleClass(); + + void begin(); + void end(); + + void buffer(uint8_t size); + void noBuffer(); + + bool connected(); + + // Stream methods + // (read from console socket) + int available(); + int read(); + int peek(); + // (write to console socket) + size_t write(uint8_t); + size_t write(const uint8_t *buffer, size_t size); + void flush(); + + operator bool () { + return connected(); + } + + private: + BridgeClass &bridge; + + void doBuffer(); + uint8_t inBuffered; + uint8_t inReadPos; + static const int BUFFER_SIZE = 32; + uint8_t *inBuffer; + + bool autoFlush; + uint8_t outBuffered; + uint8_t outBufferSize; + uint8_t *outBuffer; +}; + +extern ConsoleClass Console; + +#endif diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/FileIO.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/FileIO.cpp new file mode 100644 index 00000000000..e24a5679643 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/FileIO.cpp @@ -0,0 +1,283 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +namespace BridgeLib { + +File::File(BridgeClass &b) : bridge(b), mode(255) { + // Empty +} + +File::File(const char *_filename, uint8_t _mode, BridgeClass &b) : bridge(b), mode(_mode) { + filename = _filename; + uint8_t modes[] = {'r', 'w', 'a'}; + uint8_t cmd[] = {'F', modes[mode]}; + uint8_t res[2]; + dirPosition = 1; + bridge.transfer(cmd, 2, (uint8_t*)filename.c_str(), filename.length(), res, 2); + if (res[0] != 0) { // res[0] contains error code + mode = 255; // In case of error keep the file closed + return; + } + handle = res[1]; + buffered = 0; +} + +File::operator bool() { + return (mode != 255); +} + +File::~File() { + close(); +} + +size_t File::write(uint8_t c) { + return write(&c, 1); +} + +size_t File::write(const uint8_t *buf, size_t size) { + if (mode == 255) + return -1; + uint8_t cmd[] = {'g', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, buf, size, res, 1); + if (res[0] != 0) // res[0] contains error code + return -res[0]; + return size; +} + +int File::read() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else { + buffered--; + return buffer[readPos++]; + } +} + +int File::peek() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else + return buffer[readPos]; +} + +boolean File::seek(uint32_t position) { + uint8_t cmd[] = { + 's', + handle, + static_cast(position >> 24), + static_cast(position >> 16), + static_cast(position >> 8), + static_cast(position) + }; + uint8_t res[1]; + bridge.transfer(cmd, 6, res, 1); + if (res[0] == 0) { + // If seek succeed then flush buffers + buffered = 0; + return true; + } + return false; +} + +uint32_t File::position() { + uint8_t cmd[] = {'S', handle}; + uint8_t res[5]; + bridge.transfer(cmd, 2, res, 5); + //err = res[0]; // res[0] contains error code + uint32_t pos; + pos = static_cast(res[1]) << 24; + pos += static_cast(res[2]) << 16; + pos += static_cast(res[3]) << 8; + pos += static_cast(res[4]); + return pos - buffered; +} + +void File::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + + // Try to buffer up to BUFFER_SIZE characters + readPos = 0; + uint8_t cmd[] = {'G', handle, BUFFER_SIZE - 1}; + uint16_t readed = bridge.transfer(cmd, 3, buffer, BUFFER_SIZE); + //err = buff[0]; // First byte is error code + if (readed == BridgeClass::TRANSFER_TIMEOUT || readed == 0) { + // transfer failed to retrieve any data + buffered = 0; + } else { + // transfer retrieved at least one byte of data so skip the error code character + readPos++; + buffered = readed - 1; + } +} + +int File::available() { + // Look if there is new data available + doBuffer(); + return buffered; +} + +void File::flush() { +} + +int File::read(void *buff, uint16_t nbyte) { + uint16_t n = 0; + uint8_t *p = reinterpret_cast(buff); + while (n < nbyte) { + if (buffered == 0) { + doBuffer(); + if (buffered == 0) + break; + } + *p++ = buffer[readPos++]; + buffered--; + n++; + } + return n; +} + +uint32_t File::size() { + if (bridge.getBridgeVersion() < 101) + return 0; + uint8_t cmd[] = {'t', handle}; + uint8_t buff[5]; + bridge.transfer(cmd, 2, buff, 5); + //err = res[0]; // First byte is error code + uint32_t res; + res = ((uint32_t)buff[1]) << 24; + res |= ((uint32_t)buff[2]) << 16; + res |= ((uint32_t)buff[3]) << 8; + res |= ((uint32_t)buff[4]); + return res; +} + +void File::close() { + if (mode == 255) + return; + uint8_t cmd[] = {'f', handle}; + uint8_t ret[1]; + bridge.transfer(cmd, 2, ret, 1); + mode = 255; +} + +const char *File::name() { + return filename.c_str(); +} + + +boolean File::isDirectory() { + uint8_t res[1]; + uint8_t cmd[] = {'i'}; + if (mode != 255) + return 0; + + bridge.transfer(cmd, 1, (uint8_t *)filename.c_str(), filename.length(), res, 1); + return res[0]; +} + + +File File::openNextFile(uint8_t mode) { + Process awk; + char tmp; + String command; + String filepath; + if (dirPosition == 0xFFFF) return File(); + + command = "ls "; + command += filename; + command += " | awk 'NR=="; + command += dirPosition; + command += "'"; + + awk.runShellCommand(command); + + while (awk.running()); + + command = ""; + + while (awk.available()) { + tmp = awk.read(); + if (tmp != '\n') command += tmp; + } + if (command.length() == 0) + return File(); + dirPosition++; + filepath = filename + "/" + command; + return File(filepath.c_str(), mode); + +} + +void File::rewindDirectory(void) { + dirPosition = 1; +} + + + + + + +boolean FileSystemClass::begin() { + return true; +} + +File FileSystemClass::open(const char *filename, uint8_t mode) { + return File(filename, mode); +} + +boolean FileSystemClass::exists(const char *filepath) { + Process ls; + ls.begin("ls"); + ls.addParameter(filepath); + int res = ls.run(); + return (res == 0); +} + +boolean FileSystemClass::mkdir(const char *filepath) { + Process mk; + mk.begin("mkdir"); + mk.addParameter("-p"); + mk.addParameter(filepath); + int res = mk.run(); + return (res == 0); +} + +boolean FileSystemClass::remove(const char *filepath) { + Process rm; + rm.begin("rm"); + rm.addParameter(filepath); + int res = rm.run(); + return (res == 0); +} + +boolean FileSystemClass::rmdir(const char *filepath) { + Process rm; + rm.begin("rmdir"); + rm.addParameter(filepath); + int res = rm.run(); + return (res == 0); +} + +FileSystemClass FileSystem; + +} diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/FileIO.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/FileIO.h new file mode 100644 index 00000000000..c5a8e9eac07 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/FileIO.h @@ -0,0 +1,120 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef __FILEIO_H__ +#define __FILEIO_H__ + +#include + +#define FILE_READ 0 +#define FILE_WRITE 1 +#define FILE_APPEND 2 + +namespace BridgeLib { + +class File : public Stream { + + public: + File(BridgeClass &b = Bridge); + File(const char *_filename, uint8_t _mode, BridgeClass &b = Bridge); + ~File(); + + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *buf, size_t size); + virtual int read(); + virtual int peek(); + virtual int available(); + virtual void flush(); + int read(void *buf, uint16_t nbyte); + boolean seek(uint32_t pos); + uint32_t position(); + uint32_t size(); + void close(); + operator bool(); + const char * name(); + boolean isDirectory(); + File openNextFile(uint8_t mode = FILE_READ); + void rewindDirectory(void); + + //using Print::write; + + private: + void doBuffer(); + uint8_t buffered; + uint8_t readPos; + uint16_t dirPosition; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; + + + private: + BridgeClass &bridge; + String filename; + uint8_t mode; + uint8_t handle; + +}; + +class FileSystemClass { + public: + FileSystemClass() : bridge(Bridge) { } + FileSystemClass(BridgeClass &_b) : bridge(_b) { } + + boolean begin(); + + // Open the specified file/directory with the supplied mode (e.g. read or + // write, etc). Returns a File object for interacting with the file. + // Note that currently only one file can be open at a time. + File open(const char *filename, uint8_t mode = FILE_READ); + + // Methods to determine if the requested file path exists. + boolean exists(const char *filepath); + + // Create the requested directory hierarchy--if intermediate directories + // do not exist they will be created. + boolean mkdir(const char *filepath); + + // Delete the file. + boolean remove(const char *filepath); + + boolean rmdir(const char *filepath); + + private: + friend class File; + + BridgeClass &bridge; +}; + +extern FileSystemClass FileSystem; + +}; + +// We enclose File and FileSystem classes in namespace BridgeLib to avoid +// conflicts with legacy SD library. + +// This ensure compatibility with older sketches that uses only Bridge lib +// (the user can still use File instead of BridgeFile) +using namespace BridgeLib; + +// This allows sketches to use BridgeLib::File together with SD library +// (you must use BridgeFile instead of File when needed to disambiguate) +typedef BridgeLib::File BridgeFile; +typedef BridgeLib::FileSystemClass BridgeFileSystemClass; +#define BridgeFileSystem BridgeLib::FileSystem + +#endif diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/HttpClient.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/HttpClient.cpp new file mode 100644 index 00000000000..ee1629cc3b7 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/HttpClient.cpp @@ -0,0 +1,204 @@ +/* + Copyright (c) 2013-2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "HttpClient.h" + +HttpClient::HttpClient() : + insecure(false) { + // Empty +} + +unsigned int HttpClient::get(String &url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + return run(); +} + +unsigned int HttpClient::get(const char *url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::getAsynchronously(String &url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + runAsynchronously(); +} + +void HttpClient::getAsynchronously(const char *url) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addHeader(); + addParameter(url); + runAsynchronously(); +} + +unsigned int HttpClient::post(String &url, String &data) { + return post(url.c_str(), data.c_str()); +} + +unsigned int HttpClient::post(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("POST"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::postAsynchronously(String &url, String &data) { + postAsynchronously(url.c_str(), data.c_str()); +} + +void HttpClient::postAsynchronously(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("POST"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + runAsynchronously(); +} + +unsigned int HttpClient::patch(String &url, String &data) { + return patch(url.c_str(), data.c_str()); +} + +unsigned int HttpClient::patch(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PATCH"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::patchAsynchronously(String &url, String &data) { + patchAsynchronously(url.c_str(), data.c_str()); +} + +void HttpClient::patchAsynchronously(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PATCH"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + runAsynchronously(); +} + +unsigned int HttpClient::put(String &url, String &data) { + return put(url.c_str(), data.c_str()); +} + +unsigned int HttpClient::put(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PUT"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + return run(); +} + +void HttpClient::putAsynchronously(String &url, String &data) { + putAsynchronously(url.c_str(), data.c_str()); +} + +void HttpClient::putAsynchronously(const char *url, const char *data) { + begin("curl"); + if (insecure) { + addParameter("-k"); + } + addParameter("--request"); + addParameter("PUT"); + addParameter("--data"); + addParameter(data); + addHeader(); + addParameter(url); + runAsynchronously(); +} + +boolean HttpClient::ready() { + return !running(); +} + +unsigned int HttpClient::getResult() { + return exitValue(); +} + +void HttpClient::noCheckSSL() { + insecure = true; +} + +void HttpClient::checkSSL() { + insecure = false; +} + +void HttpClient::setHeader(String &header) { + this->header = header; +} + +void HttpClient::setHeader(const char * header) { + this->header = String(header); +} + +void HttpClient::addHeader() { + if (header.length() > 0) { + addParameter("--header"); + addParameter(header); + } +} + diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/HttpClient.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/HttpClient.h new file mode 100644 index 00000000000..a6e3c77aa1a --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/HttpClient.h @@ -0,0 +1,59 @@ +/* + Copyright (c) 2013-2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef HTTPCLIENT_H_ +#define HTTPCLIENT_H_ + +#include + +class HttpClient : public Process { + public: + HttpClient(); + + unsigned int get(String &url); + unsigned int get(const char * url); + void getAsynchronously(String &url); + void getAsynchronously(const char * url); + unsigned int post(String &url, String &data); + unsigned int post(const char * url, const char * data); + void postAsynchronously(String &url, String &data); + void postAsynchronously(const char * url, const char * data); + unsigned int patch(String &url, String &data); + unsigned int patch(const char * url, const char * data); + void patchAsynchronously(String &url, String &data); + void patchAsynchronously(const char * url, const char * data); + unsigned int put(String &url, String &data); + unsigned int put(const char * url, const char * data); + void putAsynchronously(String &url, String &data); + void putAsynchronously(const char * url, const char * data); + void setHeader(String &header); + void setHeader(const char * header); + boolean ready(); + unsigned int getResult(); + void noCheckSSL(); + void checkSSL(); + + private: + boolean insecure; + + private: + void addHeader(); + String header; +}; + +#endif /* HTTPCLIENT_H_ */ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Mailbox.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Mailbox.cpp new file mode 100644 index 00000000000..0c571f73a33 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Mailbox.cpp @@ -0,0 +1,56 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +unsigned int MailboxClass::readMessage(uint8_t *buff, unsigned int size) { + uint8_t tmp[] = { 'm' }; + return bridge.transfer(tmp, 1, buff, size); +} + +void MailboxClass::readMessage(String &str, unsigned int maxLength) { + uint8_t tmp[] = { 'm' }; + // XXX: Is there a better way to create the string? + uint8_t buff[maxLength + 1]; + int l = bridge.transfer(tmp, 1, buff, maxLength); + buff[l] = 0; + str = (const char *)buff; +} + +void MailboxClass::writeMessage(const uint8_t *buff, unsigned int size) { + uint8_t cmd[] = {'M'}; + bridge.transfer(cmd, 1, buff, size, NULL, 0); +} + +void MailboxClass::writeMessage(const String& str) { + writeMessage((uint8_t*) str.c_str(), str.length()); +} + +void MailboxClass::writeJSON(const String& str) { + uint8_t cmd[] = {'J'}; + bridge.transfer(cmd, 1, (uint8_t*) str.c_str(), str.length(), NULL, 0); +} + +unsigned int MailboxClass::messageAvailable() { + uint8_t tmp[] = {'n'}; + uint8_t res[2]; + bridge.transfer(tmp, 1, res, 2); + return (res[0] << 8) + res[1]; +} + +MailboxClass Mailbox(Bridge); diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Mailbox.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Mailbox.h new file mode 100644 index 00000000000..b2e383308a3 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Mailbox.h @@ -0,0 +1,53 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _MAILBOX_CLASS_H_INCLUDED_ +#define _MAILBOX_CLASS_H_INCLUDED_ + +#include + +class MailboxClass { + public: + MailboxClass(BridgeClass &b = Bridge) : bridge(b) { } + + void begin() { } + void end() { } + + // Receive a message and store it inside a buffer + unsigned int readMessage(uint8_t *buffer, unsigned int size); + // Receive a message and store it inside a String + void readMessage(String &str, unsigned int maxLength = 128); + + // Send a message + void writeMessage(const uint8_t *buffer, unsigned int size); + // Send a message + void writeMessage(const String& str); + // Send a JSON message + void writeJSON(const String& str); + + // Return the size of the next available message, 0 if there are + // no messages in queue. + unsigned int messageAvailable(); + + private: + BridgeClass &bridge; +}; + +extern MailboxClass Mailbox; + +#endif // _MAILBOX_CLASS_H_INCLUDED_ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Process.cpp b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Process.cpp new file mode 100644 index 00000000000..987f0b8ac16 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Process.cpp @@ -0,0 +1,142 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include + +Process::~Process() { + close(); +} + +size_t Process::write(uint8_t c) { + uint8_t cmd[] = {'I', handle, c}; + bridge.transfer(cmd, 3); + return 1; +} + +void Process::flush() { +} + +int Process::available() { + // Look if there is new data available + doBuffer(); + return buffered; +} + +int Process::read() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else { + buffered--; + return buffer[readPos++]; + } +} + +int Process::peek() { + doBuffer(); + if (buffered == 0) + return -1; // no chars available + else + return buffer[readPos]; +} + +void Process::doBuffer() { + // If there are already char in buffer exit + if (buffered > 0) + return; + + // Try to buffer up to 32 characters + readPos = 0; + uint8_t cmd[] = {'O', handle, sizeof(buffer)}; + buffered = bridge.transfer(cmd, 3, buffer, sizeof(buffer)); +} + +void Process::begin(const String &command) { + close(); + cmdline = new String(command); +} + +void Process::addParameter(const String ¶m) { + *cmdline += "\xFE"; + *cmdline += param; +} + +void Process::runAsynchronously() { + uint8_t cmd[] = {'R'}; + uint8_t res[2]; + bridge.transfer(cmd, 1, (uint8_t*)cmdline->c_str(), cmdline->length(), res, 2); + handle = res[1]; + + delete cmdline; + cmdline = NULL; + + if (res[0] == 0) // res[0] contains error code + started = true; +} + +boolean Process::running() { + uint8_t cmd[] = {'r', handle}; + uint8_t res[1]; + bridge.transfer(cmd, 2, res, 1); + return (res[0] == 1); +} + +unsigned int Process::exitValue() { + uint8_t cmd[] = {'W', handle}; + uint8_t res[2]; + bridge.transfer(cmd, 2, res, 2); + return (res[0] << 8) + res[1]; +} + +unsigned int Process::run() { + runAsynchronously(); + while (running()) + delay(100); + return exitValue(); +} + +void Process::close() { + if (started) { + uint8_t cmd[] = {'w', handle}; + bridge.transfer(cmd, 2); + } + started = false; +} + +unsigned int Process::runShellCommand(const String &command) { + runShellCommandAsynchronously(command); + while (running()) + delay(100); + return exitValue(); +} + +void Process::runShellCommandAsynchronously(const String &command) { + begin("/bin/ash"); + addParameter("-c"); + addParameter(command); + runAsynchronously(); +} + +// This method is currently unused +//static unsigned int __commandOutputAvailable(uint8_t handle) { +// uint8_t cmd[] = {'o', handle}; +// uint8_t res[1]; +// Bridge.transfer(cmd, 2, res, 1); +// return res[0]; +//} + diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Process.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Process.h new file mode 100644 index 00000000000..7002764a03b --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/Process.h @@ -0,0 +1,71 @@ +/* + Copyright (c) 2013 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef PROCESS_H_ +#define PROCESS_H_ + +#include + +class Process : public Stream { + public: + // Constructor with a user provided BridgeClass instance + Process(BridgeClass &_b = Bridge) : + bridge(_b), started(false), buffered(0), readPos(0) { } + ~Process(); + + void begin(const String &command); + void addParameter(const String ¶m); + unsigned int run(); + void runAsynchronously(); + boolean running(); + unsigned int exitValue(); + void close(); + + unsigned int runShellCommand(const String &command); + void runShellCommandAsynchronously(const String &command); + + operator bool () { + return started; + } + + // Stream methods + // (read from process stdout) + int available(); + int read(); + int peek(); + // (write to process stdin) + size_t write(uint8_t); + void flush(); + // TODO: add optimized function for block write + + private: + BridgeClass &bridge; + uint8_t handle; + String *cmdline; + boolean started; + + private: + void doBuffer(); + uint8_t buffered; + uint8_t readPos; + static const int BUFFER_SIZE = 64; + uint8_t buffer[BUFFER_SIZE]; + +}; + +#endif diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/YunClient.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/YunClient.h new file mode 100644 index 00000000000..faff247c9b4 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/YunClient.h @@ -0,0 +1,27 @@ +/* + Copyright (c) 2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _YUN_CLIENT_H_ +#define _YUN_CLIENT_H_ + +#include + +#warning "The use of YunClient is deprecated. Use BridgeClient instead!" +typedef BridgeClient YunClient; + +#endif // _YUN_CLIENT_H_ diff --git a/app/testdata/libraries/Bridge_1.7.0/Bridge/src/YunServer.h b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/YunServer.h new file mode 100644 index 00000000000..95d05cd71e5 --- /dev/null +++ b/app/testdata/libraries/Bridge_1.7.0/Bridge/src/YunServer.h @@ -0,0 +1,27 @@ +/* + Copyright (c) 2014 Arduino LLC. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef _YUN_SERVER_H_ +#define _YUN_SERVER_H_ + +#include + +#warning "The use of YunServer is deprecated. Use BridgeServer instead!" +typedef BridgeServer YunServer; + +#endif // _YUN_SERVER_H_ diff --git a/app/testdata/libraries/SD_1.1.1/SD/README.adoc b/app/testdata/libraries/SD_1.1.1/SD/README.adoc new file mode 100644 index 00000000000..fabff563c52 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/README.adoc @@ -0,0 +1,24 @@ += SD Library for Arduino = + +The SD library allows for reading from and writing to SD cards. + +For more information about this library please visit us at +http://www.arduino.cc/en/Reference/SD + +== License == + + Copyright (C) 2009 by William Greiman +Copyright (c) 2010 SparkFun Electronics + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +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, see . diff --git a/app/testdata/libraries/SD_1.1.1/SD/examples/CardInfo/CardInfo.ino b/app/testdata/libraries/SD_1.1.1/SD/examples/CardInfo/CardInfo.ino new file mode 100644 index 00000000000..69292de8502 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/examples/CardInfo/CardInfo.ino @@ -0,0 +1,112 @@ +/* + SD card test + + This example shows how use the utility libraries on which the' + SD library is based in order to get info about your SD card. + Very useful for testing a card when you're not sure whether its working or not. + + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila + ** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila + ** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila + ** CS - depends on your SD card shield or module. + Pin 4 used here for consistency with other Arduino examples + + + created 28 Mar 2011 + by Limor Fried + modified 9 Apr 2012 + by Tom Igoe + */ +// include the SD library: +#include +#include + +// set up variables using the SD utility library functions: +Sd2Card card; +SdVolume volume; +SdFile root; + +// change this to match your SD shield or module; +// Arduino Ethernet shield: pin 4 +// Adafruit SD shields and modules: pin 10 +// Sparkfun SD shield: pin 8 +// MKRZero SD: SDCARD_SS_PIN +const int chipSelect = 4; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("\nInitializing SD card..."); + + // we'll use the initialization code from the utility libraries + // since we're just testing if the card is working! + if (!card.init(SPI_HALF_SPEED, chipSelect)) { + Serial.println("initialization failed. Things to check:"); + Serial.println("* is a card inserted?"); + Serial.println("* is your wiring correct?"); + Serial.println("* did you change the chipSelect pin to match your shield or module?"); + return; + } else { + Serial.println("Wiring is correct and a card is present."); + } + + // print the type of card + Serial.print("\nCard type: "); + switch (card.type()) { + case SD_CARD_TYPE_SD1: + Serial.println("SD1"); + break; + case SD_CARD_TYPE_SD2: + Serial.println("SD2"); + break; + case SD_CARD_TYPE_SDHC: + Serial.println("SDHC"); + break; + default: + Serial.println("Unknown"); + } + + // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32 + if (!volume.init(card)) { + Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card"); + return; + } + + + // print the type and size of the first FAT-type volume + uint32_t volumesize; + Serial.print("\nVolume type is FAT"); + Serial.println(volume.fatType(), DEC); + Serial.println(); + + volumesize = volume.blocksPerCluster(); // clusters are collections of blocks + volumesize *= volume.clusterCount(); // we'll have a lot of clusters + volumesize *= 512; // SD card blocks are always 512 bytes + Serial.print("Volume size (bytes): "); + Serial.println(volumesize); + Serial.print("Volume size (Kbytes): "); + volumesize /= 1024; + Serial.println(volumesize); + Serial.print("Volume size (Mbytes): "); + volumesize /= 1024; + Serial.println(volumesize); + + + Serial.println("\nFiles found on the card (name, date and size in bytes): "); + root.openRoot(volume); + + // list all files in the card with date and size + root.ls(LS_R | LS_DATE | LS_SIZE); +} + + +void loop(void) { + +} diff --git a/app/testdata/libraries/SD_1.1.1/SD/examples/Datalogger/Datalogger.ino b/app/testdata/libraries/SD_1.1.1/SD/examples/Datalogger/Datalogger.ino new file mode 100644 index 00000000000..c1709649226 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/examples/Datalogger/Datalogger.ino @@ -0,0 +1,84 @@ +/* + SD card datalogger + + This example shows how to log data from three analog sensors + to an SD card using the SD library. + + The circuit: + * analog sensors on analog ins 0, 1, and 2 + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created 24 Nov 2010 + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ + +#include +#include + +const int chipSelect = 4; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + // see if the card is present and can be initialized: + if (!SD.begin(chipSelect)) { + Serial.println("Card failed, or not present"); + // don't do anything more: + return; + } + Serial.println("card initialized."); +} + +void loop() { + // make a string for assembling the data to log: + String dataString = ""; + + // read three sensors and append to the string: + for (int analogPin = 0; analogPin < 3; analogPin++) { + int sensor = analogRead(analogPin); + dataString += String(sensor); + if (analogPin < 2) { + dataString += ","; + } + } + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + File dataFile = SD.open("datalog.txt", FILE_WRITE); + + // if the file is available, write to it: + if (dataFile) { + dataFile.println(dataString); + dataFile.close(); + // print to the serial port too: + Serial.println(dataString); + } + // if the file isn't open, pop up an error: + else { + Serial.println("error opening datalog.txt"); + } +} + + + + + + + + + diff --git a/app/testdata/libraries/SD_1.1.1/SD/examples/DumpFile/DumpFile.ino b/app/testdata/libraries/SD_1.1.1/SD/examples/DumpFile/DumpFile.ino new file mode 100644 index 00000000000..b9a8dbf12ab --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/examples/DumpFile/DumpFile.ino @@ -0,0 +1,65 @@ +/* + SD card file dump + + This example shows how to read a file from the SD card using the + SD library and send it over the serial port. + + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created 22 December 2010 + by Limor Fried + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ + +#include +#include + +const int chipSelect = 4; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + // see if the card is present and can be initialized: + if (!SD.begin(chipSelect)) { + Serial.println("Card failed, or not present"); + // don't do anything more: + return; + } + Serial.println("card initialized."); + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + File dataFile = SD.open("datalog.txt"); + + // if the file is available, write to it: + if (dataFile) { + while (dataFile.available()) { + Serial.write(dataFile.read()); + } + dataFile.close(); + } + // if the file isn't open, pop up an error: + else { + Serial.println("error opening datalog.txt"); + } +} + +void loop() { +} + diff --git a/app/testdata/libraries/SD_1.1.1/SD/examples/Files/Files.ino b/app/testdata/libraries/SD_1.1.1/SD/examples/Files/Files.ino new file mode 100644 index 00000000000..1468f9c726a --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/examples/Files/Files.ino @@ -0,0 +1,75 @@ +/* + SD card basic file example + + This example shows how to create and destroy an SD card file + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created Nov 2010 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ +#include +#include + +File myFile; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + if (!SD.begin(4)) { + Serial.println("initialization failed!"); + return; + } + Serial.println("initialization done."); + + if (SD.exists("example.txt")) { + Serial.println("example.txt exists."); + } else { + Serial.println("example.txt doesn't exist."); + } + + // open a new file and immediately close it: + Serial.println("Creating example.txt..."); + myFile = SD.open("example.txt", FILE_WRITE); + myFile.close(); + + // Check to see if the file exists: + if (SD.exists("example.txt")) { + Serial.println("example.txt exists."); + } else { + Serial.println("example.txt doesn't exist."); + } + + // delete the file: + Serial.println("Removing example.txt..."); + SD.remove("example.txt"); + + if (SD.exists("example.txt")) { + Serial.println("example.txt exists."); + } else { + Serial.println("example.txt doesn't exist."); + } +} + +void loop() { + // nothing happens after setup finishes. +} + + + diff --git a/app/testdata/libraries/SD_1.1.1/SD/examples/ReadWrite/ReadWrite.ino b/app/testdata/libraries/SD_1.1.1/SD/examples/ReadWrite/ReadWrite.ino new file mode 100644 index 00000000000..c81f1538d29 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/examples/ReadWrite/ReadWrite.ino @@ -0,0 +1,79 @@ +/* + SD card read/write + + This example shows how to read and write data to and from an SD card file + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created Nov 2010 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ + +#include +#include + +File myFile; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + if (!SD.begin(4)) { + Serial.println("initialization failed!"); + return; + } + Serial.println("initialization done."); + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + myFile = SD.open("test.txt", FILE_WRITE); + + // if the file opened okay, write to it: + if (myFile) { + Serial.print("Writing to test.txt..."); + myFile.println("testing 1, 2, 3."); + // close the file: + myFile.close(); + Serial.println("done."); + } else { + // if the file didn't open, print an error: + Serial.println("error opening test.txt"); + } + + // re-open the file for reading: + myFile = SD.open("test.txt"); + if (myFile) { + Serial.println("test.txt:"); + + // read from the file until there's nothing else in it: + while (myFile.available()) { + Serial.write(myFile.read()); + } + // close the file: + myFile.close(); + } else { + // if the file didn't open, print an error: + Serial.println("error opening test.txt"); + } +} + +void loop() { + // nothing happens after setup +} + + diff --git a/app/testdata/libraries/SD_1.1.1/SD/examples/listfiles/listfiles.ino b/app/testdata/libraries/SD_1.1.1/SD/examples/listfiles/listfiles.ino new file mode 100644 index 00000000000..589bffd2f1f --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/examples/listfiles/listfiles.ino @@ -0,0 +1,80 @@ +/* + Listfiles + + This example shows how print out the files in a + directory on a SD card + + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created Nov 2010 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + modified 2 Feb 2014 + by Scott Fitzgerald + + This example code is in the public domain. + + */ +#include +#include + +File root; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + Serial.print("Initializing SD card..."); + + if (!SD.begin(4)) { + Serial.println("initialization failed!"); + return; + } + Serial.println("initialization done."); + + root = SD.open("/"); + + printDirectory(root, 0); + + Serial.println("done!"); +} + +void loop() { + // nothing happens after setup finishes. +} + +void printDirectory(File dir, int numTabs) { + while (true) { + + File entry = dir.openNextFile(); + if (! entry) { + // no more files + break; + } + for (uint8_t i = 0; i < numTabs; i++) { + Serial.print('\t'); + } + Serial.print(entry.name()); + if (entry.isDirectory()) { + Serial.println("/"); + printDirectory(entry, numTabs + 1); + } else { + // files have sizes, directories do not + Serial.print("\t\t"); + Serial.println(entry.size(), DEC); + } + entry.close(); + } +} + + + diff --git a/app/testdata/libraries/SD_1.1.1/SD/keywords.txt b/app/testdata/libraries/SD_1.1.1/SD/keywords.txt new file mode 100644 index 00000000000..91e74b83085 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/keywords.txt @@ -0,0 +1,31 @@ +####################################### +# Syntax Coloring Map SD +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +SD KEYWORD1 SD +File KEYWORD1 SD +SDFile KEYWORD1 SD + +####################################### +# Methods and Functions (KEYWORD2) +####################################### +begin KEYWORD2 +exists KEYWORD2 +mkdir KEYWORD2 +remove KEYWORD2 +rmdir KEYWORD2 +open KEYWORD2 +close KEYWORD2 +seek KEYWORD2 +position KEYWORD2 +size KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### +FILE_READ LITERAL1 +FILE_WRITE LITERAL1 diff --git a/app/testdata/libraries/SD_1.1.1/SD/library.properties b/app/testdata/libraries/SD_1.1.1/SD/library.properties new file mode 100644 index 00000000000..abdfb9d0008 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/library.properties @@ -0,0 +1,9 @@ +name=SD +version=1.1.1 +author=Arduino, SparkFun +maintainer=Arduino +sentence=Enables reading and writing on SD cards. +paragraph=Once an SD memory card is connected to the SPI interface of the Arduino or Genuino board you can create files and read/write on them. You can also move through directories on the SD card. +category=Data Storage +url=http://www.arduino.cc/en/Reference/SD +architectures=* diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/File.cpp b/app/testdata/libraries/SD_1.1.1/SD/src/File.cpp new file mode 100644 index 00000000000..6eee39aa1ff --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/File.cpp @@ -0,0 +1,146 @@ +/* + + SD - a slightly more friendly wrapper for sdfatlib + + This library aims to expose a subset of SD card functionality + in the form of a higher level "wrapper" object. + + License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + + (C) Copyright 2010 SparkFun Electronics + + */ + +#include + +/* for debugging file open/close leaks + uint8_t nfilecount=0; +*/ + +File::File(SdFile f, const char *n) { + // oh man you are kidding me, new() doesnt exist? Ok we do it by hand! + _file = (SdFile *)malloc(sizeof(SdFile)); + if (_file) { + memcpy(_file, &f, sizeof(SdFile)); + + strncpy(_name, n, 12); + _name[12] = 0; + + /* for debugging file open/close leaks + nfilecount++; + Serial.print("Created \""); + Serial.print(n); + Serial.print("\": "); + Serial.println(nfilecount, DEC); + */ + } +} + +File::File(void) { + _file = 0; + _name[0] = 0; + //Serial.print("Created empty file object"); +} + +// returns a pointer to the file name +char *File::name(void) { + return _name; +} + +// a directory is a special type of file +boolean File::isDirectory(void) { + return (_file && _file->isDir()); +} + + +size_t File::write(uint8_t val) { + return write(&val, 1); +} + +size_t File::write(const uint8_t *buf, size_t size) { + size_t t; + if (!_file) { + setWriteError(); + return 0; + } + _file->clearWriteError(); + t = _file->write(buf, size); + if (_file->getWriteError()) { + setWriteError(); + return 0; + } + return t; +} + +int File::peek() { + if (! _file) + return 0; + + int c = _file->read(); + if (c != -1) _file->seekCur(-1); + return c; +} + +int File::read() { + if (_file) + return _file->read(); + return -1; +} + +// buffered read for more efficient, high speed reading +int File::read(void *buf, uint16_t nbyte) { + if (_file) + return _file->read(buf, nbyte); + return 0; +} + +int File::available() { + if (! _file) return 0; + + uint32_t n = size() - position(); + + return n > 0X7FFF ? 0X7FFF : n; +} + +void File::flush() { + if (_file) + _file->sync(); +} + +boolean File::seek(uint32_t pos) { + if (! _file) return false; + + return _file->seekSet(pos); +} + +uint32_t File::position() { + if (! _file) return -1; + return _file->curPosition(); +} + +uint32_t File::size() { + if (! _file) return 0; + return _file->fileSize(); +} + +void File::close() { + if (_file) { + _file->close(); + free(_file); + _file = 0; + + /* for debugging file open/close leaks + nfilecount--; + Serial.print("Deleted "); + Serial.println(nfilecount, DEC); + */ + } +} + +File::operator bool() { + if (_file) + return _file->isOpen(); + return false; +} + diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/README.txt b/app/testdata/libraries/SD_1.1.1/SD/src/README.txt new file mode 100644 index 00000000000..495ea4c7976 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/README.txt @@ -0,0 +1,13 @@ + +** SD - a slightly more friendly wrapper for sdfatlib ** + +This library aims to expose a subset of SD card functionality in the +form of a higher level "wrapper" object. + +License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + +(C) Copyright 2010 SparkFun Electronics + +Now better than ever with optimization, multiple file support, directory handling, etc - ladyada! + diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/SD.cpp b/app/testdata/libraries/SD_1.1.1/SD/src/SD.cpp new file mode 100644 index 00000000000..b88c665fc5d --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/SD.cpp @@ -0,0 +1,625 @@ +/* + + SD - a slightly more friendly wrapper for sdfatlib + + This library aims to expose a subset of SD card functionality + in the form of a higher level "wrapper" object. + + License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + + (C) Copyright 2010 SparkFun Electronics + + + This library provides four key benefits: + + * Including `SD.h` automatically creates a global + `SD` object which can be interacted with in a similar + manner to other standard global objects like `Serial` and `Ethernet`. + + * Boilerplate initialisation code is contained in one method named + `begin` and no further objects need to be created in order to access + the SD card. + + * Calls to `open` can supply a full path name including parent + directories which simplifies interacting with files in subdirectories. + + * Utility methods are provided to determine whether a file exists + and to create a directory heirarchy. + + + Note however that not all functionality provided by the underlying + sdfatlib library is exposed. + + */ + +/* + + Implementation Notes + + In order to handle multi-directory path traversal, functionality that + requires this ability is implemented as callback functions. + + Individual methods call the `walkPath` function which performs the actual + directory traversal (swapping between two different directory/file handles + along the way) and at each level calls the supplied callback function. + + Some types of functionality will take an action at each level (e.g. exists + or make directory) which others will only take an action at the bottom + level (e.g. open). + + */ + +#include "SD.h" + +namespace SDLib { + +// Used by `getNextPathComponent` +#define MAX_COMPONENT_LEN 12 // What is max length? +#define PATH_COMPONENT_BUFFER_LEN MAX_COMPONENT_LEN+1 + +bool getNextPathComponent(const char *path, unsigned int *p_offset, + char *buffer) { + /* + + Parse individual path components from a path. + + e.g. after repeated calls '/foo/bar/baz' will be split + into 'foo', 'bar', 'baz'. + + This is similar to `strtok()` but copies the component into the + supplied buffer rather than modifying the original string. + + + `buffer` needs to be PATH_COMPONENT_BUFFER_LEN in size. + + `p_offset` needs to point to an integer of the offset at + which the previous path component finished. + + Returns `true` if more components remain. + + Returns `false` if this is the last component. + (This means path ended with 'foo' or 'foo/'.) + + */ + + // TODO: Have buffer local to this function, so we know it's the + // correct length? + + int bufferOffset = 0; + + int offset = *p_offset; + + // Skip root or other separator + if (path[offset] == '/') { + offset++; + } + + // Copy the next next path segment + while (bufferOffset < MAX_COMPONENT_LEN + && (path[offset] != '/') + && (path[offset] != '\0')) { + buffer[bufferOffset++] = path[offset++]; + } + + buffer[bufferOffset] = '\0'; + + // Skip trailing separator so we can determine if this + // is the last component in the path or not. + if (path[offset] == '/') { + offset++; + } + + *p_offset = offset; + + return (path[offset] != '\0'); +} + + + +boolean walkPath(const char *filepath, SdFile& parentDir, + boolean (*callback)(SdFile& parentDir, + const char *filePathComponent, + boolean isLastComponent, + void *object), + void *object = NULL) { + /* + + When given a file path (and parent directory--normally root), + this function traverses the directories in the path and at each + level calls the supplied callback function while also providing + the supplied object for context if required. + + e.g. given the path '/foo/bar/baz' + the callback would be called at the equivalent of + '/foo', '/foo/bar' and '/foo/bar/baz'. + + The implementation swaps between two different directory/file + handles as it traverses the directories and does not use recursion + in an attempt to use memory efficiently. + + If a callback wishes to stop the directory traversal it should + return false--in this case the function will stop the traversal, + tidy up and return false. + + If a directory path doesn't exist at some point this function will + also return false and not subsequently call the callback. + + If a directory path specified is complete, valid and the callback + did not indicate the traversal should be interrupted then this + function will return true. + + */ + + + SdFile subfile1; + SdFile subfile2; + + char buffer[PATH_COMPONENT_BUFFER_LEN]; + + unsigned int offset = 0; + + SdFile *p_parent; + SdFile *p_child; + + SdFile *p_tmp_sdfile; + + p_child = &subfile1; + + p_parent = &parentDir; + + while (true) { + + boolean moreComponents = getNextPathComponent(filepath, &offset, buffer); + + boolean shouldContinue = callback((*p_parent), buffer, !moreComponents, object); + + if (!shouldContinue) { + // TODO: Don't repeat this code? + // If it's one we've created then we + // don't need the parent handle anymore. + if (p_parent != &parentDir) { + (*p_parent).close(); + } + return false; + } + + if (!moreComponents) { + break; + } + + boolean exists = (*p_child).open(*p_parent, buffer, O_RDONLY); + + // If it's one we've created then we + // don't need the parent handle anymore. + if (p_parent != &parentDir) { + (*p_parent).close(); + } + + // Handle case when it doesn't exist and we can't continue... + if (exists) { + // We alternate between two file handles as we go down + // the path. + if (p_parent == &parentDir) { + p_parent = &subfile2; + } + + p_tmp_sdfile = p_parent; + p_parent = p_child; + p_child = p_tmp_sdfile; + } else { + return false; + } + } + + if (p_parent != &parentDir) { + (*p_parent).close(); // TODO: Return/ handle different? + } + + return true; +} + + + +/* + + The callbacks used to implement various functionality follow. + + Each callback is supplied with a parent directory handle, + character string with the name of the current file path component, + a flag indicating if this component is the last in the path and + a pointer to an arbitrary object used for context. + + */ + +boolean callback_pathExists(SdFile& parentDir, const char *filePathComponent, + boolean /* isLastComponent */, void * /* object */) { + /* + + Callback used to determine if a file/directory exists in parent + directory. + + Returns true if file path exists. + + */ + SdFile child; + + boolean exists = child.open(parentDir, filePathComponent, O_RDONLY); + + if (exists) { + child.close(); + } + + return exists; +} + + + +boolean callback_makeDirPath(SdFile& parentDir, const char *filePathComponent, + boolean isLastComponent, void *object) { + /* + + Callback used to create a directory in the parent directory if + it does not already exist. + + Returns true if a directory was created or it already existed. + + */ + boolean result = false; + SdFile child; + + result = callback_pathExists(parentDir, filePathComponent, isLastComponent, object); + if (!result) { + result = child.makeDir(parentDir, filePathComponent); + } + + return result; +} + + + /* + +boolean callback_openPath(SdFile& parentDir, char *filePathComponent, + boolean isLastComponent, void *object) { + + Callback used to open a file specified by a filepath that may + specify one or more directories above it. + + Expects the context object to be an instance of `SDClass` and + will use the `file` property of the instance to open the requested + file/directory with the associated file open mode property. + + Always returns true if the directory traversal hasn't reached the + bottom of the directory heirarchy. + + Returns false once the file has been opened--to prevent the traversal + from descending further. (This may be unnecessary.) + + if (isLastComponent) { + SDClass *p_SD = static_cast(object); + p_SD->file.open(parentDir, filePathComponent, p_SD->fileOpenMode); + if (p_SD->fileOpenMode == FILE_WRITE) { + p_SD->file.seekSet(p_SD->file.fileSize()); + } + // TODO: Return file open result? + return false; + } + return true; +} + */ + + + +boolean callback_remove(SdFile& parentDir, const char *filePathComponent, + boolean isLastComponent, void * /* object */) { + if (isLastComponent) { + return SdFile::remove(parentDir, filePathComponent); + } + return true; +} + +boolean callback_rmdir(SdFile& parentDir, const char *filePathComponent, + boolean isLastComponent, void * /* object */) { + if (isLastComponent) { + SdFile f; + if (!f.open(parentDir, filePathComponent, O_READ)) return false; + return f.rmDir(); + } + return true; +} + + + +/* Implementation of class used to create `SDCard` object. */ + + + +boolean SDClass::begin(uint8_t csPin) { + /* + + Performs the initialisation required by the sdfatlib library. + + Return true if initialization succeeds, false otherwise. + + */ + return card.init(SPI_HALF_SPEED, csPin) && + volume.init(card) && + root.openRoot(volume); +} + +boolean SDClass::begin(uint32_t clock, uint8_t csPin) { + return card.init(SPI_HALF_SPEED, csPin) && + card.setSpiClock(clock) && + volume.init(card) && + root.openRoot(volume); +} + +// this little helper is used to traverse paths +SdFile SDClass::getParentDir(const char *filepath, int *index) { + // get parent directory + SdFile d1 = root; // start with the mostparent, root! + SdFile d2; + + // we'll use the pointers to swap between the two objects + SdFile *parent = &d1; + SdFile *subdir = &d2; + + const char *origpath = filepath; + + while (strchr(filepath, '/')) { + + // get rid of leading /'s + if (filepath[0] == '/') { + filepath++; + continue; + } + + if (! strchr(filepath, '/')) { + // it was in the root directory, so leave now + break; + } + + // extract just the name of the next subdirectory + uint8_t idx = strchr(filepath, '/') - filepath; + if (idx > 12) + idx = 12; // dont let them specify long names + char subdirname[13]; + strncpy(subdirname, filepath, idx); + subdirname[idx] = 0; + + // close the subdir (we reuse them) if open + subdir->close(); + if (! subdir->open(parent, subdirname, O_READ)) { + // failed to open one of the subdirectories + return SdFile(); + } + // move forward to the next subdirectory + filepath += idx; + + // we reuse the objects, close it. + parent->close(); + + // swap the pointers + SdFile *t = parent; + parent = subdir; + subdir = t; + } + + *index = (int)(filepath - origpath); + // parent is now the parent diretory of the file! + return *parent; +} + + +File SDClass::open(const char *filepath, uint8_t mode) { + /* + + Open the supplied file path for reading or writing. + + The file content can be accessed via the `file` property of + the `SDClass` object--this property is currently + a standard `SdFile` object from `sdfatlib`. + + Defaults to read only. + + If `write` is true, default action (when `append` is true) is to + append data to the end of the file. + + If `append` is false then the file will be truncated first. + + If the file does not exist and it is opened for writing the file + will be created. + + An attempt to open a file for reading that does not exist is an + error. + + */ + + int pathidx; + + // do the interative search + SdFile parentdir = getParentDir(filepath, &pathidx); + // no more subdirs! + + filepath += pathidx; + + if (! filepath[0]) { + // it was the directory itself! + return File(parentdir, "/"); + } + + // Open the file itself + SdFile file; + + // failed to open a subdir! + if (!parentdir.isOpen()) + return File(); + + // there is a special case for the Root directory since its a static dir + if (parentdir.isRoot()) { + if ( ! file.open(root, filepath, mode)) { + // failed to open the file :( + return File(); + } + // dont close the root! + } else { + if ( ! file.open(parentdir, filepath, mode)) { + return File(); + } + // close the parent + parentdir.close(); + } + + if (mode & (O_APPEND | O_WRITE)) + file.seekSet(file.fileSize()); + return File(file, filepath); +} + + +/* +File SDClass::open(char *filepath, uint8_t mode) { + // + + Open the supplied file path for reading or writing. + + The file content can be accessed via the `file` property of + the `SDClass` object--this property is currently + a standard `SdFile` object from `sdfatlib`. + + Defaults to read only. + + If `write` is true, default action (when `append` is true) is to + append data to the end of the file. + + If `append` is false then the file will be truncated first. + + If the file does not exist and it is opened for writing the file + will be created. + + An attempt to open a file for reading that does not exist is an + error. + + // + + // TODO: Allow for read&write? (Possibly not, as it requires seek.) + + fileOpenMode = mode; + walkPath(filepath, root, callback_openPath, this); + + return File(); + +} +*/ + + +//boolean SDClass::close() { +// /* +// +// Closes the file opened by the `open` method. +// +// */ +// file.close(); +//} + + +boolean SDClass::exists(const char *filepath) { + /* + + Returns true if the supplied file path exists. + + */ + return walkPath(filepath, root, callback_pathExists); +} + + +//boolean SDClass::exists(char *filepath, SdFile& parentDir) { +// /* +// +// Returns true if the supplied file path rooted at `parentDir` +// exists. +// +// */ +// return walkPath(filepath, parentDir, callback_pathExists); +//} + + +boolean SDClass::mkdir(const char *filepath) { + /* + + Makes a single directory or a heirarchy of directories. + + A rough equivalent to `mkdir -p`. + + */ + return walkPath(filepath, root, callback_makeDirPath); +} + +boolean SDClass::rmdir(const char *filepath) { + /* + + Remove a single directory or a heirarchy of directories. + + A rough equivalent to `rm -rf`. + + */ + return walkPath(filepath, root, callback_rmdir); +} + +boolean SDClass::remove(const char *filepath) { + return walkPath(filepath, root, callback_remove); +} + + +// allows you to recurse into a directory +File File::openNextFile(uint8_t mode) { + dir_t p; + + //Serial.print("\t\treading dir..."); + while (_file->readDir(&p) > 0) { + + // done if past last used entry + if (p.name[0] == DIR_NAME_FREE) { + //Serial.println("end"); + return File(); + } + + // skip deleted entry and entries for . and .. + if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.') { + //Serial.println("dots"); + continue; + } + + // only list subdirectories and files + if (!DIR_IS_FILE_OR_SUBDIR(&p)) { + //Serial.println("notafile"); + continue; + } + + // print file name with possible blank fill + SdFile f; + char name[13]; + _file->dirName(p, name); + //Serial.print("try to open file "); + //Serial.println(name); + + if (f.open(_file, name, mode)) { + //Serial.println("OK!"); + return File(f, name); + } else { + //Serial.println("ugh"); + return File(); + } + } + + //Serial.println("nothing"); + return File(); +} + +void File::rewindDirectory(void) { + if (isDirectory()) + _file->rewind(); +} + +SDClass SD; + +}; diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/SD.h b/app/testdata/libraries/SD_1.1.1/SD/src/SD.h new file mode 100644 index 00000000000..7f41033ec6a --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/SD.h @@ -0,0 +1,124 @@ +/* + + SD - a slightly more friendly wrapper for sdfatlib + + This library aims to expose a subset of SD card functionality + in the form of a higher level "wrapper" object. + + License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + + (C) Copyright 2010 SparkFun Electronics + + */ + +#ifndef __SD_H__ +#define __SD_H__ + +#include + +#include +#include + +#define FILE_READ O_READ +#define FILE_WRITE (O_READ | O_WRITE | O_CREAT) + +namespace SDLib { + +class File : public Stream { + private: + char _name[13]; // our name + SdFile *_file; // underlying file pointer + +public: + File(SdFile f, const char *name); // wraps an underlying SdFile + File(void); // 'empty' constructor + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *buf, size_t size); + virtual int read(); + virtual int peek(); + virtual int available(); + virtual void flush(); + int read(void *buf, uint16_t nbyte); + boolean seek(uint32_t pos); + uint32_t position(); + uint32_t size(); + void close(); + operator bool(); + char * name(); + + boolean isDirectory(void); + File openNextFile(uint8_t mode = O_RDONLY); + void rewindDirectory(void); + + using Print::write; +}; + +class SDClass { + +private: + // These are required for initialisation and use of sdfatlib + Sd2Card card; + SdVolume volume; + SdFile root; + + // my quick&dirty iterator, should be replaced + SdFile getParentDir(const char *filepath, int *indx); +public: + // This needs to be called to set up the connection to the SD card + // before other methods are used. + boolean begin(uint8_t csPin = SD_CHIP_SELECT_PIN); + boolean begin(uint32_t clock, uint8_t csPin); + + // Open the specified file/directory with the supplied mode (e.g. read or + // write, etc). Returns a File object for interacting with the file. + // Note that currently only one file can be open at a time. + File open(const char *filename, uint8_t mode = FILE_READ); + File open(const String &filename, uint8_t mode = FILE_READ) { return open( filename.c_str(), mode ); } + + // Methods to determine if the requested file path exists. + boolean exists(const char *filepath); + boolean exists(const String &filepath) { return exists(filepath.c_str()); } + + // Create the requested directory heirarchy--if intermediate directories + // do not exist they will be created. + boolean mkdir(const char *filepath); + boolean mkdir(const String &filepath) { return mkdir(filepath.c_str()); } + + // Delete the file. + boolean remove(const char *filepath); + boolean remove(const String &filepath) { return remove(filepath.c_str()); } + + boolean rmdir(const char *filepath); + boolean rmdir(const String &filepath) { return rmdir(filepath.c_str()); } + +private: + + // This is used to determine the mode used to open a file + // it's here because it's the easiest place to pass the + // information through the directory walking function. But + // it's probably not the best place for it. + // It shouldn't be set directly--it is set via the parameters to `open`. + int fileOpenMode; + + friend class File; + friend boolean callback_openPath(SdFile&, const char *, boolean, void *); +}; + +extern SDClass SD; + +}; + +// We enclose File and SD classes in namespace SDLib to avoid conflicts +// with others legacy libraries that redefines File class. + +// This ensure compatibility with sketches that uses only SD library +using namespace SDLib; + +// This allows sketches to use SDLib::File with other libraries (in the +// sketch you must use SDFile instead of File to disambiguate) +typedef SDLib::File SDFile; +typedef SDLib::SDClass SDFileSystemClass; +#define SDFileSystem SDLib::SD + +#endif diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/FatStructs.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/FatStructs.h new file mode 100644 index 00000000000..8a2d9ebcc1c --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/FatStructs.h @@ -0,0 +1,418 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#ifndef FatStructs_h +#define FatStructs_h +/** + * \file + * FAT file structures + */ +/* + * mostly from Microsoft document fatgen103.doc + * http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx + */ +//------------------------------------------------------------------------------ +/** Value for byte 510 of boot block or MBR */ +uint8_t const BOOTSIG0 = 0X55; +/** Value for byte 511 of boot block or MBR */ +uint8_t const BOOTSIG1 = 0XAA; +//------------------------------------------------------------------------------ +/** + * \struct partitionTable + * \brief MBR partition table entry + * + * A partition table entry for a MBR formatted storage device. + * The MBR partition table has four entries. + */ +struct partitionTable { + /** + * Boot Indicator . Indicates whether the volume is the active + * partition. Legal values include: 0X00. Do not use for booting. + * 0X80 Active partition. + */ + uint8_t boot; + /** + * Head part of Cylinder-head-sector address of the first block in + * the partition. Legal values are 0-255. Only used in old PC BIOS. + */ + uint8_t beginHead; + /** + * Sector part of Cylinder-head-sector address of the first block in + * the partition. Legal values are 1-63. Only used in old PC BIOS. + */ + unsigned beginSector : 6; + /** High bits cylinder for first block in partition. */ + unsigned beginCylinderHigh : 2; + /** + * Combine beginCylinderLow with beginCylinderHigh. Legal values + * are 0-1023. Only used in old PC BIOS. + */ + uint8_t beginCylinderLow; + /** + * Partition type. See defines that begin with PART_TYPE_ for + * some Microsoft partition types. + */ + uint8_t type; + /** + * head part of cylinder-head-sector address of the last sector in the + * partition. Legal values are 0-255. Only used in old PC BIOS. + */ + uint8_t endHead; + /** + * Sector part of cylinder-head-sector address of the last sector in + * the partition. Legal values are 1-63. Only used in old PC BIOS. + */ + unsigned endSector : 6; + /** High bits of end cylinder */ + unsigned endCylinderHigh : 2; + /** + * Combine endCylinderLow with endCylinderHigh. Legal values + * are 0-1023. Only used in old PC BIOS. + */ + uint8_t endCylinderLow; + /** Logical block address of the first block in the partition. */ + uint32_t firstSector; + /** Length of the partition, in blocks. */ + uint32_t totalSectors; +} __attribute__((packed)); +/** Type name for partitionTable */ +typedef struct partitionTable part_t; +//------------------------------------------------------------------------------ +/** + * \struct masterBootRecord + * + * \brief Master Boot Record + * + * The first block of a storage device that is formatted with a MBR. + */ +struct masterBootRecord { + /** Code Area for master boot program. */ + uint8_t codeArea[440]; + /** Optional WindowsNT disk signature. May contain more boot code. */ + uint32_t diskSignature; + /** Usually zero but may be more boot code. */ + uint16_t usuallyZero; + /** Partition tables. */ + part_t part[4]; + /** First MBR signature byte. Must be 0X55 */ + uint8_t mbrSig0; + /** Second MBR signature byte. Must be 0XAA */ + uint8_t mbrSig1; +} __attribute__((packed)); +/** Type name for masterBootRecord */ +typedef struct masterBootRecord mbr_t; +//------------------------------------------------------------------------------ +/** + * \struct biosParmBlock + * + * \brief BIOS parameter block + * + * The BIOS parameter block describes the physical layout of a FAT volume. + */ +struct biosParmBlock { + /** + * Count of bytes per sector. This value may take on only the + * following values: 512, 1024, 2048 or 4096 + */ + uint16_t bytesPerSector; + /** + * Number of sectors per allocation unit. This value must be a + * power of 2 that is greater than 0. The legal values are + * 1, 2, 4, 8, 16, 32, 64, and 128. + */ + uint8_t sectorsPerCluster; + /** + * Number of sectors before the first FAT. + * This value must not be zero. + */ + uint16_t reservedSectorCount; + /** The count of FAT data structures on the volume. This field should + * always contain the value 2 for any FAT volume of any type. + */ + uint8_t fatCount; + /** + * For FAT12 and FAT16 volumes, this field contains the count of + * 32-byte directory entries in the root directory. For FAT32 volumes, + * this field must be set to 0. For FAT12 and FAT16 volumes, this + * value should always specify a count that when multiplied by 32 + * results in a multiple of bytesPerSector. FAT16 volumes should + * use the value 512. + */ + uint16_t rootDirEntryCount; + /** + * This field is the old 16-bit total count of sectors on the volume. + * This count includes the count of all sectors in all four regions + * of the volume. This field can be 0; if it is 0, then totalSectors32 + * must be non-zero. For FAT32 volumes, this field must be 0. For + * FAT12 and FAT16 volumes, this field contains the sector count, and + * totalSectors32 is 0 if the total sector count fits + * (is less than 0x10000). + */ + uint16_t totalSectors16; + /** + * This dates back to the old MS-DOS 1.x media determination and is + * no longer usually used for anything. 0xF8 is the standard value + * for fixed (non-removable) media. For removable media, 0xF0 is + * frequently used. Legal values are 0xF0 or 0xF8-0xFF. + */ + uint8_t mediaType; + /** + * Count of sectors occupied by one FAT on FAT12/FAT16 volumes. + * On FAT32 volumes this field must be 0, and sectorsPerFat32 + * contains the FAT size count. + */ + uint16_t sectorsPerFat16; + /** Sectors per track for interrupt 0x13. Not used otherwise. */ + uint16_t sectorsPerTrtack; + /** Number of heads for interrupt 0x13. Not used otherwise. */ + uint16_t headCount; + /** + * Count of hidden sectors preceding the partition that contains this + * FAT volume. This field is generally only relevant for media + * visible on interrupt 0x13. + */ + uint32_t hidddenSectors; + /** + * This field is the new 32-bit total count of sectors on the volume. + * This count includes the count of all sectors in all four regions + * of the volume. This field can be 0; if it is 0, then + * totalSectors16 must be non-zero. + */ + uint32_t totalSectors32; + /** + * Count of sectors occupied by one FAT on FAT32 volumes. + */ + uint32_t sectorsPerFat32; + /** + * This field is only defined for FAT32 media and does not exist on + * FAT12 and FAT16 media. + * Bits 0-3 -- Zero-based number of active FAT. + * Only valid if mirroring is disabled. + * Bits 4-6 -- Reserved. + * Bit 7 -- 0 means the FAT is mirrored at runtime into all FATs. + * -- 1 means only one FAT is active; it is the one referenced in bits 0-3. + * Bits 8-15 -- Reserved. + */ + uint16_t fat32Flags; + /** + * FAT32 version. High byte is major revision number. + * Low byte is minor revision number. Only 0.0 define. + */ + uint16_t fat32Version; + /** + * Cluster number of the first cluster of the root directory for FAT32. + * This usually 2 but not required to be 2. + */ + uint32_t fat32RootCluster; + /** + * Sector number of FSINFO structure in the reserved area of the + * FAT32 volume. Usually 1. + */ + uint16_t fat32FSInfo; + /** + * If non-zero, indicates the sector number in the reserved area + * of the volume of a copy of the boot record. Usually 6. + * No value other than 6 is recommended. + */ + uint16_t fat32BackBootBlock; + /** + * Reserved for future expansion. Code that formats FAT32 volumes + * should always set all of the bytes of this field to 0. + */ + uint8_t fat32Reserved[12]; +} __attribute__((packed)); +/** Type name for biosParmBlock */ +typedef struct biosParmBlock bpb_t; +//------------------------------------------------------------------------------ +/** + * \struct fat32BootSector + * + * \brief Boot sector for a FAT16 or FAT32 volume. + * + */ +struct fat32BootSector { + /** X86 jmp to boot program */ + uint8_t jmpToBootCode[3]; + /** informational only - don't depend on it */ + char oemName[8]; + /** BIOS Parameter Block */ + bpb_t bpb; + /** for int0x13 use value 0X80 for hard drive */ + uint8_t driveNumber; + /** used by Windows NT - should be zero for FAT */ + uint8_t reserved1; + /** 0X29 if next three fields are valid */ + uint8_t bootSignature; + /** usually generated by combining date and time */ + uint32_t volumeSerialNumber; + /** should match volume label in root dir */ + char volumeLabel[11]; + /** informational only - don't depend on it */ + char fileSystemType[8]; + /** X86 boot code */ + uint8_t bootCode[420]; + /** must be 0X55 */ + uint8_t bootSectorSig0; + /** must be 0XAA */ + uint8_t bootSectorSig1; +} __attribute__((packed)); +//------------------------------------------------------------------------------ +// End Of Chain values for FAT entries +/** FAT16 end of chain value used by Microsoft. */ +uint16_t const FAT16EOC = 0XFFFF; +/** Minimum value for FAT16 EOC. Use to test for EOC. */ +uint16_t const FAT16EOC_MIN = 0XFFF8; +/** FAT32 end of chain value used by Microsoft. */ +uint32_t const FAT32EOC = 0X0FFFFFFF; +/** Minimum value for FAT32 EOC. Use to test for EOC. */ +uint32_t const FAT32EOC_MIN = 0X0FFFFFF8; +/** Mask a for FAT32 entry. Entries are 28 bits. */ +uint32_t const FAT32MASK = 0X0FFFFFFF; + +/** Type name for fat32BootSector */ +typedef struct fat32BootSector fbs_t; +//------------------------------------------------------------------------------ +/** + * \struct directoryEntry + * \brief FAT short directory entry + * + * Short means short 8.3 name, not the entry size. + * + * Date Format. A FAT directory entry date stamp is a 16-bit field that is + * basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the + * format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the + * 16-bit word): + * + * Bits 9-15: Count of years from 1980, valid value range 0-127 + * inclusive (1980-2107). + * + * Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive. + * + * Bits 0-4: Day of month, valid value range 1-31 inclusive. + * + * Time Format. A FAT directory entry time stamp is a 16-bit field that has + * a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the + * 16-bit word, bit 15 is the MSB of the 16-bit word). + * + * Bits 11-15: Hours, valid value range 0-23 inclusive. + * + * Bits 5-10: Minutes, valid value range 0-59 inclusive. + * + * Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds). + * + * The valid time range is from Midnight 00:00:00 to 23:59:58. + */ +struct directoryEntry { + /** + * Short 8.3 name. + * The first eight bytes contain the file name with blank fill. + * The last three bytes contain the file extension with blank fill. + */ + uint8_t name[11]; + /** Entry attributes. + * + * The upper two bits of the attribute byte are reserved and should + * always be set to 0 when a file is created and never modified or + * looked at after that. See defines that begin with DIR_ATT_. + */ + uint8_t attributes; + /** + * Reserved for use by Windows NT. Set value to 0 when a file is + * created and never modify or look at it after that. + */ + uint8_t reservedNT; + /** + * The granularity of the seconds part of creationTime is 2 seconds + * so this field is a count of tenths of a second and its valid + * value range is 0-199 inclusive. (WHG note - seems to be hundredths) + */ + uint8_t creationTimeTenths; + /** Time file was created. */ + uint16_t creationTime; + /** Date file was created. */ + uint16_t creationDate; + /** + * Last access date. Note that there is no last access time, only + * a date. This is the date of last read or write. In the case of + * a write, this should be set to the same date as lastWriteDate. + */ + uint16_t lastAccessDate; + /** + * High word of this entry's first cluster number (always 0 for a + * FAT12 or FAT16 volume). + */ + uint16_t firstClusterHigh; + /** Time of last write. File creation is considered a write. */ + uint16_t lastWriteTime; + /** Date of last write. File creation is considered a write. */ + uint16_t lastWriteDate; + /** Low word of this entry's first cluster number. */ + uint16_t firstClusterLow; + /** 32-bit unsigned holding this file's size in bytes. */ + uint32_t fileSize; +} __attribute__((packed)); +//------------------------------------------------------------------------------ +// Definitions for directory entries +// +/** Type name for directoryEntry */ +typedef struct directoryEntry dir_t; +/** escape for name[0] = 0XE5 */ +uint8_t const DIR_NAME_0XE5 = 0X05; +/** name[0] value for entry that is free after being "deleted" */ +uint8_t const DIR_NAME_DELETED = 0XE5; +/** name[0] value for entry that is free and no allocated entries follow */ +uint8_t const DIR_NAME_FREE = 0X00; +/** file is read-only */ +uint8_t const DIR_ATT_READ_ONLY = 0X01; +/** File should hidden in directory listings */ +uint8_t const DIR_ATT_HIDDEN = 0X02; +/** Entry is for a system file */ +uint8_t const DIR_ATT_SYSTEM = 0X04; +/** Directory entry contains the volume label */ +uint8_t const DIR_ATT_VOLUME_ID = 0X08; +/** Entry is for a directory */ +uint8_t const DIR_ATT_DIRECTORY = 0X10; +/** Old DOS archive bit for backup support */ +uint8_t const DIR_ATT_ARCHIVE = 0X20; +/** Test value for long name entry. Test is + (d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME. */ +uint8_t const DIR_ATT_LONG_NAME = 0X0F; +/** Test mask for long name entry */ +uint8_t const DIR_ATT_LONG_NAME_MASK = 0X3F; +/** defined attribute bits */ +uint8_t const DIR_ATT_DEFINED_BITS = 0X3F; +/** Directory entry is part of a long name */ +static inline uint8_t DIR_IS_LONG_NAME(const dir_t* dir) { + return (dir->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME; +} +/** Mask for file/subdirectory tests */ +uint8_t const DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY); +/** Directory entry is for a file */ +static inline uint8_t DIR_IS_FILE(const dir_t* dir) { + return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == 0; +} +/** Directory entry is for a subdirectory */ +static inline uint8_t DIR_IS_SUBDIR(const dir_t* dir) { + return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY; +} +/** Directory entry is for a file or subdirectory */ +static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) { + return (dir->attributes & DIR_ATT_VOLUME_ID) == 0; +} +#endif // FatStructs_h diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2Card.cpp b/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2Card.cpp new file mode 100644 index 00000000000..9ea413cde83 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2Card.cpp @@ -0,0 +1,719 @@ +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#define USE_SPI_LIB +#include +#include "Sd2Card.h" +//------------------------------------------------------------------------------ +#ifndef SOFTWARE_SPI +#ifdef USE_SPI_LIB + +#ifndef SDCARD_SPI +#define SDCARD_SPI SPI +#endif + +#include +static SPISettings settings; +#endif +// functions for hardware SPI +/** Send a byte to the card */ +static void spiSend(uint8_t b) { +#ifndef USE_SPI_LIB + SPDR = b; + while (!(SPSR & (1 << SPIF))) + ; +#else + SDCARD_SPI.transfer(b); +#endif +} +/** Receive a byte from the card */ +static uint8_t spiRec(void) { +#ifndef USE_SPI_LIB + spiSend(0XFF); + return SPDR; +#else + return SDCARD_SPI.transfer(0xFF); +#endif +} +#else // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** nop to tune soft SPI timing */ +#define nop asm volatile ("nop\n\t") +//------------------------------------------------------------------------------ +/** Soft SPI receive */ +uint8_t spiRec(void) { + uint8_t data = 0; + // no interrupts during byte receive - about 8 us + cli(); + // output pin high - like sending 0XFF + fastDigitalWrite(SPI_MOSI_PIN, HIGH); + + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, HIGH); + + // adjust so SCK is nice + nop; + nop; + + data <<= 1; + + if (fastDigitalRead(SPI_MISO_PIN)) data |= 1; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + } + // enable interrupts + sei(); + return data; +} +//------------------------------------------------------------------------------ +/** Soft SPI send */ +void spiSend(uint8_t data) { + // no interrupts during byte send - about 8 us + cli(); + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, LOW); + + fastDigitalWrite(SPI_MOSI_PIN, data & 0X80); + + data <<= 1; + + fastDigitalWrite(SPI_SCK_PIN, HIGH); + } + // hold SCK high for a few ns + nop; + nop; + nop; + nop; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + // enable interrupts + sei(); +} +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +// send command and return error code. Return zero for OK +uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) { + // end read if in partialBlockRead mode + readEnd(); + + // select card + chipSelectLow(); + + // wait up to 300 ms if busy + waitNotBusy(300); + + // send command + spiSend(cmd | 0x40); + + // send argument + for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s); + + // send CRC + uint8_t crc = 0XFF; + if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0 + if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA + spiSend(crc); + + // wait for response + for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) + ; + return status_; +} +//------------------------------------------------------------------------------ +/** + * Determine the size of an SD flash memory card. + * + * \return The number of 512 byte data blocks in the card + * or zero if an error occurs. + */ +uint32_t Sd2Card::cardSize(void) { + csd_t csd; + if (!readCSD(&csd)) return 0; + if (csd.v1.csd_ver == 0) { + uint8_t read_bl_len = csd.v1.read_bl_len; + uint16_t c_size = (csd.v1.c_size_high << 10) + | (csd.v1.c_size_mid << 2) | csd.v1.c_size_low; + uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1) + | csd.v1.c_size_mult_low; + return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7); + } else if (csd.v2.csd_ver == 1) { + uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16) + | (csd.v2.c_size_mid << 8) | csd.v2.c_size_low; + return (c_size + 1) << 10; + } else { + error(SD_CARD_ERROR_BAD_CSD); + return 0; + } +} +//------------------------------------------------------------------------------ +static uint8_t chip_select_asserted = 0; + +void Sd2Card::chipSelectHigh(void) { + digitalWrite(chipSelectPin_, HIGH); +#ifdef USE_SPI_LIB + if (chip_select_asserted) { + chip_select_asserted = 0; + SDCARD_SPI.endTransaction(); + } +#endif +} +//------------------------------------------------------------------------------ +void Sd2Card::chipSelectLow(void) { +#ifdef USE_SPI_LIB + if (!chip_select_asserted) { + chip_select_asserted = 1; + SDCARD_SPI.beginTransaction(settings); + } +#endif + digitalWrite(chipSelectPin_, LOW); +} +//------------------------------------------------------------------------------ +/** Erase a range of blocks. + * + * \param[in] firstBlock The address of the first block in the range. + * \param[in] lastBlock The address of the last block in the range. + * + * \note This function requests the SD card to do a flash erase for a + * range of blocks. The data on the card after an erase operation is + * either 0 or 1, depends on the card vendor. The card must support + * single block erase. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) { + if (!eraseSingleBlockEnable()) { + error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK); + goto fail; + } + if (type_ != SD_CARD_TYPE_SDHC) { + firstBlock <<= 9; + lastBlock <<= 9; + } + if (cardCommand(CMD32, firstBlock) + || cardCommand(CMD33, lastBlock) + || cardCommand(CMD38, 0)) { + error(SD_CARD_ERROR_ERASE); + goto fail; + } + if (!waitNotBusy(SD_ERASE_TIMEOUT)) { + error(SD_CARD_ERROR_ERASE_TIMEOUT); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Determine if card supports single block erase. + * + * \return The value one, true, is returned if single block erase is supported. + * The value zero, false, is returned if single block erase is not supported. + */ +uint8_t Sd2Card::eraseSingleBlockEnable(void) { + csd_t csd; + return readCSD(&csd) ? csd.v1.erase_blk_en : 0; +} +//------------------------------------------------------------------------------ +/** + * Initialize an SD flash memory card. + * + * \param[in] sckRateID SPI clock rate selector. See setSckRate(). + * \param[in] chipSelectPin SD chip select pin number. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. The reason for failure + * can be determined by calling errorCode() and errorData(). + */ +uint8_t Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { + errorCode_ = inBlock_ = partialBlockRead_ = type_ = 0; + chipSelectPin_ = chipSelectPin; + // 16-bit init start time allows over a minute + uint16_t t0 = (uint16_t)millis(); + uint32_t arg; + + // set pin modes + pinMode(chipSelectPin_, OUTPUT); + digitalWrite(chipSelectPin_, HIGH); +#ifndef USE_SPI_LIB + pinMode(SPI_MISO_PIN, INPUT); + pinMode(SPI_MOSI_PIN, OUTPUT); + pinMode(SPI_SCK_PIN, OUTPUT); +#endif + +#ifndef SOFTWARE_SPI +#ifndef USE_SPI_LIB + // SS must be in output mode even it is not chip select + pinMode(SS_PIN, OUTPUT); + digitalWrite(SS_PIN, HIGH); // disable any SPI device using hardware SS pin + // Enable SPI, Master, clock rate f_osc/128 + SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1) | (1 << SPR0); + // clear double speed + SPSR &= ~(1 << SPI2X); +#else // USE_SPI_LIB + SDCARD_SPI.begin(); + settings = SPISettings(250000, MSBFIRST, SPI_MODE0); +#endif // USE_SPI_LIB +#endif // SOFTWARE_SPI + + // must supply min of 74 clock cycles with CS high. +#ifdef USE_SPI_LIB + SDCARD_SPI.beginTransaction(settings); +#endif + for (uint8_t i = 0; i < 10; i++) spiSend(0XFF); +#ifdef USE_SPI_LIB + SDCARD_SPI.endTransaction(); +#endif + + chipSelectLow(); + + // command to go idle in SPI mode + while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) { + if (((uint16_t)(millis() - t0)) > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_CMD0); + goto fail; + } + } + // check SD version + if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { + type(SD_CARD_TYPE_SD1); + } else { + // only need last byte of r7 response + for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); + if (status_ != 0XAA) { + error(SD_CARD_ERROR_CMD8); + goto fail; + } + type(SD_CARD_TYPE_SD2); + } + // initialize card and send host supports SDHC if SD2 + arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0; + + while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) { + // check for timeout + if (((uint16_t)(millis() - t0)) > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_ACMD41); + goto fail; + } + } + // if SD2 read OCR register to check for SDHC card + if (type() == SD_CARD_TYPE_SD2) { + if (cardCommand(CMD58, 0)) { + error(SD_CARD_ERROR_CMD58); + goto fail; + } + if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC); + // discard rest of ocr - contains allowed voltage range + for (uint8_t i = 0; i < 3; i++) spiRec(); + } + chipSelectHigh(); + +#ifndef SOFTWARE_SPI + return setSckRate(sckRateID); +#else // SOFTWARE_SPI + return true; +#endif // SOFTWARE_SPI + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Enable or disable partial block reads. + * + * Enabling partial block reads improves performance by allowing a block + * to be read over the SPI bus as several sub-blocks. Errors may occur + * if the time between reads is too long since the SD card may timeout. + * The SPI SS line will be held low until the entire block is read or + * readEnd() is called. + * + * Use this for applications like the Adafruit Wave Shield. + * + * \param[in] value The value TRUE (non-zero) or FALSE (zero).) + */ +void Sd2Card::partialBlockRead(uint8_t value) { + readEnd(); + partialBlockRead_ = value; +} +//------------------------------------------------------------------------------ +/** + * Read a 512 byte block from an SD card device. + * + * \param[in] block Logical block to be read. + * \param[out] dst Pointer to the location that will receive the data. + + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::readBlock(uint32_t block, uint8_t* dst) { + return readData(block, 0, 512, dst); +} +//------------------------------------------------------------------------------ +/** + * Read part of a 512 byte block from an SD card. + * + * \param[in] block Logical block to be read. + * \param[in] offset Number of bytes to skip at start of block + * \param[out] dst Pointer to the location that will receive the data. + * \param[in] count Number of bytes to read + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::readData(uint32_t block, + uint16_t offset, uint16_t count, uint8_t* dst) { + if (count == 0) return true; + if ((count + offset) > 512) { + goto fail; + } + if (!inBlock_ || block != block_ || offset < offset_) { + block_ = block; + // use address if not SDHC card + if (type()!= SD_CARD_TYPE_SDHC) block <<= 9; + if (cardCommand(CMD17, block)) { + error(SD_CARD_ERROR_CMD17); + goto fail; + } + if (!waitStartBlock()) { + goto fail; + } + offset_ = 0; + inBlock_ = 1; + } + +#ifdef OPTIMIZE_HARDWARE_SPI + // start first spi transfer + SPDR = 0XFF; + + // skip data before offset + for (;offset_ < offset; offset_++) { + while (!(SPSR & (1 << SPIF))) + ; + SPDR = 0XFF; + } + // transfer data + n = count - 1; + for (uint16_t i = 0; i < n; i++) { + while (!(SPSR & (1 << SPIF))) + ; + dst[i] = SPDR; + SPDR = 0XFF; + } + // wait for last byte + while (!(SPSR & (1 << SPIF))) + ; + dst[n] = SPDR; + +#else // OPTIMIZE_HARDWARE_SPI + + // skip data before offset + for (;offset_ < offset; offset_++) { + spiRec(); + } + // transfer data + for (uint16_t i = 0; i < count; i++) { + dst[i] = spiRec(); + } +#endif // OPTIMIZE_HARDWARE_SPI + + offset_ += count; + if (!partialBlockRead_ || offset_ >= 512) { + // read rest of data, checksum and set chip select high + readEnd(); + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Skip remaining data in a block when in partial block read mode. */ +void Sd2Card::readEnd(void) { + if (inBlock_) { + // skip data and crc +#ifdef OPTIMIZE_HARDWARE_SPI + // optimize skip for hardware + SPDR = 0XFF; + while (offset_++ < 513) { + while (!(SPSR & (1 << SPIF))) + ; + SPDR = 0XFF; + } + // wait for last crc byte + while (!(SPSR & (1 << SPIF))) + ; +#else // OPTIMIZE_HARDWARE_SPI + while (offset_++ < 514) spiRec(); +#endif // OPTIMIZE_HARDWARE_SPI + chipSelectHigh(); + inBlock_ = 0; + } +} +//------------------------------------------------------------------------------ +/** read CID or CSR register */ +uint8_t Sd2Card::readRegister(uint8_t cmd, void* buf) { + uint8_t* dst = reinterpret_cast(buf); + if (cardCommand(cmd, 0)) { + error(SD_CARD_ERROR_READ_REG); + goto fail; + } + if (!waitStartBlock()) goto fail; + // transfer data + for (uint16_t i = 0; i < 16; i++) dst[i] = spiRec(); + spiRec(); // get first crc byte + spiRec(); // get second crc byte + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Set the SPI clock rate. + * + * \param[in] sckRateID A value in the range [0, 6]. + * + * The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum + * SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128 + * for \a scsRateID = 6. + * + * \return The value one, true, is returned for success and the value zero, + * false, is returned for an invalid value of \a sckRateID. + */ +uint8_t Sd2Card::setSckRate(uint8_t sckRateID) { + if (sckRateID > 6) { + error(SD_CARD_ERROR_SCK_RATE); + return false; + } +#ifndef USE_SPI_LIB + // see avr processor datasheet for SPI register bit definitions + if ((sckRateID & 1) || sckRateID == 6) { + SPSR &= ~(1 << SPI2X); + } else { + SPSR |= (1 << SPI2X); + } + SPCR &= ~((1 < SD_READ_TIMEOUT) { + error(SD_CARD_ERROR_READ_TIMEOUT); + goto fail; + } + } + if (status_ != DATA_START_BLOCK) { + error(SD_CARD_ERROR_READ); + goto fail; + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Writes a 512 byte block to an SD card. + * + * \param[in] blockNumber Logical block to be written. + * \param[in] src Pointer to the location of the data to be written. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) { +#if SD_PROTECT_BLOCK_ZERO + // don't allow write to first block + if (blockNumber == 0) { + error(SD_CARD_ERROR_WRITE_BLOCK_ZERO); + goto fail; + } +#endif // SD_PROTECT_BLOCK_ZERO + + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD24, blockNumber)) { + error(SD_CARD_ERROR_CMD24); + goto fail; + } + if (!writeData(DATA_START_BLOCK, src)) goto fail; + + // wait for flash programming to complete + if (!waitNotBusy(SD_WRITE_TIMEOUT)) { + error(SD_CARD_ERROR_WRITE_TIMEOUT); + goto fail; + } + // response is r2 so get and check two bytes for nonzero + if (cardCommand(CMD13, 0) || spiRec()) { + error(SD_CARD_ERROR_WRITE_PROGRAMMING); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Write one data block in a multiple block write sequence */ +uint8_t Sd2Card::writeData(const uint8_t* src) { + // wait for previous write to finish + if (!waitNotBusy(SD_WRITE_TIMEOUT)) { + error(SD_CARD_ERROR_WRITE_MULTIPLE); + chipSelectHigh(); + return false; + } + return writeData(WRITE_MULTIPLE_TOKEN, src); +} +//------------------------------------------------------------------------------ +// send one block of data for write block or write multiple blocks +uint8_t Sd2Card::writeData(uint8_t token, const uint8_t* src) { +#ifdef OPTIMIZE_HARDWARE_SPI + + // send data - optimized loop + SPDR = token; + + // send two byte per iteration + for (uint16_t i = 0; i < 512; i += 2) { + while (!(SPSR & (1 << SPIF))) + ; + SPDR = src[i]; + while (!(SPSR & (1 << SPIF))) + ; + SPDR = src[i+1]; + } + + // wait for last data byte + while (!(SPSR & (1 << SPIF))) + ; + +#else // OPTIMIZE_HARDWARE_SPI + spiSend(token); + for (uint16_t i = 0; i < 512; i++) { + spiSend(src[i]); + } +#endif // OPTIMIZE_HARDWARE_SPI + spiSend(0xff); // dummy crc + spiSend(0xff); // dummy crc + + status_ = spiRec(); + if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) { + error(SD_CARD_ERROR_WRITE); + chipSelectHigh(); + return false; + } + return true; +} +//------------------------------------------------------------------------------ +/** Start a write multiple blocks sequence. + * + * \param[in] blockNumber Address of first block in sequence. + * \param[in] eraseCount The number of blocks to be pre-erased. + * + * \note This function is used with writeData() and writeStop() + * for optimized multiple block writes. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) { +#if SD_PROTECT_BLOCK_ZERO + // don't allow write to first block + if (blockNumber == 0) { + error(SD_CARD_ERROR_WRITE_BLOCK_ZERO); + goto fail; + } +#endif // SD_PROTECT_BLOCK_ZERO + // send pre-erase count + if (cardAcmd(ACMD23, eraseCount)) { + error(SD_CARD_ERROR_ACMD23); + goto fail; + } + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD25, blockNumber)) { + error(SD_CARD_ERROR_CMD25); + goto fail; + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** End a write multiple blocks sequence. + * +* \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::writeStop(void) { + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + spiSend(STOP_TRAN_TOKEN); + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + chipSelectHigh(); + return true; + + fail: + error(SD_CARD_ERROR_STOP_TRAN); + chipSelectHigh(); + return false; +} diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2Card.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2Card.h new file mode 100644 index 00000000000..bcb80947008 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2Card.h @@ -0,0 +1,260 @@ +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#ifndef Sd2Card_h +#define Sd2Card_h +/** + * \file + * Sd2Card class + */ +#include "Sd2PinMap.h" +#include "SdInfo.h" +/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */ +uint8_t const SPI_FULL_SPEED = 0; +/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */ +uint8_t const SPI_HALF_SPEED = 1; +/** Set SCK rate to F_CPU/8. Sd2Card::setSckRate(). */ +uint8_t const SPI_QUARTER_SPEED = 2; +/** + * USE_SPI_LIB: if set, use the SPI library bundled with Arduino IDE, otherwise + * run with a standalone driver for AVR. + */ +#define USE_SPI_LIB +/** + * Define MEGA_SOFT_SPI non-zero to use software SPI on Mega Arduinos. + * Pins used are SS 10, MOSI 11, MISO 12, and SCK 13. + * + * MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used + * on Mega Arduinos. Software SPI works well with GPS Shield V1.1 + * but many SD cards will fail with GPS Shield V1.0. + */ +#define MEGA_SOFT_SPI 0 +//------------------------------------------------------------------------------ +#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__)) +#define SOFTWARE_SPI +#endif // MEGA_SOFT_SPI +//------------------------------------------------------------------------------ +// SPI pin definitions +// +#ifndef SOFTWARE_SPI +// hardware pin defs + +// include pins_arduino.h or variant.h depending on architecture, via Arduino.h +#include + +/** + * SD Chip Select pin + * + * Warning if this pin is redefined the hardware SS will pin will be enabled + * as an output by init(). An avr processor will not function as an SPI + * master unless SS is set to output mode. + */ +#ifndef SDCARD_SS_PIN +/** The default chip select pin for the SD card is SS. */ +uint8_t const SD_CHIP_SELECT_PIN = SS; +#else +uint8_t const SD_CHIP_SELECT_PIN = SDCARD_SS_PIN; +#endif + +// The following three pins must not be redefined for hardware SPI, +// so ensure that they are taken from pins_arduino.h or variant.h, depending on architecture. +#ifndef SDCARD_MOSI_PIN +/** SPI Master Out Slave In pin */ +uint8_t const SPI_MOSI_PIN = MOSI; +/** SPI Master In Slave Out pin */ +uint8_t const SPI_MISO_PIN = MISO; +/** SPI Clock pin */ +uint8_t const SPI_SCK_PIN = SCK; +#else +uint8_t const SPI_MOSI_PIN = SDCARD_MOSI_PIN; +uint8_t const SPI_MISO_PIN = SDCARD_MISO_PIN; +uint8_t const SPI_SCK_PIN = SDCARD_SCK_PIN; +#endif + +/** optimize loops for hardware SPI */ +#ifndef USE_SPI_LIB +#define OPTIMIZE_HARDWARE_SPI +#endif + +#else // SOFTWARE_SPI +// define software SPI pins so Mega can use unmodified GPS Shield +/** SPI chip select pin */ +uint8_t const SD_CHIP_SELECT_PIN = 10; +/** SPI Master Out Slave In pin */ +uint8_t const SPI_MOSI_PIN = 11; +/** SPI Master In Slave Out pin */ +uint8_t const SPI_MISO_PIN = 12; +/** SPI Clock pin */ +uint8_t const SPI_SCK_PIN = 13; +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** Protect block zero from write if nonzero */ +#define SD_PROTECT_BLOCK_ZERO 1 +/** init timeout ms */ +uint16_t const SD_INIT_TIMEOUT = 2000; +/** erase timeout ms */ +uint16_t const SD_ERASE_TIMEOUT = 10000; +/** read timeout ms */ +uint16_t const SD_READ_TIMEOUT = 300; +/** write time out ms */ +uint16_t const SD_WRITE_TIMEOUT = 600; +//------------------------------------------------------------------------------ +// SD card errors +/** timeout error for command CMD0 */ +uint8_t const SD_CARD_ERROR_CMD0 = 0X1; +/** CMD8 was not accepted - not a valid SD card*/ +uint8_t const SD_CARD_ERROR_CMD8 = 0X2; +/** card returned an error response for CMD17 (read block) */ +uint8_t const SD_CARD_ERROR_CMD17 = 0X3; +/** card returned an error response for CMD24 (write block) */ +uint8_t const SD_CARD_ERROR_CMD24 = 0X4; +/** WRITE_MULTIPLE_BLOCKS command failed */ +uint8_t const SD_CARD_ERROR_CMD25 = 0X05; +/** card returned an error response for CMD58 (read OCR) */ +uint8_t const SD_CARD_ERROR_CMD58 = 0X06; +/** SET_WR_BLK_ERASE_COUNT failed */ +uint8_t const SD_CARD_ERROR_ACMD23 = 0X07; +/** card's ACMD41 initialization process timeout */ +uint8_t const SD_CARD_ERROR_ACMD41 = 0X08; +/** card returned a bad CSR version field */ +uint8_t const SD_CARD_ERROR_BAD_CSD = 0X09; +/** erase block group command failed */ +uint8_t const SD_CARD_ERROR_ERASE = 0X0A; +/** card not capable of single block erase */ +uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0X0B; +/** Erase sequence timed out */ +uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0X0C; +/** card returned an error token instead of read data */ +uint8_t const SD_CARD_ERROR_READ = 0X0D; +/** read CID or CSD failed */ +uint8_t const SD_CARD_ERROR_READ_REG = 0X0E; +/** timeout while waiting for start of read data */ +uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X0F; +/** card did not accept STOP_TRAN_TOKEN */ +uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X10; +/** card returned an error token as a response to a write operation */ +uint8_t const SD_CARD_ERROR_WRITE = 0X11; +/** attempt to write protected block zero */ +uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X12; +/** card did not go ready for a multiple block write */ +uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X13; +/** card returned an error to a CMD13 status check after a write */ +uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X14; +/** timeout occurred during write programming */ +uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X15; +/** incorrect rate selected */ +uint8_t const SD_CARD_ERROR_SCK_RATE = 0X16; +//------------------------------------------------------------------------------ +// card types +/** Standard capacity V1 SD card */ +uint8_t const SD_CARD_TYPE_SD1 = 1; +/** Standard capacity V2 SD card */ +uint8_t const SD_CARD_TYPE_SD2 = 2; +/** High Capacity SD card */ +uint8_t const SD_CARD_TYPE_SDHC = 3; +//------------------------------------------------------------------------------ +/** + * \class Sd2Card + * \brief Raw access to SD and SDHC flash memory cards. + */ +class Sd2Card { + public: + /** Construct an instance of Sd2Card. */ + Sd2Card(void) : errorCode_(0), inBlock_(0), partialBlockRead_(0), type_(0) {} + uint32_t cardSize(void); + uint8_t erase(uint32_t firstBlock, uint32_t lastBlock); + uint8_t eraseSingleBlockEnable(void); + /** + * \return error code for last error. See Sd2Card.h for a list of error codes. + */ + uint8_t errorCode(void) const {return errorCode_;} + /** \return error data for last error. */ + uint8_t errorData(void) const {return status_;} + /** + * Initialize an SD flash memory card with default clock rate and chip + * select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). + */ + uint8_t init(void) { + return init(SPI_FULL_SPEED, SD_CHIP_SELECT_PIN); + } + /** + * Initialize an SD flash memory card with the selected SPI clock rate + * and the default SD chip select pin. + * See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). + */ + uint8_t init(uint8_t sckRateID) { + return init(sckRateID, SD_CHIP_SELECT_PIN); + } + uint8_t init(uint8_t sckRateID, uint8_t chipSelectPin); + void partialBlockRead(uint8_t value); + /** Returns the current value, true or false, for partial block read. */ + uint8_t partialBlockRead(void) const {return partialBlockRead_;} + uint8_t readBlock(uint32_t block, uint8_t* dst); + uint8_t readData(uint32_t block, + uint16_t offset, uint16_t count, uint8_t* dst); + /** + * Read a cards CID register. The CID contains card identification + * information such as Manufacturer ID, Product name, Product serial + * number and Manufacturing date. */ + uint8_t readCID(cid_t* cid) { + return readRegister(CMD10, cid); + } + /** + * Read a cards CSD register. The CSD contains Card-Specific Data that + * provides information regarding access to the card's contents. */ + uint8_t readCSD(csd_t* csd) { + return readRegister(CMD9, csd); + } + void readEnd(void); + uint8_t setSckRate(uint8_t sckRateID); +#ifdef USE_SPI_LIB + uint8_t setSpiClock(uint32_t clock); +#endif + /** Return the card type: SD V1, SD V2 or SDHC */ + uint8_t type(void) const {return type_;} + uint8_t writeBlock(uint32_t blockNumber, const uint8_t* src); + uint8_t writeData(const uint8_t* src); + uint8_t writeStart(uint32_t blockNumber, uint32_t eraseCount); + uint8_t writeStop(void); + private: + uint32_t block_; + uint8_t chipSelectPin_; + uint8_t errorCode_; + uint8_t inBlock_; + uint16_t offset_; + uint8_t partialBlockRead_; + uint8_t status_; + uint8_t type_; + // private functions + uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { + cardCommand(CMD55, 0); + return cardCommand(cmd, arg); + } + uint8_t cardCommand(uint8_t cmd, uint32_t arg); + void error(uint8_t code) {errorCode_ = code;} + uint8_t readRegister(uint8_t cmd, void* buf); + uint8_t sendWriteCommand(uint32_t blockNumber, uint32_t eraseCount); + void chipSelectHigh(void); + void chipSelectLow(void); + void type(uint8_t value) {type_ = value;} + uint8_t waitNotBusy(uint16_t timeoutMillis); + uint8_t writeData(uint8_t token, const uint8_t* src); + uint8_t waitStartBlock(void); +}; +#endif // Sd2Card_h diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2PinMap.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2PinMap.h new file mode 100644 index 00000000000..3e2df439a37 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/Sd2PinMap.h @@ -0,0 +1,511 @@ +/* Arduino SdFat Library + * Copyright (C) 2010 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#if defined(__arm__) // Arduino Due Board follows + +#ifndef Sd2PinMap_h +#define Sd2PinMap_h + +#include + +uint8_t const SS_PIN = SS; +uint8_t const MOSI_PIN = MOSI; +uint8_t const MISO_PIN = MISO; +uint8_t const SCK_PIN = SCK; + +#endif // Sd2PinMap_h + +#elif defined(__AVR__) // Other AVR based Boards follows + +// Warning this file was generated by a program. +#ifndef Sd2PinMap_h +#define Sd2PinMap_h +#include + +//------------------------------------------------------------------------------ +/** struct for mapping digital pins */ +struct pin_map_t { + volatile uint8_t* ddr; + volatile uint8_t* pin; + volatile uint8_t* port; + uint8_t bit; +}; +//------------------------------------------------------------------------------ +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +// Mega + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 20; +uint8_t const SCL_PIN = 21; + +// SPI port +uint8_t const SS_PIN = 53; +uint8_t const MOSI_PIN = 51; +uint8_t const MISO_PIN = 50; +uint8_t const SCK_PIN = 52; + +static const pin_map_t digitalPinMap[] = { + {&DDRE, &PINE, &PORTE, 0}, // E0 0 + {&DDRE, &PINE, &PORTE, 1}, // E1 1 + {&DDRE, &PINE, &PORTE, 4}, // E4 2 + {&DDRE, &PINE, &PORTE, 5}, // E5 3 + {&DDRG, &PING, &PORTG, 5}, // G5 4 + {&DDRE, &PINE, &PORTE, 3}, // E3 5 + {&DDRH, &PINH, &PORTH, 3}, // H3 6 + {&DDRH, &PINH, &PORTH, 4}, // H4 7 + {&DDRH, &PINH, &PORTH, 5}, // H5 8 + {&DDRH, &PINH, &PORTH, 6}, // H6 9 + {&DDRB, &PINB, &PORTB, 4}, // B4 10 + {&DDRB, &PINB, &PORTB, 5}, // B5 11 + {&DDRB, &PINB, &PORTB, 6}, // B6 12 + {&DDRB, &PINB, &PORTB, 7}, // B7 13 + {&DDRJ, &PINJ, &PORTJ, 1}, // J1 14 + {&DDRJ, &PINJ, &PORTJ, 0}, // J0 15 + {&DDRH, &PINH, &PORTH, 1}, // H1 16 + {&DDRH, &PINH, &PORTH, 0}, // H0 17 + {&DDRD, &PIND, &PORTD, 3}, // D3 18 + {&DDRD, &PIND, &PORTD, 2}, // D2 19 + {&DDRD, &PIND, &PORTD, 1}, // D1 20 + {&DDRD, &PIND, &PORTD, 0}, // D0 21 + {&DDRA, &PINA, &PORTA, 0}, // A0 22 + {&DDRA, &PINA, &PORTA, 1}, // A1 23 + {&DDRA, &PINA, &PORTA, 2}, // A2 24 + {&DDRA, &PINA, &PORTA, 3}, // A3 25 + {&DDRA, &PINA, &PORTA, 4}, // A4 26 + {&DDRA, &PINA, &PORTA, 5}, // A5 27 + {&DDRA, &PINA, &PORTA, 6}, // A6 28 + {&DDRA, &PINA, &PORTA, 7}, // A7 29 + {&DDRC, &PINC, &PORTC, 7}, // C7 30 + {&DDRC, &PINC, &PORTC, 6}, // C6 31 + {&DDRC, &PINC, &PORTC, 5}, // C5 32 + {&DDRC, &PINC, &PORTC, 4}, // C4 33 + {&DDRC, &PINC, &PORTC, 3}, // C3 34 + {&DDRC, &PINC, &PORTC, 2}, // C2 35 + {&DDRC, &PINC, &PORTC, 1}, // C1 36 + {&DDRC, &PINC, &PORTC, 0}, // C0 37 + {&DDRD, &PIND, &PORTD, 7}, // D7 38 + {&DDRG, &PING, &PORTG, 2}, // G2 39 + {&DDRG, &PING, &PORTG, 1}, // G1 40 + {&DDRG, &PING, &PORTG, 0}, // G0 41 + {&DDRL, &PINL, &PORTL, 7}, // L7 42 + {&DDRL, &PINL, &PORTL, 6}, // L6 43 + {&DDRL, &PINL, &PORTL, 5}, // L5 44 + {&DDRL, &PINL, &PORTL, 4}, // L4 45 + {&DDRL, &PINL, &PORTL, 3}, // L3 46 + {&DDRL, &PINL, &PORTL, 2}, // L2 47 + {&DDRL, &PINL, &PORTL, 1}, // L1 48 + {&DDRL, &PINL, &PORTL, 0}, // L0 49 + {&DDRB, &PINB, &PORTB, 3}, // B3 50 + {&DDRB, &PINB, &PORTB, 2}, // B2 51 + {&DDRB, &PINB, &PORTB, 1}, // B1 52 + {&DDRB, &PINB, &PORTB, 0}, // B0 53 + {&DDRF, &PINF, &PORTF, 0}, // F0 54 + {&DDRF, &PINF, &PORTF, 1}, // F1 55 + {&DDRF, &PINF, &PORTF, 2}, // F2 56 + {&DDRF, &PINF, &PORTF, 3}, // F3 57 + {&DDRF, &PINF, &PORTF, 4}, // F4 58 + {&DDRF, &PINF, &PORTF, 5}, // F5 59 + {&DDRF, &PINF, &PORTF, 6}, // F6 60 + {&DDRF, &PINF, &PORTF, 7}, // F7 61 + {&DDRK, &PINK, &PORTK, 0}, // K0 62 + {&DDRK, &PINK, &PORTK, 1}, // K1 63 + {&DDRK, &PINK, &PORTK, 2}, // K2 64 + {&DDRK, &PINK, &PORTK, 3}, // K3 65 + {&DDRK, &PINK, &PORTK, 4}, // K4 66 + {&DDRK, &PINK, &PORTK, 5}, // K5 67 + {&DDRK, &PINK, &PORTK, 6}, // K6 68 + {&DDRK, &PINK, &PORTK, 7} // K7 69 +}; +//------------------------------------------------------------------------------ +#elif (defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)) && defined(CORE_MICRODUINO) +// Microduino Core+ + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 20; +uint8_t const SCL_PIN = 21; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 PD0 + {&DDRD, &PIND, &PORTD, 1}, // D1 PD1 + {&DDRD, &PIND, &PORTD, 2}, // D2 PD2 + {&DDRD, &PIND, &PORTD, 3}, // D3 PD3 + {&DDRB, &PINB, &PORTB, 0}, // D4 PB0 + {&DDRB, &PINB, &PORTB, 1}, // D5 PB1 + {&DDRB, &PINB, &PORTB, 2}, // D6 PB2 + {&DDRB, &PINB, &PORTB, 3}, // D7 PB3 + {&DDRD, &PIND, &PORTD, 6}, // D8 PD6 + {&DDRD, &PIND, &PORTD, 5}, // D9 PD5 + {&DDRB, &PINB, &PORTB, 4}, // D10 PB4 + {&DDRB, &PINB, &PORTB, 5}, // D11 PB5 + {&DDRB, &PINB, &PORTB, 6}, // D12 PB6 + {&DDRB, &PINB, &PORTB, 7}, // D13 PB7 + {&DDRC, &PINC, &PORTC, 7}, // D14 PC7 + {&DDRC, &PINC, &PORTC, 6}, // D15 PC6 + {&DDRC, &PINC, &PORTC, 5}, // D16 PC5 + {&DDRC, &PINC, &PORTC, 4}, // D17 PC4 + {&DDRC, &PINC, &PORTC, 3}, // D18 PC3 + {&DDRC, &PINC, &PORTC, 2}, // D19 PC2 + {&DDRC, &PINC, &PORTC, 1}, // D20 PC1 + {&DDRC, &PINC, &PORTC, 0}, // D21 PC0 + {&DDRD, &PIND, &PORTD, 4}, // D22 PD4 + {&DDRD, &PIND, &PORTD, 7}, // D23 PD7 + {&DDRA, &PINA, &PORTA, 7}, // D24 PA7 + {&DDRA, &PINA, &PORTA, 6}, // D25 PA6 + {&DDRA, &PINA, &PORTA, 5}, // D26 PA5 + {&DDRA, &PINA, &PORTA, 4}, // D27 PA4 + {&DDRA, &PINA, &PORTA, 3}, // D28 PA3 + {&DDRA, &PINA, &PORTA, 2}, // D29 PA2 + {&DDRA, &PINA, &PORTA, 1}, // D30 PA1 + {&DDRA, &PINA, &PORTA, 0} // D31 PA0 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega128RFA1__) && defined(CORE_MICRODUINO) +// Microduino Core RF + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PINE, &PORTE, 0}, // D0 PE0 + {&DDRD, &PINE, &PORTE, 1}, // D1 PE1 + {&DDRD, &PIND, &PORTD, 2}, // D2 PD2 + {&DDRD, &PIND, &PORTD, 3}, // D3 PD3 + {&DDRB, &PINE, &PORTE, 3}, // D4 PE3 + {&DDRB, &PINE, &PORTE, 4}, // D5 PE4 + {&DDRB, &PINE, &PORTE, 5}, // D6 PE5 + {&DDRB, &PINB, &PORTB, 7}, // D7 PB7 + {&DDRD, &PINB, &PORTB, 6}, // D8 PB6 + {&DDRD, &PINB, &PORTB, 5}, // D9 PB5 + {&DDRB, &PINB, &PORTB, 4}, // D10 PB4 + {&DDRB, &PINB, &PORTB, 2}, // D11 PB2 + {&DDRB, &PINB, &PORTB, 3}, // D12 PB3 + {&DDRB, &PINB, &PORTB, 1}, // D13 PB1 + {&DDRF, &PINF, &PORTF, 7}, // D14 PF7 + {&DDRF, &PINF, &PORTF, 6}, // D15 PF6 + {&DDRF, &PINF, &PORTF, 5}, // D16 PF5 + {&DDRF, &PINF, &PORTF, 4}, // D17 PF4 + {&DDRD, &PIND, &PORTD, 1}, // D18 PD1 + {&DDRD, &PIND, &PORTD, 0}, // D19 PD0 + {&DDRF, &PINF, &PORTF, 3}, // D20 PF3 + {&DDRF, &PINF, &PORTF, 2}, // D21 PF2 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega32U4__) && defined(CORE_MICRODUINO) +// Microduino Core USB + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 2}, // D0 - PD2 + {&DDRD, &PIND, &PORTD, 3}, // D1 - PD3 + {&DDRE, &PINE, &PORTE, 6}, // D2 - PE6 + {&DDRD, &PIND, &PORTD, 6}, // D3 - PD6 + {&DDRD, &PIND, &PORTD, 7}, // D4 - PD7 + {&DDRC, &PINC, &PORTC, 6}, // D5 - PC6 + {&DDRC, &PINC, &PORTC, 7}, // D6 - PC7 + {&DDRE, &PINE, &PORTE, 7}, // D7 - PE7 + {&DDRB, &PINB, &PORTB, 6}, // D8 - PB6 + {&DDRB, &PINB, &PORTB, 5}, // D9 - PB5 + {&DDRB, &PINB, &PORTB, 0}, // D10 - PB0 + {&DDRB, &PINB, &PORTB, 2}, // D11 - MOSI - PB2 + {&DDRB, &PINB, &PORTB, 3}, // D12 -MISO - PB3 + {&DDRB, &PINB, &PORTB, 1}, // D13 -SCK - PB1 + {&DDRF, &PINF, &PORTF, 7}, // D14 - A0 - PF7 + {&DDRF, &PINF, &PORTF, 6}, // D15 - A1 - PF6 + {&DDRF, &PINF, &PORTF, 5}, // D16 - A2 - PF5 + {&DDRF, &PINF, &PORTF, 4}, // D17 - A3 - PF4 + {&DDRD, &PIND, &PORTD, 1}, // D18 - PD1 + {&DDRD, &PIND, &PORTD, 0}, // D19 - PD0 + {&DDRF, &PINF, &PORTF, 1}, // D20 - A6 - PF1 + {&DDRF, &PINF, &PORTF, 0}, // D21 - A7 - PF0 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +// Sanguino + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 17; +uint8_t const SCL_PIN = 18; + +// SPI port +uint8_t const SS_PIN = 4; +uint8_t const MOSI_PIN = 5; +uint8_t const MISO_PIN = 6; +uint8_t const SCK_PIN = 7; + +static const pin_map_t digitalPinMap[] = { + {&DDRB, &PINB, &PORTB, 0}, // B0 0 + {&DDRB, &PINB, &PORTB, 1}, // B1 1 + {&DDRB, &PINB, &PORTB, 2}, // B2 2 + {&DDRB, &PINB, &PORTB, 3}, // B3 3 + {&DDRB, &PINB, &PORTB, 4}, // B4 4 + {&DDRB, &PINB, &PORTB, 5}, // B5 5 + {&DDRB, &PINB, &PORTB, 6}, // B6 6 + {&DDRB, &PINB, &PORTB, 7}, // B7 7 + {&DDRD, &PIND, &PORTD, 0}, // D0 8 + {&DDRD, &PIND, &PORTD, 1}, // D1 9 + {&DDRD, &PIND, &PORTD, 2}, // D2 10 + {&DDRD, &PIND, &PORTD, 3}, // D3 11 + {&DDRD, &PIND, &PORTD, 4}, // D4 12 + {&DDRD, &PIND, &PORTD, 5}, // D5 13 + {&DDRD, &PIND, &PORTD, 6}, // D6 14 + {&DDRD, &PIND, &PORTD, 7}, // D7 15 + {&DDRC, &PINC, &PORTC, 0}, // C0 16 + {&DDRC, &PINC, &PORTC, 1}, // C1 17 + {&DDRC, &PINC, &PORTC, 2}, // C2 18 + {&DDRC, &PINC, &PORTC, 3}, // C3 19 + {&DDRC, &PINC, &PORTC, 4}, // C4 20 + {&DDRC, &PINC, &PORTC, 5}, // C5 21 + {&DDRC, &PINC, &PORTC, 6}, // C6 22 + {&DDRC, &PINC, &PORTC, 7}, // C7 23 + {&DDRA, &PINA, &PORTA, 7}, // A7 24 + {&DDRA, &PINA, &PORTA, 6}, // A6 25 + {&DDRA, &PINA, &PORTA, 5}, // A5 26 + {&DDRA, &PINA, &PORTA, 4}, // A4 27 + {&DDRA, &PINA, &PORTA, 3}, // A3 28 + {&DDRA, &PINA, &PORTA, 2}, // A2 29 + {&DDRA, &PINA, &PORTA, 1}, // A1 30 + {&DDRA, &PINA, &PORTA, 0} // A0 31 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega32U4__) +// Leonardo + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 2; +uint8_t const SCL_PIN = 3; + +// SPI port +uint8_t const SS_PIN = 17; +uint8_t const MOSI_PIN = 16; +uint8_t const MISO_PIN = 14; +uint8_t const SCK_PIN = 15; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 2}, // D2 0 + {&DDRD, &PIND, &PORTD, 3}, // D3 1 + {&DDRD, &PIND, &PORTD, 1}, // D1 2 + {&DDRD, &PIND, &PORTD, 0}, // D0 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRC, &PINC, &PORTC, 6}, // C6 5 + {&DDRD, &PIND, &PORTD, 7}, // D7 6 + {&DDRE, &PINE, &PORTE, 6}, // E6 7 + {&DDRB, &PINB, &PORTB, 4}, // B4 8 + {&DDRB, &PINB, &PORTB, 5}, // B5 9 + {&DDRB, &PINB, &PORTB, 6}, // B6 10 + {&DDRB, &PINB, &PORTB, 7}, // B7 11 + {&DDRD, &PIND, &PORTD, 6}, // D6 12 + {&DDRC, &PINC, &PORTC, 7}, // C7 13 + {&DDRB, &PINB, &PORTB, 3}, // B3 14 + {&DDRB, &PINB, &PORTB, 1}, // B1 15 + {&DDRB, &PINB, &PORTB, 2}, // B2 16 + {&DDRB, &PINB, &PORTB, 0}, // B0 17 + {&DDRF, &PINF, &PORTF, 7}, // F7 18 + {&DDRF, &PINF, &PORTF, 6}, // F6 19 + {&DDRF, &PINF, &PORTF, 5}, // F5 20 + {&DDRF, &PINF, &PORTF, 4}, // F4 21 + {&DDRF, &PINF, &PORTF, 1}, // F1 22 + {&DDRF, &PINF, &PORTF, 0}, // F0 23 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) +// Teensy++ 1.0 & 2.0 + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 1; +uint8_t const SCL_PIN = 0; + +// SPI port +uint8_t const SS_PIN = 20; +uint8_t const MOSI_PIN = 22; +uint8_t const MISO_PIN = 23; +uint8_t const SCK_PIN = 21; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRE, &PINE, &PORTE, 0}, // E0 8 + {&DDRE, &PINE, &PORTE, 1}, // E1 9 + {&DDRC, &PINC, &PORTC, 0}, // C0 10 + {&DDRC, &PINC, &PORTC, 1}, // C1 11 + {&DDRC, &PINC, &PORTC, 2}, // C2 12 + {&DDRC, &PINC, &PORTC, 3}, // C3 13 + {&DDRC, &PINC, &PORTC, 4}, // C4 14 + {&DDRC, &PINC, &PORTC, 5}, // C5 15 + {&DDRC, &PINC, &PORTC, 6}, // C6 16 + {&DDRC, &PINC, &PORTC, 7}, // C7 17 + {&DDRE, &PINE, &PORTE, 6}, // E6 18 + {&DDRE, &PINE, &PORTE, 7}, // E7 19 + {&DDRB, &PINB, &PORTB, 0}, // B0 20 + {&DDRB, &PINB, &PORTB, 1}, // B1 21 + {&DDRB, &PINB, &PORTB, 2}, // B2 22 + {&DDRB, &PINB, &PORTB, 3}, // B3 23 + {&DDRB, &PINB, &PORTB, 4}, // B4 24 + {&DDRB, &PINB, &PORTB, 5}, // B5 25 + {&DDRB, &PINB, &PORTB, 6}, // B6 26 + {&DDRB, &PINB, &PORTB, 7}, // B7 27 + {&DDRA, &PINA, &PORTA, 0}, // A0 28 + {&DDRA, &PINA, &PORTA, 1}, // A1 29 + {&DDRA, &PINA, &PORTA, 2}, // A2 30 + {&DDRA, &PINA, &PORTA, 3}, // A3 31 + {&DDRA, &PINA, &PORTA, 4}, // A4 32 + {&DDRA, &PINA, &PORTA, 5}, // A5 33 + {&DDRA, &PINA, &PORTA, 6}, // A6 34 + {&DDRA, &PINA, &PORTA, 7}, // A7 35 + {&DDRE, &PINE, &PORTE, 4}, // E4 36 + {&DDRE, &PINE, &PORTE, 5}, // E5 37 + {&DDRF, &PINF, &PORTF, 0}, // F0 38 + {&DDRF, &PINF, &PORTF, 1}, // F1 39 + {&DDRF, &PINF, &PORTF, 2}, // F2 40 + {&DDRF, &PINF, &PORTF, 3}, // F3 41 + {&DDRF, &PINF, &PORTF, 4}, // F4 42 + {&DDRF, &PINF, &PORTF, 5}, // F5 43 + {&DDRF, &PINF, &PORTF, 6}, // F6 44 + {&DDRF, &PINF, &PORTF, 7} // F7 45 +}; +//------------------------------------------------------------------------------ +#else // defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +// 168 and 328 Arduinos + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRB, &PINB, &PORTB, 0}, // B0 8 + {&DDRB, &PINB, &PORTB, 1}, // B1 9 + {&DDRB, &PINB, &PORTB, 2}, // B2 10 + {&DDRB, &PINB, &PORTB, 3}, // B3 11 + {&DDRB, &PINB, &PORTB, 4}, // B4 12 + {&DDRB, &PINB, &PORTB, 5}, // B5 13 + {&DDRC, &PINC, &PORTC, 0}, // C0 14 + {&DDRC, &PINC, &PORTC, 1}, // C1 15 + {&DDRC, &PINC, &PORTC, 2}, // C2 16 + {&DDRC, &PINC, &PORTC, 3}, // C3 17 + {&DDRC, &PINC, &PORTC, 4}, // C4 18 + {&DDRC, &PINC, &PORTC, 5} // C5 19 +}; +#endif // defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +//------------------------------------------------------------------------------ +static const uint8_t digitalPinCount = sizeof(digitalPinMap)/sizeof(pin_map_t); + +uint8_t badPinNumber(void) + __attribute__((error("Pin number is too large or not a constant"))); + +static inline __attribute__((always_inline)) + uint8_t getPinMode(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].ddr >> digitalPinMap[pin].bit) & 1; + } else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void setPinMode(uint8_t pin, uint8_t mode) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (mode) { + *digitalPinMap[pin].ddr |= 1 << digitalPinMap[pin].bit; + } else { + *digitalPinMap[pin].ddr &= ~(1 << digitalPinMap[pin].bit); + } + } else { + badPinNumber(); + } +} +static inline __attribute__((always_inline)) + uint8_t fastDigitalRead(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].pin >> digitalPinMap[pin].bit) & 1; + } else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void fastDigitalWrite(uint8_t pin, uint8_t value) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (value) { + *digitalPinMap[pin].port |= 1 << digitalPinMap[pin].bit; + } else { + *digitalPinMap[pin].port &= ~(1 << digitalPinMap[pin].bit); + } + } else { + badPinNumber(); + } +} +#endif // Sd2PinMap_h + +#elif defined (__CPU_ARC__) + +#if defined (__ARDUINO_ARC__) +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +#endif // Arduino ARC + +#else +#error Architecture or board not supported. +#endif diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFat.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFat.h new file mode 100644 index 00000000000..3ce3133c46e --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFat.h @@ -0,0 +1,551 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#ifndef SdFat_h +#define SdFat_h +/** + * \file + * SdFile and SdVolume classes + */ +#if defined (__AVR__) || defined (__CPU_ARC__) +#include +#endif +#include "Sd2Card.h" +#include "FatStructs.h" +#include "Print.h" +//------------------------------------------------------------------------------ +/** + * Allow use of deprecated functions if non-zero + */ +#define ALLOW_DEPRECATED_FUNCTIONS 1 +//------------------------------------------------------------------------------ +// forward declaration since SdVolume is used in SdFile +class SdVolume; +//============================================================================== +// SdFile class + +// flags for ls() +/** ls() flag to print modify date */ +uint8_t const LS_DATE = 1; +/** ls() flag to print file size */ +uint8_t const LS_SIZE = 2; +/** ls() flag for recursive list of subdirectories */ +uint8_t const LS_R = 4; + +// use the gnu style oflag in open() +/** open() oflag for reading */ +uint8_t const O_READ = 0X01; +/** open() oflag - same as O_READ */ +uint8_t const O_RDONLY = O_READ; +/** open() oflag for write */ +uint8_t const O_WRITE = 0X02; +/** open() oflag - same as O_WRITE */ +uint8_t const O_WRONLY = O_WRITE; +/** open() oflag for reading and writing */ +uint8_t const O_RDWR = (O_READ | O_WRITE); +/** open() oflag mask for access modes */ +uint8_t const O_ACCMODE = (O_READ | O_WRITE); +/** The file offset shall be set to the end of the file prior to each write. */ +uint8_t const O_APPEND = 0X04; +/** synchronous writes - call sync() after each write */ +uint8_t const O_SYNC = 0X08; +/** create the file if nonexistent */ +uint8_t const O_CREAT = 0X10; +/** If O_CREAT and O_EXCL are set, open() shall fail if the file exists */ +uint8_t const O_EXCL = 0X20; +/** truncate the file to zero length */ +uint8_t const O_TRUNC = 0X40; + +// flags for timestamp +/** set the file's last access date */ +uint8_t const T_ACCESS = 1; +/** set the file's creation date and time */ +uint8_t const T_CREATE = 2; +/** Set the file's write date and time */ +uint8_t const T_WRITE = 4; +// values for type_ +/** This SdFile has not been opened. */ +uint8_t const FAT_FILE_TYPE_CLOSED = 0; +/** SdFile for a file */ +uint8_t const FAT_FILE_TYPE_NORMAL = 1; +/** SdFile for a FAT16 root directory */ +uint8_t const FAT_FILE_TYPE_ROOT16 = 2; +/** SdFile for a FAT32 root directory */ +uint8_t const FAT_FILE_TYPE_ROOT32 = 3; +/** SdFile for a subdirectory */ +uint8_t const FAT_FILE_TYPE_SUBDIR = 4; +/** Test value for directory type */ +uint8_t const FAT_FILE_TYPE_MIN_DIR = FAT_FILE_TYPE_ROOT16; + +/** date field for FAT directory entry */ +static inline uint16_t FAT_DATE(uint16_t year, uint8_t month, uint8_t day) { + return (year - 1980) << 9 | month << 5 | day; +} +/** year part of FAT directory date field */ +static inline uint16_t FAT_YEAR(uint16_t fatDate) { + return 1980 + (fatDate >> 9); +} +/** month part of FAT directory date field */ +static inline uint8_t FAT_MONTH(uint16_t fatDate) { + return (fatDate >> 5) & 0XF; +} +/** day part of FAT directory date field */ +static inline uint8_t FAT_DAY(uint16_t fatDate) { + return fatDate & 0X1F; +} +/** time field for FAT directory entry */ +static inline uint16_t FAT_TIME(uint8_t hour, uint8_t minute, uint8_t second) { + return hour << 11 | minute << 5 | second >> 1; +} +/** hour part of FAT directory time field */ +static inline uint8_t FAT_HOUR(uint16_t fatTime) { + return fatTime >> 11; +} +/** minute part of FAT directory time field */ +static inline uint8_t FAT_MINUTE(uint16_t fatTime) { + return(fatTime >> 5) & 0X3F; +} +/** second part of FAT directory time field */ +static inline uint8_t FAT_SECOND(uint16_t fatTime) { + return 2*(fatTime & 0X1F); +} +/** Default date for file timestamps is 1 Jan 2000 */ +uint16_t const FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1; +/** Default time for file timestamp is 1 am */ +uint16_t const FAT_DEFAULT_TIME = (1 << 11); +//------------------------------------------------------------------------------ +/** + * \class SdFile + * \brief Access FAT16 and FAT32 files on SD and SDHC cards. + */ +class SdFile : public Print { + public: + /** Create an instance of SdFile. */ + SdFile(void) : type_(FAT_FILE_TYPE_CLOSED) {} + /** + * writeError is set to true if an error occurs during a write(). + * Set writeError to false before calling print() and/or write() and check + * for true after calls to print() and/or write(). + */ + //bool writeError; + /** + * Cancel unbuffered reads for this file. + * See setUnbufferedRead() + */ + void clearUnbufferedRead(void) { + flags_ &= ~F_FILE_UNBUFFERED_READ; + } + uint8_t close(void); + uint8_t contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock); + uint8_t createContiguous(SdFile* dirFile, + const char* fileName, uint32_t size); + /** \return The current cluster number for a file or directory. */ + uint32_t curCluster(void) const {return curCluster_;} + /** \return The current position for a file or directory. */ + uint32_t curPosition(void) const {return curPosition_;} + /** + * Set the date/time callback function + * + * \param[in] dateTime The user's call back function. The callback + * function is of the form: + * + * \code + * void dateTime(uint16_t* date, uint16_t* time) { + * uint16_t year; + * uint8_t month, day, hour, minute, second; + * + * // User gets date and time from GPS or real-time clock here + * + * // return date using FAT_DATE macro to format fields + * *date = FAT_DATE(year, month, day); + * + * // return time using FAT_TIME macro to format fields + * *time = FAT_TIME(hour, minute, second); + * } + * \endcode + * + * Sets the function that is called when a file is created or when + * a file's directory entry is modified by sync(). All timestamps, + * access, creation, and modify, are set when a file is created. + * sync() maintains the last access date and last modify date/time. + * + * See the timestamp() function. + */ + static void dateTimeCallback( + void (*dateTime)(uint16_t* date, uint16_t* time)) { + dateTime_ = dateTime; + } + /** + * Cancel the date/time callback function. + */ + static void dateTimeCallbackCancel(void) { + // use explicit zero since NULL is not defined for Sanguino + dateTime_ = 0; + } + /** \return Address of the block that contains this file's directory. */ + uint32_t dirBlock(void) const {return dirBlock_;} + uint8_t dirEntry(dir_t* dir); + /** \return Index of this file's directory in the block dirBlock. */ + uint8_t dirIndex(void) const {return dirIndex_;} + static void dirName(const dir_t& dir, char* name); + /** \return The total number of bytes in a file or directory. */ + uint32_t fileSize(void) const {return fileSize_;} + /** \return The first cluster number for a file or directory. */ + uint32_t firstCluster(void) const {return firstCluster_;} + /** \return True if this is a SdFile for a directory else false. */ + uint8_t isDir(void) const {return type_ >= FAT_FILE_TYPE_MIN_DIR;} + /** \return True if this is a SdFile for a file else false. */ + uint8_t isFile(void) const {return type_ == FAT_FILE_TYPE_NORMAL;} + /** \return True if this is a SdFile for an open file/directory else false. */ + uint8_t isOpen(void) const {return type_ != FAT_FILE_TYPE_CLOSED;} + /** \return True if this is a SdFile for a subdirectory else false. */ + uint8_t isSubDir(void) const {return type_ == FAT_FILE_TYPE_SUBDIR;} + /** \return True if this is a SdFile for the root directory. */ + uint8_t isRoot(void) const { + return type_ == FAT_FILE_TYPE_ROOT16 || type_ == FAT_FILE_TYPE_ROOT32; + } + void ls(uint8_t flags = 0, uint8_t indent = 0); + uint8_t makeDir(SdFile* dir, const char* dirName); + uint8_t open(SdFile* dirFile, uint16_t index, uint8_t oflag); + uint8_t open(SdFile* dirFile, const char* fileName, uint8_t oflag); + + uint8_t openRoot(SdVolume* vol); + static void printDirName(const dir_t& dir, uint8_t width); + static void printFatDate(uint16_t fatDate); + static void printFatTime(uint16_t fatTime); + static void printTwoDigits(uint8_t v); + /** + * Read the next byte from a file. + * + * \return For success read returns the next byte in the file as an int. + * If an error occurs or end of file is reached -1 is returned. + */ + int16_t read(void) { + uint8_t b; + return read(&b, 1) == 1 ? b : -1; + } + int16_t read(void* buf, uint16_t nbyte); + int8_t readDir(dir_t* dir); + static uint8_t remove(SdFile* dirFile, const char* fileName); + uint8_t remove(void); + /** Set the file's current position to zero. */ + void rewind(void) { + curPosition_ = curCluster_ = 0; + } + uint8_t rmDir(void); + uint8_t rmRfStar(void); + /** Set the files position to current position + \a pos. See seekSet(). */ + uint8_t seekCur(uint32_t pos) { + return seekSet(curPosition_ + pos); + } + /** + * Set the files current position to end of file. Useful to position + * a file for append. See seekSet(). + */ + uint8_t seekEnd(void) {return seekSet(fileSize_);} + uint8_t seekSet(uint32_t pos); + /** + * Use unbuffered reads to access this file. Used with Wave + * Shield ISR. Used with Sd2Card::partialBlockRead() in WaveRP. + * + * Not recommended for normal applications. + */ + void setUnbufferedRead(void) { + if (isFile()) flags_ |= F_FILE_UNBUFFERED_READ; + } + uint8_t timestamp(uint8_t flag, uint16_t year, uint8_t month, uint8_t day, + uint8_t hour, uint8_t minute, uint8_t second); + uint8_t sync(void); + /** Type of this SdFile. You should use isFile() or isDir() instead of type() + * if possible. + * + * \return The file or directory type. + */ + uint8_t type(void) const {return type_;} + uint8_t truncate(uint32_t size); + /** \return Unbuffered read flag. */ + uint8_t unbufferedRead(void) const { + return flags_ & F_FILE_UNBUFFERED_READ; + } + /** \return SdVolume that contains this file. */ + SdVolume* volume(void) const {return vol_;} + size_t write(uint8_t b); + size_t write(const void* buf, uint16_t nbyte); + size_t write(const char* str); +#ifdef __AVR__ + void write_P(PGM_P str); + void writeln_P(PGM_P str); +#endif +//------------------------------------------------------------------------------ +#if ALLOW_DEPRECATED_FUNCTIONS +// Deprecated functions - suppress cpplint warnings with NOLINT comment + /** \deprecated Use: + * uint8_t SdFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock); + */ + uint8_t contiguousRange(uint32_t& bgnBlock, uint32_t& endBlock) { // NOLINT + return contiguousRange(&bgnBlock, &endBlock); + } + /** \deprecated Use: + * uint8_t SdFile::createContiguous(SdFile* dirFile, + * const char* fileName, uint32_t size) + */ + uint8_t createContiguous(SdFile& dirFile, // NOLINT + const char* fileName, uint32_t size) { + return createContiguous(&dirFile, fileName, size); + } + + /** + * \deprecated Use: + * static void SdFile::dateTimeCallback( + * void (*dateTime)(uint16_t* date, uint16_t* time)); + */ + static void dateTimeCallback( + void (*dateTime)(uint16_t& date, uint16_t& time)) { // NOLINT + oldDateTime_ = dateTime; + dateTime_ = dateTime ? oldToNew : 0; + } + /** \deprecated Use: uint8_t SdFile::dirEntry(dir_t* dir); */ + uint8_t dirEntry(dir_t& dir) {return dirEntry(&dir);} // NOLINT + /** \deprecated Use: + * uint8_t SdFile::makeDir(SdFile* dir, const char* dirName); + */ + uint8_t makeDir(SdFile& dir, const char* dirName) { // NOLINT + return makeDir(&dir, dirName); + } + /** \deprecated Use: + * uint8_t SdFile::open(SdFile* dirFile, const char* fileName, uint8_t oflag); + */ + uint8_t open(SdFile& dirFile, // NOLINT + const char* fileName, uint8_t oflag) { + return open(&dirFile, fileName, oflag); + } + /** \deprecated Do not use in new apps */ + uint8_t open(SdFile& dirFile, const char* fileName) { // NOLINT + return open(dirFile, fileName, O_RDWR); + } + /** \deprecated Use: + * uint8_t SdFile::open(SdFile* dirFile, uint16_t index, uint8_t oflag); + */ + uint8_t open(SdFile& dirFile, uint16_t index, uint8_t oflag) { // NOLINT + return open(&dirFile, index, oflag); + } + /** \deprecated Use: uint8_t SdFile::openRoot(SdVolume* vol); */ + uint8_t openRoot(SdVolume& vol) {return openRoot(&vol);} // NOLINT + + /** \deprecated Use: int8_t SdFile::readDir(dir_t* dir); */ + int8_t readDir(dir_t& dir) {return readDir(&dir);} // NOLINT + /** \deprecated Use: + * static uint8_t SdFile::remove(SdFile* dirFile, const char* fileName); + */ + static uint8_t remove(SdFile& dirFile, const char* fileName) { // NOLINT + return remove(&dirFile, fileName); + } +//------------------------------------------------------------------------------ +// rest are private + private: + static void (*oldDateTime_)(uint16_t& date, uint16_t& time); // NOLINT + static void oldToNew(uint16_t* date, uint16_t* time) { + uint16_t d; + uint16_t t; + oldDateTime_(d, t); + *date = d; + *time = t; + } +#endif // ALLOW_DEPRECATED_FUNCTIONS + private: + // bits defined in flags_ + // should be 0XF + static uint8_t const F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC); + // available bits + static uint8_t const F_UNUSED = 0X30; + // use unbuffered SD read + static uint8_t const F_FILE_UNBUFFERED_READ = 0X40; + // sync of directory entry required + static uint8_t const F_FILE_DIR_DIRTY = 0X80; + +// make sure F_OFLAG is ok +#if ((F_UNUSED | F_FILE_UNBUFFERED_READ | F_FILE_DIR_DIRTY) & F_OFLAG) +#error flags_ bits conflict +#endif // flags_ bits + + // private data + uint8_t flags_; // See above for definition of flags_ bits + uint8_t type_; // type of file see above for values + uint32_t curCluster_; // cluster for current file position + uint32_t curPosition_; // current file position in bytes from beginning + uint32_t dirBlock_; // SD block that contains directory entry for file + uint8_t dirIndex_; // index of entry in dirBlock 0 <= dirIndex_ <= 0XF + uint32_t fileSize_; // file size in bytes + uint32_t firstCluster_; // first cluster of file + SdVolume* vol_; // volume where file is located + + // private functions + uint8_t addCluster(void); + uint8_t addDirCluster(void); + dir_t* cacheDirEntry(uint8_t action); + static void (*dateTime_)(uint16_t* date, uint16_t* time); + static uint8_t make83Name(const char* str, uint8_t* name); + uint8_t openCachedEntry(uint8_t cacheIndex, uint8_t oflags); + dir_t* readDirCache(void); +}; +//============================================================================== +// SdVolume class +/** + * \brief Cache for an SD data block + */ +union cache_t { + /** Used to access cached file data blocks. */ + uint8_t data[512]; + /** Used to access cached FAT16 entries. */ + uint16_t fat16[256]; + /** Used to access cached FAT32 entries. */ + uint32_t fat32[128]; + /** Used to access cached directory entries. */ + dir_t dir[16]; + /** Used to access a cached MasterBoot Record. */ + mbr_t mbr; + /** Used to access to a cached FAT boot sector. */ + fbs_t fbs; +}; +//------------------------------------------------------------------------------ +/** + * \class SdVolume + * \brief Access FAT16 and FAT32 volumes on SD and SDHC cards. + */ +class SdVolume { + public: + /** Create an instance of SdVolume */ + SdVolume(void) :allocSearchStart_(2), fatType_(0) {} + /** Clear the cache and returns a pointer to the cache. Used by the WaveRP + * recorder to do raw write to the SD card. Not for normal apps. + */ + static uint8_t* cacheClear(void) { + cacheFlush(); + cacheBlockNumber_ = 0XFFFFFFFF; + return cacheBuffer_.data; + } + /** + * Initialize a FAT volume. Try partition one first then try super + * floppy format. + * + * \param[in] dev The Sd2Card where the volume is located. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. Reasons for + * failure include not finding a valid partition, not finding a valid + * FAT file system or an I/O error. + */ + uint8_t init(Sd2Card* dev) { return init(dev, 1) ? true : init(dev, 0);} + uint8_t init(Sd2Card* dev, uint8_t part); + + // inline functions that return volume info + /** \return The volume's cluster size in blocks. */ + uint8_t blocksPerCluster(void) const {return blocksPerCluster_;} + /** \return The number of blocks in one FAT. */ + uint32_t blocksPerFat(void) const {return blocksPerFat_;} + /** \return The total number of clusters in the volume. */ + uint32_t clusterCount(void) const {return clusterCount_;} + /** \return The shift count required to multiply by blocksPerCluster. */ + uint8_t clusterSizeShift(void) const {return clusterSizeShift_;} + /** \return The logical block number for the start of file data. */ + uint32_t dataStartBlock(void) const {return dataStartBlock_;} + /** \return The number of FAT structures on the volume. */ + uint8_t fatCount(void) const {return fatCount_;} + /** \return The logical block number for the start of the first FAT. */ + uint32_t fatStartBlock(void) const {return fatStartBlock_;} + /** \return The FAT type of the volume. Values are 12, 16 or 32. */ + uint8_t fatType(void) const {return fatType_;} + /** \return The number of entries in the root directory for FAT16 volumes. */ + uint32_t rootDirEntryCount(void) const {return rootDirEntryCount_;} + /** \return The logical block number for the start of the root directory + on FAT16 volumes or the first cluster number on FAT32 volumes. */ + uint32_t rootDirStart(void) const {return rootDirStart_;} + /** return a pointer to the Sd2Card object for this volume */ + static Sd2Card* sdCard(void) {return sdCard_;} +//------------------------------------------------------------------------------ +#if ALLOW_DEPRECATED_FUNCTIONS + // Deprecated functions - suppress cpplint warnings with NOLINT comment + /** \deprecated Use: uint8_t SdVolume::init(Sd2Card* dev); */ + uint8_t init(Sd2Card& dev) {return init(&dev);} // NOLINT + + /** \deprecated Use: uint8_t SdVolume::init(Sd2Card* dev, uint8_t vol); */ + uint8_t init(Sd2Card& dev, uint8_t part) { // NOLINT + return init(&dev, part); + } +#endif // ALLOW_DEPRECATED_FUNCTIONS +//------------------------------------------------------------------------------ + private: + // Allow SdFile access to SdVolume private data. + friend class SdFile; + + // value for action argument in cacheRawBlock to indicate read from cache + static uint8_t const CACHE_FOR_READ = 0; + // value for action argument in cacheRawBlock to indicate cache dirty + static uint8_t const CACHE_FOR_WRITE = 1; + + static cache_t cacheBuffer_; // 512 byte cache for device blocks + static uint32_t cacheBlockNumber_; // Logical number of block in the cache + static Sd2Card* sdCard_; // Sd2Card object for cache + static uint8_t cacheDirty_; // cacheFlush() will write block if true + static uint32_t cacheMirrorBlock_; // block number for mirror FAT +// + uint32_t allocSearchStart_; // start cluster for alloc search + uint8_t blocksPerCluster_; // cluster size in blocks + uint32_t blocksPerFat_; // FAT size in blocks + uint32_t clusterCount_; // clusters in one FAT + uint8_t clusterSizeShift_; // shift to convert cluster count to block count + uint32_t dataStartBlock_; // first data block number + uint8_t fatCount_; // number of FATs on volume + uint32_t fatStartBlock_; // start block for first FAT + uint8_t fatType_; // volume type (12, 16, OR 32) + uint16_t rootDirEntryCount_; // number of entries in FAT16 root dir + uint32_t rootDirStart_; // root start block for FAT16, cluster for FAT32 + //---------------------------------------------------------------------------- + uint8_t allocContiguous(uint32_t count, uint32_t* curCluster); + uint8_t blockOfCluster(uint32_t position) const { + return (position >> 9) & (blocksPerCluster_ - 1);} + uint32_t clusterStartBlock(uint32_t cluster) const { + return dataStartBlock_ + ((cluster - 2) << clusterSizeShift_);} + uint32_t blockNumber(uint32_t cluster, uint32_t position) const { + return clusterStartBlock(cluster) + blockOfCluster(position);} + static uint8_t cacheFlush(void); + static uint8_t cacheRawBlock(uint32_t blockNumber, uint8_t action); + static void cacheSetDirty(void) {cacheDirty_ |= CACHE_FOR_WRITE;} + static uint8_t cacheZeroBlock(uint32_t blockNumber); + uint8_t chainSize(uint32_t beginCluster, uint32_t* size) const; + uint8_t fatGet(uint32_t cluster, uint32_t* value) const; + uint8_t fatPut(uint32_t cluster, uint32_t value); + uint8_t fatPutEOC(uint32_t cluster) { + return fatPut(cluster, 0x0FFFFFFF); + } + uint8_t freeChain(uint32_t cluster); + uint8_t isEOC(uint32_t cluster) const { + return cluster >= (fatType_ == 16 ? FAT16EOC_MIN : FAT32EOC_MIN); + } + uint8_t readBlock(uint32_t block, uint8_t* dst) { + return sdCard_->readBlock(block, dst);} + uint8_t readData(uint32_t block, uint16_t offset, + uint16_t count, uint8_t* dst) { + return sdCard_->readData(block, offset, count, dst); + } + uint8_t writeBlock(uint32_t block, const uint8_t* dst) { + return sdCard_->writeBlock(block, dst); + } +}; +#endif // SdFat_h diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFatUtil.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFatUtil.h new file mode 100644 index 00000000000..d1b4d538f69 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFatUtil.h @@ -0,0 +1,75 @@ +/* Arduino SdFat Library + * Copyright (C) 2008 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#ifndef SdFatUtil_h +#define SdFatUtil_h +/** + * \file + * Useful utility functions. + */ +#include +#ifdef __AVR__ +#include +/** Store and print a string in flash memory.*/ +#define PgmPrint(x) SerialPrint_P(PSTR(x)) +/** Store and print a string in flash memory followed by a CR/LF.*/ +#define PgmPrintln(x) SerialPrintln_P(PSTR(x)) +/** Defined so doxygen works for function definitions. */ +#endif +#define NOINLINE __attribute__((noinline,unused)) +#define UNUSEDOK __attribute__((unused)) +//------------------------------------------------------------------------------ +/** Return the number of bytes currently free in RAM. */ +static UNUSEDOK int FreeRam(void) { + extern int __bss_end; + extern int* __brkval; + int free_memory; + if (reinterpret_cast(__brkval) == 0) { + // if no heap use from end of bss section + free_memory = reinterpret_cast(&free_memory) + - reinterpret_cast(&__bss_end); + } else { + // use from top of stack to heap + free_memory = reinterpret_cast(&free_memory) + - reinterpret_cast(__brkval); + } + return free_memory; +} +#ifdef __AVR__ +//------------------------------------------------------------------------------ +/** + * %Print a string in flash memory to the serial port. + * + * \param[in] str Pointer to string stored in flash memory. + */ +static NOINLINE void SerialPrint_P(PGM_P str) { + for (uint8_t c; (c = pgm_read_byte(str)); str++) Serial.write(c); +} +//------------------------------------------------------------------------------ +/** + * %Print a string in flash memory followed by a CR/LF. + * + * \param[in] str Pointer to string stored in flash memory. + */ +static NOINLINE void SerialPrintln_P(PGM_P str) { + SerialPrint_P(str); + Serial.println(); +} +#endif // __AVR__ +#endif // #define SdFatUtil_h diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFatmainpage.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFatmainpage.h new file mode 100644 index 00000000000..73b3b63bd42 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFatmainpage.h @@ -0,0 +1,202 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ + +/** +\mainpage Arduino SdFat Library +
Copyright © 2009 by William Greiman +
+ +\section Intro Introduction +The Arduino SdFat Library is a minimal implementation of FAT16 and FAT32 +file systems on SD flash memory cards. Standard SD and high capacity +SDHC cards are supported. + +The SdFat only supports short 8.3 names. + +The main classes in SdFat are Sd2Card, SdVolume, and SdFile. + +The Sd2Card class supports access to standard SD cards and SDHC cards. Most +applications will only need to call the Sd2Card::init() member function. + +The SdVolume class supports FAT16 and FAT32 partitions. Most applications +will only need to call the SdVolume::init() member function. + +The SdFile class provides file access functions such as open(), read(), +remove(), write(), close() and sync(). This class supports access to the root +directory and subdirectories. + +A number of example are provided in the SdFat/examples folder. These were +developed to test SdFat and illustrate its use. + +SdFat was developed for high speed data recording. SdFat was used to implement +an audio record/play class, WaveRP, for the Adafruit Wave Shield. This +application uses special Sd2Card calls to write to contiguous files in raw mode. +These functions reduce write latency so that audio can be recorded with the +small amount of RAM in the Arduino. + +\section SDcard SD\SDHC Cards + +Arduinos access SD cards using the cards SPI protocol. PCs, Macs, and +most consumer devices use the 4-bit parallel SD protocol. A card that +functions well on A PC or Mac may not work well on the Arduino. + +Most cards have good SPI read performance but cards vary widely in SPI +write performance. Write performance is limited by how efficiently the +card manages internal erase/remapping operations. The Arduino cannot +optimize writes to reduce erase operations because of its limit RAM. + +SanDisk cards generally have good write performance. They seem to have +more internal RAM buffering than other cards and therefore can limit +the number of flash erase operations that the Arduino forces due to its +limited RAM. + +\section Hardware Hardware Configuration + +SdFat was developed using an + Adafruit Industries + Wave Shield. + +The hardware interface to the SD card should not use a resistor based level +shifter. SdFat sets the SPI bus frequency to 8 MHz which results in signal +rise times that are too slow for the edge detectors in many newer SD card +controllers when resistor voltage dividers are used. + +The 5 to 3.3 V level shifter for 5 V Arduinos should be IC based like the +74HC4050N based circuit shown in the file SdLevel.png. The Adafruit Wave Shield +uses a 74AHC125N. Gravitech sells SD and MicroSD Card Adapters based on the +74LCX245. + +If you are using a resistor based level shifter and are having problems try +setting the SPI bus frequency to 4 MHz. This can be done by using +card.init(SPI_HALF_SPEED) to initialize the SD card. + +\section comment Bugs and Comments + +If you wish to report bugs or have comments, send email to fat16lib@sbcglobal.net. + +\section SdFatClass SdFat Usage + +SdFat uses a slightly restricted form of short names. +Only printable ASCII characters are supported. No characters with code point +values greater than 127 are allowed. Space is not allowed even though space +was allowed in the API of early versions of DOS. + +Short names are limited to 8 characters followed by an optional period (.) +and extension of up to 3 characters. The characters may be any combination +of letters and digits. The following special characters are also allowed: + +$ % ' - _ @ ~ ` ! ( ) { } ^ # & + +Short names are always converted to upper case and their original case +value is lost. + +\note + The Arduino Print class uses character +at a time writes so it was necessary to use a \link SdFile::sync() sync() \endlink +function to control when data is written to the SD card. + +\par +An application which writes to a file using \link Print::print() print()\endlink, +\link Print::println() println() \endlink +or \link SdFile::write write() \endlink must call \link SdFile::sync() sync() \endlink +at the appropriate time to force data and directory information to be written +to the SD Card. Data and directory information are also written to the SD card +when \link SdFile::close() close() \endlink is called. + +\par +Applications must use care calling \link SdFile::sync() sync() \endlink +since 2048 bytes of I/O is required to update file and +directory information. This includes writing the current data block, reading +the block that contains the directory entry for update, writing the directory +block back and reading back the current data block. + +It is possible to open a file with two or more instances of SdFile. A file may +be corrupted if data is written to the file by more than one instance of SdFile. + +\section HowTo How to format SD Cards as FAT Volumes + +You should use a freshly formatted SD card for best performance. FAT +file systems become slower if many files have been created and deleted. +This is because the directory entry for a deleted file is marked as deleted, +but is not deleted. When a new file is created, these entries must be scanned +before creating the file, a flaw in the FAT design. Also files can become +fragmented which causes reads and writes to be slower. + +Microsoft operating systems support removable media formatted with a +Master Boot Record, MBR, or formatted as a super floppy with a FAT Boot Sector +in block zero. + +Microsoft operating systems expect MBR formatted removable media +to have only one partition. The first partition should be used. + +Microsoft operating systems do not support partitioning SD flash cards. +If you erase an SD card with a program like KillDisk, Most versions of +Windows will format the card as a super floppy. + +The best way to restore an SD card's format is to use SDFormatter +which can be downloaded from: + +http://www.sdcard.org/consumers/formatter/ + +SDFormatter aligns flash erase boundaries with file +system structures which reduces write latency and file system overhead. + +SDFormatter does not have an option for FAT type so it may format +small cards as FAT12. + +After the MBR is restored by SDFormatter you may need to reformat small +cards that have been formatted FAT12 to force the volume type to be FAT16. + +If you reformat the SD card with an OS utility, choose a cluster size that +will result in: + +4084 < CountOfClusters && CountOfClusters < 65525 + +The volume will then be FAT16. + +If you are formatting an SD card on OS X or Linux, be sure to use the first +partition. Format this partition with a cluster count in above range. + +\section References References + +Adafruit Industries: + +http://www.adafruit.com/ + +http://www.ladyada.net/make/waveshield/ + +The Arduino site: + +http://www.arduino.cc/ + +For more information about FAT file systems see: + +http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx + +For information about using SD cards as SPI devices see: + +http://www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_Spec.pdf + +The ATmega328 datasheet: + +http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf + + + */ diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFile.cpp b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFile.cpp new file mode 100644 index 00000000000..620fc0d9b47 --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdFile.cpp @@ -0,0 +1,1263 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "SdFat.h" +#ifdef __AVR__ +#include +#endif +#include +//------------------------------------------------------------------------------ +// callback function for date/time +void (*SdFile::dateTime_)(uint16_t* date, uint16_t* time) = NULL; + +#if ALLOW_DEPRECATED_FUNCTIONS +// suppress cpplint warnings with NOLINT comment +void (*SdFile::oldDateTime_)(uint16_t& date, uint16_t& time) = NULL; // NOLINT +#endif // ALLOW_DEPRECATED_FUNCTIONS +//------------------------------------------------------------------------------ +// add a cluster to a file +uint8_t SdFile::addCluster() { + if (!vol_->allocContiguous(1, &curCluster_)) return false; + + // if first cluster of file link to directory entry + if (firstCluster_ == 0) { + firstCluster_ = curCluster_; + flags_ |= F_FILE_DIR_DIRTY; + } + return true; +} +//------------------------------------------------------------------------------ +// Add a cluster to a directory file and zero the cluster. +// return with first block of cluster in the cache +uint8_t SdFile::addDirCluster(void) { + if (!addCluster()) return false; + + // zero data in cluster insure first cluster is in cache + uint32_t block = vol_->clusterStartBlock(curCluster_); + for (uint8_t i = vol_->blocksPerCluster_; i != 0; i--) { + if (!SdVolume::cacheZeroBlock(block + i - 1)) return false; + } + // Increase directory file size by cluster size + fileSize_ += 512UL << vol_->clusterSizeShift_; + return true; +} +//------------------------------------------------------------------------------ +// cache a file's directory entry +// return pointer to cached entry or null for failure +dir_t* SdFile::cacheDirEntry(uint8_t action) { + if (!SdVolume::cacheRawBlock(dirBlock_, action)) return NULL; + return SdVolume::cacheBuffer_.dir + dirIndex_; +} +//------------------------------------------------------------------------------ +/** + * Close a file and force cached data and directory information + * to be written to the storage device. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include no file is open or an I/O error. + */ +uint8_t SdFile::close(void) { + if (!sync())return false; + type_ = FAT_FILE_TYPE_CLOSED; + return true; +} +//------------------------------------------------------------------------------ +/** + * Check for contiguous file and return its raw block range. + * + * \param[out] bgnBlock the first block address for the file. + * \param[out] endBlock the last block address for the file. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include file is not contiguous, file has zero length + * or an I/O error occurred. + */ +uint8_t SdFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock) { + // error if no blocks + if (firstCluster_ == 0) return false; + + for (uint32_t c = firstCluster_; ; c++) { + uint32_t next; + if (!vol_->fatGet(c, &next)) return false; + + // check for contiguous + if (next != (c + 1)) { + // error if not end of chain + if (!vol_->isEOC(next)) return false; + *bgnBlock = vol_->clusterStartBlock(firstCluster_); + *endBlock = vol_->clusterStartBlock(c) + + vol_->blocksPerCluster_ - 1; + return true; + } + } +} +//------------------------------------------------------------------------------ +/** + * Create and open a new contiguous file of a specified size. + * + * \note This function only supports short DOS 8.3 names. + * See open() for more information. + * + * \param[in] dirFile The directory where the file will be created. + * \param[in] fileName A valid DOS 8.3 file name. + * \param[in] size The desired file size. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include \a fileName contains + * an invalid DOS 8.3 file name, the FAT volume has not been initialized, + * a file is already open, the file already exists, the root + * directory is full or an I/O error. + * + */ +uint8_t SdFile::createContiguous(SdFile* dirFile, + const char* fileName, uint32_t size) { + // don't allow zero length file + if (size == 0) return false; + if (!open(dirFile, fileName, O_CREAT | O_EXCL | O_RDWR)) return false; + + // calculate number of clusters needed + uint32_t count = ((size - 1) >> (vol_->clusterSizeShift_ + 9)) + 1; + + // allocate clusters + if (!vol_->allocContiguous(count, &firstCluster_)) { + remove(); + return false; + } + fileSize_ = size; + + // insure sync() will update dir entry + flags_ |= F_FILE_DIR_DIRTY; + return sync(); +} +//------------------------------------------------------------------------------ +/** + * Return a files directory entry + * + * \param[out] dir Location for return of the files directory entry. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::dirEntry(dir_t* dir) { + // make sure fields on SD are correct + if (!sync()) return false; + + // read entry + dir_t* p = cacheDirEntry(SdVolume::CACHE_FOR_READ); + if (!p) return false; + + // copy to caller's struct + memcpy(dir, p, sizeof(dir_t)); + return true; +} +//------------------------------------------------------------------------------ +/** + * Format the name field of \a dir into the 13 byte array + * \a name in standard 8.3 short name format. + * + * \param[in] dir The directory structure containing the name. + * \param[out] name A 13 byte char array for the formatted name. + */ +void SdFile::dirName(const dir_t& dir, char* name) { + uint8_t j = 0; + for (uint8_t i = 0; i < 11; i++) { + if (dir.name[i] == ' ')continue; + if (i == 8) name[j++] = '.'; + name[j++] = dir.name[i]; + } + name[j] = 0; +} +//------------------------------------------------------------------------------ +/** List directory contents to Serial. + * + * \param[in] flags The inclusive OR of + * + * LS_DATE - %Print file modification date + * + * LS_SIZE - %Print file size. + * + * LS_R - Recursive list of subdirectories. + * + * \param[in] indent Amount of space before file name. Used for recursive + * list to indicate subdirectory level. + */ +void SdFile::ls(uint8_t flags, uint8_t indent) { + dir_t* p; + + rewind(); + while ((p = readDirCache())) { + // done if past last used entry + if (p->name[0] == DIR_NAME_FREE) break; + + // skip deleted entry and entries for . and .. + if (p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') continue; + + // only list subdirectories and files + if (!DIR_IS_FILE_OR_SUBDIR(p)) continue; + + // print any indent spaces + for (int8_t i = 0; i < indent; i++) Serial.print(' '); + + // print file name with possible blank fill + printDirName(*p, flags & (LS_DATE | LS_SIZE) ? 14 : 0); + + // print modify date/time if requested + if (flags & LS_DATE) { + printFatDate(p->lastWriteDate); + Serial.print(' '); + printFatTime(p->lastWriteTime); + } + // print size if requested + if (!DIR_IS_SUBDIR(p) && (flags & LS_SIZE)) { + Serial.print(' '); + Serial.print(p->fileSize); + } + Serial.println(); + + // list subdirectory content if requested + if ((flags & LS_R) && DIR_IS_SUBDIR(p)) { + uint16_t index = curPosition()/32 - 1; + SdFile s; + if (s.open(this, index, O_READ)) s.ls(flags, indent + 2); + seekSet(32 * (index + 1)); + } + } +} +//------------------------------------------------------------------------------ +// format directory name field from a 8.3 name string +uint8_t SdFile::make83Name(const char* str, uint8_t* name) { + uint8_t c; + uint8_t n = 7; // max index for part before dot + uint8_t i = 0; + // blank fill name and extension + while (i < 11) name[i++] = ' '; + i = 0; + while ((c = *str++) != '\0') { + if (c == '.') { + if (n == 10) return false; // only one dot allowed + n = 10; // max index for full 8.3 name + i = 8; // place for extension + } else { + // illegal FAT characters + uint8_t b; +#if defined(__AVR__) + PGM_P p = PSTR("|<>^+=?/[];,*\"\\"); + while ((b = pgm_read_byte(p++))) if (b == c) return false; +#elif defined(__arm__) + const uint8_t valid[] = "|<>^+=?/[];,*\"\\"; + const uint8_t *p = valid; + while ((b = *p++)) if (b == c) return false; +#endif + // check size and only allow ASCII printable characters + if (i > n || c < 0X21 || c > 0X7E)return false; + // only upper case allowed in 8.3 names - convert lower to upper + name[i++] = c < 'a' || c > 'z' ? c : c + ('A' - 'a'); + } + } + // must have a file name, extension is optional + return name[0] != ' '; +} +//------------------------------------------------------------------------------ +/** Make a new directory. + * + * \param[in] dir An open SdFat instance for the directory that will containing + * the new directory. + * + * \param[in] dirName A valid 8.3 DOS name for the new directory. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include this SdFile is already open, \a dir is not a + * directory, \a dirName is invalid or already exists in \a dir. + */ +uint8_t SdFile::makeDir(SdFile* dir, const char* dirName) { + dir_t d; + + // create a normal file + if (!open(dir, dirName, O_CREAT | O_EXCL | O_RDWR)) return false; + + // convert SdFile to directory + flags_ = O_READ; + type_ = FAT_FILE_TYPE_SUBDIR; + + // allocate and zero first cluster + if (!addDirCluster())return false; + + // force entry to SD + if (!sync()) return false; + + // cache entry - should already be in cache due to sync() call + dir_t* p = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!p) return false; + + // change directory entry attribute + p->attributes = DIR_ATT_DIRECTORY; + + // make entry for '.' + memcpy(&d, p, sizeof(d)); + for (uint8_t i = 1; i < 11; i++) d.name[i] = ' '; + d.name[0] = '.'; + + // cache block for '.' and '..' + uint32_t block = vol_->clusterStartBlock(firstCluster_); + if (!SdVolume::cacheRawBlock(block, SdVolume::CACHE_FOR_WRITE)) return false; + + // copy '.' to block + memcpy(&SdVolume::cacheBuffer_.dir[0], &d, sizeof(d)); + + // make entry for '..' + d.name[1] = '.'; + if (dir->isRoot()) { + d.firstClusterLow = 0; + d.firstClusterHigh = 0; + } else { + d.firstClusterLow = dir->firstCluster_ & 0XFFFF; + d.firstClusterHigh = dir->firstCluster_ >> 16; + } + // copy '..' to block + memcpy(&SdVolume::cacheBuffer_.dir[1], &d, sizeof(d)); + + // set position after '..' + curPosition_ = 2 * sizeof(d); + + // write first block + return SdVolume::cacheFlush(); +} +//------------------------------------------------------------------------------ +/** + * Open a file or directory by name. + * + * \param[in] dirFile An open SdFat instance for the directory containing the + * file to be opened. + * + * \param[in] fileName A valid 8.3 DOS name for a file to be opened. + * + * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive + * OR of flags from the following list + * + * O_READ - Open for reading. + * + * O_RDONLY - Same as O_READ. + * + * O_WRITE - Open for writing. + * + * O_WRONLY - Same as O_WRITE. + * + * O_RDWR - Open for reading and writing. + * + * O_APPEND - If set, the file offset shall be set to the end of the + * file prior to each write. + * + * O_CREAT - If the file exists, this flag has no effect except as noted + * under O_EXCL below. Otherwise, the file shall be created + * + * O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists. + * + * O_SYNC - Call sync() after each write. This flag should not be used with + * write(uint8_t), write_P(PGM_P), writeln_P(PGM_P), or the Arduino Print class. + * These functions do character at a time writes so sync() will be called + * after each byte. + * + * O_TRUNC - If the file exists and is a regular file, and the file is + * successfully opened and is not read only, its length shall be truncated to 0. + * + * \note Directory files must be opened read only. Write and truncation is + * not allowed for directory files. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include this SdFile is already open, \a difFile is not + * a directory, \a fileName is invalid, the file does not exist + * or can't be opened in the access mode specified by oflag. + */ +uint8_t SdFile::open(SdFile* dirFile, const char* fileName, uint8_t oflag) { + uint8_t dname[11]; + dir_t* p; + + // error if already open + if (isOpen())return false; + + if (!make83Name(fileName, dname)) return false; + vol_ = dirFile->vol_; + dirFile->rewind(); + + // bool for empty entry found + uint8_t emptyFound = false; + + // search for file + while (dirFile->curPosition_ < dirFile->fileSize_) { + uint8_t index = 0XF & (dirFile->curPosition_ >> 5); + p = dirFile->readDirCache(); + if (p == NULL) return false; + + if (p->name[0] == DIR_NAME_FREE || p->name[0] == DIR_NAME_DELETED) { + // remember first empty slot + if (!emptyFound) { + emptyFound = true; + dirIndex_ = index; + dirBlock_ = SdVolume::cacheBlockNumber_; + } + // done if no entries follow + if (p->name[0] == DIR_NAME_FREE) break; + } else if (!memcmp(dname, p->name, 11)) { + // don't open existing file if O_CREAT and O_EXCL + if ((oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) return false; + + // open found file + return openCachedEntry(0XF & index, oflag); + } + } + // only create file if O_CREAT and O_WRITE + if ((oflag & (O_CREAT | O_WRITE)) != (O_CREAT | O_WRITE)) return false; + + // cache found slot or add cluster if end of file + if (emptyFound) { + p = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!p) return false; + } else { + if (dirFile->type_ == FAT_FILE_TYPE_ROOT16) return false; + + // add and zero cluster for dirFile - first cluster is in cache for write + if (!dirFile->addDirCluster()) return false; + + // use first entry in cluster + dirIndex_ = 0; + p = SdVolume::cacheBuffer_.dir; + } + // initialize as empty file + memset(p, 0, sizeof(dir_t)); + memcpy(p->name, dname, 11); + + // set timestamps + if (dateTime_) { + // call user function + dateTime_(&p->creationDate, &p->creationTime); + } else { + // use default date/time + p->creationDate = FAT_DEFAULT_DATE; + p->creationTime = FAT_DEFAULT_TIME; + } + p->lastAccessDate = p->creationDate; + p->lastWriteDate = p->creationDate; + p->lastWriteTime = p->creationTime; + + // force write of entry to SD + if (!SdVolume::cacheFlush()) return false; + + // open entry in cache + return openCachedEntry(dirIndex_, oflag); +} +//------------------------------------------------------------------------------ +/** + * Open a file by index. + * + * \param[in] dirFile An open SdFat instance for the directory. + * + * \param[in] index The \a index of the directory entry for the file to be + * opened. The value for \a index is (directory file position)/32. + * + * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive + * OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC. + * + * See open() by fileName for definition of flags and return values. + * + */ +uint8_t SdFile::open(SdFile* dirFile, uint16_t index, uint8_t oflag) { + // error if already open + if (isOpen())return false; + + // don't open existing file if O_CREAT and O_EXCL - user call error + if ((oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) return false; + + vol_ = dirFile->vol_; + + // seek to location of entry + if (!dirFile->seekSet(32 * index)) return false; + + // read entry into cache + dir_t* p = dirFile->readDirCache(); + if (p == NULL) return false; + + // error if empty slot or '.' or '..' + if (p->name[0] == DIR_NAME_FREE || + p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') { + return false; + } + // open cached entry + return openCachedEntry(index & 0XF, oflag); +} +//------------------------------------------------------------------------------ +// open a cached directory entry. Assumes vol_ is initializes +uint8_t SdFile::openCachedEntry(uint8_t dirIndex, uint8_t oflag) { + // location of entry in cache + dir_t* p = SdVolume::cacheBuffer_.dir + dirIndex; + + // write or truncate is an error for a directory or read-only file + if (p->attributes & (DIR_ATT_READ_ONLY | DIR_ATT_DIRECTORY)) { + if (oflag & (O_WRITE | O_TRUNC)) return false; + } + // remember location of directory entry on SD + dirIndex_ = dirIndex; + dirBlock_ = SdVolume::cacheBlockNumber_; + + // copy first cluster number for directory fields + firstCluster_ = (uint32_t)p->firstClusterHigh << 16; + firstCluster_ |= p->firstClusterLow; + + // make sure it is a normal file or subdirectory + if (DIR_IS_FILE(p)) { + fileSize_ = p->fileSize; + type_ = FAT_FILE_TYPE_NORMAL; + } else if (DIR_IS_SUBDIR(p)) { + if (!vol_->chainSize(firstCluster_, &fileSize_)) return false; + type_ = FAT_FILE_TYPE_SUBDIR; + } else { + return false; + } + // save open flags for read/write + flags_ = oflag & (O_ACCMODE | O_SYNC | O_APPEND); + + // set to start of file + curCluster_ = 0; + curPosition_ = 0; + + // truncate file to zero length if requested + if (oflag & O_TRUNC) return truncate(0); + return true; +} +//------------------------------------------------------------------------------ +/** + * Open a volume's root directory. + * + * \param[in] vol The FAT volume containing the root directory to be opened. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the FAT volume has not been initialized + * or it a FAT12 volume. + */ +uint8_t SdFile::openRoot(SdVolume* vol) { + // error if file is already open + if (isOpen()) return false; + + if (vol->fatType() == 16) { + type_ = FAT_FILE_TYPE_ROOT16; + firstCluster_ = 0; + fileSize_ = 32 * vol->rootDirEntryCount(); + } else if (vol->fatType() == 32) { + type_ = FAT_FILE_TYPE_ROOT32; + firstCluster_ = vol->rootDirStart(); + if (!vol->chainSize(firstCluster_, &fileSize_)) return false; + } else { + // volume is not initialized or FAT12 + return false; + } + vol_ = vol; + // read only + flags_ = O_READ; + + // set to start of file + curCluster_ = 0; + curPosition_ = 0; + + // root has no directory entry + dirBlock_ = 0; + dirIndex_ = 0; + return true; +} +//------------------------------------------------------------------------------ +/** %Print the name field of a directory entry in 8.3 format to Serial. + * + * \param[in] dir The directory structure containing the name. + * \param[in] width Blank fill name if length is less than \a width. + */ +void SdFile::printDirName(const dir_t& dir, uint8_t width) { + uint8_t w = 0; + for (uint8_t i = 0; i < 11; i++) { + if (dir.name[i] == ' ')continue; + if (i == 8) { + Serial.print('.'); + w++; + } + Serial.write(dir.name[i]); + w++; + } + if (DIR_IS_SUBDIR(&dir)) { + Serial.print('/'); + w++; + } + while (w < width) { + Serial.print(' '); + w++; + } +} +//------------------------------------------------------------------------------ +/** %Print a directory date field to Serial. + * + * Format is yyyy-mm-dd. + * + * \param[in] fatDate The date field from a directory entry. + */ +void SdFile::printFatDate(uint16_t fatDate) { + Serial.print(FAT_YEAR(fatDate)); + Serial.print('-'); + printTwoDigits(FAT_MONTH(fatDate)); + Serial.print('-'); + printTwoDigits(FAT_DAY(fatDate)); +} +//------------------------------------------------------------------------------ +/** %Print a directory time field to Serial. + * + * Format is hh:mm:ss. + * + * \param[in] fatTime The time field from a directory entry. + */ +void SdFile::printFatTime(uint16_t fatTime) { + printTwoDigits(FAT_HOUR(fatTime)); + Serial.print(':'); + printTwoDigits(FAT_MINUTE(fatTime)); + Serial.print(':'); + printTwoDigits(FAT_SECOND(fatTime)); +} +//------------------------------------------------------------------------------ +/** %Print a value as two digits to Serial. + * + * \param[in] v Value to be printed, 0 <= \a v <= 99 + */ +void SdFile::printTwoDigits(uint8_t v) { + char str[3]; + str[0] = '0' + v/10; + str[1] = '0' + v % 10; + str[2] = 0; + Serial.print(str); +} +//------------------------------------------------------------------------------ +/** + * Read data from a file starting at the current position. + * + * \param[out] buf Pointer to the location that will receive the data. + * + * \param[in] nbyte Maximum number of bytes to read. + * + * \return For success read() returns the number of bytes read. + * A value less than \a nbyte, including zero, will be returned + * if end of file is reached. + * If an error occurs, read() returns -1. Possible errors include + * read() called before a file has been opened, corrupt file system + * or an I/O error occurred. + */ +int16_t SdFile::read(void* buf, uint16_t nbyte) { + uint8_t* dst = reinterpret_cast(buf); + + // error if not open or write only + if (!isOpen() || !(flags_ & O_READ)) return -1; + + // max bytes left in file + if (nbyte > (fileSize_ - curPosition_)) nbyte = fileSize_ - curPosition_; + + // amount left to read + uint16_t toRead = nbyte; + while (toRead > 0) { + uint32_t block; // raw device block number + uint16_t offset = curPosition_ & 0X1FF; // offset in block + if (type_ == FAT_FILE_TYPE_ROOT16) { + block = vol_->rootDirStart() + (curPosition_ >> 9); + } else { + uint8_t blockOfCluster = vol_->blockOfCluster(curPosition_); + if (offset == 0 && blockOfCluster == 0) { + // start of new cluster + if (curPosition_ == 0) { + // use first cluster in file + curCluster_ = firstCluster_; + } else { + // get next cluster from FAT + if (!vol_->fatGet(curCluster_, &curCluster_)) return -1; + } + } + block = vol_->clusterStartBlock(curCluster_) + blockOfCluster; + } + uint16_t n = toRead; + + // amount to be read from current block + if (n > (512 - offset)) n = 512 - offset; + + // no buffering needed if n == 512 or user requests no buffering + if ((unbufferedRead() || n == 512) && + block != SdVolume::cacheBlockNumber_) { + if (!vol_->readData(block, offset, n, dst)) return -1; + dst += n; + } else { + // read block to cache and copy data to caller + if (!SdVolume::cacheRawBlock(block, SdVolume::CACHE_FOR_READ)) return -1; + uint8_t* src = SdVolume::cacheBuffer_.data + offset; + uint8_t* end = src + n; + while (src != end) *dst++ = *src++; + } + curPosition_ += n; + toRead -= n; + } + return nbyte; +} +//------------------------------------------------------------------------------ +/** + * Read the next directory entry from a directory file. + * + * \param[out] dir The dir_t struct that will receive the data. + * + * \return For success readDir() returns the number of bytes read. + * A value of zero will be returned if end of file is reached. + * If an error occurs, readDir() returns -1. Possible errors include + * readDir() called before a directory has been opened, this is not + * a directory file or an I/O error occurred. + */ +int8_t SdFile::readDir(dir_t* dir) { + int8_t n; + // if not a directory file or miss-positioned return an error + if (!isDir() || (0X1F & curPosition_)) return -1; + + while ((n = read(dir, sizeof(dir_t))) == sizeof(dir_t)) { + // last entry if DIR_NAME_FREE + if (dir->name[0] == DIR_NAME_FREE) break; + // skip empty entries and entry for . and .. + if (dir->name[0] == DIR_NAME_DELETED || dir->name[0] == '.') continue; + // return if normal file or subdirectory + if (DIR_IS_FILE_OR_SUBDIR(dir)) return n; + } + // error, end of file, or past last entry + return n < 0 ? -1 : 0; +} +//------------------------------------------------------------------------------ +// Read next directory entry into the cache +// Assumes file is correctly positioned +dir_t* SdFile::readDirCache(void) { + // error if not directory + if (!isDir()) return NULL; + + // index of entry in cache + uint8_t i = (curPosition_ >> 5) & 0XF; + + // use read to locate and cache block + if (read() < 0) return NULL; + + // advance to next entry + curPosition_ += 31; + + // return pointer to entry + return (SdVolume::cacheBuffer_.dir + i); +} +//------------------------------------------------------------------------------ +/** + * Remove a file. + * + * The directory entry and all data for the file are deleted. + * + * \note This function should not be used to delete the 8.3 version of a + * file that has a long name. For example if a file has the long name + * "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT". + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the file read-only, is a directory, + * or an I/O error occurred. + */ +uint8_t SdFile::remove(void) { + // free any clusters - will fail if read-only or directory + if (!truncate(0)) return false; + + // cache directory entry + dir_t* d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!d) return false; + + // mark entry deleted + d->name[0] = DIR_NAME_DELETED; + + // set this SdFile closed + type_ = FAT_FILE_TYPE_CLOSED; + + // write entry to SD + return SdVolume::cacheFlush(); +} +//------------------------------------------------------------------------------ +/** + * Remove a file. + * + * The directory entry and all data for the file are deleted. + * + * \param[in] dirFile The directory that contains the file. + * \param[in] fileName The name of the file to be removed. + * + * \note This function should not be used to delete the 8.3 version of a + * file that has a long name. For example if a file has the long name + * "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT". + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the file is a directory, is read only, + * \a dirFile is not a directory, \a fileName is not found + * or an I/O error occurred. + */ +uint8_t SdFile::remove(SdFile* dirFile, const char* fileName) { + SdFile file; + if (!file.open(dirFile, fileName, O_WRITE)) return false; + return file.remove(); +} +//------------------------------------------------------------------------------ +/** Remove a directory file. + * + * The directory file will be removed only if it is empty and is not the + * root directory. rmDir() follows DOS and Windows and ignores the + * read-only attribute for the directory. + * + * \note This function should not be used to delete the 8.3 version of a + * directory that has a long name. For example if a directory has the + * long name "New folder" you should not delete the 8.3 name "NEWFOL~1". + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the file is not a directory, is the root + * directory, is not empty, or an I/O error occurred. + */ +uint8_t SdFile::rmDir(void) { + // must be open subdirectory + if (!isSubDir()) return false; + + rewind(); + + // make sure directory is empty + while (curPosition_ < fileSize_) { + dir_t* p = readDirCache(); + if (p == NULL) return false; + // done if past last used entry + if (p->name[0] == DIR_NAME_FREE) break; + // skip empty slot or '.' or '..' + if (p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') continue; + // error not empty + if (DIR_IS_FILE_OR_SUBDIR(p)) return false; + } + // convert empty directory to normal file for remove + type_ = FAT_FILE_TYPE_NORMAL; + flags_ |= O_WRITE; + return remove(); +} +//------------------------------------------------------------------------------ +/** Recursively delete a directory and all contained files. + * + * This is like the Unix/Linux 'rm -rf *' if called with the root directory + * hence the name. + * + * Warning - This will remove all contents of the directory including + * subdirectories. The directory will then be removed if it is not root. + * The read-only attribute for files will be ignored. + * + * \note This function should not be used to delete the 8.3 version of + * a directory that has a long name. See remove() and rmDir(). + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::rmRfStar(void) { + rewind(); + while (curPosition_ < fileSize_) { + SdFile f; + + // remember position + uint16_t index = curPosition_/32; + + dir_t* p = readDirCache(); + if (!p) return false; + + // done if past last entry + if (p->name[0] == DIR_NAME_FREE) break; + + // skip empty slot or '.' or '..' + if (p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') continue; + + // skip if part of long file name or volume label in root + if (!DIR_IS_FILE_OR_SUBDIR(p)) continue; + + if (!f.open(this, index, O_READ)) return false; + if (f.isSubDir()) { + // recursively delete + if (!f.rmRfStar()) return false; + } else { + // ignore read-only + f.flags_ |= O_WRITE; + if (!f.remove()) return false; + } + // position to next entry if required + if (curPosition_ != (32u*(index + 1))) { + if (!seekSet(32u*(index + 1))) return false; + } + } + // don't try to delete root + if (isRoot()) return true; + return rmDir(); +} +//------------------------------------------------------------------------------ +/** + * Sets a file's position. + * + * \param[in] pos The new position in bytes from the beginning of the file. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::seekSet(uint32_t pos) { + // error if file not open or seek past end of file + if (!isOpen() || pos > fileSize_) return false; + + if (type_ == FAT_FILE_TYPE_ROOT16) { + curPosition_ = pos; + return true; + } + if (pos == 0) { + // set position to start of file + curCluster_ = 0; + curPosition_ = 0; + return true; + } + // calculate cluster index for cur and new position + uint32_t nCur = (curPosition_ - 1) >> (vol_->clusterSizeShift_ + 9); + uint32_t nNew = (pos - 1) >> (vol_->clusterSizeShift_ + 9); + + if (nNew < nCur || curPosition_ == 0) { + // must follow chain from first cluster + curCluster_ = firstCluster_; + } else { + // advance from curPosition + nNew -= nCur; + } + while (nNew--) { + if (!vol_->fatGet(curCluster_, &curCluster_)) return false; + } + curPosition_ = pos; + return true; +} +//------------------------------------------------------------------------------ +/** + * The sync() call causes all modified data and directory fields + * to be written to the storage device. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include a call to sync() before a file has been + * opened or an I/O error. + */ +uint8_t SdFile::sync(void) { + // only allow open files and directories + if (!isOpen()) return false; + + if (flags_ & F_FILE_DIR_DIRTY) { + dir_t* d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!d) return false; + + // do not set filesize for dir files + if (!isDir()) d->fileSize = fileSize_; + + // update first cluster fields + d->firstClusterLow = firstCluster_ & 0XFFFF; + d->firstClusterHigh = firstCluster_ >> 16; + + // set modify time if user supplied a callback date/time function + if (dateTime_) { + dateTime_(&d->lastWriteDate, &d->lastWriteTime); + d->lastAccessDate = d->lastWriteDate; + } + // clear directory dirty + flags_ &= ~F_FILE_DIR_DIRTY; + } + return SdVolume::cacheFlush(); +} +//------------------------------------------------------------------------------ +/** + * Set a file's timestamps in its directory entry. + * + * \param[in] flags Values for \a flags are constructed by a bitwise-inclusive + * OR of flags from the following list + * + * T_ACCESS - Set the file's last access date. + * + * T_CREATE - Set the file's creation date and time. + * + * T_WRITE - Set the file's last write/modification date and time. + * + * \param[in] year Valid range 1980 - 2107 inclusive. + * + * \param[in] month Valid range 1 - 12 inclusive. + * + * \param[in] day Valid range 1 - 31 inclusive. + * + * \param[in] hour Valid range 0 - 23 inclusive. + * + * \param[in] minute Valid range 0 - 59 inclusive. + * + * \param[in] second Valid range 0 - 59 inclusive + * + * \note It is possible to set an invalid date since there is no check for + * the number of days in a month. + * + * \note + * Modify and access timestamps may be overwritten if a date time callback + * function has been set by dateTimeCallback(). + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, + uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) { + if (!isOpen() + || year < 1980 + || year > 2107 + || month < 1 + || month > 12 + || day < 1 + || day > 31 + || hour > 23 + || minute > 59 + || second > 59) { + return false; + } + dir_t* d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!d) return false; + + uint16_t dirDate = FAT_DATE(year, month, day); + uint16_t dirTime = FAT_TIME(hour, minute, second); + if (flags & T_ACCESS) { + d->lastAccessDate = dirDate; + } + if (flags & T_CREATE) { + d->creationDate = dirDate; + d->creationTime = dirTime; + // seems to be units of 1/100 second not 1/10 as Microsoft states + d->creationTimeTenths = second & 1 ? 100 : 0; + } + if (flags & T_WRITE) { + d->lastWriteDate = dirDate; + d->lastWriteTime = dirTime; + } + SdVolume::cacheSetDirty(); + return sync(); +} +//------------------------------------------------------------------------------ +/** + * Truncate a file to a specified length. The current file position + * will be maintained if it is less than or equal to \a length otherwise + * it will be set to end of file. + * + * \param[in] length The desired length for the file. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include file is read only, file is a directory, + * \a length is greater than the current file size or an I/O error occurs. + */ +uint8_t SdFile::truncate(uint32_t length) { +// error if not a normal file or read-only + if (!isFile() || !(flags_ & O_WRITE)) return false; + + // error if length is greater than current size + if (length > fileSize_) return false; + + // fileSize and length are zero - nothing to do + if (fileSize_ == 0) return true; + + // remember position for seek after truncation + uint32_t newPos = curPosition_ > length ? length : curPosition_; + + // position to last cluster in truncated file + if (!seekSet(length)) return false; + + if (length == 0) { + // free all clusters + if (!vol_->freeChain(firstCluster_)) return false; + firstCluster_ = 0; + } else { + uint32_t toFree; + if (!vol_->fatGet(curCluster_, &toFree)) return false; + + if (!vol_->isEOC(toFree)) { + // free extra clusters + if (!vol_->freeChain(toFree)) return false; + + // current cluster is end of chain + if (!vol_->fatPutEOC(curCluster_)) return false; + } + } + fileSize_ = length; + + // need to update directory entry + flags_ |= F_FILE_DIR_DIRTY; + + if (!sync()) return false; + + // set file to correct position + return seekSet(newPos); +} +//------------------------------------------------------------------------------ +/** + * Write data to an open file. + * + * \note Data is moved to the cache but may not be written to the + * storage device until sync() is called. + * + * \param[in] buf Pointer to the location of the data to be written. + * + * \param[in] nbyte Number of bytes to write. + * + * \return For success write() returns the number of bytes written, always + * \a nbyte. If an error occurs, write() returns 0. Possible errors + * include write() is called before a file has been opened, write is called + * for a read-only file, device is full, a corrupt file system or an I/O error. + * + */ +size_t SdFile::write(const void* buf, uint16_t nbyte) { + // convert void* to uint8_t* - must be before goto statements + const uint8_t* src = reinterpret_cast(buf); + + // number of bytes left to write - must be before goto statements + uint16_t nToWrite = nbyte; + + // error if not a normal file or is read-only + if (!isFile() || !(flags_ & O_WRITE)) goto writeErrorReturn; + + // seek to end of file if append flag + if ((flags_ & O_APPEND) && curPosition_ != fileSize_) { + if (!seekEnd()) goto writeErrorReturn; + } + + while (nToWrite > 0) { + uint8_t blockOfCluster = vol_->blockOfCluster(curPosition_); + uint16_t blockOffset = curPosition_ & 0X1FF; + if (blockOfCluster == 0 && blockOffset == 0) { + // start of new cluster + if (curCluster_ == 0) { + if (firstCluster_ == 0) { + // allocate first cluster of file + if (!addCluster()) goto writeErrorReturn; + } else { + curCluster_ = firstCluster_; + } + } else { + uint32_t next; + if (!vol_->fatGet(curCluster_, &next)) return false; + if (vol_->isEOC(next)) { + // add cluster if at end of chain + if (!addCluster()) goto writeErrorReturn; + } else { + curCluster_ = next; + } + } + } + // max space in block + uint16_t n = 512 - blockOffset; + + // lesser of space and amount to write + if (n > nToWrite) n = nToWrite; + + // block for data write + uint32_t block = vol_->clusterStartBlock(curCluster_) + blockOfCluster; + if (n == 512) { + // full block - don't need to use cache + // invalidate cache if block is in cache + if (SdVolume::cacheBlockNumber_ == block) { + SdVolume::cacheBlockNumber_ = 0XFFFFFFFF; + } + if (!vol_->writeBlock(block, src)) goto writeErrorReturn; + src += 512; + } else { + if (blockOffset == 0 && curPosition_ >= fileSize_) { + // start of new block don't need to read into cache + if (!SdVolume::cacheFlush()) goto writeErrorReturn; + SdVolume::cacheBlockNumber_ = block; + SdVolume::cacheSetDirty(); + } else { + // rewrite part of block + if (!SdVolume::cacheRawBlock(block, SdVolume::CACHE_FOR_WRITE)) { + goto writeErrorReturn; + } + } + uint8_t* dst = SdVolume::cacheBuffer_.data + blockOffset; + uint8_t* end = dst + n; + while (dst != end) *dst++ = *src++; + } + nToWrite -= n; + curPosition_ += n; + } + if (curPosition_ > fileSize_) { + // update fileSize and insure sync will update dir entry + fileSize_ = curPosition_; + flags_ |= F_FILE_DIR_DIRTY; + } else if (dateTime_ && nbyte) { + // insure sync will update modified date and time + flags_ |= F_FILE_DIR_DIRTY; + } + + if (flags_ & O_SYNC) { + if (!sync()) goto writeErrorReturn; + } + return nbyte; + + writeErrorReturn: + // return for write error + //writeError = true; + setWriteError(); + return 0; +} +//------------------------------------------------------------------------------ +/** + * Write a byte to a file. Required by the Arduino Print class. + * + * Use SdFile::writeError to check for errors. + */ +size_t SdFile::write(uint8_t b) { + return write(&b, 1); +} +//------------------------------------------------------------------------------ +/** + * Write a string to a file. Used by the Arduino Print class. + * + * Use SdFile::writeError to check for errors. + */ +size_t SdFile::write(const char* str) { + return write(str, strlen(str)); +} +#ifdef __AVR__ +//------------------------------------------------------------------------------ +/** + * Write a PROGMEM string to a file. + * + * Use SdFile::writeError to check for errors. + */ +void SdFile::write_P(PGM_P str) { + for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); +} +//------------------------------------------------------------------------------ +/** + * Write a PROGMEM string followed by CR/LF to a file. + * + * Use SdFile::writeError to check for errors. + */ +void SdFile::writeln_P(PGM_P str) { + write_P(str); + println(); +} +#endif diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdInfo.h b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdInfo.h new file mode 100644 index 00000000000..acde74d974f --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdInfo.h @@ -0,0 +1,232 @@ +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#ifndef SdInfo_h +#define SdInfo_h +#include +// Based on the document: +// +// SD Specifications +// Part 1 +// Physical Layer +// Simplified Specification +// Version 2.00 +// September 25, 2006 +// +// www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_Spec.pdf +//------------------------------------------------------------------------------ +// SD card commands +/** GO_IDLE_STATE - init card in spi mode if CS low */ +uint8_t const CMD0 = 0X00; +/** SEND_IF_COND - verify SD Memory Card interface operating condition.*/ +uint8_t const CMD8 = 0X08; +/** SEND_CSD - read the Card Specific Data (CSD register) */ +uint8_t const CMD9 = 0X09; +/** SEND_CID - read the card identification information (CID register) */ +uint8_t const CMD10 = 0X0A; +/** SEND_STATUS - read the card status register */ +uint8_t const CMD13 = 0X0D; +/** READ_BLOCK - read a single data block from the card */ +uint8_t const CMD17 = 0X11; +/** WRITE_BLOCK - write a single data block to the card */ +uint8_t const CMD24 = 0X18; +/** WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION */ +uint8_t const CMD25 = 0X19; +/** ERASE_WR_BLK_START - sets the address of the first block to be erased */ +uint8_t const CMD32 = 0X20; +/** ERASE_WR_BLK_END - sets the address of the last block of the continuous + range to be erased*/ +uint8_t const CMD33 = 0X21; +/** ERASE - erase all previously selected blocks */ +uint8_t const CMD38 = 0X26; +/** APP_CMD - escape for application specific command */ +uint8_t const CMD55 = 0X37; +/** READ_OCR - read the OCR register of a card */ +uint8_t const CMD58 = 0X3A; +/** SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be + pre-erased before writing */ +uint8_t const ACMD23 = 0X17; +/** SD_SEND_OP_COMD - Sends host capacity support information and + activates the card's initialization process */ +uint8_t const ACMD41 = 0X29; +//------------------------------------------------------------------------------ +/** status for card in the ready state */ +uint8_t const R1_READY_STATE = 0X00; +/** status for card in the idle state */ +uint8_t const R1_IDLE_STATE = 0X01; +/** status bit for illegal command */ +uint8_t const R1_ILLEGAL_COMMAND = 0X04; +/** start data token for read or write single block*/ +uint8_t const DATA_START_BLOCK = 0XFE; +/** stop token for write multiple blocks*/ +uint8_t const STOP_TRAN_TOKEN = 0XFD; +/** start data token for write multiple blocks*/ +uint8_t const WRITE_MULTIPLE_TOKEN = 0XFC; +/** mask for data response tokens after a write block operation */ +uint8_t const DATA_RES_MASK = 0X1F; +/** write data accepted token */ +uint8_t const DATA_RES_ACCEPTED = 0X05; +//------------------------------------------------------------------------------ +typedef struct CID { + // byte 0 + uint8_t mid; // Manufacturer ID + // byte 1-2 + char oid[2]; // OEM/Application ID + // byte 3-7 + char pnm[5]; // Product name + // byte 8 + unsigned prv_m : 4; // Product revision n.m + unsigned prv_n : 4; + // byte 9-12 + uint32_t psn; // Product serial number + // byte 13 + unsigned mdt_year_high : 4; // Manufacturing date + unsigned reserved : 4; + // byte 14 + unsigned mdt_month : 4; + unsigned mdt_year_low :4; + // byte 15 + unsigned always1 : 1; + unsigned crc : 7; +}cid_t; +//------------------------------------------------------------------------------ +// CSD for version 1.00 cards +typedef struct CSDV1 { + // byte 0 + unsigned reserved1 : 6; + unsigned csd_ver : 2; + // byte 1 + uint8_t taac; + // byte 2 + uint8_t nsac; + // byte 3 + uint8_t tran_speed; + // byte 4 + uint8_t ccc_high; + // byte 5 + unsigned read_bl_len : 4; + unsigned ccc_low : 4; + // byte 6 + unsigned c_size_high : 2; + unsigned reserved2 : 2; + unsigned dsr_imp : 1; + unsigned read_blk_misalign :1; + unsigned write_blk_misalign : 1; + unsigned read_bl_partial : 1; + // byte 7 + uint8_t c_size_mid; + // byte 8 + unsigned vdd_r_curr_max : 3; + unsigned vdd_r_curr_min : 3; + unsigned c_size_low :2; + // byte 9 + unsigned c_size_mult_high : 2; + unsigned vdd_w_cur_max : 3; + unsigned vdd_w_curr_min : 3; + // byte 10 + unsigned sector_size_high : 6; + unsigned erase_blk_en : 1; + unsigned c_size_mult_low : 1; + // byte 11 + unsigned wp_grp_size : 7; + unsigned sector_size_low : 1; + // byte 12 + unsigned write_bl_len_high : 2; + unsigned r2w_factor : 3; + unsigned reserved3 : 2; + unsigned wp_grp_enable : 1; + // byte 13 + unsigned reserved4 : 5; + unsigned write_partial : 1; + unsigned write_bl_len_low : 2; + // byte 14 + unsigned reserved5: 2; + unsigned file_format : 2; + unsigned tmp_write_protect : 1; + unsigned perm_write_protect : 1; + unsigned copy : 1; + unsigned file_format_grp : 1; + // byte 15 + unsigned always1 : 1; + unsigned crc : 7; +}csd1_t; +//------------------------------------------------------------------------------ +// CSD for version 2.00 cards +typedef struct CSDV2 { + // byte 0 + unsigned reserved1 : 6; + unsigned csd_ver : 2; + // byte 1 + uint8_t taac; + // byte 2 + uint8_t nsac; + // byte 3 + uint8_t tran_speed; + // byte 4 + uint8_t ccc_high; + // byte 5 + unsigned read_bl_len : 4; + unsigned ccc_low : 4; + // byte 6 + unsigned reserved2 : 4; + unsigned dsr_imp : 1; + unsigned read_blk_misalign :1; + unsigned write_blk_misalign : 1; + unsigned read_bl_partial : 1; + // byte 7 + unsigned reserved3 : 2; + unsigned c_size_high : 6; + // byte 8 + uint8_t c_size_mid; + // byte 9 + uint8_t c_size_low; + // byte 10 + unsigned sector_size_high : 6; + unsigned erase_blk_en : 1; + unsigned reserved4 : 1; + // byte 11 + unsigned wp_grp_size : 7; + unsigned sector_size_low : 1; + // byte 12 + unsigned write_bl_len_high : 2; + unsigned r2w_factor : 3; + unsigned reserved5 : 2; + unsigned wp_grp_enable : 1; + // byte 13 + unsigned reserved6 : 5; + unsigned write_partial : 1; + unsigned write_bl_len_low : 2; + // byte 14 + unsigned reserved7: 2; + unsigned file_format : 2; + unsigned tmp_write_protect : 1; + unsigned perm_write_protect : 1; + unsigned copy : 1; + unsigned file_format_grp : 1; + // byte 15 + unsigned always1 : 1; + unsigned crc : 7; +}csd2_t; +//------------------------------------------------------------------------------ +// union of old and new style CSD register +union csd_t { + csd1_t v1; + csd2_t v2; +}; +#endif // SdInfo_h diff --git a/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdVolume.cpp b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdVolume.cpp new file mode 100644 index 00000000000..2fbb8100b9b --- /dev/null +++ b/app/testdata/libraries/SD_1.1.1/SD/src/utility/SdVolume.cpp @@ -0,0 +1,295 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "SdFat.h" +//------------------------------------------------------------------------------ +// raw block cache +// init cacheBlockNumber_to invalid SD block number +uint32_t SdVolume::cacheBlockNumber_ = 0XFFFFFFFF; +cache_t SdVolume::cacheBuffer_; // 512 byte cache for Sd2Card +Sd2Card* SdVolume::sdCard_; // pointer to SD card object +uint8_t SdVolume::cacheDirty_ = 0; // cacheFlush() will write block if true +uint32_t SdVolume::cacheMirrorBlock_ = 0; // mirror block for second FAT +//------------------------------------------------------------------------------ +// find a contiguous group of clusters +uint8_t SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) { + // start of group + uint32_t bgnCluster; + + // flag to save place to start next search + uint8_t setStart; + + // set search start cluster + if (*curCluster) { + // try to make file contiguous + bgnCluster = *curCluster + 1; + + // don't save new start location + setStart = false; + } else { + // start at likely place for free cluster + bgnCluster = allocSearchStart_; + + // save next search start if one cluster + setStart = 1 == count; + } + // end of group + uint32_t endCluster = bgnCluster; + + // last cluster of FAT + uint32_t fatEnd = clusterCount_ + 1; + + // search the FAT for free clusters + for (uint32_t n = 0;; n++, endCluster++) { + // can't find space checked all clusters + if (n >= clusterCount_) return false; + + // past end - start from beginning of FAT + if (endCluster > fatEnd) { + bgnCluster = endCluster = 2; + } + uint32_t f; + if (!fatGet(endCluster, &f)) return false; + + if (f != 0) { + // cluster in use try next cluster as bgnCluster + bgnCluster = endCluster + 1; + } else if ((endCluster - bgnCluster + 1) == count) { + // done - found space + break; + } + } + // mark end of chain + if (!fatPutEOC(endCluster)) return false; + + // link clusters + while (endCluster > bgnCluster) { + if (!fatPut(endCluster - 1, endCluster)) return false; + endCluster--; + } + if (*curCluster != 0) { + // connect chains + if (!fatPut(*curCluster, bgnCluster)) return false; + } + // return first cluster number to caller + *curCluster = bgnCluster; + + // remember possible next free cluster + if (setStart) allocSearchStart_ = bgnCluster + 1; + + return true; +} +//------------------------------------------------------------------------------ +uint8_t SdVolume::cacheFlush(void) { + if (cacheDirty_) { + if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) { + return false; + } + // mirror FAT tables + if (cacheMirrorBlock_) { + if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) { + return false; + } + cacheMirrorBlock_ = 0; + } + cacheDirty_ = 0; + } + return true; +} +//------------------------------------------------------------------------------ +uint8_t SdVolume::cacheRawBlock(uint32_t blockNumber, uint8_t action) { + if (cacheBlockNumber_ != blockNumber) { + if (!cacheFlush()) return false; + if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) return false; + cacheBlockNumber_ = blockNumber; + } + cacheDirty_ |= action; + return true; +} +//------------------------------------------------------------------------------ +// cache a zero block for blockNumber +uint8_t SdVolume::cacheZeroBlock(uint32_t blockNumber) { + if (!cacheFlush()) return false; + + // loop take less flash than memset(cacheBuffer_.data, 0, 512); + for (uint16_t i = 0; i < 512; i++) { + cacheBuffer_.data[i] = 0; + } + cacheBlockNumber_ = blockNumber; + cacheSetDirty(); + return true; +} +//------------------------------------------------------------------------------ +// return the size in bytes of a cluster chain +uint8_t SdVolume::chainSize(uint32_t cluster, uint32_t* size) const { + uint32_t s = 0; + do { + if (!fatGet(cluster, &cluster)) return false; + s += 512UL << clusterSizeShift_; + } while (!isEOC(cluster)); + *size = s; + return true; +} +//------------------------------------------------------------------------------ +// Fetch a FAT entry +uint8_t SdVolume::fatGet(uint32_t cluster, uint32_t* value) const { + if (cluster > (clusterCount_ + 1)) return false; + uint32_t lba = fatStartBlock_; + lba += fatType_ == 16 ? cluster >> 8 : cluster >> 7; + if (lba != cacheBlockNumber_) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) return false; + } + if (fatType_ == 16) { + *value = cacheBuffer_.fat16[cluster & 0XFF]; + } else { + *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK; + } + return true; +} +//------------------------------------------------------------------------------ +// Store a FAT entry +uint8_t SdVolume::fatPut(uint32_t cluster, uint32_t value) { + // error if reserved cluster + if (cluster < 2) return false; + + // error if not in FAT + if (cluster > (clusterCount_ + 1)) return false; + + // calculate block address for entry + uint32_t lba = fatStartBlock_; + lba += fatType_ == 16 ? cluster >> 8 : cluster >> 7; + + if (lba != cacheBlockNumber_) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) return false; + } + // store entry + if (fatType_ == 16) { + cacheBuffer_.fat16[cluster & 0XFF] = value; + } else { + cacheBuffer_.fat32[cluster & 0X7F] = value; + } + cacheSetDirty(); + + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + return true; +} +//------------------------------------------------------------------------------ +// free a cluster chain +uint8_t SdVolume::freeChain(uint32_t cluster) { + // clear free cluster location + allocSearchStart_ = 2; + + do { + uint32_t next; + if (!fatGet(cluster, &next)) return false; + + // free cluster + if (!fatPut(cluster, 0)) return false; + + cluster = next; + } while (!isEOC(cluster)); + + return true; +} +//------------------------------------------------------------------------------ +/** + * Initialize a FAT volume. + * + * \param[in] dev The SD card where the volume is located. + * + * \param[in] part The partition to be used. Legal values for \a part are + * 1-4 to use the corresponding partition on a device formatted with + * a MBR, Master Boot Record, or zero if the device is formatted as + * a super floppy with the FAT boot sector in block zero. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. Reasons for + * failure include not finding a valid partition, not finding a valid + * FAT file system in the specified partition or an I/O error. + */ +uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) { + uint32_t volumeStartBlock = 0; + sdCard_ = dev; + // if part == 0 assume super floppy with FAT boot sector in block zero + // if part > 0 assume mbr volume with partition table + if (part) { + if (part > 4)return false; + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) return false; + part_t* p = &cacheBuffer_.mbr.part[part-1]; + if ((p->boot & 0X7F) !=0 || + p->totalSectors < 100 || + p->firstSector == 0) { + // not a valid partition + return false; + } + volumeStartBlock = p->firstSector; + } + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) return false; + bpb_t* bpb = &cacheBuffer_.fbs.bpb; + if (bpb->bytesPerSector != 512 || + bpb->fatCount == 0 || + bpb->reservedSectorCount == 0 || + bpb->sectorsPerCluster == 0) { + // not valid FAT volume + return false; + } + fatCount_ = bpb->fatCount; + blocksPerCluster_ = bpb->sectorsPerCluster; + + // determine shift that is same as multiply by blocksPerCluster_ + clusterSizeShift_ = 0; + while (blocksPerCluster_ != (1 << clusterSizeShift_)) { + // error if not power of 2 + if (clusterSizeShift_++ > 7) return false; + } + blocksPerFat_ = bpb->sectorsPerFat16 ? + bpb->sectorsPerFat16 : bpb->sectorsPerFat32; + + fatStartBlock_ = volumeStartBlock + bpb->reservedSectorCount; + + // count for FAT16 zero for FAT32 + rootDirEntryCount_ = bpb->rootDirEntryCount; + + // directory start for FAT16 dataStart for FAT32 + rootDirStart_ = fatStartBlock_ + bpb->fatCount * blocksPerFat_; + + // data start for FAT16 and FAT32 + dataStartBlock_ = rootDirStart_ + ((32 * bpb->rootDirEntryCount + 511)/512); + + // total blocks for FAT16 or FAT32 + uint32_t totalBlocks = bpb->totalSectors16 ? + bpb->totalSectors16 : bpb->totalSectors32; + // total data blocks + clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock); + + // divide by cluster size to get cluster count + clusterCount_ >>= clusterSizeShift_; + + // FAT type is determined by cluster count + if (clusterCount_ < 4085) { + fatType_ = 12; + } else if (clusterCount_ < 65525) { + fatType_ = 16; + } else { + rootDirStart_ = bpb->fat32RootCluster; + fatType_ = 32; + } + return true; +} diff --git a/app/testdata/libraries/SD_1.2.1/SD/README.adoc b/app/testdata/libraries/SD_1.2.1/SD/README.adoc new file mode 100644 index 00000000000..fabff563c52 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/README.adoc @@ -0,0 +1,24 @@ += SD Library for Arduino = + +The SD library allows for reading from and writing to SD cards. + +For more information about this library please visit us at +http://www.arduino.cc/en/Reference/SD + +== License == + + Copyright (C) 2009 by William Greiman +Copyright (c) 2010 SparkFun Electronics + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +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, see . diff --git a/app/testdata/libraries/SD_1.2.1/SD/examples/CardInfo/CardInfo.ino b/app/testdata/libraries/SD_1.2.1/SD/examples/CardInfo/CardInfo.ino new file mode 100644 index 00000000000..97913efde4b --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/examples/CardInfo/CardInfo.ino @@ -0,0 +1,116 @@ +/* + SD card test + + This example shows how use the utility libraries on which the' + SD library is based in order to get info about your SD card. + Very useful for testing a card when you're not sure whether its working or not. + + The circuit: + SD card attached to SPI bus as follows: + ** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila + ** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila + ** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila + ** CS - depends on your SD card shield or module. + Pin 4 used here for consistency with other Arduino examples + + + created 28 Mar 2011 + by Limor Fried + modified 9 Apr 2012 + by Tom Igoe +*/ +// include the SD library: +#include +#include + +// set up variables using the SD utility library functions: +Sd2Card card; +SdVolume volume; +SdFile root; + +// change this to match your SD shield or module; +// Arduino Ethernet shield: pin 4 +// Adafruit SD shields and modules: pin 10 +// Sparkfun SD shield: pin 8 +// MKRZero SD: SDCARD_SS_PIN +const int chipSelect = 4; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("\nInitializing SD card..."); + + // we'll use the initialization code from the utility libraries + // since we're just testing if the card is working! + if (!card.init(SPI_HALF_SPEED, chipSelect)) { + Serial.println("initialization failed. Things to check:"); + Serial.println("* is a card inserted?"); + Serial.println("* is your wiring correct?"); + Serial.println("* did you change the chipSelect pin to match your shield or module?"); + while (1); + } else { + Serial.println("Wiring is correct and a card is present."); + } + + // print the type of card + Serial.println(); + Serial.print("Card type: "); + switch (card.type()) { + case SD_CARD_TYPE_SD1: + Serial.println("SD1"); + break; + case SD_CARD_TYPE_SD2: + Serial.println("SD2"); + break; + case SD_CARD_TYPE_SDHC: + Serial.println("SDHC"); + break; + default: + Serial.println("Unknown"); + } + + // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32 + if (!volume.init(card)) { + Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card"); + while (1); + } + + Serial.print("Clusters: "); + Serial.println(volume.clusterCount()); + Serial.print("Blocks x Cluster: "); + Serial.println(volume.blocksPerCluster()); + + Serial.print("Total Blocks: "); + Serial.println(volume.blocksPerCluster() * volume.clusterCount()); + Serial.println(); + + // print the type and size of the first FAT-type volume + uint32_t volumesize; + Serial.print("Volume type is: FAT"); + Serial.println(volume.fatType(), DEC); + + volumesize = volume.blocksPerCluster(); // clusters are collections of blocks + volumesize *= volume.clusterCount(); // we'll have a lot of clusters + volumesize /= 2; // SD card blocks are always 512 bytes (2 blocks are 1KB) + Serial.print("Volume size (Kb): "); + Serial.println(volumesize); + Serial.print("Volume size (Mb): "); + volumesize /= 1024; + Serial.println(volumesize); + Serial.print("Volume size (Gb): "); + Serial.println((float)volumesize / 1024.0); + + Serial.println("\nFiles found on the card (name, date and size in bytes): "); + root.openRoot(volume); + + // list all files in the card with date and size + root.ls(LS_R | LS_DATE | LS_SIZE); +} + +void loop(void) { +} diff --git a/app/testdata/libraries/SD_1.2.1/SD/examples/Datalogger/Datalogger.ino b/app/testdata/libraries/SD_1.2.1/SD/examples/Datalogger/Datalogger.ino new file mode 100644 index 00000000000..a3e3c1106e9 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/examples/Datalogger/Datalogger.ino @@ -0,0 +1,84 @@ +/* + SD card datalogger + + This example shows how to log data from three analog sensors + to an SD card using the SD library. + + The circuit: + * analog sensors on analog ins 0, 1, and 2 + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created 24 Nov 2010 + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ + +#include +#include + +const int chipSelect = 4; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + // see if the card is present and can be initialized: + if (!SD.begin(chipSelect)) { + Serial.println("Card failed, or not present"); + // don't do anything more: + while (1); + } + Serial.println("card initialized."); +} + +void loop() { + // make a string for assembling the data to log: + String dataString = ""; + + // read three sensors and append to the string: + for (int analogPin = 0; analogPin < 3; analogPin++) { + int sensor = analogRead(analogPin); + dataString += String(sensor); + if (analogPin < 2) { + dataString += ","; + } + } + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + File dataFile = SD.open("datalog.txt", FILE_WRITE); + + // if the file is available, write to it: + if (dataFile) { + dataFile.println(dataString); + dataFile.close(); + // print to the serial port too: + Serial.println(dataString); + } + // if the file isn't open, pop up an error: + else { + Serial.println("error opening datalog.txt"); + } +} + + + + + + + + + diff --git a/app/testdata/libraries/SD_1.2.1/SD/examples/DumpFile/DumpFile.ino b/app/testdata/libraries/SD_1.2.1/SD/examples/DumpFile/DumpFile.ino new file mode 100644 index 00000000000..421f2d9e847 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/examples/DumpFile/DumpFile.ino @@ -0,0 +1,65 @@ +/* + SD card file dump + + This example shows how to read a file from the SD card using the + SD library and send it over the serial port. + + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created 22 December 2010 + by Limor Fried + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ + +#include +#include + +const int chipSelect = 4; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + // see if the card is present and can be initialized: + if (!SD.begin(chipSelect)) { + Serial.println("Card failed, or not present"); + // don't do anything more: + while (1); + } + Serial.println("card initialized."); + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + File dataFile = SD.open("datalog.txt"); + + // if the file is available, write to it: + if (dataFile) { + while (dataFile.available()) { + Serial.write(dataFile.read()); + } + dataFile.close(); + } + // if the file isn't open, pop up an error: + else { + Serial.println("error opening datalog.txt"); + } +} + +void loop() { +} + diff --git a/app/testdata/libraries/SD_1.2.1/SD/examples/Files/Files.ino b/app/testdata/libraries/SD_1.2.1/SD/examples/Files/Files.ino new file mode 100644 index 00000000000..9b1b19d93b8 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/examples/Files/Files.ino @@ -0,0 +1,75 @@ +/* + SD card basic file example + + This example shows how to create and destroy an SD card file + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created Nov 2010 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ +#include +#include + +File myFile; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + if (!SD.begin(4)) { + Serial.println("initialization failed!"); + while (1); + } + Serial.println("initialization done."); + + if (SD.exists("example.txt")) { + Serial.println("example.txt exists."); + } else { + Serial.println("example.txt doesn't exist."); + } + + // open a new file and immediately close it: + Serial.println("Creating example.txt..."); + myFile = SD.open("example.txt", FILE_WRITE); + myFile.close(); + + // Check to see if the file exists: + if (SD.exists("example.txt")) { + Serial.println("example.txt exists."); + } else { + Serial.println("example.txt doesn't exist."); + } + + // delete the file: + Serial.println("Removing example.txt..."); + SD.remove("example.txt"); + + if (SD.exists("example.txt")) { + Serial.println("example.txt exists."); + } else { + Serial.println("example.txt doesn't exist."); + } +} + +void loop() { + // nothing happens after setup finishes. +} + + + diff --git a/app/testdata/libraries/SD_1.2.1/SD/examples/ReadWrite/ReadWrite.ino b/app/testdata/libraries/SD_1.2.1/SD/examples/ReadWrite/ReadWrite.ino new file mode 100644 index 00000000000..8e4bd829c91 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/examples/ReadWrite/ReadWrite.ino @@ -0,0 +1,79 @@ +/* + SD card read/write + + This example shows how to read and write data to and from an SD card file + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created Nov 2010 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + + This example code is in the public domain. + + */ + +#include +#include + +File myFile; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + + Serial.print("Initializing SD card..."); + + if (!SD.begin(4)) { + Serial.println("initialization failed!"); + while (1); + } + Serial.println("initialization done."); + + // open the file. note that only one file can be open at a time, + // so you have to close this one before opening another. + myFile = SD.open("test.txt", FILE_WRITE); + + // if the file opened okay, write to it: + if (myFile) { + Serial.print("Writing to test.txt..."); + myFile.println("testing 1, 2, 3."); + // close the file: + myFile.close(); + Serial.println("done."); + } else { + // if the file didn't open, print an error: + Serial.println("error opening test.txt"); + } + + // re-open the file for reading: + myFile = SD.open("test.txt"); + if (myFile) { + Serial.println("test.txt:"); + + // read from the file until there's nothing else in it: + while (myFile.available()) { + Serial.write(myFile.read()); + } + // close the file: + myFile.close(); + } else { + // if the file didn't open, print an error: + Serial.println("error opening test.txt"); + } +} + +void loop() { + // nothing happens after setup +} + + diff --git a/app/testdata/libraries/SD_1.2.1/SD/examples/listfiles/listfiles.ino b/app/testdata/libraries/SD_1.2.1/SD/examples/listfiles/listfiles.ino new file mode 100644 index 00000000000..7c4ee5c8ecf --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/examples/listfiles/listfiles.ino @@ -0,0 +1,80 @@ +/* + Listfiles + + This example shows how print out the files in a + directory on a SD card + + The circuit: + * SD card attached to SPI bus as follows: + ** MOSI - pin 11 + ** MISO - pin 12 + ** CLK - pin 13 + ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) + + created Nov 2010 + by David A. Mellis + modified 9 Apr 2012 + by Tom Igoe + modified 2 Feb 2014 + by Scott Fitzgerald + + This example code is in the public domain. + + */ +#include +#include + +File root; + +void setup() { + // Open serial communications and wait for port to open: + Serial.begin(9600); + while (!Serial) { + ; // wait for serial port to connect. Needed for native USB port only + } + + Serial.print("Initializing SD card..."); + + if (!SD.begin(4)) { + Serial.println("initialization failed!"); + while (1); + } + Serial.println("initialization done."); + + root = SD.open("/"); + + printDirectory(root, 0); + + Serial.println("done!"); +} + +void loop() { + // nothing happens after setup finishes. +} + +void printDirectory(File dir, int numTabs) { + while (true) { + + File entry = dir.openNextFile(); + if (! entry) { + // no more files + break; + } + for (uint8_t i = 0; i < numTabs; i++) { + Serial.print('\t'); + } + Serial.print(entry.name()); + if (entry.isDirectory()) { + Serial.println("/"); + printDirectory(entry, numTabs + 1); + } else { + // files have sizes, directories do not + Serial.print("\t\t"); + Serial.println(entry.size(), DEC); + } + entry.close(); + } +} + + + diff --git a/app/testdata/libraries/SD_1.2.1/SD/keywords.txt b/app/testdata/libraries/SD_1.2.1/SD/keywords.txt new file mode 100644 index 00000000000..91e74b83085 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/keywords.txt @@ -0,0 +1,31 @@ +####################################### +# Syntax Coloring Map SD +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +SD KEYWORD1 SD +File KEYWORD1 SD +SDFile KEYWORD1 SD + +####################################### +# Methods and Functions (KEYWORD2) +####################################### +begin KEYWORD2 +exists KEYWORD2 +mkdir KEYWORD2 +remove KEYWORD2 +rmdir KEYWORD2 +open KEYWORD2 +close KEYWORD2 +seek KEYWORD2 +position KEYWORD2 +size KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### +FILE_READ LITERAL1 +FILE_WRITE LITERAL1 diff --git a/app/testdata/libraries/SD_1.2.1/SD/library.properties b/app/testdata/libraries/SD_1.2.1/SD/library.properties new file mode 100644 index 00000000000..0e4c5434335 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/library.properties @@ -0,0 +1,9 @@ +name=SD +version=1.2.1 +author=Arduino, SparkFun +maintainer=Arduino +sentence=Enables reading and writing on SD cards. +paragraph=Once an SD memory card is connected to the SPI interface of the Arduino or Genuino board you can create files and read/write on them. You can also move through directories on the SD card. +category=Data Storage +url=http://www.arduino.cc/en/Reference/SD +architectures=avr,sam,samd,arc32 diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/File.cpp b/app/testdata/libraries/SD_1.2.1/SD/src/File.cpp new file mode 100644 index 00000000000..6eee39aa1ff --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/File.cpp @@ -0,0 +1,146 @@ +/* + + SD - a slightly more friendly wrapper for sdfatlib + + This library aims to expose a subset of SD card functionality + in the form of a higher level "wrapper" object. + + License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + + (C) Copyright 2010 SparkFun Electronics + + */ + +#include + +/* for debugging file open/close leaks + uint8_t nfilecount=0; +*/ + +File::File(SdFile f, const char *n) { + // oh man you are kidding me, new() doesnt exist? Ok we do it by hand! + _file = (SdFile *)malloc(sizeof(SdFile)); + if (_file) { + memcpy(_file, &f, sizeof(SdFile)); + + strncpy(_name, n, 12); + _name[12] = 0; + + /* for debugging file open/close leaks + nfilecount++; + Serial.print("Created \""); + Serial.print(n); + Serial.print("\": "); + Serial.println(nfilecount, DEC); + */ + } +} + +File::File(void) { + _file = 0; + _name[0] = 0; + //Serial.print("Created empty file object"); +} + +// returns a pointer to the file name +char *File::name(void) { + return _name; +} + +// a directory is a special type of file +boolean File::isDirectory(void) { + return (_file && _file->isDir()); +} + + +size_t File::write(uint8_t val) { + return write(&val, 1); +} + +size_t File::write(const uint8_t *buf, size_t size) { + size_t t; + if (!_file) { + setWriteError(); + return 0; + } + _file->clearWriteError(); + t = _file->write(buf, size); + if (_file->getWriteError()) { + setWriteError(); + return 0; + } + return t; +} + +int File::peek() { + if (! _file) + return 0; + + int c = _file->read(); + if (c != -1) _file->seekCur(-1); + return c; +} + +int File::read() { + if (_file) + return _file->read(); + return -1; +} + +// buffered read for more efficient, high speed reading +int File::read(void *buf, uint16_t nbyte) { + if (_file) + return _file->read(buf, nbyte); + return 0; +} + +int File::available() { + if (! _file) return 0; + + uint32_t n = size() - position(); + + return n > 0X7FFF ? 0X7FFF : n; +} + +void File::flush() { + if (_file) + _file->sync(); +} + +boolean File::seek(uint32_t pos) { + if (! _file) return false; + + return _file->seekSet(pos); +} + +uint32_t File::position() { + if (! _file) return -1; + return _file->curPosition(); +} + +uint32_t File::size() { + if (! _file) return 0; + return _file->fileSize(); +} + +void File::close() { + if (_file) { + _file->close(); + free(_file); + _file = 0; + + /* for debugging file open/close leaks + nfilecount--; + Serial.print("Deleted "); + Serial.println(nfilecount, DEC); + */ + } +} + +File::operator bool() { + if (_file) + return _file->isOpen(); + return false; +} + diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/README.txt b/app/testdata/libraries/SD_1.2.1/SD/src/README.txt new file mode 100644 index 00000000000..495ea4c7976 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/README.txt @@ -0,0 +1,13 @@ + +** SD - a slightly more friendly wrapper for sdfatlib ** + +This library aims to expose a subset of SD card functionality in the +form of a higher level "wrapper" object. + +License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + +(C) Copyright 2010 SparkFun Electronics + +Now better than ever with optimization, multiple file support, directory handling, etc - ladyada! + diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/SD.cpp b/app/testdata/libraries/SD_1.2.1/SD/src/SD.cpp new file mode 100644 index 00000000000..fbadb628b33 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/SD.cpp @@ -0,0 +1,628 @@ +/* + + SD - a slightly more friendly wrapper for sdfatlib + + This library aims to expose a subset of SD card functionality + in the form of a higher level "wrapper" object. + + License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + + (C) Copyright 2010 SparkFun Electronics + + + This library provides four key benefits: + + * Including `SD.h` automatically creates a global + `SD` object which can be interacted with in a similar + manner to other standard global objects like `Serial` and `Ethernet`. + + * Boilerplate initialisation code is contained in one method named + `begin` and no further objects need to be created in order to access + the SD card. + + * Calls to `open` can supply a full path name including parent + directories which simplifies interacting with files in subdirectories. + + * Utility methods are provided to determine whether a file exists + and to create a directory heirarchy. + + + Note however that not all functionality provided by the underlying + sdfatlib library is exposed. + + */ + +/* + + Implementation Notes + + In order to handle multi-directory path traversal, functionality that + requires this ability is implemented as callback functions. + + Individual methods call the `walkPath` function which performs the actual + directory traversal (swapping between two different directory/file handles + along the way) and at each level calls the supplied callback function. + + Some types of functionality will take an action at each level (e.g. exists + or make directory) which others will only take an action at the bottom + level (e.g. open). + + */ + +#include "SD.h" + +namespace SDLib { + +// Used by `getNextPathComponent` +#define MAX_COMPONENT_LEN 12 // What is max length? +#define PATH_COMPONENT_BUFFER_LEN MAX_COMPONENT_LEN+1 + +bool getNextPathComponent(const char *path, unsigned int *p_offset, + char *buffer) { + /* + + Parse individual path components from a path. + + e.g. after repeated calls '/foo/bar/baz' will be split + into 'foo', 'bar', 'baz'. + + This is similar to `strtok()` but copies the component into the + supplied buffer rather than modifying the original string. + + + `buffer` needs to be PATH_COMPONENT_BUFFER_LEN in size. + + `p_offset` needs to point to an integer of the offset at + which the previous path component finished. + + Returns `true` if more components remain. + + Returns `false` if this is the last component. + (This means path ended with 'foo' or 'foo/'.) + + */ + + // TODO: Have buffer local to this function, so we know it's the + // correct length? + + int bufferOffset = 0; + + int offset = *p_offset; + + // Skip root or other separator + if (path[offset] == '/') { + offset++; + } + + // Copy the next next path segment + while (bufferOffset < MAX_COMPONENT_LEN + && (path[offset] != '/') + && (path[offset] != '\0')) { + buffer[bufferOffset++] = path[offset++]; + } + + buffer[bufferOffset] = '\0'; + + // Skip trailing separator so we can determine if this + // is the last component in the path or not. + if (path[offset] == '/') { + offset++; + } + + *p_offset = offset; + + return (path[offset] != '\0'); +} + + + +boolean walkPath(const char *filepath, SdFile& parentDir, + boolean (*callback)(SdFile& parentDir, + const char *filePathComponent, + boolean isLastComponent, + void *object), + void *object = NULL) { + /* + + When given a file path (and parent directory--normally root), + this function traverses the directories in the path and at each + level calls the supplied callback function while also providing + the supplied object for context if required. + + e.g. given the path '/foo/bar/baz' + the callback would be called at the equivalent of + '/foo', '/foo/bar' and '/foo/bar/baz'. + + The implementation swaps between two different directory/file + handles as it traverses the directories and does not use recursion + in an attempt to use memory efficiently. + + If a callback wishes to stop the directory traversal it should + return false--in this case the function will stop the traversal, + tidy up and return false. + + If a directory path doesn't exist at some point this function will + also return false and not subsequently call the callback. + + If a directory path specified is complete, valid and the callback + did not indicate the traversal should be interrupted then this + function will return true. + + */ + + + SdFile subfile1; + SdFile subfile2; + + char buffer[PATH_COMPONENT_BUFFER_LEN]; + + unsigned int offset = 0; + + SdFile *p_parent; + SdFile *p_child; + + SdFile *p_tmp_sdfile; + + p_child = &subfile1; + + p_parent = &parentDir; + + while (true) { + + boolean moreComponents = getNextPathComponent(filepath, &offset, buffer); + + boolean shouldContinue = callback((*p_parent), buffer, !moreComponents, object); + + if (!shouldContinue) { + // TODO: Don't repeat this code? + // If it's one we've created then we + // don't need the parent handle anymore. + if (p_parent != &parentDir) { + (*p_parent).close(); + } + return false; + } + + if (!moreComponents) { + break; + } + + boolean exists = (*p_child).open(*p_parent, buffer, O_RDONLY); + + // If it's one we've created then we + // don't need the parent handle anymore. + if (p_parent != &parentDir) { + (*p_parent).close(); + } + + // Handle case when it doesn't exist and we can't continue... + if (exists) { + // We alternate between two file handles as we go down + // the path. + if (p_parent == &parentDir) { + p_parent = &subfile2; + } + + p_tmp_sdfile = p_parent; + p_parent = p_child; + p_child = p_tmp_sdfile; + } else { + return false; + } + } + + if (p_parent != &parentDir) { + (*p_parent).close(); // TODO: Return/ handle different? + } + + return true; +} + + + +/* + + The callbacks used to implement various functionality follow. + + Each callback is supplied with a parent directory handle, + character string with the name of the current file path component, + a flag indicating if this component is the last in the path and + a pointer to an arbitrary object used for context. + + */ + +boolean callback_pathExists(SdFile& parentDir, const char *filePathComponent, + boolean /* isLastComponent */, void * /* object */) { + /* + + Callback used to determine if a file/directory exists in parent + directory. + + Returns true if file path exists. + + */ + SdFile child; + + boolean exists = child.open(parentDir, filePathComponent, O_RDONLY); + + if (exists) { + child.close(); + } + + return exists; +} + + + +boolean callback_makeDirPath(SdFile& parentDir, const char *filePathComponent, + boolean isLastComponent, void *object) { + /* + + Callback used to create a directory in the parent directory if + it does not already exist. + + Returns true if a directory was created or it already existed. + + */ + boolean result = false; + SdFile child; + + result = callback_pathExists(parentDir, filePathComponent, isLastComponent, object); + if (!result) { + result = child.makeDir(parentDir, filePathComponent); + } + + return result; +} + + + /* + +boolean callback_openPath(SdFile& parentDir, char *filePathComponent, + boolean isLastComponent, void *object) { + + Callback used to open a file specified by a filepath that may + specify one or more directories above it. + + Expects the context object to be an instance of `SDClass` and + will use the `file` property of the instance to open the requested + file/directory with the associated file open mode property. + + Always returns true if the directory traversal hasn't reached the + bottom of the directory heirarchy. + + Returns false once the file has been opened--to prevent the traversal + from descending further. (This may be unnecessary.) + + if (isLastComponent) { + SDClass *p_SD = static_cast(object); + p_SD->file.open(parentDir, filePathComponent, p_SD->fileOpenMode); + if (p_SD->fileOpenMode == FILE_WRITE) { + p_SD->file.seekSet(p_SD->file.fileSize()); + } + // TODO: Return file open result? + return false; + } + return true; +} + */ + + + +boolean callback_remove(SdFile& parentDir, const char *filePathComponent, + boolean isLastComponent, void * /* object */) { + if (isLastComponent) { + return SdFile::remove(parentDir, filePathComponent); + } + return true; +} + +boolean callback_rmdir(SdFile& parentDir, const char *filePathComponent, + boolean isLastComponent, void * /* object */) { + if (isLastComponent) { + SdFile f; + if (!f.open(parentDir, filePathComponent, O_READ)) return false; + return f.rmDir(); + } + return true; +} + + + +/* Implementation of class used to create `SDCard` object. */ + + + +boolean SDClass::begin(uint8_t csPin) { + if(root.isOpen()) root.close(); + + /* + + Performs the initialisation required by the sdfatlib library. + + Return true if initialization succeeds, false otherwise. + + */ + return card.init(SPI_HALF_SPEED, csPin) && + volume.init(card) && + root.openRoot(volume); +} + +boolean SDClass::begin(uint32_t clock, uint8_t csPin) { + if(root.isOpen()) root.close(); + + return card.init(SPI_HALF_SPEED, csPin) && + card.setSpiClock(clock) && + volume.init(card) && + root.openRoot(volume); +} + +//call this when a card is removed. It will allow you to insert and initialise a new card. +void SDClass::end() +{ + root.close(); +} + +// this little helper is used to traverse paths +SdFile SDClass::getParentDir(const char *filepath, int *index) { + // get parent directory + SdFile d1; + SdFile d2; + + d1.openRoot(volume); // start with the mostparent, root! + + // we'll use the pointers to swap between the two objects + SdFile *parent = &d1; + SdFile *subdir = &d2; + + const char *origpath = filepath; + + while (strchr(filepath, '/')) { + + // get rid of leading /'s + if (filepath[0] == '/') { + filepath++; + continue; + } + + if (! strchr(filepath, '/')) { + // it was in the root directory, so leave now + break; + } + + // extract just the name of the next subdirectory + uint8_t idx = strchr(filepath, '/') - filepath; + if (idx > 12) + idx = 12; // dont let them specify long names + char subdirname[13]; + strncpy(subdirname, filepath, idx); + subdirname[idx] = 0; + + // close the subdir (we reuse them) if open + subdir->close(); + if (! subdir->open(parent, subdirname, O_READ)) { + // failed to open one of the subdirectories + return SdFile(); + } + // move forward to the next subdirectory + filepath += idx; + + // we reuse the objects, close it. + parent->close(); + + // swap the pointers + SdFile *t = parent; + parent = subdir; + subdir = t; + } + + *index = (int)(filepath - origpath); + // parent is now the parent diretory of the file! + return *parent; +} + + +File SDClass::open(const char *filepath, uint8_t mode) { + /* + + Open the supplied file path for reading or writing. + + The file content can be accessed via the `file` property of + the `SDClass` object--this property is currently + a standard `SdFile` object from `sdfatlib`. + + Defaults to read only. + + If `write` is true, default action (when `append` is true) is to + append data to the end of the file. + + If `append` is false then the file will be truncated first. + + If the file does not exist and it is opened for writing the file + will be created. + + An attempt to open a file for reading that does not exist is an + error. + + */ + + int pathidx; + + // do the interative search + SdFile parentdir = getParentDir(filepath, &pathidx); + // no more subdirs! + + filepath += pathidx; + + if (! filepath[0]) { + // it was the directory itself! + return File(parentdir, "/"); + } + + // Open the file itself + SdFile file; + + // failed to open a subdir! + if (!parentdir.isOpen()) + return File(); + + if ( ! file.open(parentdir, filepath, mode)) { + return File(); + } + // close the parent + parentdir.close(); + + if ((mode & (O_APPEND | O_WRITE)) == (O_APPEND | O_WRITE)) + file.seekSet(file.fileSize()); + return File(file, filepath); +} + + +/* +File SDClass::open(char *filepath, uint8_t mode) { + // + + Open the supplied file path for reading or writing. + + The file content can be accessed via the `file` property of + the `SDClass` object--this property is currently + a standard `SdFile` object from `sdfatlib`. + + Defaults to read only. + + If `write` is true, default action (when `append` is true) is to + append data to the end of the file. + + If `append` is false then the file will be truncated first. + + If the file does not exist and it is opened for writing the file + will be created. + + An attempt to open a file for reading that does not exist is an + error. + + // + + // TODO: Allow for read&write? (Possibly not, as it requires seek.) + + fileOpenMode = mode; + walkPath(filepath, root, callback_openPath, this); + + return File(); + +} +*/ + + +//boolean SDClass::close() { +// /* +// +// Closes the file opened by the `open` method. +// +// */ +// file.close(); +//} + + +boolean SDClass::exists(const char *filepath) { + /* + + Returns true if the supplied file path exists. + + */ + return walkPath(filepath, root, callback_pathExists); +} + + +//boolean SDClass::exists(char *filepath, SdFile& parentDir) { +// /* +// +// Returns true if the supplied file path rooted at `parentDir` +// exists. +// +// */ +// return walkPath(filepath, parentDir, callback_pathExists); +//} + + +boolean SDClass::mkdir(const char *filepath) { + /* + + Makes a single directory or a heirarchy of directories. + + A rough equivalent to `mkdir -p`. + + */ + return walkPath(filepath, root, callback_makeDirPath); +} + +boolean SDClass::rmdir(const char *filepath) { + /* + + Remove a single directory or a heirarchy of directories. + + A rough equivalent to `rm -rf`. + + */ + return walkPath(filepath, root, callback_rmdir); +} + +boolean SDClass::remove(const char *filepath) { + return walkPath(filepath, root, callback_remove); +} + + +// allows you to recurse into a directory +File File::openNextFile(uint8_t mode) { + dir_t p; + + //Serial.print("\t\treading dir..."); + while (_file->readDir(&p) > 0) { + + // done if past last used entry + if (p.name[0] == DIR_NAME_FREE) { + //Serial.println("end"); + return File(); + } + + // skip deleted entry and entries for . and .. + if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.') { + //Serial.println("dots"); + continue; + } + + // only list subdirectories and files + if (!DIR_IS_FILE_OR_SUBDIR(&p)) { + //Serial.println("notafile"); + continue; + } + + // print file name with possible blank fill + SdFile f; + char name[13]; + _file->dirName(p, name); + //Serial.print("try to open file "); + //Serial.println(name); + + if (f.open(_file, name, mode)) { + //Serial.println("OK!"); + return File(f, name); + } else { + //Serial.println("ugh"); + return File(); + } + } + + //Serial.println("nothing"); + return File(); +} + +void File::rewindDirectory(void) { + if (isDirectory()) + _file->rewind(); +} + +SDClass SD; + +}; diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/SD.h b/app/testdata/libraries/SD_1.2.1/SD/src/SD.h new file mode 100644 index 00000000000..a7f221cffd4 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/SD.h @@ -0,0 +1,127 @@ +/* + + SD - a slightly more friendly wrapper for sdfatlib + + This library aims to expose a subset of SD card functionality + in the form of a higher level "wrapper" object. + + License: GNU General Public License V3 + (Because sdfatlib is licensed with this.) + + (C) Copyright 2010 SparkFun Electronics + + */ + +#ifndef __SD_H__ +#define __SD_H__ + +#include + +#include +#include + +#define FILE_READ O_READ +#define FILE_WRITE (O_READ | O_WRITE | O_CREAT | O_APPEND) + +namespace SDLib { + +class File : public Stream { + private: + char _name[13]; // our name + SdFile *_file; // underlying file pointer + +public: + File(SdFile f, const char *name); // wraps an underlying SdFile + File(void); // 'empty' constructor + virtual size_t write(uint8_t); + virtual size_t write(const uint8_t *buf, size_t size); + virtual int read(); + virtual int peek(); + virtual int available(); + virtual void flush(); + int read(void *buf, uint16_t nbyte); + boolean seek(uint32_t pos); + uint32_t position(); + uint32_t size(); + void close(); + operator bool(); + char * name(); + + boolean isDirectory(void); + File openNextFile(uint8_t mode = O_RDONLY); + void rewindDirectory(void); + + using Print::write; +}; + +class SDClass { + +private: + // These are required for initialisation and use of sdfatlib + Sd2Card card; + SdVolume volume; + SdFile root; + + // my quick&dirty iterator, should be replaced + SdFile getParentDir(const char *filepath, int *indx); +public: + // This needs to be called to set up the connection to the SD card + // before other methods are used. + boolean begin(uint8_t csPin = SD_CHIP_SELECT_PIN); + boolean begin(uint32_t clock, uint8_t csPin); + + //call this when a card is removed. It will allow you to insert and initialise a new card. + void end(); + + // Open the specified file/directory with the supplied mode (e.g. read or + // write, etc). Returns a File object for interacting with the file. + // Note that currently only one file can be open at a time. + File open(const char *filename, uint8_t mode = FILE_READ); + File open(const String &filename, uint8_t mode = FILE_READ) { return open( filename.c_str(), mode ); } + + // Methods to determine if the requested file path exists. + boolean exists(const char *filepath); + boolean exists(const String &filepath) { return exists(filepath.c_str()); } + + // Create the requested directory heirarchy--if intermediate directories + // do not exist they will be created. + boolean mkdir(const char *filepath); + boolean mkdir(const String &filepath) { return mkdir(filepath.c_str()); } + + // Delete the file. + boolean remove(const char *filepath); + boolean remove(const String &filepath) { return remove(filepath.c_str()); } + + boolean rmdir(const char *filepath); + boolean rmdir(const String &filepath) { return rmdir(filepath.c_str()); } + +private: + + // This is used to determine the mode used to open a file + // it's here because it's the easiest place to pass the + // information through the directory walking function. But + // it's probably not the best place for it. + // It shouldn't be set directly--it is set via the parameters to `open`. + int fileOpenMode; + + friend class File; + friend boolean callback_openPath(SdFile&, const char *, boolean, void *); +}; + +extern SDClass SD; + +}; + +// We enclose File and SD classes in namespace SDLib to avoid conflicts +// with others legacy libraries that redefines File class. + +// This ensure compatibility with sketches that uses only SD library +using namespace SDLib; + +// This allows sketches to use SDLib::File with other libraries (in the +// sketch you must use SDFile instead of File to disambiguate) +typedef SDLib::File SDFile; +typedef SDLib::SDClass SDFileSystemClass; +#define SDFileSystem SDLib::SD + +#endif diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/FatStructs.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/FatStructs.h new file mode 100644 index 00000000000..8a2d9ebcc1c --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/FatStructs.h @@ -0,0 +1,418 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#ifndef FatStructs_h +#define FatStructs_h +/** + * \file + * FAT file structures + */ +/* + * mostly from Microsoft document fatgen103.doc + * http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx + */ +//------------------------------------------------------------------------------ +/** Value for byte 510 of boot block or MBR */ +uint8_t const BOOTSIG0 = 0X55; +/** Value for byte 511 of boot block or MBR */ +uint8_t const BOOTSIG1 = 0XAA; +//------------------------------------------------------------------------------ +/** + * \struct partitionTable + * \brief MBR partition table entry + * + * A partition table entry for a MBR formatted storage device. + * The MBR partition table has four entries. + */ +struct partitionTable { + /** + * Boot Indicator . Indicates whether the volume is the active + * partition. Legal values include: 0X00. Do not use for booting. + * 0X80 Active partition. + */ + uint8_t boot; + /** + * Head part of Cylinder-head-sector address of the first block in + * the partition. Legal values are 0-255. Only used in old PC BIOS. + */ + uint8_t beginHead; + /** + * Sector part of Cylinder-head-sector address of the first block in + * the partition. Legal values are 1-63. Only used in old PC BIOS. + */ + unsigned beginSector : 6; + /** High bits cylinder for first block in partition. */ + unsigned beginCylinderHigh : 2; + /** + * Combine beginCylinderLow with beginCylinderHigh. Legal values + * are 0-1023. Only used in old PC BIOS. + */ + uint8_t beginCylinderLow; + /** + * Partition type. See defines that begin with PART_TYPE_ for + * some Microsoft partition types. + */ + uint8_t type; + /** + * head part of cylinder-head-sector address of the last sector in the + * partition. Legal values are 0-255. Only used in old PC BIOS. + */ + uint8_t endHead; + /** + * Sector part of cylinder-head-sector address of the last sector in + * the partition. Legal values are 1-63. Only used in old PC BIOS. + */ + unsigned endSector : 6; + /** High bits of end cylinder */ + unsigned endCylinderHigh : 2; + /** + * Combine endCylinderLow with endCylinderHigh. Legal values + * are 0-1023. Only used in old PC BIOS. + */ + uint8_t endCylinderLow; + /** Logical block address of the first block in the partition. */ + uint32_t firstSector; + /** Length of the partition, in blocks. */ + uint32_t totalSectors; +} __attribute__((packed)); +/** Type name for partitionTable */ +typedef struct partitionTable part_t; +//------------------------------------------------------------------------------ +/** + * \struct masterBootRecord + * + * \brief Master Boot Record + * + * The first block of a storage device that is formatted with a MBR. + */ +struct masterBootRecord { + /** Code Area for master boot program. */ + uint8_t codeArea[440]; + /** Optional WindowsNT disk signature. May contain more boot code. */ + uint32_t diskSignature; + /** Usually zero but may be more boot code. */ + uint16_t usuallyZero; + /** Partition tables. */ + part_t part[4]; + /** First MBR signature byte. Must be 0X55 */ + uint8_t mbrSig0; + /** Second MBR signature byte. Must be 0XAA */ + uint8_t mbrSig1; +} __attribute__((packed)); +/** Type name for masterBootRecord */ +typedef struct masterBootRecord mbr_t; +//------------------------------------------------------------------------------ +/** + * \struct biosParmBlock + * + * \brief BIOS parameter block + * + * The BIOS parameter block describes the physical layout of a FAT volume. + */ +struct biosParmBlock { + /** + * Count of bytes per sector. This value may take on only the + * following values: 512, 1024, 2048 or 4096 + */ + uint16_t bytesPerSector; + /** + * Number of sectors per allocation unit. This value must be a + * power of 2 that is greater than 0. The legal values are + * 1, 2, 4, 8, 16, 32, 64, and 128. + */ + uint8_t sectorsPerCluster; + /** + * Number of sectors before the first FAT. + * This value must not be zero. + */ + uint16_t reservedSectorCount; + /** The count of FAT data structures on the volume. This field should + * always contain the value 2 for any FAT volume of any type. + */ + uint8_t fatCount; + /** + * For FAT12 and FAT16 volumes, this field contains the count of + * 32-byte directory entries in the root directory. For FAT32 volumes, + * this field must be set to 0. For FAT12 and FAT16 volumes, this + * value should always specify a count that when multiplied by 32 + * results in a multiple of bytesPerSector. FAT16 volumes should + * use the value 512. + */ + uint16_t rootDirEntryCount; + /** + * This field is the old 16-bit total count of sectors on the volume. + * This count includes the count of all sectors in all four regions + * of the volume. This field can be 0; if it is 0, then totalSectors32 + * must be non-zero. For FAT32 volumes, this field must be 0. For + * FAT12 and FAT16 volumes, this field contains the sector count, and + * totalSectors32 is 0 if the total sector count fits + * (is less than 0x10000). + */ + uint16_t totalSectors16; + /** + * This dates back to the old MS-DOS 1.x media determination and is + * no longer usually used for anything. 0xF8 is the standard value + * for fixed (non-removable) media. For removable media, 0xF0 is + * frequently used. Legal values are 0xF0 or 0xF8-0xFF. + */ + uint8_t mediaType; + /** + * Count of sectors occupied by one FAT on FAT12/FAT16 volumes. + * On FAT32 volumes this field must be 0, and sectorsPerFat32 + * contains the FAT size count. + */ + uint16_t sectorsPerFat16; + /** Sectors per track for interrupt 0x13. Not used otherwise. */ + uint16_t sectorsPerTrtack; + /** Number of heads for interrupt 0x13. Not used otherwise. */ + uint16_t headCount; + /** + * Count of hidden sectors preceding the partition that contains this + * FAT volume. This field is generally only relevant for media + * visible on interrupt 0x13. + */ + uint32_t hidddenSectors; + /** + * This field is the new 32-bit total count of sectors on the volume. + * This count includes the count of all sectors in all four regions + * of the volume. This field can be 0; if it is 0, then + * totalSectors16 must be non-zero. + */ + uint32_t totalSectors32; + /** + * Count of sectors occupied by one FAT on FAT32 volumes. + */ + uint32_t sectorsPerFat32; + /** + * This field is only defined for FAT32 media and does not exist on + * FAT12 and FAT16 media. + * Bits 0-3 -- Zero-based number of active FAT. + * Only valid if mirroring is disabled. + * Bits 4-6 -- Reserved. + * Bit 7 -- 0 means the FAT is mirrored at runtime into all FATs. + * -- 1 means only one FAT is active; it is the one referenced in bits 0-3. + * Bits 8-15 -- Reserved. + */ + uint16_t fat32Flags; + /** + * FAT32 version. High byte is major revision number. + * Low byte is minor revision number. Only 0.0 define. + */ + uint16_t fat32Version; + /** + * Cluster number of the first cluster of the root directory for FAT32. + * This usually 2 but not required to be 2. + */ + uint32_t fat32RootCluster; + /** + * Sector number of FSINFO structure in the reserved area of the + * FAT32 volume. Usually 1. + */ + uint16_t fat32FSInfo; + /** + * If non-zero, indicates the sector number in the reserved area + * of the volume of a copy of the boot record. Usually 6. + * No value other than 6 is recommended. + */ + uint16_t fat32BackBootBlock; + /** + * Reserved for future expansion. Code that formats FAT32 volumes + * should always set all of the bytes of this field to 0. + */ + uint8_t fat32Reserved[12]; +} __attribute__((packed)); +/** Type name for biosParmBlock */ +typedef struct biosParmBlock bpb_t; +//------------------------------------------------------------------------------ +/** + * \struct fat32BootSector + * + * \brief Boot sector for a FAT16 or FAT32 volume. + * + */ +struct fat32BootSector { + /** X86 jmp to boot program */ + uint8_t jmpToBootCode[3]; + /** informational only - don't depend on it */ + char oemName[8]; + /** BIOS Parameter Block */ + bpb_t bpb; + /** for int0x13 use value 0X80 for hard drive */ + uint8_t driveNumber; + /** used by Windows NT - should be zero for FAT */ + uint8_t reserved1; + /** 0X29 if next three fields are valid */ + uint8_t bootSignature; + /** usually generated by combining date and time */ + uint32_t volumeSerialNumber; + /** should match volume label in root dir */ + char volumeLabel[11]; + /** informational only - don't depend on it */ + char fileSystemType[8]; + /** X86 boot code */ + uint8_t bootCode[420]; + /** must be 0X55 */ + uint8_t bootSectorSig0; + /** must be 0XAA */ + uint8_t bootSectorSig1; +} __attribute__((packed)); +//------------------------------------------------------------------------------ +// End Of Chain values for FAT entries +/** FAT16 end of chain value used by Microsoft. */ +uint16_t const FAT16EOC = 0XFFFF; +/** Minimum value for FAT16 EOC. Use to test for EOC. */ +uint16_t const FAT16EOC_MIN = 0XFFF8; +/** FAT32 end of chain value used by Microsoft. */ +uint32_t const FAT32EOC = 0X0FFFFFFF; +/** Minimum value for FAT32 EOC. Use to test for EOC. */ +uint32_t const FAT32EOC_MIN = 0X0FFFFFF8; +/** Mask a for FAT32 entry. Entries are 28 bits. */ +uint32_t const FAT32MASK = 0X0FFFFFFF; + +/** Type name for fat32BootSector */ +typedef struct fat32BootSector fbs_t; +//------------------------------------------------------------------------------ +/** + * \struct directoryEntry + * \brief FAT short directory entry + * + * Short means short 8.3 name, not the entry size. + * + * Date Format. A FAT directory entry date stamp is a 16-bit field that is + * basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the + * format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the + * 16-bit word): + * + * Bits 9-15: Count of years from 1980, valid value range 0-127 + * inclusive (1980-2107). + * + * Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive. + * + * Bits 0-4: Day of month, valid value range 1-31 inclusive. + * + * Time Format. A FAT directory entry time stamp is a 16-bit field that has + * a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the + * 16-bit word, bit 15 is the MSB of the 16-bit word). + * + * Bits 11-15: Hours, valid value range 0-23 inclusive. + * + * Bits 5-10: Minutes, valid value range 0-59 inclusive. + * + * Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds). + * + * The valid time range is from Midnight 00:00:00 to 23:59:58. + */ +struct directoryEntry { + /** + * Short 8.3 name. + * The first eight bytes contain the file name with blank fill. + * The last three bytes contain the file extension with blank fill. + */ + uint8_t name[11]; + /** Entry attributes. + * + * The upper two bits of the attribute byte are reserved and should + * always be set to 0 when a file is created and never modified or + * looked at after that. See defines that begin with DIR_ATT_. + */ + uint8_t attributes; + /** + * Reserved for use by Windows NT. Set value to 0 when a file is + * created and never modify or look at it after that. + */ + uint8_t reservedNT; + /** + * The granularity of the seconds part of creationTime is 2 seconds + * so this field is a count of tenths of a second and its valid + * value range is 0-199 inclusive. (WHG note - seems to be hundredths) + */ + uint8_t creationTimeTenths; + /** Time file was created. */ + uint16_t creationTime; + /** Date file was created. */ + uint16_t creationDate; + /** + * Last access date. Note that there is no last access time, only + * a date. This is the date of last read or write. In the case of + * a write, this should be set to the same date as lastWriteDate. + */ + uint16_t lastAccessDate; + /** + * High word of this entry's first cluster number (always 0 for a + * FAT12 or FAT16 volume). + */ + uint16_t firstClusterHigh; + /** Time of last write. File creation is considered a write. */ + uint16_t lastWriteTime; + /** Date of last write. File creation is considered a write. */ + uint16_t lastWriteDate; + /** Low word of this entry's first cluster number. */ + uint16_t firstClusterLow; + /** 32-bit unsigned holding this file's size in bytes. */ + uint32_t fileSize; +} __attribute__((packed)); +//------------------------------------------------------------------------------ +// Definitions for directory entries +// +/** Type name for directoryEntry */ +typedef struct directoryEntry dir_t; +/** escape for name[0] = 0XE5 */ +uint8_t const DIR_NAME_0XE5 = 0X05; +/** name[0] value for entry that is free after being "deleted" */ +uint8_t const DIR_NAME_DELETED = 0XE5; +/** name[0] value for entry that is free and no allocated entries follow */ +uint8_t const DIR_NAME_FREE = 0X00; +/** file is read-only */ +uint8_t const DIR_ATT_READ_ONLY = 0X01; +/** File should hidden in directory listings */ +uint8_t const DIR_ATT_HIDDEN = 0X02; +/** Entry is for a system file */ +uint8_t const DIR_ATT_SYSTEM = 0X04; +/** Directory entry contains the volume label */ +uint8_t const DIR_ATT_VOLUME_ID = 0X08; +/** Entry is for a directory */ +uint8_t const DIR_ATT_DIRECTORY = 0X10; +/** Old DOS archive bit for backup support */ +uint8_t const DIR_ATT_ARCHIVE = 0X20; +/** Test value for long name entry. Test is + (d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME. */ +uint8_t const DIR_ATT_LONG_NAME = 0X0F; +/** Test mask for long name entry */ +uint8_t const DIR_ATT_LONG_NAME_MASK = 0X3F; +/** defined attribute bits */ +uint8_t const DIR_ATT_DEFINED_BITS = 0X3F; +/** Directory entry is part of a long name */ +static inline uint8_t DIR_IS_LONG_NAME(const dir_t* dir) { + return (dir->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME; +} +/** Mask for file/subdirectory tests */ +uint8_t const DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY); +/** Directory entry is for a file */ +static inline uint8_t DIR_IS_FILE(const dir_t* dir) { + return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == 0; +} +/** Directory entry is for a subdirectory */ +static inline uint8_t DIR_IS_SUBDIR(const dir_t* dir) { + return (dir->attributes & DIR_ATT_FILE_TYPE_MASK) == DIR_ATT_DIRECTORY; +} +/** Directory entry is for a file or subdirectory */ +static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) { + return (dir->attributes & DIR_ATT_VOLUME_ID) == 0; +} +#endif // FatStructs_h diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2Card.cpp b/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2Card.cpp new file mode 100644 index 00000000000..406f8385196 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2Card.cpp @@ -0,0 +1,724 @@ +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#define USE_SPI_LIB +#include +#include "Sd2Card.h" +//------------------------------------------------------------------------------ +#ifndef SOFTWARE_SPI +#ifdef USE_SPI_LIB + +#ifndef SDCARD_SPI +#define SDCARD_SPI SPI +#endif + +#include +static SPISettings settings; +#endif +// functions for hardware SPI +/** Send a byte to the card */ +static void spiSend(uint8_t b) { +#ifndef USE_SPI_LIB + SPDR = b; + while (!(SPSR & (1 << SPIF))) + ; +#else + SDCARD_SPI.transfer(b); +#endif +} +/** Receive a byte from the card */ +static uint8_t spiRec(void) { +#ifndef USE_SPI_LIB + spiSend(0XFF); + return SPDR; +#else + return SDCARD_SPI.transfer(0xFF); +#endif +} +#else // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** nop to tune soft SPI timing */ +#define nop asm volatile ("nop\n\t") +//------------------------------------------------------------------------------ +/** Soft SPI receive */ +uint8_t spiRec(void) { + uint8_t data = 0; + // no interrupts during byte receive - about 8 us + cli(); + // output pin high - like sending 0XFF + fastDigitalWrite(SPI_MOSI_PIN, HIGH); + + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, HIGH); + + // adjust so SCK is nice + nop; + nop; + + data <<= 1; + + if (fastDigitalRead(SPI_MISO_PIN)) data |= 1; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + } + // enable interrupts + sei(); + return data; +} +//------------------------------------------------------------------------------ +/** Soft SPI send */ +void spiSend(uint8_t data) { + // no interrupts during byte send - about 8 us + cli(); + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, LOW); + + fastDigitalWrite(SPI_MOSI_PIN, data & 0X80); + + data <<= 1; + + fastDigitalWrite(SPI_SCK_PIN, HIGH); + } + // hold SCK high for a few ns + nop; + nop; + nop; + nop; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + // enable interrupts + sei(); +} +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +// send command and return error code. Return zero for OK +uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) { + // end read if in partialBlockRead mode + readEnd(); + + // select card + chipSelectLow(); + + // wait up to 300 ms if busy + waitNotBusy(300); + + // send command + spiSend(cmd | 0x40); + + // send argument + for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s); + + // send CRC + uint8_t crc = 0XFF; + if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0 + if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA + spiSend(crc); + + // wait for response + for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) + ; + return status_; +} +//------------------------------------------------------------------------------ +/** + * Determine the size of an SD flash memory card. + * + * \return The number of 512 byte data blocks in the card + * or zero if an error occurs. + */ +uint32_t Sd2Card::cardSize(void) { + csd_t csd; + if (!readCSD(&csd)) return 0; + if (csd.v1.csd_ver == 0) { + uint8_t read_bl_len = csd.v1.read_bl_len; + uint16_t c_size = (csd.v1.c_size_high << 10) + | (csd.v1.c_size_mid << 2) | csd.v1.c_size_low; + uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1) + | csd.v1.c_size_mult_low; + return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7); + } else if (csd.v2.csd_ver == 1) { + uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16) + | (csd.v2.c_size_mid << 8) | csd.v2.c_size_low; + return (c_size + 1) << 10; + } else { + error(SD_CARD_ERROR_BAD_CSD); + return 0; + } +} +//------------------------------------------------------------------------------ +static uint8_t chip_select_asserted = 0; + +void Sd2Card::chipSelectHigh(void) { + digitalWrite(chipSelectPin_, HIGH); +#ifdef USE_SPI_LIB + if (chip_select_asserted) { + chip_select_asserted = 0; + SDCARD_SPI.endTransaction(); + } +#endif +} +//------------------------------------------------------------------------------ +void Sd2Card::chipSelectLow(void) { +#ifdef USE_SPI_LIB + if (!chip_select_asserted) { + chip_select_asserted = 1; + SDCARD_SPI.beginTransaction(settings); + } +#endif + digitalWrite(chipSelectPin_, LOW); +} +//------------------------------------------------------------------------------ +/** Erase a range of blocks. + * + * \param[in] firstBlock The address of the first block in the range. + * \param[in] lastBlock The address of the last block in the range. + * + * \note This function requests the SD card to do a flash erase for a + * range of blocks. The data on the card after an erase operation is + * either 0 or 1, depends on the card vendor. The card must support + * single block erase. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) { + if (!eraseSingleBlockEnable()) { + error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK); + goto fail; + } + if (type_ != SD_CARD_TYPE_SDHC) { + firstBlock <<= 9; + lastBlock <<= 9; + } + if (cardCommand(CMD32, firstBlock) + || cardCommand(CMD33, lastBlock) + || cardCommand(CMD38, 0)) { + error(SD_CARD_ERROR_ERASE); + goto fail; + } + if (!waitNotBusy(SD_ERASE_TIMEOUT)) { + error(SD_CARD_ERROR_ERASE_TIMEOUT); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Determine if card supports single block erase. + * + * \return The value one, true, is returned if single block erase is supported. + * The value zero, false, is returned if single block erase is not supported. + */ +uint8_t Sd2Card::eraseSingleBlockEnable(void) { + csd_t csd; + return readCSD(&csd) ? csd.v1.erase_blk_en : 0; +} +//------------------------------------------------------------------------------ +/** + * Initialize an SD flash memory card. + * + * \param[in] sckRateID SPI clock rate selector. See setSckRate(). + * \param[in] chipSelectPin SD chip select pin number. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. The reason for failure + * can be determined by calling errorCode() and errorData(). + */ +uint8_t Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { + errorCode_ = inBlock_ = partialBlockRead_ = type_ = 0; + chipSelectPin_ = chipSelectPin; + // 16-bit init start time allows over a minute + unsigned int t0 = millis(); + uint32_t arg; + + // set pin modes + pinMode(chipSelectPin_, OUTPUT); + digitalWrite(chipSelectPin_, HIGH); +#ifndef USE_SPI_LIB + pinMode(SPI_MISO_PIN, INPUT); + pinMode(SPI_MOSI_PIN, OUTPUT); + pinMode(SPI_SCK_PIN, OUTPUT); +#endif + +#ifndef SOFTWARE_SPI +#ifndef USE_SPI_LIB + // SS must be in output mode even it is not chip select + pinMode(SS_PIN, OUTPUT); + digitalWrite(SS_PIN, HIGH); // disable any SPI device using hardware SS pin + // Enable SPI, Master, clock rate f_osc/128 + SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1) | (1 << SPR0); + // clear double speed + SPSR &= ~(1 << SPI2X); +#else // USE_SPI_LIB + SDCARD_SPI.begin(); + settings = SPISettings(250000, MSBFIRST, SPI_MODE0); +#endif // USE_SPI_LIB +#endif // SOFTWARE_SPI + + // must supply min of 74 clock cycles with CS high. +#ifdef USE_SPI_LIB + SDCARD_SPI.beginTransaction(settings); +#endif + for (uint8_t i = 0; i < 10; i++) spiSend(0XFF); +#ifdef USE_SPI_LIB + SDCARD_SPI.endTransaction(); +#endif + + chipSelectLow(); + + // command to go idle in SPI mode + while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) { + unsigned int d = millis() - t0; + if (d > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_CMD0); + goto fail; + } + } + // check SD version + if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { + type(SD_CARD_TYPE_SD1); + } else { + // only need last byte of r7 response + for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); + if (status_ != 0XAA) { + error(SD_CARD_ERROR_CMD8); + goto fail; + } + type(SD_CARD_TYPE_SD2); + } + // initialize card and send host supports SDHC if SD2 + arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0; + + while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) { + // check for timeout + unsigned int d = millis() - t0; + if (d > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_ACMD41); + goto fail; + } + } + // if SD2 read OCR register to check for SDHC card + if (type() == SD_CARD_TYPE_SD2) { + if (cardCommand(CMD58, 0)) { + error(SD_CARD_ERROR_CMD58); + goto fail; + } + if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC); + // discard rest of ocr - contains allowed voltage range + for (uint8_t i = 0; i < 3; i++) spiRec(); + } + chipSelectHigh(); + +#ifndef SOFTWARE_SPI + return setSckRate(sckRateID); +#else // SOFTWARE_SPI + return true; +#endif // SOFTWARE_SPI + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Enable or disable partial block reads. + * + * Enabling partial block reads improves performance by allowing a block + * to be read over the SPI bus as several sub-blocks. Errors may occur + * if the time between reads is too long since the SD card may timeout. + * The SPI SS line will be held low until the entire block is read or + * readEnd() is called. + * + * Use this for applications like the Adafruit Wave Shield. + * + * \param[in] value The value TRUE (non-zero) or FALSE (zero).) + */ +void Sd2Card::partialBlockRead(uint8_t value) { + readEnd(); + partialBlockRead_ = value; +} +//------------------------------------------------------------------------------ +/** + * Read a 512 byte block from an SD card device. + * + * \param[in] block Logical block to be read. + * \param[out] dst Pointer to the location that will receive the data. + + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::readBlock(uint32_t block, uint8_t* dst) { + return readData(block, 0, 512, dst); +} +//------------------------------------------------------------------------------ +/** + * Read part of a 512 byte block from an SD card. + * + * \param[in] block Logical block to be read. + * \param[in] offset Number of bytes to skip at start of block + * \param[out] dst Pointer to the location that will receive the data. + * \param[in] count Number of bytes to read + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::readData(uint32_t block, + uint16_t offset, uint16_t count, uint8_t* dst) { + if (count == 0) return true; + if ((count + offset) > 512) { + goto fail; + } + if (!inBlock_ || block != block_ || offset < offset_) { + block_ = block; + // use address if not SDHC card + if (type()!= SD_CARD_TYPE_SDHC) block <<= 9; + if (cardCommand(CMD17, block)) { + error(SD_CARD_ERROR_CMD17); + goto fail; + } + if (!waitStartBlock()) { + goto fail; + } + offset_ = 0; + inBlock_ = 1; + } + +#ifdef OPTIMIZE_HARDWARE_SPI + // start first spi transfer + SPDR = 0XFF; + + // skip data before offset + for (;offset_ < offset; offset_++) { + while (!(SPSR & (1 << SPIF))) + ; + SPDR = 0XFF; + } + // transfer data + n = count - 1; + for (uint16_t i = 0; i < n; i++) { + while (!(SPSR & (1 << SPIF))) + ; + dst[i] = SPDR; + SPDR = 0XFF; + } + // wait for last byte + while (!(SPSR & (1 << SPIF))) + ; + dst[n] = SPDR; + +#else // OPTIMIZE_HARDWARE_SPI + + // skip data before offset + for (;offset_ < offset; offset_++) { + spiRec(); + } + // transfer data + for (uint16_t i = 0; i < count; i++) { + dst[i] = spiRec(); + } +#endif // OPTIMIZE_HARDWARE_SPI + + offset_ += count; + if (!partialBlockRead_ || offset_ >= 512) { + // read rest of data, checksum and set chip select high + readEnd(); + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Skip remaining data in a block when in partial block read mode. */ +void Sd2Card::readEnd(void) { + if (inBlock_) { + // skip data and crc +#ifdef OPTIMIZE_HARDWARE_SPI + // optimize skip for hardware + SPDR = 0XFF; + while (offset_++ < 513) { + while (!(SPSR & (1 << SPIF))) + ; + SPDR = 0XFF; + } + // wait for last crc byte + while (!(SPSR & (1 << SPIF))) + ; +#else // OPTIMIZE_HARDWARE_SPI + while (offset_++ < 514) spiRec(); +#endif // OPTIMIZE_HARDWARE_SPI + chipSelectHigh(); + inBlock_ = 0; + } +} +//------------------------------------------------------------------------------ +/** read CID or CSR register */ +uint8_t Sd2Card::readRegister(uint8_t cmd, void* buf) { + uint8_t* dst = reinterpret_cast(buf); + if (cardCommand(cmd, 0)) { + error(SD_CARD_ERROR_READ_REG); + goto fail; + } + if (!waitStartBlock()) goto fail; + // transfer data + for (uint16_t i = 0; i < 16; i++) dst[i] = spiRec(); + spiRec(); // get first crc byte + spiRec(); // get second crc byte + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Set the SPI clock rate. + * + * \param[in] sckRateID A value in the range [0, 6]. + * + * The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum + * SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128 + * for \a scsRateID = 6. + * + * \return The value one, true, is returned for success and the value zero, + * false, is returned for an invalid value of \a sckRateID. + */ +uint8_t Sd2Card::setSckRate(uint8_t sckRateID) { + if (sckRateID > 6) { + error(SD_CARD_ERROR_SCK_RATE); + return false; + } +#ifndef USE_SPI_LIB + // see avr processor datasheet for SPI register bit definitions + if ((sckRateID & 1) || sckRateID == 6) { + SPSR &= ~(1 << SPI2X); + } else { + SPSR |= (1 << SPI2X); + } + SPCR &= ~((1 < SD_READ_TIMEOUT) { + error(SD_CARD_ERROR_READ_TIMEOUT); + goto fail; + } + } + if (status_ != DATA_START_BLOCK) { + error(SD_CARD_ERROR_READ); + goto fail; + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Writes a 512 byte block to an SD card. + * + * \param[in] blockNumber Logical block to be written. + * \param[in] src Pointer to the location of the data to be written. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) { +#if SD_PROTECT_BLOCK_ZERO + // don't allow write to first block + if (blockNumber == 0) { + error(SD_CARD_ERROR_WRITE_BLOCK_ZERO); + goto fail; + } +#endif // SD_PROTECT_BLOCK_ZERO + + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD24, blockNumber)) { + error(SD_CARD_ERROR_CMD24); + goto fail; + } + if (!writeData(DATA_START_BLOCK, src)) goto fail; + + // wait for flash programming to complete + if (!waitNotBusy(SD_WRITE_TIMEOUT)) { + error(SD_CARD_ERROR_WRITE_TIMEOUT); + goto fail; + } + // response is r2 so get and check two bytes for nonzero + if (cardCommand(CMD13, 0) || spiRec()) { + error(SD_CARD_ERROR_WRITE_PROGRAMMING); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Write one data block in a multiple block write sequence */ +uint8_t Sd2Card::writeData(const uint8_t* src) { + // wait for previous write to finish + if (!waitNotBusy(SD_WRITE_TIMEOUT)) { + error(SD_CARD_ERROR_WRITE_MULTIPLE); + chipSelectHigh(); + return false; + } + return writeData(WRITE_MULTIPLE_TOKEN, src); +} +//------------------------------------------------------------------------------ +// send one block of data for write block or write multiple blocks +uint8_t Sd2Card::writeData(uint8_t token, const uint8_t* src) { +#ifdef OPTIMIZE_HARDWARE_SPI + + // send data - optimized loop + SPDR = token; + + // send two byte per iteration + for (uint16_t i = 0; i < 512; i += 2) { + while (!(SPSR & (1 << SPIF))) + ; + SPDR = src[i]; + while (!(SPSR & (1 << SPIF))) + ; + SPDR = src[i+1]; + } + + // wait for last data byte + while (!(SPSR & (1 << SPIF))) + ; + +#else // OPTIMIZE_HARDWARE_SPI + spiSend(token); + for (uint16_t i = 0; i < 512; i++) { + spiSend(src[i]); + } +#endif // OPTIMIZE_HARDWARE_SPI + spiSend(0xff); // dummy crc + spiSend(0xff); // dummy crc + + status_ = spiRec(); + if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) { + error(SD_CARD_ERROR_WRITE); + chipSelectHigh(); + return false; + } + return true; +} +//------------------------------------------------------------------------------ +/** Start a write multiple blocks sequence. + * + * \param[in] blockNumber Address of first block in sequence. + * \param[in] eraseCount The number of blocks to be pre-erased. + * + * \note This function is used with writeData() and writeStop() + * for optimized multiple block writes. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) { +#if SD_PROTECT_BLOCK_ZERO + // don't allow write to first block + if (blockNumber == 0) { + error(SD_CARD_ERROR_WRITE_BLOCK_ZERO); + goto fail; + } +#endif // SD_PROTECT_BLOCK_ZERO + // send pre-erase count + if (cardAcmd(ACMD23, eraseCount)) { + error(SD_CARD_ERROR_ACMD23); + goto fail; + } + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD25, blockNumber)) { + error(SD_CARD_ERROR_CMD25); + goto fail; + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** End a write multiple blocks sequence. + * +* \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::writeStop(void) { + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + spiSend(STOP_TRAN_TOKEN); + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + chipSelectHigh(); + return true; + + fail: + error(SD_CARD_ERROR_STOP_TRAN); + chipSelectHigh(); + return false; +} diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2Card.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2Card.h new file mode 100644 index 00000000000..9c3faff6ed8 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2Card.h @@ -0,0 +1,260 @@ +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#ifndef Sd2Card_h +#define Sd2Card_h +/** + * \file + * Sd2Card class + */ +#include "Sd2PinMap.h" +#include "SdInfo.h" +/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */ +uint8_t const SPI_FULL_SPEED = 0; +/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */ +uint8_t const SPI_HALF_SPEED = 1; +/** Set SCK rate to F_CPU/8. Sd2Card::setSckRate(). */ +uint8_t const SPI_QUARTER_SPEED = 2; +/** + * USE_SPI_LIB: if set, use the SPI library bundled with Arduino IDE, otherwise + * run with a standalone driver for AVR. + */ +#define USE_SPI_LIB +/** + * Define MEGA_SOFT_SPI non-zero to use software SPI on Mega Arduinos. + * Pins used are SS 10, MOSI 11, MISO 12, and SCK 13. + * + * MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used + * on Mega Arduinos. Software SPI works well with GPS Shield V1.1 + * but many SD cards will fail with GPS Shield V1.0. + */ +#define MEGA_SOFT_SPI 0 +//------------------------------------------------------------------------------ +#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__)) +#define SOFTWARE_SPI +#endif // MEGA_SOFT_SPI +//------------------------------------------------------------------------------ +// SPI pin definitions +// +#ifndef SOFTWARE_SPI +// hardware pin defs + +// include pins_arduino.h or variant.h depending on architecture, via Arduino.h +#include + +/** + * SD Chip Select pin + * + * Warning if this pin is redefined the hardware SS will pin will be enabled + * as an output by init(). An avr processor will not function as an SPI + * master unless SS is set to output mode. + */ +#ifndef SDCARD_SS_PIN +/** The default chip select pin for the SD card is SS. */ +uint8_t const SD_CHIP_SELECT_PIN = SS; +#else +uint8_t const SD_CHIP_SELECT_PIN = SDCARD_SS_PIN; +#endif + +// The following three pins must not be redefined for hardware SPI, +// so ensure that they are taken from pins_arduino.h or variant.h, depending on architecture. +#ifndef SDCARD_MOSI_PIN +/** SPI Master Out Slave In pin */ +uint8_t const SPI_MOSI_PIN = MOSI; +/** SPI Master In Slave Out pin */ +uint8_t const SPI_MISO_PIN = MISO; +/** SPI Clock pin */ +uint8_t const SPI_SCK_PIN = SCK; +#else +uint8_t const SPI_MOSI_PIN = SDCARD_MOSI_PIN; +uint8_t const SPI_MISO_PIN = SDCARD_MISO_PIN; +uint8_t const SPI_SCK_PIN = SDCARD_SCK_PIN; +#endif + +/** optimize loops for hardware SPI */ +#ifndef USE_SPI_LIB +#define OPTIMIZE_HARDWARE_SPI +#endif + +#else // SOFTWARE_SPI +// define software SPI pins so Mega can use unmodified GPS Shield +/** SPI chip select pin */ +uint8_t const SD_CHIP_SELECT_PIN = 10; +/** SPI Master Out Slave In pin */ +uint8_t const SPI_MOSI_PIN = 11; +/** SPI Master In Slave Out pin */ +uint8_t const SPI_MISO_PIN = 12; +/** SPI Clock pin */ +uint8_t const SPI_SCK_PIN = 13; +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** Protect block zero from write if nonzero */ +#define SD_PROTECT_BLOCK_ZERO 1 +/** init timeout ms */ +unsigned int const SD_INIT_TIMEOUT = 2000; +/** erase timeout ms */ +unsigned int const SD_ERASE_TIMEOUT = 10000; +/** read timeout ms */ +unsigned int const SD_READ_TIMEOUT = 300; +/** write time out ms */ +unsigned int const SD_WRITE_TIMEOUT = 600; +//------------------------------------------------------------------------------ +// SD card errors +/** timeout error for command CMD0 */ +uint8_t const SD_CARD_ERROR_CMD0 = 0X1; +/** CMD8 was not accepted - not a valid SD card*/ +uint8_t const SD_CARD_ERROR_CMD8 = 0X2; +/** card returned an error response for CMD17 (read block) */ +uint8_t const SD_CARD_ERROR_CMD17 = 0X3; +/** card returned an error response for CMD24 (write block) */ +uint8_t const SD_CARD_ERROR_CMD24 = 0X4; +/** WRITE_MULTIPLE_BLOCKS command failed */ +uint8_t const SD_CARD_ERROR_CMD25 = 0X05; +/** card returned an error response for CMD58 (read OCR) */ +uint8_t const SD_CARD_ERROR_CMD58 = 0X06; +/** SET_WR_BLK_ERASE_COUNT failed */ +uint8_t const SD_CARD_ERROR_ACMD23 = 0X07; +/** card's ACMD41 initialization process timeout */ +uint8_t const SD_CARD_ERROR_ACMD41 = 0X08; +/** card returned a bad CSR version field */ +uint8_t const SD_CARD_ERROR_BAD_CSD = 0X09; +/** erase block group command failed */ +uint8_t const SD_CARD_ERROR_ERASE = 0X0A; +/** card not capable of single block erase */ +uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0X0B; +/** Erase sequence timed out */ +uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0X0C; +/** card returned an error token instead of read data */ +uint8_t const SD_CARD_ERROR_READ = 0X0D; +/** read CID or CSD failed */ +uint8_t const SD_CARD_ERROR_READ_REG = 0X0E; +/** timeout while waiting for start of read data */ +uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X0F; +/** card did not accept STOP_TRAN_TOKEN */ +uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X10; +/** card returned an error token as a response to a write operation */ +uint8_t const SD_CARD_ERROR_WRITE = 0X11; +/** attempt to write protected block zero */ +uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X12; +/** card did not go ready for a multiple block write */ +uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X13; +/** card returned an error to a CMD13 status check after a write */ +uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X14; +/** timeout occurred during write programming */ +uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X15; +/** incorrect rate selected */ +uint8_t const SD_CARD_ERROR_SCK_RATE = 0X16; +//------------------------------------------------------------------------------ +// card types +/** Standard capacity V1 SD card */ +uint8_t const SD_CARD_TYPE_SD1 = 1; +/** Standard capacity V2 SD card */ +uint8_t const SD_CARD_TYPE_SD2 = 2; +/** High Capacity SD card */ +uint8_t const SD_CARD_TYPE_SDHC = 3; +//------------------------------------------------------------------------------ +/** + * \class Sd2Card + * \brief Raw access to SD and SDHC flash memory cards. + */ +class Sd2Card { + public: + /** Construct an instance of Sd2Card. */ + Sd2Card(void) : errorCode_(0), inBlock_(0), partialBlockRead_(0), type_(0) {} + uint32_t cardSize(void); + uint8_t erase(uint32_t firstBlock, uint32_t lastBlock); + uint8_t eraseSingleBlockEnable(void); + /** + * \return error code for last error. See Sd2Card.h for a list of error codes. + */ + uint8_t errorCode(void) const {return errorCode_;} + /** \return error data for last error. */ + uint8_t errorData(void) const {return status_;} + /** + * Initialize an SD flash memory card with default clock rate and chip + * select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). + */ + uint8_t init(void) { + return init(SPI_FULL_SPEED, SD_CHIP_SELECT_PIN); + } + /** + * Initialize an SD flash memory card with the selected SPI clock rate + * and the default SD chip select pin. + * See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). + */ + uint8_t init(uint8_t sckRateID) { + return init(sckRateID, SD_CHIP_SELECT_PIN); + } + uint8_t init(uint8_t sckRateID, uint8_t chipSelectPin); + void partialBlockRead(uint8_t value); + /** Returns the current value, true or false, for partial block read. */ + uint8_t partialBlockRead(void) const {return partialBlockRead_;} + uint8_t readBlock(uint32_t block, uint8_t* dst); + uint8_t readData(uint32_t block, + uint16_t offset, uint16_t count, uint8_t* dst); + /** + * Read a cards CID register. The CID contains card identification + * information such as Manufacturer ID, Product name, Product serial + * number and Manufacturing date. */ + uint8_t readCID(cid_t* cid) { + return readRegister(CMD10, cid); + } + /** + * Read a cards CSD register. The CSD contains Card-Specific Data that + * provides information regarding access to the card's contents. */ + uint8_t readCSD(csd_t* csd) { + return readRegister(CMD9, csd); + } + void readEnd(void); + uint8_t setSckRate(uint8_t sckRateID); +#ifdef USE_SPI_LIB + uint8_t setSpiClock(uint32_t clock); +#endif + /** Return the card type: SD V1, SD V2 or SDHC */ + uint8_t type(void) const {return type_;} + uint8_t writeBlock(uint32_t blockNumber, const uint8_t* src); + uint8_t writeData(const uint8_t* src); + uint8_t writeStart(uint32_t blockNumber, uint32_t eraseCount); + uint8_t writeStop(void); + private: + uint32_t block_; + uint8_t chipSelectPin_; + uint8_t errorCode_; + uint8_t inBlock_; + uint16_t offset_; + uint8_t partialBlockRead_; + uint8_t status_; + uint8_t type_; + // private functions + uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { + cardCommand(CMD55, 0); + return cardCommand(cmd, arg); + } + uint8_t cardCommand(uint8_t cmd, uint32_t arg); + void error(uint8_t code) {errorCode_ = code;} + uint8_t readRegister(uint8_t cmd, void* buf); + uint8_t sendWriteCommand(uint32_t blockNumber, uint32_t eraseCount); + void chipSelectHigh(void); + void chipSelectLow(void); + void type(uint8_t value) {type_ = value;} + uint8_t waitNotBusy(unsigned int timeoutMillis); + uint8_t writeData(uint8_t token, const uint8_t* src); + uint8_t waitStartBlock(void); +}; +#endif // Sd2Card_h diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2PinMap.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2PinMap.h new file mode 100644 index 00000000000..3e2df439a37 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/Sd2PinMap.h @@ -0,0 +1,511 @@ +/* Arduino SdFat Library + * Copyright (C) 2010 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#if defined(__arm__) // Arduino Due Board follows + +#ifndef Sd2PinMap_h +#define Sd2PinMap_h + +#include + +uint8_t const SS_PIN = SS; +uint8_t const MOSI_PIN = MOSI; +uint8_t const MISO_PIN = MISO; +uint8_t const SCK_PIN = SCK; + +#endif // Sd2PinMap_h + +#elif defined(__AVR__) // Other AVR based Boards follows + +// Warning this file was generated by a program. +#ifndef Sd2PinMap_h +#define Sd2PinMap_h +#include + +//------------------------------------------------------------------------------ +/** struct for mapping digital pins */ +struct pin_map_t { + volatile uint8_t* ddr; + volatile uint8_t* pin; + volatile uint8_t* port; + uint8_t bit; +}; +//------------------------------------------------------------------------------ +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +// Mega + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 20; +uint8_t const SCL_PIN = 21; + +// SPI port +uint8_t const SS_PIN = 53; +uint8_t const MOSI_PIN = 51; +uint8_t const MISO_PIN = 50; +uint8_t const SCK_PIN = 52; + +static const pin_map_t digitalPinMap[] = { + {&DDRE, &PINE, &PORTE, 0}, // E0 0 + {&DDRE, &PINE, &PORTE, 1}, // E1 1 + {&DDRE, &PINE, &PORTE, 4}, // E4 2 + {&DDRE, &PINE, &PORTE, 5}, // E5 3 + {&DDRG, &PING, &PORTG, 5}, // G5 4 + {&DDRE, &PINE, &PORTE, 3}, // E3 5 + {&DDRH, &PINH, &PORTH, 3}, // H3 6 + {&DDRH, &PINH, &PORTH, 4}, // H4 7 + {&DDRH, &PINH, &PORTH, 5}, // H5 8 + {&DDRH, &PINH, &PORTH, 6}, // H6 9 + {&DDRB, &PINB, &PORTB, 4}, // B4 10 + {&DDRB, &PINB, &PORTB, 5}, // B5 11 + {&DDRB, &PINB, &PORTB, 6}, // B6 12 + {&DDRB, &PINB, &PORTB, 7}, // B7 13 + {&DDRJ, &PINJ, &PORTJ, 1}, // J1 14 + {&DDRJ, &PINJ, &PORTJ, 0}, // J0 15 + {&DDRH, &PINH, &PORTH, 1}, // H1 16 + {&DDRH, &PINH, &PORTH, 0}, // H0 17 + {&DDRD, &PIND, &PORTD, 3}, // D3 18 + {&DDRD, &PIND, &PORTD, 2}, // D2 19 + {&DDRD, &PIND, &PORTD, 1}, // D1 20 + {&DDRD, &PIND, &PORTD, 0}, // D0 21 + {&DDRA, &PINA, &PORTA, 0}, // A0 22 + {&DDRA, &PINA, &PORTA, 1}, // A1 23 + {&DDRA, &PINA, &PORTA, 2}, // A2 24 + {&DDRA, &PINA, &PORTA, 3}, // A3 25 + {&DDRA, &PINA, &PORTA, 4}, // A4 26 + {&DDRA, &PINA, &PORTA, 5}, // A5 27 + {&DDRA, &PINA, &PORTA, 6}, // A6 28 + {&DDRA, &PINA, &PORTA, 7}, // A7 29 + {&DDRC, &PINC, &PORTC, 7}, // C7 30 + {&DDRC, &PINC, &PORTC, 6}, // C6 31 + {&DDRC, &PINC, &PORTC, 5}, // C5 32 + {&DDRC, &PINC, &PORTC, 4}, // C4 33 + {&DDRC, &PINC, &PORTC, 3}, // C3 34 + {&DDRC, &PINC, &PORTC, 2}, // C2 35 + {&DDRC, &PINC, &PORTC, 1}, // C1 36 + {&DDRC, &PINC, &PORTC, 0}, // C0 37 + {&DDRD, &PIND, &PORTD, 7}, // D7 38 + {&DDRG, &PING, &PORTG, 2}, // G2 39 + {&DDRG, &PING, &PORTG, 1}, // G1 40 + {&DDRG, &PING, &PORTG, 0}, // G0 41 + {&DDRL, &PINL, &PORTL, 7}, // L7 42 + {&DDRL, &PINL, &PORTL, 6}, // L6 43 + {&DDRL, &PINL, &PORTL, 5}, // L5 44 + {&DDRL, &PINL, &PORTL, 4}, // L4 45 + {&DDRL, &PINL, &PORTL, 3}, // L3 46 + {&DDRL, &PINL, &PORTL, 2}, // L2 47 + {&DDRL, &PINL, &PORTL, 1}, // L1 48 + {&DDRL, &PINL, &PORTL, 0}, // L0 49 + {&DDRB, &PINB, &PORTB, 3}, // B3 50 + {&DDRB, &PINB, &PORTB, 2}, // B2 51 + {&DDRB, &PINB, &PORTB, 1}, // B1 52 + {&DDRB, &PINB, &PORTB, 0}, // B0 53 + {&DDRF, &PINF, &PORTF, 0}, // F0 54 + {&DDRF, &PINF, &PORTF, 1}, // F1 55 + {&DDRF, &PINF, &PORTF, 2}, // F2 56 + {&DDRF, &PINF, &PORTF, 3}, // F3 57 + {&DDRF, &PINF, &PORTF, 4}, // F4 58 + {&DDRF, &PINF, &PORTF, 5}, // F5 59 + {&DDRF, &PINF, &PORTF, 6}, // F6 60 + {&DDRF, &PINF, &PORTF, 7}, // F7 61 + {&DDRK, &PINK, &PORTK, 0}, // K0 62 + {&DDRK, &PINK, &PORTK, 1}, // K1 63 + {&DDRK, &PINK, &PORTK, 2}, // K2 64 + {&DDRK, &PINK, &PORTK, 3}, // K3 65 + {&DDRK, &PINK, &PORTK, 4}, // K4 66 + {&DDRK, &PINK, &PORTK, 5}, // K5 67 + {&DDRK, &PINK, &PORTK, 6}, // K6 68 + {&DDRK, &PINK, &PORTK, 7} // K7 69 +}; +//------------------------------------------------------------------------------ +#elif (defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)) && defined(CORE_MICRODUINO) +// Microduino Core+ + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 20; +uint8_t const SCL_PIN = 21; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 PD0 + {&DDRD, &PIND, &PORTD, 1}, // D1 PD1 + {&DDRD, &PIND, &PORTD, 2}, // D2 PD2 + {&DDRD, &PIND, &PORTD, 3}, // D3 PD3 + {&DDRB, &PINB, &PORTB, 0}, // D4 PB0 + {&DDRB, &PINB, &PORTB, 1}, // D5 PB1 + {&DDRB, &PINB, &PORTB, 2}, // D6 PB2 + {&DDRB, &PINB, &PORTB, 3}, // D7 PB3 + {&DDRD, &PIND, &PORTD, 6}, // D8 PD6 + {&DDRD, &PIND, &PORTD, 5}, // D9 PD5 + {&DDRB, &PINB, &PORTB, 4}, // D10 PB4 + {&DDRB, &PINB, &PORTB, 5}, // D11 PB5 + {&DDRB, &PINB, &PORTB, 6}, // D12 PB6 + {&DDRB, &PINB, &PORTB, 7}, // D13 PB7 + {&DDRC, &PINC, &PORTC, 7}, // D14 PC7 + {&DDRC, &PINC, &PORTC, 6}, // D15 PC6 + {&DDRC, &PINC, &PORTC, 5}, // D16 PC5 + {&DDRC, &PINC, &PORTC, 4}, // D17 PC4 + {&DDRC, &PINC, &PORTC, 3}, // D18 PC3 + {&DDRC, &PINC, &PORTC, 2}, // D19 PC2 + {&DDRC, &PINC, &PORTC, 1}, // D20 PC1 + {&DDRC, &PINC, &PORTC, 0}, // D21 PC0 + {&DDRD, &PIND, &PORTD, 4}, // D22 PD4 + {&DDRD, &PIND, &PORTD, 7}, // D23 PD7 + {&DDRA, &PINA, &PORTA, 7}, // D24 PA7 + {&DDRA, &PINA, &PORTA, 6}, // D25 PA6 + {&DDRA, &PINA, &PORTA, 5}, // D26 PA5 + {&DDRA, &PINA, &PORTA, 4}, // D27 PA4 + {&DDRA, &PINA, &PORTA, 3}, // D28 PA3 + {&DDRA, &PINA, &PORTA, 2}, // D29 PA2 + {&DDRA, &PINA, &PORTA, 1}, // D30 PA1 + {&DDRA, &PINA, &PORTA, 0} // D31 PA0 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega128RFA1__) && defined(CORE_MICRODUINO) +// Microduino Core RF + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PINE, &PORTE, 0}, // D0 PE0 + {&DDRD, &PINE, &PORTE, 1}, // D1 PE1 + {&DDRD, &PIND, &PORTD, 2}, // D2 PD2 + {&DDRD, &PIND, &PORTD, 3}, // D3 PD3 + {&DDRB, &PINE, &PORTE, 3}, // D4 PE3 + {&DDRB, &PINE, &PORTE, 4}, // D5 PE4 + {&DDRB, &PINE, &PORTE, 5}, // D6 PE5 + {&DDRB, &PINB, &PORTB, 7}, // D7 PB7 + {&DDRD, &PINB, &PORTB, 6}, // D8 PB6 + {&DDRD, &PINB, &PORTB, 5}, // D9 PB5 + {&DDRB, &PINB, &PORTB, 4}, // D10 PB4 + {&DDRB, &PINB, &PORTB, 2}, // D11 PB2 + {&DDRB, &PINB, &PORTB, 3}, // D12 PB3 + {&DDRB, &PINB, &PORTB, 1}, // D13 PB1 + {&DDRF, &PINF, &PORTF, 7}, // D14 PF7 + {&DDRF, &PINF, &PORTF, 6}, // D15 PF6 + {&DDRF, &PINF, &PORTF, 5}, // D16 PF5 + {&DDRF, &PINF, &PORTF, 4}, // D17 PF4 + {&DDRD, &PIND, &PORTD, 1}, // D18 PD1 + {&DDRD, &PIND, &PORTD, 0}, // D19 PD0 + {&DDRF, &PINF, &PORTF, 3}, // D20 PF3 + {&DDRF, &PINF, &PORTF, 2}, // D21 PF2 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega32U4__) && defined(CORE_MICRODUINO) +// Microduino Core USB + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 2}, // D0 - PD2 + {&DDRD, &PIND, &PORTD, 3}, // D1 - PD3 + {&DDRE, &PINE, &PORTE, 6}, // D2 - PE6 + {&DDRD, &PIND, &PORTD, 6}, // D3 - PD6 + {&DDRD, &PIND, &PORTD, 7}, // D4 - PD7 + {&DDRC, &PINC, &PORTC, 6}, // D5 - PC6 + {&DDRC, &PINC, &PORTC, 7}, // D6 - PC7 + {&DDRE, &PINE, &PORTE, 7}, // D7 - PE7 + {&DDRB, &PINB, &PORTB, 6}, // D8 - PB6 + {&DDRB, &PINB, &PORTB, 5}, // D9 - PB5 + {&DDRB, &PINB, &PORTB, 0}, // D10 - PB0 + {&DDRB, &PINB, &PORTB, 2}, // D11 - MOSI - PB2 + {&DDRB, &PINB, &PORTB, 3}, // D12 -MISO - PB3 + {&DDRB, &PINB, &PORTB, 1}, // D13 -SCK - PB1 + {&DDRF, &PINF, &PORTF, 7}, // D14 - A0 - PF7 + {&DDRF, &PINF, &PORTF, 6}, // D15 - A1 - PF6 + {&DDRF, &PINF, &PORTF, 5}, // D16 - A2 - PF5 + {&DDRF, &PINF, &PORTF, 4}, // D17 - A3 - PF4 + {&DDRD, &PIND, &PORTD, 1}, // D18 - PD1 + {&DDRD, &PIND, &PORTD, 0}, // D19 - PD0 + {&DDRF, &PINF, &PORTF, 1}, // D20 - A6 - PF1 + {&DDRF, &PINF, &PORTF, 0}, // D21 - A7 - PF0 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) +// Sanguino + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 17; +uint8_t const SCL_PIN = 18; + +// SPI port +uint8_t const SS_PIN = 4; +uint8_t const MOSI_PIN = 5; +uint8_t const MISO_PIN = 6; +uint8_t const SCK_PIN = 7; + +static const pin_map_t digitalPinMap[] = { + {&DDRB, &PINB, &PORTB, 0}, // B0 0 + {&DDRB, &PINB, &PORTB, 1}, // B1 1 + {&DDRB, &PINB, &PORTB, 2}, // B2 2 + {&DDRB, &PINB, &PORTB, 3}, // B3 3 + {&DDRB, &PINB, &PORTB, 4}, // B4 4 + {&DDRB, &PINB, &PORTB, 5}, // B5 5 + {&DDRB, &PINB, &PORTB, 6}, // B6 6 + {&DDRB, &PINB, &PORTB, 7}, // B7 7 + {&DDRD, &PIND, &PORTD, 0}, // D0 8 + {&DDRD, &PIND, &PORTD, 1}, // D1 9 + {&DDRD, &PIND, &PORTD, 2}, // D2 10 + {&DDRD, &PIND, &PORTD, 3}, // D3 11 + {&DDRD, &PIND, &PORTD, 4}, // D4 12 + {&DDRD, &PIND, &PORTD, 5}, // D5 13 + {&DDRD, &PIND, &PORTD, 6}, // D6 14 + {&DDRD, &PIND, &PORTD, 7}, // D7 15 + {&DDRC, &PINC, &PORTC, 0}, // C0 16 + {&DDRC, &PINC, &PORTC, 1}, // C1 17 + {&DDRC, &PINC, &PORTC, 2}, // C2 18 + {&DDRC, &PINC, &PORTC, 3}, // C3 19 + {&DDRC, &PINC, &PORTC, 4}, // C4 20 + {&DDRC, &PINC, &PORTC, 5}, // C5 21 + {&DDRC, &PINC, &PORTC, 6}, // C6 22 + {&DDRC, &PINC, &PORTC, 7}, // C7 23 + {&DDRA, &PINA, &PORTA, 7}, // A7 24 + {&DDRA, &PINA, &PORTA, 6}, // A6 25 + {&DDRA, &PINA, &PORTA, 5}, // A5 26 + {&DDRA, &PINA, &PORTA, 4}, // A4 27 + {&DDRA, &PINA, &PORTA, 3}, // A3 28 + {&DDRA, &PINA, &PORTA, 2}, // A2 29 + {&DDRA, &PINA, &PORTA, 1}, // A1 30 + {&DDRA, &PINA, &PORTA, 0} // A0 31 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega32U4__) +// Leonardo + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 2; +uint8_t const SCL_PIN = 3; + +// SPI port +uint8_t const SS_PIN = 17; +uint8_t const MOSI_PIN = 16; +uint8_t const MISO_PIN = 14; +uint8_t const SCK_PIN = 15; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 2}, // D2 0 + {&DDRD, &PIND, &PORTD, 3}, // D3 1 + {&DDRD, &PIND, &PORTD, 1}, // D1 2 + {&DDRD, &PIND, &PORTD, 0}, // D0 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRC, &PINC, &PORTC, 6}, // C6 5 + {&DDRD, &PIND, &PORTD, 7}, // D7 6 + {&DDRE, &PINE, &PORTE, 6}, // E6 7 + {&DDRB, &PINB, &PORTB, 4}, // B4 8 + {&DDRB, &PINB, &PORTB, 5}, // B5 9 + {&DDRB, &PINB, &PORTB, 6}, // B6 10 + {&DDRB, &PINB, &PORTB, 7}, // B7 11 + {&DDRD, &PIND, &PORTD, 6}, // D6 12 + {&DDRC, &PINC, &PORTC, 7}, // C7 13 + {&DDRB, &PINB, &PORTB, 3}, // B3 14 + {&DDRB, &PINB, &PORTB, 1}, // B1 15 + {&DDRB, &PINB, &PORTB, 2}, // B2 16 + {&DDRB, &PINB, &PORTB, 0}, // B0 17 + {&DDRF, &PINF, &PORTF, 7}, // F7 18 + {&DDRF, &PINF, &PORTF, 6}, // F6 19 + {&DDRF, &PINF, &PORTF, 5}, // F5 20 + {&DDRF, &PINF, &PORTF, 4}, // F4 21 + {&DDRF, &PINF, &PORTF, 1}, // F1 22 + {&DDRF, &PINF, &PORTF, 0}, // F0 23 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) +// Teensy++ 1.0 & 2.0 + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 1; +uint8_t const SCL_PIN = 0; + +// SPI port +uint8_t const SS_PIN = 20; +uint8_t const MOSI_PIN = 22; +uint8_t const MISO_PIN = 23; +uint8_t const SCK_PIN = 21; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRE, &PINE, &PORTE, 0}, // E0 8 + {&DDRE, &PINE, &PORTE, 1}, // E1 9 + {&DDRC, &PINC, &PORTC, 0}, // C0 10 + {&DDRC, &PINC, &PORTC, 1}, // C1 11 + {&DDRC, &PINC, &PORTC, 2}, // C2 12 + {&DDRC, &PINC, &PORTC, 3}, // C3 13 + {&DDRC, &PINC, &PORTC, 4}, // C4 14 + {&DDRC, &PINC, &PORTC, 5}, // C5 15 + {&DDRC, &PINC, &PORTC, 6}, // C6 16 + {&DDRC, &PINC, &PORTC, 7}, // C7 17 + {&DDRE, &PINE, &PORTE, 6}, // E6 18 + {&DDRE, &PINE, &PORTE, 7}, // E7 19 + {&DDRB, &PINB, &PORTB, 0}, // B0 20 + {&DDRB, &PINB, &PORTB, 1}, // B1 21 + {&DDRB, &PINB, &PORTB, 2}, // B2 22 + {&DDRB, &PINB, &PORTB, 3}, // B3 23 + {&DDRB, &PINB, &PORTB, 4}, // B4 24 + {&DDRB, &PINB, &PORTB, 5}, // B5 25 + {&DDRB, &PINB, &PORTB, 6}, // B6 26 + {&DDRB, &PINB, &PORTB, 7}, // B7 27 + {&DDRA, &PINA, &PORTA, 0}, // A0 28 + {&DDRA, &PINA, &PORTA, 1}, // A1 29 + {&DDRA, &PINA, &PORTA, 2}, // A2 30 + {&DDRA, &PINA, &PORTA, 3}, // A3 31 + {&DDRA, &PINA, &PORTA, 4}, // A4 32 + {&DDRA, &PINA, &PORTA, 5}, // A5 33 + {&DDRA, &PINA, &PORTA, 6}, // A6 34 + {&DDRA, &PINA, &PORTA, 7}, // A7 35 + {&DDRE, &PINE, &PORTE, 4}, // E4 36 + {&DDRE, &PINE, &PORTE, 5}, // E5 37 + {&DDRF, &PINF, &PORTF, 0}, // F0 38 + {&DDRF, &PINF, &PORTF, 1}, // F1 39 + {&DDRF, &PINF, &PORTF, 2}, // F2 40 + {&DDRF, &PINF, &PORTF, 3}, // F3 41 + {&DDRF, &PINF, &PORTF, 4}, // F4 42 + {&DDRF, &PINF, &PORTF, 5}, // F5 43 + {&DDRF, &PINF, &PORTF, 6}, // F6 44 + {&DDRF, &PINF, &PORTF, 7} // F7 45 +}; +//------------------------------------------------------------------------------ +#else // defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +// 168 and 328 Arduinos + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRB, &PINB, &PORTB, 0}, // B0 8 + {&DDRB, &PINB, &PORTB, 1}, // B1 9 + {&DDRB, &PINB, &PORTB, 2}, // B2 10 + {&DDRB, &PINB, &PORTB, 3}, // B3 11 + {&DDRB, &PINB, &PORTB, 4}, // B4 12 + {&DDRB, &PINB, &PORTB, 5}, // B5 13 + {&DDRC, &PINC, &PORTC, 0}, // C0 14 + {&DDRC, &PINC, &PORTC, 1}, // C1 15 + {&DDRC, &PINC, &PORTC, 2}, // C2 16 + {&DDRC, &PINC, &PORTC, 3}, // C3 17 + {&DDRC, &PINC, &PORTC, 4}, // C4 18 + {&DDRC, &PINC, &PORTC, 5} // C5 19 +}; +#endif // defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +//------------------------------------------------------------------------------ +static const uint8_t digitalPinCount = sizeof(digitalPinMap)/sizeof(pin_map_t); + +uint8_t badPinNumber(void) + __attribute__((error("Pin number is too large or not a constant"))); + +static inline __attribute__((always_inline)) + uint8_t getPinMode(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].ddr >> digitalPinMap[pin].bit) & 1; + } else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void setPinMode(uint8_t pin, uint8_t mode) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (mode) { + *digitalPinMap[pin].ddr |= 1 << digitalPinMap[pin].bit; + } else { + *digitalPinMap[pin].ddr &= ~(1 << digitalPinMap[pin].bit); + } + } else { + badPinNumber(); + } +} +static inline __attribute__((always_inline)) + uint8_t fastDigitalRead(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].pin >> digitalPinMap[pin].bit) & 1; + } else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void fastDigitalWrite(uint8_t pin, uint8_t value) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (value) { + *digitalPinMap[pin].port |= 1 << digitalPinMap[pin].bit; + } else { + *digitalPinMap[pin].port &= ~(1 << digitalPinMap[pin].bit); + } + } else { + badPinNumber(); + } +} +#endif // Sd2PinMap_h + +#elif defined (__CPU_ARC__) + +#if defined (__ARDUINO_ARC__) +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; +uint8_t const SCL_PIN = 19; + +// SPI port +uint8_t const SS_PIN = 10; +uint8_t const MOSI_PIN = 11; +uint8_t const MISO_PIN = 12; +uint8_t const SCK_PIN = 13; + +#endif // Arduino ARC + +#else +#error Architecture or board not supported. +#endif diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFat.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFat.h new file mode 100644 index 00000000000..3ce3133c46e --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFat.h @@ -0,0 +1,551 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#ifndef SdFat_h +#define SdFat_h +/** + * \file + * SdFile and SdVolume classes + */ +#if defined (__AVR__) || defined (__CPU_ARC__) +#include +#endif +#include "Sd2Card.h" +#include "FatStructs.h" +#include "Print.h" +//------------------------------------------------------------------------------ +/** + * Allow use of deprecated functions if non-zero + */ +#define ALLOW_DEPRECATED_FUNCTIONS 1 +//------------------------------------------------------------------------------ +// forward declaration since SdVolume is used in SdFile +class SdVolume; +//============================================================================== +// SdFile class + +// flags for ls() +/** ls() flag to print modify date */ +uint8_t const LS_DATE = 1; +/** ls() flag to print file size */ +uint8_t const LS_SIZE = 2; +/** ls() flag for recursive list of subdirectories */ +uint8_t const LS_R = 4; + +// use the gnu style oflag in open() +/** open() oflag for reading */ +uint8_t const O_READ = 0X01; +/** open() oflag - same as O_READ */ +uint8_t const O_RDONLY = O_READ; +/** open() oflag for write */ +uint8_t const O_WRITE = 0X02; +/** open() oflag - same as O_WRITE */ +uint8_t const O_WRONLY = O_WRITE; +/** open() oflag for reading and writing */ +uint8_t const O_RDWR = (O_READ | O_WRITE); +/** open() oflag mask for access modes */ +uint8_t const O_ACCMODE = (O_READ | O_WRITE); +/** The file offset shall be set to the end of the file prior to each write. */ +uint8_t const O_APPEND = 0X04; +/** synchronous writes - call sync() after each write */ +uint8_t const O_SYNC = 0X08; +/** create the file if nonexistent */ +uint8_t const O_CREAT = 0X10; +/** If O_CREAT and O_EXCL are set, open() shall fail if the file exists */ +uint8_t const O_EXCL = 0X20; +/** truncate the file to zero length */ +uint8_t const O_TRUNC = 0X40; + +// flags for timestamp +/** set the file's last access date */ +uint8_t const T_ACCESS = 1; +/** set the file's creation date and time */ +uint8_t const T_CREATE = 2; +/** Set the file's write date and time */ +uint8_t const T_WRITE = 4; +// values for type_ +/** This SdFile has not been opened. */ +uint8_t const FAT_FILE_TYPE_CLOSED = 0; +/** SdFile for a file */ +uint8_t const FAT_FILE_TYPE_NORMAL = 1; +/** SdFile for a FAT16 root directory */ +uint8_t const FAT_FILE_TYPE_ROOT16 = 2; +/** SdFile for a FAT32 root directory */ +uint8_t const FAT_FILE_TYPE_ROOT32 = 3; +/** SdFile for a subdirectory */ +uint8_t const FAT_FILE_TYPE_SUBDIR = 4; +/** Test value for directory type */ +uint8_t const FAT_FILE_TYPE_MIN_DIR = FAT_FILE_TYPE_ROOT16; + +/** date field for FAT directory entry */ +static inline uint16_t FAT_DATE(uint16_t year, uint8_t month, uint8_t day) { + return (year - 1980) << 9 | month << 5 | day; +} +/** year part of FAT directory date field */ +static inline uint16_t FAT_YEAR(uint16_t fatDate) { + return 1980 + (fatDate >> 9); +} +/** month part of FAT directory date field */ +static inline uint8_t FAT_MONTH(uint16_t fatDate) { + return (fatDate >> 5) & 0XF; +} +/** day part of FAT directory date field */ +static inline uint8_t FAT_DAY(uint16_t fatDate) { + return fatDate & 0X1F; +} +/** time field for FAT directory entry */ +static inline uint16_t FAT_TIME(uint8_t hour, uint8_t minute, uint8_t second) { + return hour << 11 | minute << 5 | second >> 1; +} +/** hour part of FAT directory time field */ +static inline uint8_t FAT_HOUR(uint16_t fatTime) { + return fatTime >> 11; +} +/** minute part of FAT directory time field */ +static inline uint8_t FAT_MINUTE(uint16_t fatTime) { + return(fatTime >> 5) & 0X3F; +} +/** second part of FAT directory time field */ +static inline uint8_t FAT_SECOND(uint16_t fatTime) { + return 2*(fatTime & 0X1F); +} +/** Default date for file timestamps is 1 Jan 2000 */ +uint16_t const FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1; +/** Default time for file timestamp is 1 am */ +uint16_t const FAT_DEFAULT_TIME = (1 << 11); +//------------------------------------------------------------------------------ +/** + * \class SdFile + * \brief Access FAT16 and FAT32 files on SD and SDHC cards. + */ +class SdFile : public Print { + public: + /** Create an instance of SdFile. */ + SdFile(void) : type_(FAT_FILE_TYPE_CLOSED) {} + /** + * writeError is set to true if an error occurs during a write(). + * Set writeError to false before calling print() and/or write() and check + * for true after calls to print() and/or write(). + */ + //bool writeError; + /** + * Cancel unbuffered reads for this file. + * See setUnbufferedRead() + */ + void clearUnbufferedRead(void) { + flags_ &= ~F_FILE_UNBUFFERED_READ; + } + uint8_t close(void); + uint8_t contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock); + uint8_t createContiguous(SdFile* dirFile, + const char* fileName, uint32_t size); + /** \return The current cluster number for a file or directory. */ + uint32_t curCluster(void) const {return curCluster_;} + /** \return The current position for a file or directory. */ + uint32_t curPosition(void) const {return curPosition_;} + /** + * Set the date/time callback function + * + * \param[in] dateTime The user's call back function. The callback + * function is of the form: + * + * \code + * void dateTime(uint16_t* date, uint16_t* time) { + * uint16_t year; + * uint8_t month, day, hour, minute, second; + * + * // User gets date and time from GPS or real-time clock here + * + * // return date using FAT_DATE macro to format fields + * *date = FAT_DATE(year, month, day); + * + * // return time using FAT_TIME macro to format fields + * *time = FAT_TIME(hour, minute, second); + * } + * \endcode + * + * Sets the function that is called when a file is created or when + * a file's directory entry is modified by sync(). All timestamps, + * access, creation, and modify, are set when a file is created. + * sync() maintains the last access date and last modify date/time. + * + * See the timestamp() function. + */ + static void dateTimeCallback( + void (*dateTime)(uint16_t* date, uint16_t* time)) { + dateTime_ = dateTime; + } + /** + * Cancel the date/time callback function. + */ + static void dateTimeCallbackCancel(void) { + // use explicit zero since NULL is not defined for Sanguino + dateTime_ = 0; + } + /** \return Address of the block that contains this file's directory. */ + uint32_t dirBlock(void) const {return dirBlock_;} + uint8_t dirEntry(dir_t* dir); + /** \return Index of this file's directory in the block dirBlock. */ + uint8_t dirIndex(void) const {return dirIndex_;} + static void dirName(const dir_t& dir, char* name); + /** \return The total number of bytes in a file or directory. */ + uint32_t fileSize(void) const {return fileSize_;} + /** \return The first cluster number for a file or directory. */ + uint32_t firstCluster(void) const {return firstCluster_;} + /** \return True if this is a SdFile for a directory else false. */ + uint8_t isDir(void) const {return type_ >= FAT_FILE_TYPE_MIN_DIR;} + /** \return True if this is a SdFile for a file else false. */ + uint8_t isFile(void) const {return type_ == FAT_FILE_TYPE_NORMAL;} + /** \return True if this is a SdFile for an open file/directory else false. */ + uint8_t isOpen(void) const {return type_ != FAT_FILE_TYPE_CLOSED;} + /** \return True if this is a SdFile for a subdirectory else false. */ + uint8_t isSubDir(void) const {return type_ == FAT_FILE_TYPE_SUBDIR;} + /** \return True if this is a SdFile for the root directory. */ + uint8_t isRoot(void) const { + return type_ == FAT_FILE_TYPE_ROOT16 || type_ == FAT_FILE_TYPE_ROOT32; + } + void ls(uint8_t flags = 0, uint8_t indent = 0); + uint8_t makeDir(SdFile* dir, const char* dirName); + uint8_t open(SdFile* dirFile, uint16_t index, uint8_t oflag); + uint8_t open(SdFile* dirFile, const char* fileName, uint8_t oflag); + + uint8_t openRoot(SdVolume* vol); + static void printDirName(const dir_t& dir, uint8_t width); + static void printFatDate(uint16_t fatDate); + static void printFatTime(uint16_t fatTime); + static void printTwoDigits(uint8_t v); + /** + * Read the next byte from a file. + * + * \return For success read returns the next byte in the file as an int. + * If an error occurs or end of file is reached -1 is returned. + */ + int16_t read(void) { + uint8_t b; + return read(&b, 1) == 1 ? b : -1; + } + int16_t read(void* buf, uint16_t nbyte); + int8_t readDir(dir_t* dir); + static uint8_t remove(SdFile* dirFile, const char* fileName); + uint8_t remove(void); + /** Set the file's current position to zero. */ + void rewind(void) { + curPosition_ = curCluster_ = 0; + } + uint8_t rmDir(void); + uint8_t rmRfStar(void); + /** Set the files position to current position + \a pos. See seekSet(). */ + uint8_t seekCur(uint32_t pos) { + return seekSet(curPosition_ + pos); + } + /** + * Set the files current position to end of file. Useful to position + * a file for append. See seekSet(). + */ + uint8_t seekEnd(void) {return seekSet(fileSize_);} + uint8_t seekSet(uint32_t pos); + /** + * Use unbuffered reads to access this file. Used with Wave + * Shield ISR. Used with Sd2Card::partialBlockRead() in WaveRP. + * + * Not recommended for normal applications. + */ + void setUnbufferedRead(void) { + if (isFile()) flags_ |= F_FILE_UNBUFFERED_READ; + } + uint8_t timestamp(uint8_t flag, uint16_t year, uint8_t month, uint8_t day, + uint8_t hour, uint8_t minute, uint8_t second); + uint8_t sync(void); + /** Type of this SdFile. You should use isFile() or isDir() instead of type() + * if possible. + * + * \return The file or directory type. + */ + uint8_t type(void) const {return type_;} + uint8_t truncate(uint32_t size); + /** \return Unbuffered read flag. */ + uint8_t unbufferedRead(void) const { + return flags_ & F_FILE_UNBUFFERED_READ; + } + /** \return SdVolume that contains this file. */ + SdVolume* volume(void) const {return vol_;} + size_t write(uint8_t b); + size_t write(const void* buf, uint16_t nbyte); + size_t write(const char* str); +#ifdef __AVR__ + void write_P(PGM_P str); + void writeln_P(PGM_P str); +#endif +//------------------------------------------------------------------------------ +#if ALLOW_DEPRECATED_FUNCTIONS +// Deprecated functions - suppress cpplint warnings with NOLINT comment + /** \deprecated Use: + * uint8_t SdFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock); + */ + uint8_t contiguousRange(uint32_t& bgnBlock, uint32_t& endBlock) { // NOLINT + return contiguousRange(&bgnBlock, &endBlock); + } + /** \deprecated Use: + * uint8_t SdFile::createContiguous(SdFile* dirFile, + * const char* fileName, uint32_t size) + */ + uint8_t createContiguous(SdFile& dirFile, // NOLINT + const char* fileName, uint32_t size) { + return createContiguous(&dirFile, fileName, size); + } + + /** + * \deprecated Use: + * static void SdFile::dateTimeCallback( + * void (*dateTime)(uint16_t* date, uint16_t* time)); + */ + static void dateTimeCallback( + void (*dateTime)(uint16_t& date, uint16_t& time)) { // NOLINT + oldDateTime_ = dateTime; + dateTime_ = dateTime ? oldToNew : 0; + } + /** \deprecated Use: uint8_t SdFile::dirEntry(dir_t* dir); */ + uint8_t dirEntry(dir_t& dir) {return dirEntry(&dir);} // NOLINT + /** \deprecated Use: + * uint8_t SdFile::makeDir(SdFile* dir, const char* dirName); + */ + uint8_t makeDir(SdFile& dir, const char* dirName) { // NOLINT + return makeDir(&dir, dirName); + } + /** \deprecated Use: + * uint8_t SdFile::open(SdFile* dirFile, const char* fileName, uint8_t oflag); + */ + uint8_t open(SdFile& dirFile, // NOLINT + const char* fileName, uint8_t oflag) { + return open(&dirFile, fileName, oflag); + } + /** \deprecated Do not use in new apps */ + uint8_t open(SdFile& dirFile, const char* fileName) { // NOLINT + return open(dirFile, fileName, O_RDWR); + } + /** \deprecated Use: + * uint8_t SdFile::open(SdFile* dirFile, uint16_t index, uint8_t oflag); + */ + uint8_t open(SdFile& dirFile, uint16_t index, uint8_t oflag) { // NOLINT + return open(&dirFile, index, oflag); + } + /** \deprecated Use: uint8_t SdFile::openRoot(SdVolume* vol); */ + uint8_t openRoot(SdVolume& vol) {return openRoot(&vol);} // NOLINT + + /** \deprecated Use: int8_t SdFile::readDir(dir_t* dir); */ + int8_t readDir(dir_t& dir) {return readDir(&dir);} // NOLINT + /** \deprecated Use: + * static uint8_t SdFile::remove(SdFile* dirFile, const char* fileName); + */ + static uint8_t remove(SdFile& dirFile, const char* fileName) { // NOLINT + return remove(&dirFile, fileName); + } +//------------------------------------------------------------------------------ +// rest are private + private: + static void (*oldDateTime_)(uint16_t& date, uint16_t& time); // NOLINT + static void oldToNew(uint16_t* date, uint16_t* time) { + uint16_t d; + uint16_t t; + oldDateTime_(d, t); + *date = d; + *time = t; + } +#endif // ALLOW_DEPRECATED_FUNCTIONS + private: + // bits defined in flags_ + // should be 0XF + static uint8_t const F_OFLAG = (O_ACCMODE | O_APPEND | O_SYNC); + // available bits + static uint8_t const F_UNUSED = 0X30; + // use unbuffered SD read + static uint8_t const F_FILE_UNBUFFERED_READ = 0X40; + // sync of directory entry required + static uint8_t const F_FILE_DIR_DIRTY = 0X80; + +// make sure F_OFLAG is ok +#if ((F_UNUSED | F_FILE_UNBUFFERED_READ | F_FILE_DIR_DIRTY) & F_OFLAG) +#error flags_ bits conflict +#endif // flags_ bits + + // private data + uint8_t flags_; // See above for definition of flags_ bits + uint8_t type_; // type of file see above for values + uint32_t curCluster_; // cluster for current file position + uint32_t curPosition_; // current file position in bytes from beginning + uint32_t dirBlock_; // SD block that contains directory entry for file + uint8_t dirIndex_; // index of entry in dirBlock 0 <= dirIndex_ <= 0XF + uint32_t fileSize_; // file size in bytes + uint32_t firstCluster_; // first cluster of file + SdVolume* vol_; // volume where file is located + + // private functions + uint8_t addCluster(void); + uint8_t addDirCluster(void); + dir_t* cacheDirEntry(uint8_t action); + static void (*dateTime_)(uint16_t* date, uint16_t* time); + static uint8_t make83Name(const char* str, uint8_t* name); + uint8_t openCachedEntry(uint8_t cacheIndex, uint8_t oflags); + dir_t* readDirCache(void); +}; +//============================================================================== +// SdVolume class +/** + * \brief Cache for an SD data block + */ +union cache_t { + /** Used to access cached file data blocks. */ + uint8_t data[512]; + /** Used to access cached FAT16 entries. */ + uint16_t fat16[256]; + /** Used to access cached FAT32 entries. */ + uint32_t fat32[128]; + /** Used to access cached directory entries. */ + dir_t dir[16]; + /** Used to access a cached MasterBoot Record. */ + mbr_t mbr; + /** Used to access to a cached FAT boot sector. */ + fbs_t fbs; +}; +//------------------------------------------------------------------------------ +/** + * \class SdVolume + * \brief Access FAT16 and FAT32 volumes on SD and SDHC cards. + */ +class SdVolume { + public: + /** Create an instance of SdVolume */ + SdVolume(void) :allocSearchStart_(2), fatType_(0) {} + /** Clear the cache and returns a pointer to the cache. Used by the WaveRP + * recorder to do raw write to the SD card. Not for normal apps. + */ + static uint8_t* cacheClear(void) { + cacheFlush(); + cacheBlockNumber_ = 0XFFFFFFFF; + return cacheBuffer_.data; + } + /** + * Initialize a FAT volume. Try partition one first then try super + * floppy format. + * + * \param[in] dev The Sd2Card where the volume is located. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. Reasons for + * failure include not finding a valid partition, not finding a valid + * FAT file system or an I/O error. + */ + uint8_t init(Sd2Card* dev) { return init(dev, 1) ? true : init(dev, 0);} + uint8_t init(Sd2Card* dev, uint8_t part); + + // inline functions that return volume info + /** \return The volume's cluster size in blocks. */ + uint8_t blocksPerCluster(void) const {return blocksPerCluster_;} + /** \return The number of blocks in one FAT. */ + uint32_t blocksPerFat(void) const {return blocksPerFat_;} + /** \return The total number of clusters in the volume. */ + uint32_t clusterCount(void) const {return clusterCount_;} + /** \return The shift count required to multiply by blocksPerCluster. */ + uint8_t clusterSizeShift(void) const {return clusterSizeShift_;} + /** \return The logical block number for the start of file data. */ + uint32_t dataStartBlock(void) const {return dataStartBlock_;} + /** \return The number of FAT structures on the volume. */ + uint8_t fatCount(void) const {return fatCount_;} + /** \return The logical block number for the start of the first FAT. */ + uint32_t fatStartBlock(void) const {return fatStartBlock_;} + /** \return The FAT type of the volume. Values are 12, 16 or 32. */ + uint8_t fatType(void) const {return fatType_;} + /** \return The number of entries in the root directory for FAT16 volumes. */ + uint32_t rootDirEntryCount(void) const {return rootDirEntryCount_;} + /** \return The logical block number for the start of the root directory + on FAT16 volumes or the first cluster number on FAT32 volumes. */ + uint32_t rootDirStart(void) const {return rootDirStart_;} + /** return a pointer to the Sd2Card object for this volume */ + static Sd2Card* sdCard(void) {return sdCard_;} +//------------------------------------------------------------------------------ +#if ALLOW_DEPRECATED_FUNCTIONS + // Deprecated functions - suppress cpplint warnings with NOLINT comment + /** \deprecated Use: uint8_t SdVolume::init(Sd2Card* dev); */ + uint8_t init(Sd2Card& dev) {return init(&dev);} // NOLINT + + /** \deprecated Use: uint8_t SdVolume::init(Sd2Card* dev, uint8_t vol); */ + uint8_t init(Sd2Card& dev, uint8_t part) { // NOLINT + return init(&dev, part); + } +#endif // ALLOW_DEPRECATED_FUNCTIONS +//------------------------------------------------------------------------------ + private: + // Allow SdFile access to SdVolume private data. + friend class SdFile; + + // value for action argument in cacheRawBlock to indicate read from cache + static uint8_t const CACHE_FOR_READ = 0; + // value for action argument in cacheRawBlock to indicate cache dirty + static uint8_t const CACHE_FOR_WRITE = 1; + + static cache_t cacheBuffer_; // 512 byte cache for device blocks + static uint32_t cacheBlockNumber_; // Logical number of block in the cache + static Sd2Card* sdCard_; // Sd2Card object for cache + static uint8_t cacheDirty_; // cacheFlush() will write block if true + static uint32_t cacheMirrorBlock_; // block number for mirror FAT +// + uint32_t allocSearchStart_; // start cluster for alloc search + uint8_t blocksPerCluster_; // cluster size in blocks + uint32_t blocksPerFat_; // FAT size in blocks + uint32_t clusterCount_; // clusters in one FAT + uint8_t clusterSizeShift_; // shift to convert cluster count to block count + uint32_t dataStartBlock_; // first data block number + uint8_t fatCount_; // number of FATs on volume + uint32_t fatStartBlock_; // start block for first FAT + uint8_t fatType_; // volume type (12, 16, OR 32) + uint16_t rootDirEntryCount_; // number of entries in FAT16 root dir + uint32_t rootDirStart_; // root start block for FAT16, cluster for FAT32 + //---------------------------------------------------------------------------- + uint8_t allocContiguous(uint32_t count, uint32_t* curCluster); + uint8_t blockOfCluster(uint32_t position) const { + return (position >> 9) & (blocksPerCluster_ - 1);} + uint32_t clusterStartBlock(uint32_t cluster) const { + return dataStartBlock_ + ((cluster - 2) << clusterSizeShift_);} + uint32_t blockNumber(uint32_t cluster, uint32_t position) const { + return clusterStartBlock(cluster) + blockOfCluster(position);} + static uint8_t cacheFlush(void); + static uint8_t cacheRawBlock(uint32_t blockNumber, uint8_t action); + static void cacheSetDirty(void) {cacheDirty_ |= CACHE_FOR_WRITE;} + static uint8_t cacheZeroBlock(uint32_t blockNumber); + uint8_t chainSize(uint32_t beginCluster, uint32_t* size) const; + uint8_t fatGet(uint32_t cluster, uint32_t* value) const; + uint8_t fatPut(uint32_t cluster, uint32_t value); + uint8_t fatPutEOC(uint32_t cluster) { + return fatPut(cluster, 0x0FFFFFFF); + } + uint8_t freeChain(uint32_t cluster); + uint8_t isEOC(uint32_t cluster) const { + return cluster >= (fatType_ == 16 ? FAT16EOC_MIN : FAT32EOC_MIN); + } + uint8_t readBlock(uint32_t block, uint8_t* dst) { + return sdCard_->readBlock(block, dst);} + uint8_t readData(uint32_t block, uint16_t offset, + uint16_t count, uint8_t* dst) { + return sdCard_->readData(block, offset, count, dst); + } + uint8_t writeBlock(uint32_t block, const uint8_t* dst) { + return sdCard_->writeBlock(block, dst); + } +}; +#endif // SdFat_h diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFatUtil.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFatUtil.h new file mode 100644 index 00000000000..d1b4d538f69 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFatUtil.h @@ -0,0 +1,75 @@ +/* Arduino SdFat Library + * Copyright (C) 2008 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#ifndef SdFatUtil_h +#define SdFatUtil_h +/** + * \file + * Useful utility functions. + */ +#include +#ifdef __AVR__ +#include +/** Store and print a string in flash memory.*/ +#define PgmPrint(x) SerialPrint_P(PSTR(x)) +/** Store and print a string in flash memory followed by a CR/LF.*/ +#define PgmPrintln(x) SerialPrintln_P(PSTR(x)) +/** Defined so doxygen works for function definitions. */ +#endif +#define NOINLINE __attribute__((noinline,unused)) +#define UNUSEDOK __attribute__((unused)) +//------------------------------------------------------------------------------ +/** Return the number of bytes currently free in RAM. */ +static UNUSEDOK int FreeRam(void) { + extern int __bss_end; + extern int* __brkval; + int free_memory; + if (reinterpret_cast(__brkval) == 0) { + // if no heap use from end of bss section + free_memory = reinterpret_cast(&free_memory) + - reinterpret_cast(&__bss_end); + } else { + // use from top of stack to heap + free_memory = reinterpret_cast(&free_memory) + - reinterpret_cast(__brkval); + } + return free_memory; +} +#ifdef __AVR__ +//------------------------------------------------------------------------------ +/** + * %Print a string in flash memory to the serial port. + * + * \param[in] str Pointer to string stored in flash memory. + */ +static NOINLINE void SerialPrint_P(PGM_P str) { + for (uint8_t c; (c = pgm_read_byte(str)); str++) Serial.write(c); +} +//------------------------------------------------------------------------------ +/** + * %Print a string in flash memory followed by a CR/LF. + * + * \param[in] str Pointer to string stored in flash memory. + */ +static NOINLINE void SerialPrintln_P(PGM_P str) { + SerialPrint_P(str); + Serial.println(); +} +#endif // __AVR__ +#endif // #define SdFatUtil_h diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFatmainpage.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFatmainpage.h new file mode 100644 index 00000000000..73b3b63bd42 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFatmainpage.h @@ -0,0 +1,202 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ + +/** +\mainpage Arduino SdFat Library +
Copyright © 2009 by William Greiman +
+ +\section Intro Introduction +The Arduino SdFat Library is a minimal implementation of FAT16 and FAT32 +file systems on SD flash memory cards. Standard SD and high capacity +SDHC cards are supported. + +The SdFat only supports short 8.3 names. + +The main classes in SdFat are Sd2Card, SdVolume, and SdFile. + +The Sd2Card class supports access to standard SD cards and SDHC cards. Most +applications will only need to call the Sd2Card::init() member function. + +The SdVolume class supports FAT16 and FAT32 partitions. Most applications +will only need to call the SdVolume::init() member function. + +The SdFile class provides file access functions such as open(), read(), +remove(), write(), close() and sync(). This class supports access to the root +directory and subdirectories. + +A number of example are provided in the SdFat/examples folder. These were +developed to test SdFat and illustrate its use. + +SdFat was developed for high speed data recording. SdFat was used to implement +an audio record/play class, WaveRP, for the Adafruit Wave Shield. This +application uses special Sd2Card calls to write to contiguous files in raw mode. +These functions reduce write latency so that audio can be recorded with the +small amount of RAM in the Arduino. + +\section SDcard SD\SDHC Cards + +Arduinos access SD cards using the cards SPI protocol. PCs, Macs, and +most consumer devices use the 4-bit parallel SD protocol. A card that +functions well on A PC or Mac may not work well on the Arduino. + +Most cards have good SPI read performance but cards vary widely in SPI +write performance. Write performance is limited by how efficiently the +card manages internal erase/remapping operations. The Arduino cannot +optimize writes to reduce erase operations because of its limit RAM. + +SanDisk cards generally have good write performance. They seem to have +more internal RAM buffering than other cards and therefore can limit +the number of flash erase operations that the Arduino forces due to its +limited RAM. + +\section Hardware Hardware Configuration + +SdFat was developed using an + Adafruit Industries + Wave Shield. + +The hardware interface to the SD card should not use a resistor based level +shifter. SdFat sets the SPI bus frequency to 8 MHz which results in signal +rise times that are too slow for the edge detectors in many newer SD card +controllers when resistor voltage dividers are used. + +The 5 to 3.3 V level shifter for 5 V Arduinos should be IC based like the +74HC4050N based circuit shown in the file SdLevel.png. The Adafruit Wave Shield +uses a 74AHC125N. Gravitech sells SD and MicroSD Card Adapters based on the +74LCX245. + +If you are using a resistor based level shifter and are having problems try +setting the SPI bus frequency to 4 MHz. This can be done by using +card.init(SPI_HALF_SPEED) to initialize the SD card. + +\section comment Bugs and Comments + +If you wish to report bugs or have comments, send email to fat16lib@sbcglobal.net. + +\section SdFatClass SdFat Usage + +SdFat uses a slightly restricted form of short names. +Only printable ASCII characters are supported. No characters with code point +values greater than 127 are allowed. Space is not allowed even though space +was allowed in the API of early versions of DOS. + +Short names are limited to 8 characters followed by an optional period (.) +and extension of up to 3 characters. The characters may be any combination +of letters and digits. The following special characters are also allowed: + +$ % ' - _ @ ~ ` ! ( ) { } ^ # & + +Short names are always converted to upper case and their original case +value is lost. + +\note + The Arduino Print class uses character +at a time writes so it was necessary to use a \link SdFile::sync() sync() \endlink +function to control when data is written to the SD card. + +\par +An application which writes to a file using \link Print::print() print()\endlink, +\link Print::println() println() \endlink +or \link SdFile::write write() \endlink must call \link SdFile::sync() sync() \endlink +at the appropriate time to force data and directory information to be written +to the SD Card. Data and directory information are also written to the SD card +when \link SdFile::close() close() \endlink is called. + +\par +Applications must use care calling \link SdFile::sync() sync() \endlink +since 2048 bytes of I/O is required to update file and +directory information. This includes writing the current data block, reading +the block that contains the directory entry for update, writing the directory +block back and reading back the current data block. + +It is possible to open a file with two or more instances of SdFile. A file may +be corrupted if data is written to the file by more than one instance of SdFile. + +\section HowTo How to format SD Cards as FAT Volumes + +You should use a freshly formatted SD card for best performance. FAT +file systems become slower if many files have been created and deleted. +This is because the directory entry for a deleted file is marked as deleted, +but is not deleted. When a new file is created, these entries must be scanned +before creating the file, a flaw in the FAT design. Also files can become +fragmented which causes reads and writes to be slower. + +Microsoft operating systems support removable media formatted with a +Master Boot Record, MBR, or formatted as a super floppy with a FAT Boot Sector +in block zero. + +Microsoft operating systems expect MBR formatted removable media +to have only one partition. The first partition should be used. + +Microsoft operating systems do not support partitioning SD flash cards. +If you erase an SD card with a program like KillDisk, Most versions of +Windows will format the card as a super floppy. + +The best way to restore an SD card's format is to use SDFormatter +which can be downloaded from: + +http://www.sdcard.org/consumers/formatter/ + +SDFormatter aligns flash erase boundaries with file +system structures which reduces write latency and file system overhead. + +SDFormatter does not have an option for FAT type so it may format +small cards as FAT12. + +After the MBR is restored by SDFormatter you may need to reformat small +cards that have been formatted FAT12 to force the volume type to be FAT16. + +If you reformat the SD card with an OS utility, choose a cluster size that +will result in: + +4084 < CountOfClusters && CountOfClusters < 65525 + +The volume will then be FAT16. + +If you are formatting an SD card on OS X or Linux, be sure to use the first +partition. Format this partition with a cluster count in above range. + +\section References References + +Adafruit Industries: + +http://www.adafruit.com/ + +http://www.ladyada.net/make/waveshield/ + +The Arduino site: + +http://www.arduino.cc/ + +For more information about FAT file systems see: + +http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx + +For information about using SD cards as SPI devices see: + +http://www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_Spec.pdf + +The ATmega328 datasheet: + +http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf + + + */ diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFile.cpp b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFile.cpp new file mode 100644 index 00000000000..620fc0d9b47 --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdFile.cpp @@ -0,0 +1,1263 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "SdFat.h" +#ifdef __AVR__ +#include +#endif +#include +//------------------------------------------------------------------------------ +// callback function for date/time +void (*SdFile::dateTime_)(uint16_t* date, uint16_t* time) = NULL; + +#if ALLOW_DEPRECATED_FUNCTIONS +// suppress cpplint warnings with NOLINT comment +void (*SdFile::oldDateTime_)(uint16_t& date, uint16_t& time) = NULL; // NOLINT +#endif // ALLOW_DEPRECATED_FUNCTIONS +//------------------------------------------------------------------------------ +// add a cluster to a file +uint8_t SdFile::addCluster() { + if (!vol_->allocContiguous(1, &curCluster_)) return false; + + // if first cluster of file link to directory entry + if (firstCluster_ == 0) { + firstCluster_ = curCluster_; + flags_ |= F_FILE_DIR_DIRTY; + } + return true; +} +//------------------------------------------------------------------------------ +// Add a cluster to a directory file and zero the cluster. +// return with first block of cluster in the cache +uint8_t SdFile::addDirCluster(void) { + if (!addCluster()) return false; + + // zero data in cluster insure first cluster is in cache + uint32_t block = vol_->clusterStartBlock(curCluster_); + for (uint8_t i = vol_->blocksPerCluster_; i != 0; i--) { + if (!SdVolume::cacheZeroBlock(block + i - 1)) return false; + } + // Increase directory file size by cluster size + fileSize_ += 512UL << vol_->clusterSizeShift_; + return true; +} +//------------------------------------------------------------------------------ +// cache a file's directory entry +// return pointer to cached entry or null for failure +dir_t* SdFile::cacheDirEntry(uint8_t action) { + if (!SdVolume::cacheRawBlock(dirBlock_, action)) return NULL; + return SdVolume::cacheBuffer_.dir + dirIndex_; +} +//------------------------------------------------------------------------------ +/** + * Close a file and force cached data and directory information + * to be written to the storage device. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include no file is open or an I/O error. + */ +uint8_t SdFile::close(void) { + if (!sync())return false; + type_ = FAT_FILE_TYPE_CLOSED; + return true; +} +//------------------------------------------------------------------------------ +/** + * Check for contiguous file and return its raw block range. + * + * \param[out] bgnBlock the first block address for the file. + * \param[out] endBlock the last block address for the file. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include file is not contiguous, file has zero length + * or an I/O error occurred. + */ +uint8_t SdFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock) { + // error if no blocks + if (firstCluster_ == 0) return false; + + for (uint32_t c = firstCluster_; ; c++) { + uint32_t next; + if (!vol_->fatGet(c, &next)) return false; + + // check for contiguous + if (next != (c + 1)) { + // error if not end of chain + if (!vol_->isEOC(next)) return false; + *bgnBlock = vol_->clusterStartBlock(firstCluster_); + *endBlock = vol_->clusterStartBlock(c) + + vol_->blocksPerCluster_ - 1; + return true; + } + } +} +//------------------------------------------------------------------------------ +/** + * Create and open a new contiguous file of a specified size. + * + * \note This function only supports short DOS 8.3 names. + * See open() for more information. + * + * \param[in] dirFile The directory where the file will be created. + * \param[in] fileName A valid DOS 8.3 file name. + * \param[in] size The desired file size. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include \a fileName contains + * an invalid DOS 8.3 file name, the FAT volume has not been initialized, + * a file is already open, the file already exists, the root + * directory is full or an I/O error. + * + */ +uint8_t SdFile::createContiguous(SdFile* dirFile, + const char* fileName, uint32_t size) { + // don't allow zero length file + if (size == 0) return false; + if (!open(dirFile, fileName, O_CREAT | O_EXCL | O_RDWR)) return false; + + // calculate number of clusters needed + uint32_t count = ((size - 1) >> (vol_->clusterSizeShift_ + 9)) + 1; + + // allocate clusters + if (!vol_->allocContiguous(count, &firstCluster_)) { + remove(); + return false; + } + fileSize_ = size; + + // insure sync() will update dir entry + flags_ |= F_FILE_DIR_DIRTY; + return sync(); +} +//------------------------------------------------------------------------------ +/** + * Return a files directory entry + * + * \param[out] dir Location for return of the files directory entry. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::dirEntry(dir_t* dir) { + // make sure fields on SD are correct + if (!sync()) return false; + + // read entry + dir_t* p = cacheDirEntry(SdVolume::CACHE_FOR_READ); + if (!p) return false; + + // copy to caller's struct + memcpy(dir, p, sizeof(dir_t)); + return true; +} +//------------------------------------------------------------------------------ +/** + * Format the name field of \a dir into the 13 byte array + * \a name in standard 8.3 short name format. + * + * \param[in] dir The directory structure containing the name. + * \param[out] name A 13 byte char array for the formatted name. + */ +void SdFile::dirName(const dir_t& dir, char* name) { + uint8_t j = 0; + for (uint8_t i = 0; i < 11; i++) { + if (dir.name[i] == ' ')continue; + if (i == 8) name[j++] = '.'; + name[j++] = dir.name[i]; + } + name[j] = 0; +} +//------------------------------------------------------------------------------ +/** List directory contents to Serial. + * + * \param[in] flags The inclusive OR of + * + * LS_DATE - %Print file modification date + * + * LS_SIZE - %Print file size. + * + * LS_R - Recursive list of subdirectories. + * + * \param[in] indent Amount of space before file name. Used for recursive + * list to indicate subdirectory level. + */ +void SdFile::ls(uint8_t flags, uint8_t indent) { + dir_t* p; + + rewind(); + while ((p = readDirCache())) { + // done if past last used entry + if (p->name[0] == DIR_NAME_FREE) break; + + // skip deleted entry and entries for . and .. + if (p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') continue; + + // only list subdirectories and files + if (!DIR_IS_FILE_OR_SUBDIR(p)) continue; + + // print any indent spaces + for (int8_t i = 0; i < indent; i++) Serial.print(' '); + + // print file name with possible blank fill + printDirName(*p, flags & (LS_DATE | LS_SIZE) ? 14 : 0); + + // print modify date/time if requested + if (flags & LS_DATE) { + printFatDate(p->lastWriteDate); + Serial.print(' '); + printFatTime(p->lastWriteTime); + } + // print size if requested + if (!DIR_IS_SUBDIR(p) && (flags & LS_SIZE)) { + Serial.print(' '); + Serial.print(p->fileSize); + } + Serial.println(); + + // list subdirectory content if requested + if ((flags & LS_R) && DIR_IS_SUBDIR(p)) { + uint16_t index = curPosition()/32 - 1; + SdFile s; + if (s.open(this, index, O_READ)) s.ls(flags, indent + 2); + seekSet(32 * (index + 1)); + } + } +} +//------------------------------------------------------------------------------ +// format directory name field from a 8.3 name string +uint8_t SdFile::make83Name(const char* str, uint8_t* name) { + uint8_t c; + uint8_t n = 7; // max index for part before dot + uint8_t i = 0; + // blank fill name and extension + while (i < 11) name[i++] = ' '; + i = 0; + while ((c = *str++) != '\0') { + if (c == '.') { + if (n == 10) return false; // only one dot allowed + n = 10; // max index for full 8.3 name + i = 8; // place for extension + } else { + // illegal FAT characters + uint8_t b; +#if defined(__AVR__) + PGM_P p = PSTR("|<>^+=?/[];,*\"\\"); + while ((b = pgm_read_byte(p++))) if (b == c) return false; +#elif defined(__arm__) + const uint8_t valid[] = "|<>^+=?/[];,*\"\\"; + const uint8_t *p = valid; + while ((b = *p++)) if (b == c) return false; +#endif + // check size and only allow ASCII printable characters + if (i > n || c < 0X21 || c > 0X7E)return false; + // only upper case allowed in 8.3 names - convert lower to upper + name[i++] = c < 'a' || c > 'z' ? c : c + ('A' - 'a'); + } + } + // must have a file name, extension is optional + return name[0] != ' '; +} +//------------------------------------------------------------------------------ +/** Make a new directory. + * + * \param[in] dir An open SdFat instance for the directory that will containing + * the new directory. + * + * \param[in] dirName A valid 8.3 DOS name for the new directory. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include this SdFile is already open, \a dir is not a + * directory, \a dirName is invalid or already exists in \a dir. + */ +uint8_t SdFile::makeDir(SdFile* dir, const char* dirName) { + dir_t d; + + // create a normal file + if (!open(dir, dirName, O_CREAT | O_EXCL | O_RDWR)) return false; + + // convert SdFile to directory + flags_ = O_READ; + type_ = FAT_FILE_TYPE_SUBDIR; + + // allocate and zero first cluster + if (!addDirCluster())return false; + + // force entry to SD + if (!sync()) return false; + + // cache entry - should already be in cache due to sync() call + dir_t* p = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!p) return false; + + // change directory entry attribute + p->attributes = DIR_ATT_DIRECTORY; + + // make entry for '.' + memcpy(&d, p, sizeof(d)); + for (uint8_t i = 1; i < 11; i++) d.name[i] = ' '; + d.name[0] = '.'; + + // cache block for '.' and '..' + uint32_t block = vol_->clusterStartBlock(firstCluster_); + if (!SdVolume::cacheRawBlock(block, SdVolume::CACHE_FOR_WRITE)) return false; + + // copy '.' to block + memcpy(&SdVolume::cacheBuffer_.dir[0], &d, sizeof(d)); + + // make entry for '..' + d.name[1] = '.'; + if (dir->isRoot()) { + d.firstClusterLow = 0; + d.firstClusterHigh = 0; + } else { + d.firstClusterLow = dir->firstCluster_ & 0XFFFF; + d.firstClusterHigh = dir->firstCluster_ >> 16; + } + // copy '..' to block + memcpy(&SdVolume::cacheBuffer_.dir[1], &d, sizeof(d)); + + // set position after '..' + curPosition_ = 2 * sizeof(d); + + // write first block + return SdVolume::cacheFlush(); +} +//------------------------------------------------------------------------------ +/** + * Open a file or directory by name. + * + * \param[in] dirFile An open SdFat instance for the directory containing the + * file to be opened. + * + * \param[in] fileName A valid 8.3 DOS name for a file to be opened. + * + * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive + * OR of flags from the following list + * + * O_READ - Open for reading. + * + * O_RDONLY - Same as O_READ. + * + * O_WRITE - Open for writing. + * + * O_WRONLY - Same as O_WRITE. + * + * O_RDWR - Open for reading and writing. + * + * O_APPEND - If set, the file offset shall be set to the end of the + * file prior to each write. + * + * O_CREAT - If the file exists, this flag has no effect except as noted + * under O_EXCL below. Otherwise, the file shall be created + * + * O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists. + * + * O_SYNC - Call sync() after each write. This flag should not be used with + * write(uint8_t), write_P(PGM_P), writeln_P(PGM_P), or the Arduino Print class. + * These functions do character at a time writes so sync() will be called + * after each byte. + * + * O_TRUNC - If the file exists and is a regular file, and the file is + * successfully opened and is not read only, its length shall be truncated to 0. + * + * \note Directory files must be opened read only. Write and truncation is + * not allowed for directory files. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include this SdFile is already open, \a difFile is not + * a directory, \a fileName is invalid, the file does not exist + * or can't be opened in the access mode specified by oflag. + */ +uint8_t SdFile::open(SdFile* dirFile, const char* fileName, uint8_t oflag) { + uint8_t dname[11]; + dir_t* p; + + // error if already open + if (isOpen())return false; + + if (!make83Name(fileName, dname)) return false; + vol_ = dirFile->vol_; + dirFile->rewind(); + + // bool for empty entry found + uint8_t emptyFound = false; + + // search for file + while (dirFile->curPosition_ < dirFile->fileSize_) { + uint8_t index = 0XF & (dirFile->curPosition_ >> 5); + p = dirFile->readDirCache(); + if (p == NULL) return false; + + if (p->name[0] == DIR_NAME_FREE || p->name[0] == DIR_NAME_DELETED) { + // remember first empty slot + if (!emptyFound) { + emptyFound = true; + dirIndex_ = index; + dirBlock_ = SdVolume::cacheBlockNumber_; + } + // done if no entries follow + if (p->name[0] == DIR_NAME_FREE) break; + } else if (!memcmp(dname, p->name, 11)) { + // don't open existing file if O_CREAT and O_EXCL + if ((oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) return false; + + // open found file + return openCachedEntry(0XF & index, oflag); + } + } + // only create file if O_CREAT and O_WRITE + if ((oflag & (O_CREAT | O_WRITE)) != (O_CREAT | O_WRITE)) return false; + + // cache found slot or add cluster if end of file + if (emptyFound) { + p = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!p) return false; + } else { + if (dirFile->type_ == FAT_FILE_TYPE_ROOT16) return false; + + // add and zero cluster for dirFile - first cluster is in cache for write + if (!dirFile->addDirCluster()) return false; + + // use first entry in cluster + dirIndex_ = 0; + p = SdVolume::cacheBuffer_.dir; + } + // initialize as empty file + memset(p, 0, sizeof(dir_t)); + memcpy(p->name, dname, 11); + + // set timestamps + if (dateTime_) { + // call user function + dateTime_(&p->creationDate, &p->creationTime); + } else { + // use default date/time + p->creationDate = FAT_DEFAULT_DATE; + p->creationTime = FAT_DEFAULT_TIME; + } + p->lastAccessDate = p->creationDate; + p->lastWriteDate = p->creationDate; + p->lastWriteTime = p->creationTime; + + // force write of entry to SD + if (!SdVolume::cacheFlush()) return false; + + // open entry in cache + return openCachedEntry(dirIndex_, oflag); +} +//------------------------------------------------------------------------------ +/** + * Open a file by index. + * + * \param[in] dirFile An open SdFat instance for the directory. + * + * \param[in] index The \a index of the directory entry for the file to be + * opened. The value for \a index is (directory file position)/32. + * + * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive + * OR of flags O_READ, O_WRITE, O_TRUNC, and O_SYNC. + * + * See open() by fileName for definition of flags and return values. + * + */ +uint8_t SdFile::open(SdFile* dirFile, uint16_t index, uint8_t oflag) { + // error if already open + if (isOpen())return false; + + // don't open existing file if O_CREAT and O_EXCL - user call error + if ((oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) return false; + + vol_ = dirFile->vol_; + + // seek to location of entry + if (!dirFile->seekSet(32 * index)) return false; + + // read entry into cache + dir_t* p = dirFile->readDirCache(); + if (p == NULL) return false; + + // error if empty slot or '.' or '..' + if (p->name[0] == DIR_NAME_FREE || + p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') { + return false; + } + // open cached entry + return openCachedEntry(index & 0XF, oflag); +} +//------------------------------------------------------------------------------ +// open a cached directory entry. Assumes vol_ is initializes +uint8_t SdFile::openCachedEntry(uint8_t dirIndex, uint8_t oflag) { + // location of entry in cache + dir_t* p = SdVolume::cacheBuffer_.dir + dirIndex; + + // write or truncate is an error for a directory or read-only file + if (p->attributes & (DIR_ATT_READ_ONLY | DIR_ATT_DIRECTORY)) { + if (oflag & (O_WRITE | O_TRUNC)) return false; + } + // remember location of directory entry on SD + dirIndex_ = dirIndex; + dirBlock_ = SdVolume::cacheBlockNumber_; + + // copy first cluster number for directory fields + firstCluster_ = (uint32_t)p->firstClusterHigh << 16; + firstCluster_ |= p->firstClusterLow; + + // make sure it is a normal file or subdirectory + if (DIR_IS_FILE(p)) { + fileSize_ = p->fileSize; + type_ = FAT_FILE_TYPE_NORMAL; + } else if (DIR_IS_SUBDIR(p)) { + if (!vol_->chainSize(firstCluster_, &fileSize_)) return false; + type_ = FAT_FILE_TYPE_SUBDIR; + } else { + return false; + } + // save open flags for read/write + flags_ = oflag & (O_ACCMODE | O_SYNC | O_APPEND); + + // set to start of file + curCluster_ = 0; + curPosition_ = 0; + + // truncate file to zero length if requested + if (oflag & O_TRUNC) return truncate(0); + return true; +} +//------------------------------------------------------------------------------ +/** + * Open a volume's root directory. + * + * \param[in] vol The FAT volume containing the root directory to be opened. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the FAT volume has not been initialized + * or it a FAT12 volume. + */ +uint8_t SdFile::openRoot(SdVolume* vol) { + // error if file is already open + if (isOpen()) return false; + + if (vol->fatType() == 16) { + type_ = FAT_FILE_TYPE_ROOT16; + firstCluster_ = 0; + fileSize_ = 32 * vol->rootDirEntryCount(); + } else if (vol->fatType() == 32) { + type_ = FAT_FILE_TYPE_ROOT32; + firstCluster_ = vol->rootDirStart(); + if (!vol->chainSize(firstCluster_, &fileSize_)) return false; + } else { + // volume is not initialized or FAT12 + return false; + } + vol_ = vol; + // read only + flags_ = O_READ; + + // set to start of file + curCluster_ = 0; + curPosition_ = 0; + + // root has no directory entry + dirBlock_ = 0; + dirIndex_ = 0; + return true; +} +//------------------------------------------------------------------------------ +/** %Print the name field of a directory entry in 8.3 format to Serial. + * + * \param[in] dir The directory structure containing the name. + * \param[in] width Blank fill name if length is less than \a width. + */ +void SdFile::printDirName(const dir_t& dir, uint8_t width) { + uint8_t w = 0; + for (uint8_t i = 0; i < 11; i++) { + if (dir.name[i] == ' ')continue; + if (i == 8) { + Serial.print('.'); + w++; + } + Serial.write(dir.name[i]); + w++; + } + if (DIR_IS_SUBDIR(&dir)) { + Serial.print('/'); + w++; + } + while (w < width) { + Serial.print(' '); + w++; + } +} +//------------------------------------------------------------------------------ +/** %Print a directory date field to Serial. + * + * Format is yyyy-mm-dd. + * + * \param[in] fatDate The date field from a directory entry. + */ +void SdFile::printFatDate(uint16_t fatDate) { + Serial.print(FAT_YEAR(fatDate)); + Serial.print('-'); + printTwoDigits(FAT_MONTH(fatDate)); + Serial.print('-'); + printTwoDigits(FAT_DAY(fatDate)); +} +//------------------------------------------------------------------------------ +/** %Print a directory time field to Serial. + * + * Format is hh:mm:ss. + * + * \param[in] fatTime The time field from a directory entry. + */ +void SdFile::printFatTime(uint16_t fatTime) { + printTwoDigits(FAT_HOUR(fatTime)); + Serial.print(':'); + printTwoDigits(FAT_MINUTE(fatTime)); + Serial.print(':'); + printTwoDigits(FAT_SECOND(fatTime)); +} +//------------------------------------------------------------------------------ +/** %Print a value as two digits to Serial. + * + * \param[in] v Value to be printed, 0 <= \a v <= 99 + */ +void SdFile::printTwoDigits(uint8_t v) { + char str[3]; + str[0] = '0' + v/10; + str[1] = '0' + v % 10; + str[2] = 0; + Serial.print(str); +} +//------------------------------------------------------------------------------ +/** + * Read data from a file starting at the current position. + * + * \param[out] buf Pointer to the location that will receive the data. + * + * \param[in] nbyte Maximum number of bytes to read. + * + * \return For success read() returns the number of bytes read. + * A value less than \a nbyte, including zero, will be returned + * if end of file is reached. + * If an error occurs, read() returns -1. Possible errors include + * read() called before a file has been opened, corrupt file system + * or an I/O error occurred. + */ +int16_t SdFile::read(void* buf, uint16_t nbyte) { + uint8_t* dst = reinterpret_cast(buf); + + // error if not open or write only + if (!isOpen() || !(flags_ & O_READ)) return -1; + + // max bytes left in file + if (nbyte > (fileSize_ - curPosition_)) nbyte = fileSize_ - curPosition_; + + // amount left to read + uint16_t toRead = nbyte; + while (toRead > 0) { + uint32_t block; // raw device block number + uint16_t offset = curPosition_ & 0X1FF; // offset in block + if (type_ == FAT_FILE_TYPE_ROOT16) { + block = vol_->rootDirStart() + (curPosition_ >> 9); + } else { + uint8_t blockOfCluster = vol_->blockOfCluster(curPosition_); + if (offset == 0 && blockOfCluster == 0) { + // start of new cluster + if (curPosition_ == 0) { + // use first cluster in file + curCluster_ = firstCluster_; + } else { + // get next cluster from FAT + if (!vol_->fatGet(curCluster_, &curCluster_)) return -1; + } + } + block = vol_->clusterStartBlock(curCluster_) + blockOfCluster; + } + uint16_t n = toRead; + + // amount to be read from current block + if (n > (512 - offset)) n = 512 - offset; + + // no buffering needed if n == 512 or user requests no buffering + if ((unbufferedRead() || n == 512) && + block != SdVolume::cacheBlockNumber_) { + if (!vol_->readData(block, offset, n, dst)) return -1; + dst += n; + } else { + // read block to cache and copy data to caller + if (!SdVolume::cacheRawBlock(block, SdVolume::CACHE_FOR_READ)) return -1; + uint8_t* src = SdVolume::cacheBuffer_.data + offset; + uint8_t* end = src + n; + while (src != end) *dst++ = *src++; + } + curPosition_ += n; + toRead -= n; + } + return nbyte; +} +//------------------------------------------------------------------------------ +/** + * Read the next directory entry from a directory file. + * + * \param[out] dir The dir_t struct that will receive the data. + * + * \return For success readDir() returns the number of bytes read. + * A value of zero will be returned if end of file is reached. + * If an error occurs, readDir() returns -1. Possible errors include + * readDir() called before a directory has been opened, this is not + * a directory file or an I/O error occurred. + */ +int8_t SdFile::readDir(dir_t* dir) { + int8_t n; + // if not a directory file or miss-positioned return an error + if (!isDir() || (0X1F & curPosition_)) return -1; + + while ((n = read(dir, sizeof(dir_t))) == sizeof(dir_t)) { + // last entry if DIR_NAME_FREE + if (dir->name[0] == DIR_NAME_FREE) break; + // skip empty entries and entry for . and .. + if (dir->name[0] == DIR_NAME_DELETED || dir->name[0] == '.') continue; + // return if normal file or subdirectory + if (DIR_IS_FILE_OR_SUBDIR(dir)) return n; + } + // error, end of file, or past last entry + return n < 0 ? -1 : 0; +} +//------------------------------------------------------------------------------ +// Read next directory entry into the cache +// Assumes file is correctly positioned +dir_t* SdFile::readDirCache(void) { + // error if not directory + if (!isDir()) return NULL; + + // index of entry in cache + uint8_t i = (curPosition_ >> 5) & 0XF; + + // use read to locate and cache block + if (read() < 0) return NULL; + + // advance to next entry + curPosition_ += 31; + + // return pointer to entry + return (SdVolume::cacheBuffer_.dir + i); +} +//------------------------------------------------------------------------------ +/** + * Remove a file. + * + * The directory entry and all data for the file are deleted. + * + * \note This function should not be used to delete the 8.3 version of a + * file that has a long name. For example if a file has the long name + * "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT". + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the file read-only, is a directory, + * or an I/O error occurred. + */ +uint8_t SdFile::remove(void) { + // free any clusters - will fail if read-only or directory + if (!truncate(0)) return false; + + // cache directory entry + dir_t* d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!d) return false; + + // mark entry deleted + d->name[0] = DIR_NAME_DELETED; + + // set this SdFile closed + type_ = FAT_FILE_TYPE_CLOSED; + + // write entry to SD + return SdVolume::cacheFlush(); +} +//------------------------------------------------------------------------------ +/** + * Remove a file. + * + * The directory entry and all data for the file are deleted. + * + * \param[in] dirFile The directory that contains the file. + * \param[in] fileName The name of the file to be removed. + * + * \note This function should not be used to delete the 8.3 version of a + * file that has a long name. For example if a file has the long name + * "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT". + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the file is a directory, is read only, + * \a dirFile is not a directory, \a fileName is not found + * or an I/O error occurred. + */ +uint8_t SdFile::remove(SdFile* dirFile, const char* fileName) { + SdFile file; + if (!file.open(dirFile, fileName, O_WRITE)) return false; + return file.remove(); +} +//------------------------------------------------------------------------------ +/** Remove a directory file. + * + * The directory file will be removed only if it is empty and is not the + * root directory. rmDir() follows DOS and Windows and ignores the + * read-only attribute for the directory. + * + * \note This function should not be used to delete the 8.3 version of a + * directory that has a long name. For example if a directory has the + * long name "New folder" you should not delete the 8.3 name "NEWFOL~1". + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include the file is not a directory, is the root + * directory, is not empty, or an I/O error occurred. + */ +uint8_t SdFile::rmDir(void) { + // must be open subdirectory + if (!isSubDir()) return false; + + rewind(); + + // make sure directory is empty + while (curPosition_ < fileSize_) { + dir_t* p = readDirCache(); + if (p == NULL) return false; + // done if past last used entry + if (p->name[0] == DIR_NAME_FREE) break; + // skip empty slot or '.' or '..' + if (p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') continue; + // error not empty + if (DIR_IS_FILE_OR_SUBDIR(p)) return false; + } + // convert empty directory to normal file for remove + type_ = FAT_FILE_TYPE_NORMAL; + flags_ |= O_WRITE; + return remove(); +} +//------------------------------------------------------------------------------ +/** Recursively delete a directory and all contained files. + * + * This is like the Unix/Linux 'rm -rf *' if called with the root directory + * hence the name. + * + * Warning - This will remove all contents of the directory including + * subdirectories. The directory will then be removed if it is not root. + * The read-only attribute for files will be ignored. + * + * \note This function should not be used to delete the 8.3 version of + * a directory that has a long name. See remove() and rmDir(). + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::rmRfStar(void) { + rewind(); + while (curPosition_ < fileSize_) { + SdFile f; + + // remember position + uint16_t index = curPosition_/32; + + dir_t* p = readDirCache(); + if (!p) return false; + + // done if past last entry + if (p->name[0] == DIR_NAME_FREE) break; + + // skip empty slot or '.' or '..' + if (p->name[0] == DIR_NAME_DELETED || p->name[0] == '.') continue; + + // skip if part of long file name or volume label in root + if (!DIR_IS_FILE_OR_SUBDIR(p)) continue; + + if (!f.open(this, index, O_READ)) return false; + if (f.isSubDir()) { + // recursively delete + if (!f.rmRfStar()) return false; + } else { + // ignore read-only + f.flags_ |= O_WRITE; + if (!f.remove()) return false; + } + // position to next entry if required + if (curPosition_ != (32u*(index + 1))) { + if (!seekSet(32u*(index + 1))) return false; + } + } + // don't try to delete root + if (isRoot()) return true; + return rmDir(); +} +//------------------------------------------------------------------------------ +/** + * Sets a file's position. + * + * \param[in] pos The new position in bytes from the beginning of the file. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::seekSet(uint32_t pos) { + // error if file not open or seek past end of file + if (!isOpen() || pos > fileSize_) return false; + + if (type_ == FAT_FILE_TYPE_ROOT16) { + curPosition_ = pos; + return true; + } + if (pos == 0) { + // set position to start of file + curCluster_ = 0; + curPosition_ = 0; + return true; + } + // calculate cluster index for cur and new position + uint32_t nCur = (curPosition_ - 1) >> (vol_->clusterSizeShift_ + 9); + uint32_t nNew = (pos - 1) >> (vol_->clusterSizeShift_ + 9); + + if (nNew < nCur || curPosition_ == 0) { + // must follow chain from first cluster + curCluster_ = firstCluster_; + } else { + // advance from curPosition + nNew -= nCur; + } + while (nNew--) { + if (!vol_->fatGet(curCluster_, &curCluster_)) return false; + } + curPosition_ = pos; + return true; +} +//------------------------------------------------------------------------------ +/** + * The sync() call causes all modified data and directory fields + * to be written to the storage device. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include a call to sync() before a file has been + * opened or an I/O error. + */ +uint8_t SdFile::sync(void) { + // only allow open files and directories + if (!isOpen()) return false; + + if (flags_ & F_FILE_DIR_DIRTY) { + dir_t* d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!d) return false; + + // do not set filesize for dir files + if (!isDir()) d->fileSize = fileSize_; + + // update first cluster fields + d->firstClusterLow = firstCluster_ & 0XFFFF; + d->firstClusterHigh = firstCluster_ >> 16; + + // set modify time if user supplied a callback date/time function + if (dateTime_) { + dateTime_(&d->lastWriteDate, &d->lastWriteTime); + d->lastAccessDate = d->lastWriteDate; + } + // clear directory dirty + flags_ &= ~F_FILE_DIR_DIRTY; + } + return SdVolume::cacheFlush(); +} +//------------------------------------------------------------------------------ +/** + * Set a file's timestamps in its directory entry. + * + * \param[in] flags Values for \a flags are constructed by a bitwise-inclusive + * OR of flags from the following list + * + * T_ACCESS - Set the file's last access date. + * + * T_CREATE - Set the file's creation date and time. + * + * T_WRITE - Set the file's last write/modification date and time. + * + * \param[in] year Valid range 1980 - 2107 inclusive. + * + * \param[in] month Valid range 1 - 12 inclusive. + * + * \param[in] day Valid range 1 - 31 inclusive. + * + * \param[in] hour Valid range 0 - 23 inclusive. + * + * \param[in] minute Valid range 0 - 59 inclusive. + * + * \param[in] second Valid range 0 - 59 inclusive + * + * \note It is possible to set an invalid date since there is no check for + * the number of days in a month. + * + * \note + * Modify and access timestamps may be overwritten if a date time callback + * function has been set by dateTimeCallback(). + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t SdFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, + uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) { + if (!isOpen() + || year < 1980 + || year > 2107 + || month < 1 + || month > 12 + || day < 1 + || day > 31 + || hour > 23 + || minute > 59 + || second > 59) { + return false; + } + dir_t* d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE); + if (!d) return false; + + uint16_t dirDate = FAT_DATE(year, month, day); + uint16_t dirTime = FAT_TIME(hour, minute, second); + if (flags & T_ACCESS) { + d->lastAccessDate = dirDate; + } + if (flags & T_CREATE) { + d->creationDate = dirDate; + d->creationTime = dirTime; + // seems to be units of 1/100 second not 1/10 as Microsoft states + d->creationTimeTenths = second & 1 ? 100 : 0; + } + if (flags & T_WRITE) { + d->lastWriteDate = dirDate; + d->lastWriteTime = dirTime; + } + SdVolume::cacheSetDirty(); + return sync(); +} +//------------------------------------------------------------------------------ +/** + * Truncate a file to a specified length. The current file position + * will be maintained if it is less than or equal to \a length otherwise + * it will be set to end of file. + * + * \param[in] length The desired length for the file. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + * Reasons for failure include file is read only, file is a directory, + * \a length is greater than the current file size or an I/O error occurs. + */ +uint8_t SdFile::truncate(uint32_t length) { +// error if not a normal file or read-only + if (!isFile() || !(flags_ & O_WRITE)) return false; + + // error if length is greater than current size + if (length > fileSize_) return false; + + // fileSize and length are zero - nothing to do + if (fileSize_ == 0) return true; + + // remember position for seek after truncation + uint32_t newPos = curPosition_ > length ? length : curPosition_; + + // position to last cluster in truncated file + if (!seekSet(length)) return false; + + if (length == 0) { + // free all clusters + if (!vol_->freeChain(firstCluster_)) return false; + firstCluster_ = 0; + } else { + uint32_t toFree; + if (!vol_->fatGet(curCluster_, &toFree)) return false; + + if (!vol_->isEOC(toFree)) { + // free extra clusters + if (!vol_->freeChain(toFree)) return false; + + // current cluster is end of chain + if (!vol_->fatPutEOC(curCluster_)) return false; + } + } + fileSize_ = length; + + // need to update directory entry + flags_ |= F_FILE_DIR_DIRTY; + + if (!sync()) return false; + + // set file to correct position + return seekSet(newPos); +} +//------------------------------------------------------------------------------ +/** + * Write data to an open file. + * + * \note Data is moved to the cache but may not be written to the + * storage device until sync() is called. + * + * \param[in] buf Pointer to the location of the data to be written. + * + * \param[in] nbyte Number of bytes to write. + * + * \return For success write() returns the number of bytes written, always + * \a nbyte. If an error occurs, write() returns 0. Possible errors + * include write() is called before a file has been opened, write is called + * for a read-only file, device is full, a corrupt file system or an I/O error. + * + */ +size_t SdFile::write(const void* buf, uint16_t nbyte) { + // convert void* to uint8_t* - must be before goto statements + const uint8_t* src = reinterpret_cast(buf); + + // number of bytes left to write - must be before goto statements + uint16_t nToWrite = nbyte; + + // error if not a normal file or is read-only + if (!isFile() || !(flags_ & O_WRITE)) goto writeErrorReturn; + + // seek to end of file if append flag + if ((flags_ & O_APPEND) && curPosition_ != fileSize_) { + if (!seekEnd()) goto writeErrorReturn; + } + + while (nToWrite > 0) { + uint8_t blockOfCluster = vol_->blockOfCluster(curPosition_); + uint16_t blockOffset = curPosition_ & 0X1FF; + if (blockOfCluster == 0 && blockOffset == 0) { + // start of new cluster + if (curCluster_ == 0) { + if (firstCluster_ == 0) { + // allocate first cluster of file + if (!addCluster()) goto writeErrorReturn; + } else { + curCluster_ = firstCluster_; + } + } else { + uint32_t next; + if (!vol_->fatGet(curCluster_, &next)) return false; + if (vol_->isEOC(next)) { + // add cluster if at end of chain + if (!addCluster()) goto writeErrorReturn; + } else { + curCluster_ = next; + } + } + } + // max space in block + uint16_t n = 512 - blockOffset; + + // lesser of space and amount to write + if (n > nToWrite) n = nToWrite; + + // block for data write + uint32_t block = vol_->clusterStartBlock(curCluster_) + blockOfCluster; + if (n == 512) { + // full block - don't need to use cache + // invalidate cache if block is in cache + if (SdVolume::cacheBlockNumber_ == block) { + SdVolume::cacheBlockNumber_ = 0XFFFFFFFF; + } + if (!vol_->writeBlock(block, src)) goto writeErrorReturn; + src += 512; + } else { + if (blockOffset == 0 && curPosition_ >= fileSize_) { + // start of new block don't need to read into cache + if (!SdVolume::cacheFlush()) goto writeErrorReturn; + SdVolume::cacheBlockNumber_ = block; + SdVolume::cacheSetDirty(); + } else { + // rewrite part of block + if (!SdVolume::cacheRawBlock(block, SdVolume::CACHE_FOR_WRITE)) { + goto writeErrorReturn; + } + } + uint8_t* dst = SdVolume::cacheBuffer_.data + blockOffset; + uint8_t* end = dst + n; + while (dst != end) *dst++ = *src++; + } + nToWrite -= n; + curPosition_ += n; + } + if (curPosition_ > fileSize_) { + // update fileSize and insure sync will update dir entry + fileSize_ = curPosition_; + flags_ |= F_FILE_DIR_DIRTY; + } else if (dateTime_ && nbyte) { + // insure sync will update modified date and time + flags_ |= F_FILE_DIR_DIRTY; + } + + if (flags_ & O_SYNC) { + if (!sync()) goto writeErrorReturn; + } + return nbyte; + + writeErrorReturn: + // return for write error + //writeError = true; + setWriteError(); + return 0; +} +//------------------------------------------------------------------------------ +/** + * Write a byte to a file. Required by the Arduino Print class. + * + * Use SdFile::writeError to check for errors. + */ +size_t SdFile::write(uint8_t b) { + return write(&b, 1); +} +//------------------------------------------------------------------------------ +/** + * Write a string to a file. Used by the Arduino Print class. + * + * Use SdFile::writeError to check for errors. + */ +size_t SdFile::write(const char* str) { + return write(str, strlen(str)); +} +#ifdef __AVR__ +//------------------------------------------------------------------------------ +/** + * Write a PROGMEM string to a file. + * + * Use SdFile::writeError to check for errors. + */ +void SdFile::write_P(PGM_P str) { + for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); +} +//------------------------------------------------------------------------------ +/** + * Write a PROGMEM string followed by CR/LF to a file. + * + * Use SdFile::writeError to check for errors. + */ +void SdFile::writeln_P(PGM_P str) { + write_P(str); + println(); +} +#endif diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdInfo.h b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdInfo.h new file mode 100644 index 00000000000..acde74d974f --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdInfo.h @@ -0,0 +1,232 @@ +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#ifndef SdInfo_h +#define SdInfo_h +#include +// Based on the document: +// +// SD Specifications +// Part 1 +// Physical Layer +// Simplified Specification +// Version 2.00 +// September 25, 2006 +// +// www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_Spec.pdf +//------------------------------------------------------------------------------ +// SD card commands +/** GO_IDLE_STATE - init card in spi mode if CS low */ +uint8_t const CMD0 = 0X00; +/** SEND_IF_COND - verify SD Memory Card interface operating condition.*/ +uint8_t const CMD8 = 0X08; +/** SEND_CSD - read the Card Specific Data (CSD register) */ +uint8_t const CMD9 = 0X09; +/** SEND_CID - read the card identification information (CID register) */ +uint8_t const CMD10 = 0X0A; +/** SEND_STATUS - read the card status register */ +uint8_t const CMD13 = 0X0D; +/** READ_BLOCK - read a single data block from the card */ +uint8_t const CMD17 = 0X11; +/** WRITE_BLOCK - write a single data block to the card */ +uint8_t const CMD24 = 0X18; +/** WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION */ +uint8_t const CMD25 = 0X19; +/** ERASE_WR_BLK_START - sets the address of the first block to be erased */ +uint8_t const CMD32 = 0X20; +/** ERASE_WR_BLK_END - sets the address of the last block of the continuous + range to be erased*/ +uint8_t const CMD33 = 0X21; +/** ERASE - erase all previously selected blocks */ +uint8_t const CMD38 = 0X26; +/** APP_CMD - escape for application specific command */ +uint8_t const CMD55 = 0X37; +/** READ_OCR - read the OCR register of a card */ +uint8_t const CMD58 = 0X3A; +/** SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be + pre-erased before writing */ +uint8_t const ACMD23 = 0X17; +/** SD_SEND_OP_COMD - Sends host capacity support information and + activates the card's initialization process */ +uint8_t const ACMD41 = 0X29; +//------------------------------------------------------------------------------ +/** status for card in the ready state */ +uint8_t const R1_READY_STATE = 0X00; +/** status for card in the idle state */ +uint8_t const R1_IDLE_STATE = 0X01; +/** status bit for illegal command */ +uint8_t const R1_ILLEGAL_COMMAND = 0X04; +/** start data token for read or write single block*/ +uint8_t const DATA_START_BLOCK = 0XFE; +/** stop token for write multiple blocks*/ +uint8_t const STOP_TRAN_TOKEN = 0XFD; +/** start data token for write multiple blocks*/ +uint8_t const WRITE_MULTIPLE_TOKEN = 0XFC; +/** mask for data response tokens after a write block operation */ +uint8_t const DATA_RES_MASK = 0X1F; +/** write data accepted token */ +uint8_t const DATA_RES_ACCEPTED = 0X05; +//------------------------------------------------------------------------------ +typedef struct CID { + // byte 0 + uint8_t mid; // Manufacturer ID + // byte 1-2 + char oid[2]; // OEM/Application ID + // byte 3-7 + char pnm[5]; // Product name + // byte 8 + unsigned prv_m : 4; // Product revision n.m + unsigned prv_n : 4; + // byte 9-12 + uint32_t psn; // Product serial number + // byte 13 + unsigned mdt_year_high : 4; // Manufacturing date + unsigned reserved : 4; + // byte 14 + unsigned mdt_month : 4; + unsigned mdt_year_low :4; + // byte 15 + unsigned always1 : 1; + unsigned crc : 7; +}cid_t; +//------------------------------------------------------------------------------ +// CSD for version 1.00 cards +typedef struct CSDV1 { + // byte 0 + unsigned reserved1 : 6; + unsigned csd_ver : 2; + // byte 1 + uint8_t taac; + // byte 2 + uint8_t nsac; + // byte 3 + uint8_t tran_speed; + // byte 4 + uint8_t ccc_high; + // byte 5 + unsigned read_bl_len : 4; + unsigned ccc_low : 4; + // byte 6 + unsigned c_size_high : 2; + unsigned reserved2 : 2; + unsigned dsr_imp : 1; + unsigned read_blk_misalign :1; + unsigned write_blk_misalign : 1; + unsigned read_bl_partial : 1; + // byte 7 + uint8_t c_size_mid; + // byte 8 + unsigned vdd_r_curr_max : 3; + unsigned vdd_r_curr_min : 3; + unsigned c_size_low :2; + // byte 9 + unsigned c_size_mult_high : 2; + unsigned vdd_w_cur_max : 3; + unsigned vdd_w_curr_min : 3; + // byte 10 + unsigned sector_size_high : 6; + unsigned erase_blk_en : 1; + unsigned c_size_mult_low : 1; + // byte 11 + unsigned wp_grp_size : 7; + unsigned sector_size_low : 1; + // byte 12 + unsigned write_bl_len_high : 2; + unsigned r2w_factor : 3; + unsigned reserved3 : 2; + unsigned wp_grp_enable : 1; + // byte 13 + unsigned reserved4 : 5; + unsigned write_partial : 1; + unsigned write_bl_len_low : 2; + // byte 14 + unsigned reserved5: 2; + unsigned file_format : 2; + unsigned tmp_write_protect : 1; + unsigned perm_write_protect : 1; + unsigned copy : 1; + unsigned file_format_grp : 1; + // byte 15 + unsigned always1 : 1; + unsigned crc : 7; +}csd1_t; +//------------------------------------------------------------------------------ +// CSD for version 2.00 cards +typedef struct CSDV2 { + // byte 0 + unsigned reserved1 : 6; + unsigned csd_ver : 2; + // byte 1 + uint8_t taac; + // byte 2 + uint8_t nsac; + // byte 3 + uint8_t tran_speed; + // byte 4 + uint8_t ccc_high; + // byte 5 + unsigned read_bl_len : 4; + unsigned ccc_low : 4; + // byte 6 + unsigned reserved2 : 4; + unsigned dsr_imp : 1; + unsigned read_blk_misalign :1; + unsigned write_blk_misalign : 1; + unsigned read_bl_partial : 1; + // byte 7 + unsigned reserved3 : 2; + unsigned c_size_high : 6; + // byte 8 + uint8_t c_size_mid; + // byte 9 + uint8_t c_size_low; + // byte 10 + unsigned sector_size_high : 6; + unsigned erase_blk_en : 1; + unsigned reserved4 : 1; + // byte 11 + unsigned wp_grp_size : 7; + unsigned sector_size_low : 1; + // byte 12 + unsigned write_bl_len_high : 2; + unsigned r2w_factor : 3; + unsigned reserved5 : 2; + unsigned wp_grp_enable : 1; + // byte 13 + unsigned reserved6 : 5; + unsigned write_partial : 1; + unsigned write_bl_len_low : 2; + // byte 14 + unsigned reserved7: 2; + unsigned file_format : 2; + unsigned tmp_write_protect : 1; + unsigned perm_write_protect : 1; + unsigned copy : 1; + unsigned file_format_grp : 1; + // byte 15 + unsigned always1 : 1; + unsigned crc : 7; +}csd2_t; +//------------------------------------------------------------------------------ +// union of old and new style CSD register +union csd_t { + csd1_t v1; + csd2_t v2; +}; +#endif // SdInfo_h diff --git a/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdVolume.cpp b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdVolume.cpp new file mode 100644 index 00000000000..2fbb8100b9b --- /dev/null +++ b/app/testdata/libraries/SD_1.2.1/SD/src/utility/SdVolume.cpp @@ -0,0 +1,295 @@ +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "SdFat.h" +//------------------------------------------------------------------------------ +// raw block cache +// init cacheBlockNumber_to invalid SD block number +uint32_t SdVolume::cacheBlockNumber_ = 0XFFFFFFFF; +cache_t SdVolume::cacheBuffer_; // 512 byte cache for Sd2Card +Sd2Card* SdVolume::sdCard_; // pointer to SD card object +uint8_t SdVolume::cacheDirty_ = 0; // cacheFlush() will write block if true +uint32_t SdVolume::cacheMirrorBlock_ = 0; // mirror block for second FAT +//------------------------------------------------------------------------------ +// find a contiguous group of clusters +uint8_t SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) { + // start of group + uint32_t bgnCluster; + + // flag to save place to start next search + uint8_t setStart; + + // set search start cluster + if (*curCluster) { + // try to make file contiguous + bgnCluster = *curCluster + 1; + + // don't save new start location + setStart = false; + } else { + // start at likely place for free cluster + bgnCluster = allocSearchStart_; + + // save next search start if one cluster + setStart = 1 == count; + } + // end of group + uint32_t endCluster = bgnCluster; + + // last cluster of FAT + uint32_t fatEnd = clusterCount_ + 1; + + // search the FAT for free clusters + for (uint32_t n = 0;; n++, endCluster++) { + // can't find space checked all clusters + if (n >= clusterCount_) return false; + + // past end - start from beginning of FAT + if (endCluster > fatEnd) { + bgnCluster = endCluster = 2; + } + uint32_t f; + if (!fatGet(endCluster, &f)) return false; + + if (f != 0) { + // cluster in use try next cluster as bgnCluster + bgnCluster = endCluster + 1; + } else if ((endCluster - bgnCluster + 1) == count) { + // done - found space + break; + } + } + // mark end of chain + if (!fatPutEOC(endCluster)) return false; + + // link clusters + while (endCluster > bgnCluster) { + if (!fatPut(endCluster - 1, endCluster)) return false; + endCluster--; + } + if (*curCluster != 0) { + // connect chains + if (!fatPut(*curCluster, bgnCluster)) return false; + } + // return first cluster number to caller + *curCluster = bgnCluster; + + // remember possible next free cluster + if (setStart) allocSearchStart_ = bgnCluster + 1; + + return true; +} +//------------------------------------------------------------------------------ +uint8_t SdVolume::cacheFlush(void) { + if (cacheDirty_) { + if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) { + return false; + } + // mirror FAT tables + if (cacheMirrorBlock_) { + if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) { + return false; + } + cacheMirrorBlock_ = 0; + } + cacheDirty_ = 0; + } + return true; +} +//------------------------------------------------------------------------------ +uint8_t SdVolume::cacheRawBlock(uint32_t blockNumber, uint8_t action) { + if (cacheBlockNumber_ != blockNumber) { + if (!cacheFlush()) return false; + if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) return false; + cacheBlockNumber_ = blockNumber; + } + cacheDirty_ |= action; + return true; +} +//------------------------------------------------------------------------------ +// cache a zero block for blockNumber +uint8_t SdVolume::cacheZeroBlock(uint32_t blockNumber) { + if (!cacheFlush()) return false; + + // loop take less flash than memset(cacheBuffer_.data, 0, 512); + for (uint16_t i = 0; i < 512; i++) { + cacheBuffer_.data[i] = 0; + } + cacheBlockNumber_ = blockNumber; + cacheSetDirty(); + return true; +} +//------------------------------------------------------------------------------ +// return the size in bytes of a cluster chain +uint8_t SdVolume::chainSize(uint32_t cluster, uint32_t* size) const { + uint32_t s = 0; + do { + if (!fatGet(cluster, &cluster)) return false; + s += 512UL << clusterSizeShift_; + } while (!isEOC(cluster)); + *size = s; + return true; +} +//------------------------------------------------------------------------------ +// Fetch a FAT entry +uint8_t SdVolume::fatGet(uint32_t cluster, uint32_t* value) const { + if (cluster > (clusterCount_ + 1)) return false; + uint32_t lba = fatStartBlock_; + lba += fatType_ == 16 ? cluster >> 8 : cluster >> 7; + if (lba != cacheBlockNumber_) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) return false; + } + if (fatType_ == 16) { + *value = cacheBuffer_.fat16[cluster & 0XFF]; + } else { + *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK; + } + return true; +} +//------------------------------------------------------------------------------ +// Store a FAT entry +uint8_t SdVolume::fatPut(uint32_t cluster, uint32_t value) { + // error if reserved cluster + if (cluster < 2) return false; + + // error if not in FAT + if (cluster > (clusterCount_ + 1)) return false; + + // calculate block address for entry + uint32_t lba = fatStartBlock_; + lba += fatType_ == 16 ? cluster >> 8 : cluster >> 7; + + if (lba != cacheBlockNumber_) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) return false; + } + // store entry + if (fatType_ == 16) { + cacheBuffer_.fat16[cluster & 0XFF] = value; + } else { + cacheBuffer_.fat32[cluster & 0X7F] = value; + } + cacheSetDirty(); + + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + return true; +} +//------------------------------------------------------------------------------ +// free a cluster chain +uint8_t SdVolume::freeChain(uint32_t cluster) { + // clear free cluster location + allocSearchStart_ = 2; + + do { + uint32_t next; + if (!fatGet(cluster, &next)) return false; + + // free cluster + if (!fatPut(cluster, 0)) return false; + + cluster = next; + } while (!isEOC(cluster)); + + return true; +} +//------------------------------------------------------------------------------ +/** + * Initialize a FAT volume. + * + * \param[in] dev The SD card where the volume is located. + * + * \param[in] part The partition to be used. Legal values for \a part are + * 1-4 to use the corresponding partition on a device formatted with + * a MBR, Master Boot Record, or zero if the device is formatted as + * a super floppy with the FAT boot sector in block zero. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. Reasons for + * failure include not finding a valid partition, not finding a valid + * FAT file system in the specified partition or an I/O error. + */ +uint8_t SdVolume::init(Sd2Card* dev, uint8_t part) { + uint32_t volumeStartBlock = 0; + sdCard_ = dev; + // if part == 0 assume super floppy with FAT boot sector in block zero + // if part > 0 assume mbr volume with partition table + if (part) { + if (part > 4)return false; + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) return false; + part_t* p = &cacheBuffer_.mbr.part[part-1]; + if ((p->boot & 0X7F) !=0 || + p->totalSectors < 100 || + p->firstSector == 0) { + // not a valid partition + return false; + } + volumeStartBlock = p->firstSector; + } + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) return false; + bpb_t* bpb = &cacheBuffer_.fbs.bpb; + if (bpb->bytesPerSector != 512 || + bpb->fatCount == 0 || + bpb->reservedSectorCount == 0 || + bpb->sectorsPerCluster == 0) { + // not valid FAT volume + return false; + } + fatCount_ = bpb->fatCount; + blocksPerCluster_ = bpb->sectorsPerCluster; + + // determine shift that is same as multiply by blocksPerCluster_ + clusterSizeShift_ = 0; + while (blocksPerCluster_ != (1 << clusterSizeShift_)) { + // error if not power of 2 + if (clusterSizeShift_++ > 7) return false; + } + blocksPerFat_ = bpb->sectorsPerFat16 ? + bpb->sectorsPerFat16 : bpb->sectorsPerFat32; + + fatStartBlock_ = volumeStartBlock + bpb->reservedSectorCount; + + // count for FAT16 zero for FAT32 + rootDirEntryCount_ = bpb->rootDirEntryCount; + + // directory start for FAT16 dataStart for FAT32 + rootDirStart_ = fatStartBlock_ + bpb->fatCount * blocksPerFat_; + + // data start for FAT16 and FAT32 + dataStartBlock_ = rootDirStart_ + ((32 * bpb->rootDirEntryCount + 511)/512); + + // total blocks for FAT16 or FAT32 + uint32_t totalBlocks = bpb->totalSectors16 ? + bpb->totalSectors16 : bpb->totalSectors32; + // total data blocks + clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock); + + // divide by cluster size to get cluster count + clusterCount_ >>= clusterSizeShift_; + + // FAT type is determined by cluster count + if (clusterCount_ < 4085) { + fatType_ = 12; + } else if (clusterCount_ < 65525) { + fatType_ = 16; + } else { + rootDirStart_ = bpb->fat32RootCluster; + fatType_ = 32; + } + return true; +} diff --git a/app/testdata/libraries/index_Bridge_only/library_index.json b/app/testdata/libraries/index_Bridge_only/library_index.json new file mode 100644 index 00000000000..05426786d7b --- /dev/null +++ b/app/testdata/libraries/index_Bridge_only/library_index.json @@ -0,0 +1,284 @@ +{ + "libraries": [ + { + "name": "Bridge", + "version": "1.0.0", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.0.zip", + "archiveFileName": "Bridge-1.0.0.zip", + "size": 79554, + "checksum": "SHA-256:9b80eb3c4064a2905a2be385fc2ee0ab2d19f5add43a743776fa9bff30c662d7" + }, + { + "name": "Bridge", + "version": "1.0.1", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.1.zip", + "archiveFileName": "Bridge-1.0.1.zip", + "size": 79571, + "checksum": "SHA-256:72f177e2711d558f655937f9c85edff8fb83a738156ab3b2b4b765267f395af0" + }, + { + "name": "Bridge", + "version": "1.0.2", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.2.zip", + "archiveFileName": "Bridge-1.0.2.zip", + "size": 79574, + "checksum": "SHA-256:8b228c5d2025682ef4bdefbee7682ef31025c1c061156757d20b247ac4cc8344" + }, + { + "name": "Bridge", + "version": "1.0.3", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.3.zip", + "archiveFileName": "Bridge-1.0.3.zip", + "size": 79616, + "checksum": "SHA-256:ead0482c236be1b9467cbb68481f9a0e6dcd30066bb069569ed0804b19a6a832" + }, + { + "name": "Bridge", + "version": "1.0.4", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.4.zip", + "archiveFileName": "Bridge-1.0.4.zip", + "size": 79635, + "checksum": "SHA-256:cb093c35c572f2a63f1dbe52a2bf3f4234aa3f0327b6bc32ebce023c9819d313" + }, + { + "name": "Bridge", + "version": "1.0.5", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.5.zip", + "archiveFileName": "Bridge-1.0.5.zip", + "size": 79691, + "checksum": "SHA-256:4541c53e88fb4d829d93a7ff5293b8d4bcc731cbfd89243e1f4d3361712b5257" + }, + { + "name": "Bridge", + "version": "1.0.6", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.6.zip", + "archiveFileName": "Bridge-1.0.6.zip", + "size": 79699, + "checksum": "SHA-256:4722f3d6cea9bcea355078ca531a295c53a867f58a9de9b907984fcb38d7826d" + }, + { + "name": "Bridge", + "version": "1.0.7", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.0.7.zip", + "archiveFileName": "Bridge-1.0.7.zip", + "size": 80447, + "checksum": "SHA-256:48e0e63cb5f49e9ecf318441b6bf22aebee3fec87e88877902cddd93ad30721d" + }, + { + "name": "Bridge", + "version": "1.1.0", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.1.0.zip", + "archiveFileName": "Bridge-1.1.0.zip", + "size": 58761, + "checksum": "SHA-256:6d12dc0e0e0a7f28a2d70f4ed662c6084b2bbd3ae0a3830e6a6f0b3bc5e25308" + }, + { + "name": "Bridge", + "version": "1.6.0", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the AVR. For Arduino Yún and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.6.0.zip", + "archiveFileName": "Bridge-1.6.0.zip", + "size": 59403, + "checksum": "SHA-256:a8cf61d099550cd9a6f37f1f1a40369a6448cc52c2a87183e27240915b858fd7" + }, + { + "name": "Bridge", + "version": "1.6.1", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the microcontroller. For Arduino/Genuino Yún, Yún Shield and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.6.1.zip", + "archiveFileName": "Bridge-1.6.1.zip", + "size": 61137, + "checksum": "SHA-256:f0b33f6191a9b8bb3d693bd3f811ef175b92470a420d6112bbabdfd41c9efc62" + }, + { + "name": "Bridge", + "version": "1.6.2", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the microcontroller. For Arduino/Genuino Yún, Yún Shield and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.6.2.zip", + "archiveFileName": "Bridge-1.6.2.zip", + "size": 66457, + "checksum": "SHA-256:d6ac5785fd1dad7d34c31e02c76e4cbc08b8a20906fc4e40a48cd2569a2fcdd8" + }, + { + "name": "Bridge", + "version": "1.6.3", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the microcontroller. For Arduino/Genuino Yún, Yún Shield and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.6.3.zip", + "archiveFileName": "Bridge-1.6.3.zip", + "size": 61306, + "checksum": "SHA-256:a2f81451f2379a633ffff96a89321c519bea9cd33d986ece9f1d3c95a0d49b32" + }, + { + "name": "Bridge", + "version": "1.7.0", + "author": "Arduino", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables the communication between the Linux processor and the microcontroller. For Arduino/Genuino Yún, Yún Shield and TRE only.", + "paragraph": "The Bridge library feature: access to the shared storage, run and manage linux processes, open a remote console, access to the linux file system, including the SD card, enstablish http clients or servers.", + "website": "http://www.arduino.cc/en/Reference/YunBridgeLibrary", + "category": "Communication", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/Bridge-1.7.0.zip", + "archiveFileName": "Bridge-1.7.0.zip", + "size": 61431, + "checksum": "SHA-256:3bb1bae4ca76ac8849977fe9c5966a1d18d97bdfd3d808ee2a66581576acfa58" + } + ] +} \ No newline at end of file diff --git a/app/testdata/libraries/index_SD_only/library_index.json b/app/testdata/libraries/index_SD_only/library_index.json new file mode 100644 index 00000000000..309cc103714 --- /dev/null +++ b/app/testdata/libraries/index_SD_only/library_index.json @@ -0,0 +1,70 @@ +{ + "libraries": [ + { + "name": "SD", + "version": "1.1.1", + "author": "Arduino, SparkFun", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables reading and writing on SD cards.", + "paragraph": "Once an SD memory card is connected to the SPI interface of the Arduino or Genuino board you can create files and read/write on them. You can also move through directories on the SD card.", + "website": "http://www.arduino.cc/en/Reference/SD", + "category": "Data Storage", + "architectures": [ + "*" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/SD-1.1.1.zip", + "archiveFileName": "SD-1.1.1.zip", + "size": 59689, + "checksum": "SHA-256:231414a512e385ffd2c47d5bec547f8e3b7a3ace340769c7ff745e99d43f68fa" + }, + { + "name": "SD", + "version": "1.2.0", + "author": "Arduino, SparkFun", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables reading and writing on SD cards.", + "paragraph": "Once an SD memory card is connected to the SPI interface of the Arduino or Genuino board you can create files and read/write on them. You can also move through directories on the SD card.", + "website": "http://www.arduino.cc/en/Reference/SD", + "category": "Data Storage", + "architectures": [ + "avr", + "sam", + "samd", + "arc32" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/SD-1.2.0.zip", + "archiveFileName": "SD-1.2.0.zip", + "size": 59845, + "checksum": "SHA-256:9b43fc21676172ea8323a97497deb4502e506767935304145a97f8b261e75d64" + }, + { + "name": "SD", + "version": "1.2.1", + "author": "Arduino, SparkFun", + "maintainer": "Arduino \u003cinfo@arduino.cc\u003e", + "sentence": "Enables reading and writing on SD cards.", + "paragraph": "Once an SD memory card is connected to the SPI interface of the Arduino or Genuino board you can create files and read/write on them. You can also move through directories on the SD card.", + "website": "http://www.arduino.cc/en/Reference/SD", + "category": "Data Storage", + "architectures": [ + "avr", + "sam", + "samd", + "arc32" + ], + "types": [ + "Arduino" + ], + "url": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/SD-1.2.1.zip", + "archiveFileName": "SD-1.2.1.zip", + "size": 59849, + "checksum": "SHA-256:933a62abbe7bc18f736e26a33a63c70e76f971c7bd6954f745877c6a887d0b0e" + } + ] +} diff --git a/arduino-core/.classpath b/arduino-core/.classpath index 99329d1b865..fd2e5d190dc 100644 --- a/arduino-core/.classpath +++ b/arduino-core/.classpath @@ -5,33 +5,26 @@ - + - + + - - - - - - - - - - - - - - + + + + + + diff --git a/arduino-core/lib/commons-io-2.6.jar b/arduino-core/lib/commons-io-2.6.jar new file mode 100644 index 00000000000..00556b119d4 Binary files /dev/null and b/arduino-core/lib/commons-io-2.6.jar differ diff --git a/arduino-core/lib/commons-lang3-3.3.2.jar b/arduino-core/lib/commons-lang3-3.3.2.jar deleted file mode 100644 index 2ce08ae99d1..00000000000 Binary files a/arduino-core/lib/commons-lang3-3.3.2.jar and /dev/null differ diff --git a/arduino-core/lib/commons-lang3-3.8.1.jar b/arduino-core/lib/commons-lang3-3.8.1.jar new file mode 100644 index 00000000000..2c65ce67d5c Binary files /dev/null and b/arduino-core/lib/commons-lang3-3.8.1.jar differ diff --git a/arduino-core/lib/jackson-annotations-2.6.3.jar b/arduino-core/lib/jackson-annotations-2.6.3.jar deleted file mode 100644 index 9bb53e875cc..00000000000 Binary files a/arduino-core/lib/jackson-annotations-2.6.3.jar and /dev/null differ diff --git a/arduino-core/lib/jackson-annotations-2.9.5.jar b/arduino-core/lib/jackson-annotations-2.9.5.jar new file mode 100644 index 00000000000..98ea0047791 Binary files /dev/null and b/arduino-core/lib/jackson-annotations-2.9.5.jar differ diff --git a/arduino-core/lib/jackson-core-2.6.3.jar b/arduino-core/lib/jackson-core-2.6.3.jar deleted file mode 100644 index e1ec916dddc..00000000000 Binary files a/arduino-core/lib/jackson-core-2.6.3.jar and /dev/null differ diff --git a/arduino-core/lib/jackson-core-2.9.5.jar b/arduino-core/lib/jackson-core-2.9.5.jar new file mode 100644 index 00000000000..b70d1ef1ac8 Binary files /dev/null and b/arduino-core/lib/jackson-core-2.9.5.jar differ diff --git a/arduino-core/lib/jackson-databind-2.6.3.jar b/arduino-core/lib/jackson-databind-2.6.3.jar deleted file mode 100644 index e60f9fe1a7c..00000000000 Binary files a/arduino-core/lib/jackson-databind-2.6.3.jar and /dev/null differ diff --git a/arduino-core/lib/jackson-databind-2.9.5.jar b/arduino-core/lib/jackson-databind-2.9.5.jar new file mode 100644 index 00000000000..7a951509890 Binary files /dev/null and b/arduino-core/lib/jackson-databind-2.9.5.jar differ diff --git a/arduino-core/lib/jackson-module-mrbean-2.6.3.jar b/arduino-core/lib/jackson-module-mrbean-2.6.3.jar deleted file mode 100644 index 69cc60a5808..00000000000 Binary files a/arduino-core/lib/jackson-module-mrbean-2.6.3.jar and /dev/null differ diff --git a/arduino-core/lib/jmdns-3.5.1.jar b/arduino-core/lib/jmdns-3.5.1.jar deleted file mode 100644 index f9527c104c0..00000000000 Binary files a/arduino-core/lib/jmdns-3.5.1.jar and /dev/null differ diff --git a/arduino-core/lib/jmdns-3.5.5.jar b/arduino-core/lib/jmdns-3.5.5.jar new file mode 100644 index 00000000000..a8b65ff2ec7 Binary files /dev/null and b/arduino-core/lib/jmdns-3.5.5.jar differ diff --git a/arduino-core/lib/jssc-2.8.0-arduino1.jar b/arduino-core/lib/jssc-2.8.0-arduino1.jar deleted file mode 100755 index 3cf257ea634..00000000000 Binary files a/arduino-core/lib/jssc-2.8.0-arduino1.jar and /dev/null differ diff --git a/arduino-core/lib/jssc-2.8.0-arduino4.jar b/arduino-core/lib/jssc-2.8.0-arduino4.jar new file mode 100644 index 00000000000..623a3833bce Binary files /dev/null and b/arduino-core/lib/jssc-2.8.0-arduino4.jar differ diff --git a/arduino-core/lib/log4j-api-2.12.0.jar b/arduino-core/lib/log4j-api-2.12.0.jar new file mode 100644 index 00000000000..93f770d64a9 Binary files /dev/null and b/arduino-core/lib/log4j-api-2.12.0.jar differ diff --git a/arduino-core/lib/log4j-core-2.12.0.jar b/arduino-core/lib/log4j-core-2.12.0.jar new file mode 100644 index 00000000000..fbab720635d Binary files /dev/null and b/arduino-core/lib/log4j-core-2.12.0.jar differ diff --git a/arduino-core/src/cc/arduino/Compiler.java b/arduino-core/src/cc/arduino/Compiler.java index 464686cf90f..c2c5b0ff624 100644 --- a/arduino-core/src/cc/arduino/Compiler.java +++ b/arduino-core/src/cc/arduino/Compiler.java @@ -134,7 +134,7 @@ enum BuilderAction { } } - private static final Pattern ERROR_FORMAT = Pattern.compile("(.+\\.\\w+):(\\d+)(:\\d+)*:\\s*error:\\s*(.*)\\s*", Pattern.MULTILINE | Pattern.DOTALL); + private static final Pattern ERROR_FORMAT = Pattern.compile("(.+\\.\\w+):(\\d+)(:\\d+)*:\\s*((fatal)?\\s*error:\\s*)(.*)\\s*", Pattern.MULTILINE | Pattern.DOTALL); private final File pathToSketch; private final Sketch sketch; @@ -247,7 +247,7 @@ private void callArduinoBuilder(TargetBoard board, TargetPlatform platform, Targ addPathFlagIfPathExists(cmd, "-tools", installedPackagesFolder); addPathFlagIfPathExists(cmd, "-built-in-libraries", BaseNoGui.getContentFile("libraries")); - addPathFlagIfPathExists(cmd, "-libraries", BaseNoGui.getSketchbookLibrariesFolder()); + addPathFlagIfPathExists(cmd, "-libraries", BaseNoGui.getSketchbookLibrariesFolder().folder); String fqbn = Stream.of(aPackage.getId(), platform.getId(), board.getId(), boardOptions(board)).filter(s -> !s.isEmpty()).collect(Collectors.joining(":")); cmd.add("-fqbn=" + fqbn); @@ -405,7 +405,7 @@ private void runRecipe(String recipe, PreferencesMap prefs) throws RunnerExcepti String[] cmdArray; String cmd = prefs.getOrExcept(recipe); try { - cmdArray = StringReplacer.formatAndSplit(cmd, dict, true); + cmdArray = StringReplacer.formatAndSplit(cmd, dict); } catch (Exception e) { throw new RunnerException(e); } @@ -516,16 +516,14 @@ public void message(String s) { if (pieces != null) { String msg = ""; - int errorIdx = pieces.length - 1; - String error = pieces[errorIdx]; String filename = pieces[1]; int line = PApplet.parseInt(pieces[2]); - int col; - if (errorIdx > 3) { + int col = -1; + if (pieces[3] != null) { col = PApplet.parseInt(pieces[3].substring(1)); - } else { - col = -1; } + String errorPrefix = pieces[4]; + String error = pieces[6]; if (error.trim().equals("SPI.h: No such file or directory")) { error = tr("Please import the SPI library from the Sketch > Import Library menu."); @@ -585,11 +583,8 @@ public void message(String s) { String fileName = ex.getCodeFile().getPrettyName(); int lineNum = ex.getCodeLine() + 1; int colNum = ex.getCodeColumn(); - if (colNum != -1) { - s = fileName + ":" + lineNum + ":" + colNum + ": error: " + error + msg; - } else { - s = fileName + ":" + lineNum + ": error: " + error + msg; - } + String column = (colNum != -1) ? (":" + colNum) : ""; + s = fileName + ":" + lineNum + column + ": " + errorPrefix + error + msg; } if (ex != null) { diff --git a/arduino-core/src/cc/arduino/Constants.java b/arduino-core/src/cc/arduino/Constants.java index 8d67f6ed9f1..20858ea99f3 100644 --- a/arduino-core/src/cc/arduino/Constants.java +++ b/arduino-core/src/cc/arduino/Constants.java @@ -37,6 +37,7 @@ public class Constants { public static final String PREF_REMOVE_PLACEHOLDER = "___REMOVE___"; public static final String PREF_BOARDS_MANAGER_ADDITIONAL_URLS = "boardsmanager.additional.urls"; public static final String PREF_CONTRIBUTIONS_TRUST_ALL = "contributions.trust.all"; + public static final String ALLOW_INSECURE_PACKAGES = "allow_insecure_packages"; public static final String DEFAULT_INDEX_FILE_NAME = "package_index.json"; public static final String BUNDLED_INDEX_FILE_NAME = "package_index_bundled.json"; @@ -57,10 +58,8 @@ public class Constants { public static final String PREF_PROXY_PAC_URL = "proxy.pac.url"; public static final String PREF_PROXY_MANUAL_HOSTNAME = "proxy.manual.hostname"; public static final String PREF_PROXY_MANUAL_PORT = "proxy.manual.port"; - public static final String PREF_PROXY_MANUAL_USERNAME = "proxy.manual.username"; - public static final String PREF_PROXY_MANUAL_PASSWORD = "proxy.manual.password"; - public static final String PREF_PROXY_AUTO_USERNAME = "proxy.manual.username"; - public static final String PREF_PROXY_AUTO_PASSWORD = "proxy.manual.password"; + public static final String PREF_PROXY_USERNAME = "proxy.manual.username"; + public static final String PREF_PROXY_PASSWORD = "proxy.manual.password"; public static final String PACKAGE_INDEX_URL; public static final String LIBRARY_INDEX_URL; @@ -74,7 +73,7 @@ public class Constants { if (extenalPackageIndexUrl != null && !"".equals(extenalPackageIndexUrl)) { PACKAGE_INDEX_URL = extenalPackageIndexUrl; } else { - PACKAGE_INDEX_URL = "http://downloads.arduino.cc/packages/package_index.json"; + PACKAGE_INDEX_URL = "https://downloads.arduino.cc/packages/package_index.json"; } String externalLibraryIndexUrl = System.getProperty("LIBRARY_INDEX_URL"); @@ -87,8 +86,8 @@ public class Constants { LIBRARY_INDEX_URL_GZ = ""; } } else { - LIBRARY_INDEX_URL = "http://downloads.arduino.cc/libraries/library_index.json"; - LIBRARY_INDEX_URL_GZ = "http://downloads.arduino.cc/libraries/library_index.json.gz"; + LIBRARY_INDEX_URL = "https://downloads.arduino.cc/libraries/library_index.json"; + LIBRARY_INDEX_URL_GZ = "https://downloads.arduino.cc/libraries/library_index.json.gz"; } } diff --git a/arduino-core/src/cc/arduino/UploaderUtils.java b/arduino-core/src/cc/arduino/UploaderUtils.java index ec27b496148..875f41d7676 100644 --- a/arduino-core/src/cc/arduino/UploaderUtils.java +++ b/arduino-core/src/cc/arduino/UploaderUtils.java @@ -35,7 +35,7 @@ import processing.app.BaseNoGui; import processing.app.PreferencesData; import processing.app.Sketch; -import processing.app.debug.TargetPlatform; +import processing.app.debug.TargetBoard; import java.util.LinkedList; import java.util.List; @@ -45,15 +45,14 @@ public class UploaderUtils { public Uploader getUploaderByPreferences(boolean noUploadPort) { - TargetPlatform target = BaseNoGui.getTargetPlatform(); - String board = PreferencesData.get("board"); - BoardPort boardPort = null; if (!noUploadPort) { - boardPort = BaseNoGui.getDiscoveryManager().find(PreferencesData.get("serial.port")); + String port = PreferencesData.get("serial.port"); + boardPort = BaseNoGui.getDiscoveryManager().find(port); } - return new UploaderFactory().newUploader(target.getBoards().get(board), boardPort, noUploadPort); + TargetBoard board = BaseNoGui.getTargetBoard(); + return new UploaderFactory().newUploader(board, boardPort, noUploadPort); } public boolean upload(Sketch data, Uploader uploader, String suggestedClassName, boolean usingProgrammer, boolean noUploadPort, List warningsAccumulator) throws Exception { diff --git a/arduino-core/src/cc/arduino/contributions/DownloadableContribution.java b/arduino-core/src/cc/arduino/contributions/DownloadableContribution.java index a51b5f0eb90..87ef9cee465 100644 --- a/arduino-core/src/cc/arduino/contributions/DownloadableContribution.java +++ b/arduino-core/src/cc/arduino/contributions/DownloadableContribution.java @@ -32,15 +32,10 @@ import com.github.zafarkhaja.semver.Version; import java.io.File; +import java.util.Optional; public abstract class DownloadableContribution { - private boolean installed; - private File installedFolder; - - private boolean downloaded; - private File downloadedFile; - public abstract String getUrl(); public abstract String getVersion(); @@ -51,6 +46,8 @@ public abstract class DownloadableContribution { public abstract String getArchiveFileName(); + private boolean downloaded; + public boolean isDownloaded() { return downloaded; } @@ -59,6 +56,8 @@ public void setDownloaded(boolean downloaded) { this.downloaded = downloaded; } + private File downloadedFile; + public File getDownloadedFile() { return downloadedFile; } @@ -67,46 +66,11 @@ public void setDownloadedFile(File downloadedFile) { this.downloadedFile = downloadedFile; } - public boolean isInstalled() { - return installed; - } - - public void setInstalled(boolean installed) { - this.installed = installed; - } - - public File getInstalledFolder() { - return installedFolder; - } - - public void setInstalledFolder(File installedFolder) { - this.installedFolder = installedFolder; - } - - private boolean readOnly; - - public boolean isReadOnly() { - return readOnly; - } - - public void setReadOnly(boolean readOnly) { - this.readOnly = readOnly; - } - public String getParsedVersion() { - Version version = VersionHelper.valueOf(getVersion()); - if (version == null) { - return null; - } - return version.toString(); - } - - @Override - public String toString() { - String res = ""; - if (installed) { - res += "installed on " + installedFolder.getAbsolutePath() + " (" + getSize() + " bytes)"; + Optional version = VersionHelper.valueOf(getVersion()); + if (version.isPresent()) { + return version.get().toString(); } - return res; + return null; } } diff --git a/arduino-core/src/cc/arduino/contributions/DownloadableContributionBuiltInAtTheBottomComparator.java b/arduino-core/src/cc/arduino/contributions/DownloadableContributionBuiltInAtTheBottomComparator.java deleted file mode 100644 index 11c18cb44bf..00000000000 --- a/arduino-core/src/cc/arduino/contributions/DownloadableContributionBuiltInAtTheBottomComparator.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions; - -import java.util.Comparator; - -public class DownloadableContributionBuiltInAtTheBottomComparator implements Comparator { - @Override - public int compare(DownloadableContribution p1, DownloadableContribution p2) { - if (p1.isReadOnly() == p2.isReadOnly()) { - return 0; - } - - return p1.isReadOnly() ? 1 : -1; - } -} diff --git a/arduino-core/src/cc/arduino/contributions/DownloadableContributionVersionComparator.java b/arduino-core/src/cc/arduino/contributions/DownloadableContributionVersionComparator.java index b7f9959a475..f500a9e4186 100644 --- a/arduino-core/src/cc/arduino/contributions/DownloadableContributionVersionComparator.java +++ b/arduino-core/src/cc/arduino/contributions/DownloadableContributionVersionComparator.java @@ -33,15 +33,9 @@ public class DownloadableContributionVersionComparator implements Comparator { - private final VersionComparator versionComparator; - - public DownloadableContributionVersionComparator() { - versionComparator = new VersionComparator(); - } - @Override public int compare(DownloadableContribution lib1, DownloadableContribution lib2) { - return versionComparator.compare(lib1.getParsedVersion(), lib2.getParsedVersion()); + return VersionComparator.compareTo(lib1.getParsedVersion(), lib2.getParsedVersion()); } diff --git a/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java b/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java index 0259911667d..ee32dff5386 100644 --- a/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java +++ b/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java @@ -30,20 +30,25 @@ package cc.arduino.contributions; import cc.arduino.utils.FileHash; +import cc.arduino.utils.MultiStepProgress; import cc.arduino.utils.Progress; import cc.arduino.utils.network.FileDownloader; +import org.apache.commons.io.FilenameUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import processing.app.BaseNoGui; +import processing.app.PreferencesData; import java.io.File; import java.net.URL; -import java.nio.file.Files; -import java.nio.file.LinkOption; -import java.nio.file.Path; -import java.nio.file.Paths; +import java.nio.file.*; +import java.util.Collection; import static processing.app.I18n.format; import static processing.app.I18n.tr; public class DownloadableContributionsDownloader { + private static Logger log = LogManager.getLogger(DownloadableContributionsDownloader.class); private final File stagingFolder; @@ -51,9 +56,18 @@ public DownloadableContributionsDownloader(File _stagingFolder) { stagingFolder = _stagingFolder; } - public File download(DownloadableContribution contribution, Progress progress, final String statusText, ProgressListener progressListener) throws Exception { + public File download(DownloadableContribution contribution, Progress progress, final String statusText, ProgressListener progressListener, boolean allowCache) throws Exception { + return download(contribution, progress, statusText, progressListener, false, allowCache); + } + + public File download(DownloadableContribution contribution, Progress progress, final String statusText, ProgressListener progressListener, boolean noResume, boolean allowCache) throws Exception { URL url = new URL(contribution.getUrl()); - Path outputFile = Paths.get(stagingFolder.getAbsolutePath(), contribution.getArchiveFileName()); + // Filter out paths from file name + String filename = new File(contribution.getArchiveFileName()).getName(); + Path outputFile = Paths.get(stagingFolder.getAbsolutePath(), filename).normalize(); + if (outputFile.toFile().isDirectory()) { + throw new Exception(format("Can't download {0}: invalid filename or exinsting directory", contribution.getArchiveFileName())); + } // Ensure the existence of staging folder Files.createDirectories(stagingFolder.toPath()); @@ -66,7 +80,7 @@ public File download(DownloadableContribution contribution, Progress progress, f while (true) { // Need to download or resume downloading? if (!Files.isRegularFile(outputFile, LinkOption.NOFOLLOW_LINKS) || (Files.size(outputFile) < contribution.getSize())) { - download(url, outputFile.toFile(), progress, statusText, progressListener); + download(url, outputFile.toFile(), progress, statusText, progressListener, noResume, allowCache); downloaded = true; } @@ -112,8 +126,12 @@ private boolean hasChecksum(DownloadableContribution contribution) { return algo != null && !algo.isEmpty(); } - public void download(URL url, File tmpFile, Progress progress, String statusText, ProgressListener progressListener) throws Exception { - FileDownloader downloader = new FileDownloader(url, tmpFile); + public void download(URL url, File tmpFile, Progress progress, String statusText, ProgressListener progressListener, boolean allowCache) throws Exception { + download(url, tmpFile, progress, statusText, progressListener, false, allowCache); + } + + public void download(URL url, File tmpFile, Progress progress, String statusText, ProgressListener progressListener, boolean noResume, boolean allowCache) throws Exception { + final FileDownloader downloader = new FileDownloader(url, tmpFile, allowCache); downloader.addObserver((o, arg) -> { FileDownloader me = (FileDownloader) o; String msg = ""; @@ -126,10 +144,101 @@ public void download(URL url, File tmpFile, Progress progress, String statusText progress.setProgress(me.getProgress()); progressListener.onProgress(progress); }); - downloader.download(); + downloader.download(noResume); if (!downloader.isCompleted()) { throw new Exception(format(tr("Error downloading {0}"), url), downloader.getError()); } } + public void downloadIndexAndSignature(MultiStepProgress progress, URL packageIndexUrl, ProgressListener progressListener, SignatureVerifier signatureVerifier) throws Exception { + + // Extract the file name from the url + final String indexFileName = FilenameUtils.getName(packageIndexUrl.getPath()); + final File packageIndex = BaseNoGui.indexer.getIndexFile(indexFileName); + + final String statusText = tr("Downloading platforms index..."); + + // Create temp files + final File packageIndexTemp = File.createTempFile(indexFileName, ".tmp"); + try { + // Download package index + download(packageIndexUrl, packageIndexTemp, progress, statusText, progressListener, true, true); + final URL signatureUrl = new URL(packageIndexUrl.toString() + ".sig"); + + if (verifyDomain(packageIndexUrl)) { + if (checkSignature(progress, signatureUrl, progressListener, signatureVerifier, statusText, packageIndexTemp)) { + Files.move(packageIndexTemp.toPath(), packageIndex.toPath(), StandardCopyOption.REPLACE_EXISTING); + } else { + log.info("The cached files have been removed. {} {}", packageIndexUrl, signatureUrl); + FileDownloader.invalidateFiles(packageIndexUrl, signatureUrl); + } + } else { + // Move the package index to the destination when the signature is not necessary + Files.move(packageIndexTemp.toPath(), packageIndex.toPath(), StandardCopyOption.REPLACE_EXISTING); + log.info("The domain is not selected to verify the signature. will be copied into this path {}, packageIndex url: {}", packageIndex, packageIndexUrl); + } + } catch (Exception e) { + log.error("Cannot download the package index from {} the package will be discard", packageIndexUrl, e); + throw e; + } finally { + // Delete useless temp file + Files.deleteIfExists(packageIndexTemp.toPath()); + } + } + + public boolean verifyDomain(URL url) { + final Collection domain = PreferencesData. + getCollection("http.signature_verify_domains"); + if (domain.size() == 0) { + // Default domain + domain.add("downloads.arduino.cc"); + } + if (domain.contains(url.getHost())) { + return true; + } else { + log.info("The domain is not selected to verify the signature. domain list: {}, url: {}", domain, url); + return false; + } + } + + public boolean checkSignature(MultiStepProgress progress, URL signatureUrl, ProgressListener progressListener, SignatureVerifier signatureVerifier, String statusText, File fileToVerify) throws Exception { + + + // Signature file name + final String signatureFileName = FilenameUtils.getName(signatureUrl.getPath()); + final File packageIndexSignature = BaseNoGui.indexer.getIndexFile(signatureFileName); + final File packageIndexSignatureTemp = File.createTempFile(signatureFileName, ".tmp"); + + + try { + // Download signature + download(signatureUrl, packageIndexSignatureTemp, progress, statusText, progressListener, true); + + if (PreferencesData.areInsecurePackagesAllowed()) { + Files.move(packageIndexSignatureTemp.toPath(), packageIndexSignature.toPath(), StandardCopyOption.REPLACE_EXISTING); + log.info("Allowing insecure packages because allow_insecure_packages is set to true in preferences.txt" + + " but the signature was download"); + return true; + } + + // Verify the signature before move the files + final boolean signatureVerified = signatureVerifier.isSigned(fileToVerify, packageIndexSignatureTemp); + if (signatureVerified) { + log.info("Signature verified. url={}, signature url={}, file to verify={}, signature file={}", signatureUrl, signatureUrl, fileToVerify, packageIndexSignatureTemp); + // Move if the signature is ok + Files.move(packageIndexSignatureTemp.toPath(), packageIndexSignature.toPath(), StandardCopyOption.REPLACE_EXISTING); + } else { + log.error("{} file signature verification failed. File ignored.", signatureUrl); + System.err.println(format(tr("{0} file signature verification failed. File ignored."), signatureUrl.toString())); + } + return signatureVerified; + } catch (Exception e) { + log.error("Cannot download the signature from {} the package will be discard", signatureUrl, e); + throw e; + } finally { + Files.deleteIfExists(packageIndexSignatureTemp.toPath()); + } + + } + } diff --git a/arduino-core/src/cc/arduino/contributions/GZippedJsonDownloader.java b/arduino-core/src/cc/arduino/contributions/GZippedJsonDownloader.java index 6b6f3812327..8a717dcf26c 100644 --- a/arduino-core/src/cc/arduino/contributions/GZippedJsonDownloader.java +++ b/arduino-core/src/cc/arduino/contributions/GZippedJsonDownloader.java @@ -29,13 +29,16 @@ package cc.arduino.contributions; +import cc.arduino.Constants; import cc.arduino.utils.Progress; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; import org.apache.commons.compress.compressors.gzip.GzipUtils; import org.apache.commons.compress.utils.IOUtils; +import org.apache.commons.io.FilenameUtils; import java.io.*; import java.net.URL; +import java.nio.file.Files; public class GZippedJsonDownloader { @@ -49,18 +52,22 @@ public GZippedJsonDownloader(DownloadableContributionsDownloader downloader, URL this.gzippedUrl = gzippedUrl; } - public void download(File tmpFile, Progress progress, String statusText, ProgressListener progressListener) throws Exception { + public void download(File tmpFile, Progress progress, String statusText, ProgressListener progressListener, boolean allowCache) throws Exception { + File gzipTmpFile = null; try { - File gzipTmpFile = new File(tmpFile.getParentFile(), GzipUtils.getCompressedFilename(tmpFile.getName())); + String tmpFileName = FilenameUtils.getName(new URL(Constants.LIBRARY_INDEX_URL_GZ).getPath()); + gzipTmpFile = File.createTempFile(tmpFileName, GzipUtils.getCompressedFilename(tmpFile.getName())); // remove eventual leftovers from previous downloads - if (gzipTmpFile.exists()) { - gzipTmpFile.delete(); - } - new JsonDownloader(downloader, gzippedUrl).download(gzipTmpFile, progress, statusText, progressListener); + Files.deleteIfExists(gzipTmpFile.toPath()); + + new JsonDownloader(downloader, gzippedUrl).download(gzipTmpFile, progress, statusText, progressListener, allowCache); decompress(gzipTmpFile, tmpFile); - gzipTmpFile.delete(); } catch (Exception e) { - new JsonDownloader(downloader, url).download(tmpFile, progress, statusText, progressListener); + new JsonDownloader(downloader, url).download(tmpFile, progress, statusText, progressListener, allowCache); + } finally { + if (gzipTmpFile != null) { + Files.deleteIfExists(gzipTmpFile.toPath()); + } } } diff --git a/arduino-core/src/cc/arduino/contributions/JsonDownloader.java b/arduino-core/src/cc/arduino/contributions/JsonDownloader.java index 88f9e7783f1..5b932d08064 100644 --- a/arduino-core/src/cc/arduino/contributions/JsonDownloader.java +++ b/arduino-core/src/cc/arduino/contributions/JsonDownloader.java @@ -44,9 +44,9 @@ public JsonDownloader(DownloadableContributionsDownloader downloader, URL url) { this.url = url; } - public void download(File tmpFile, Progress progress, String statusText, ProgressListener progressListener) throws Exception { + public void download(File tmpFile, Progress progress, String statusText, ProgressListener progressListener, boolean allowCache) throws Exception { try { - downloader.download(url, tmpFile, progress, statusText, progressListener); + downloader.download(url, tmpFile, progress, statusText, progressListener, allowCache); } catch (InterruptedException e) { // Download interrupted... just exit } diff --git a/arduino-core/src/cc/arduino/contributions/SignatureVerificationFailedException.java b/arduino-core/src/cc/arduino/contributions/SignatureVerificationFailedException.java deleted file mode 100644 index 77136cb46cb..00000000000 --- a/arduino-core/src/cc/arduino/contributions/SignatureVerificationFailedException.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions; - -import processing.app.I18n; - -import static processing.app.I18n.tr; - -@SuppressWarnings("serial") -public class SignatureVerificationFailedException extends Exception { - - public SignatureVerificationFailedException(String filename) { - super(I18n.format(tr("{0} file signature verification failed"), filename)); - } - - public SignatureVerificationFailedException(String filename, Throwable cause) { - super(I18n.format(tr("{0} file signature verification failed"), filename), cause); - } -} diff --git a/arduino-core/src/cc/arduino/contributions/SignatureVerifier.java b/arduino-core/src/cc/arduino/contributions/SignatureVerifier.java index 6e2a80626b1..a4ea7a7ba53 100644 --- a/arduino-core/src/cc/arduino/contributions/SignatureVerifier.java +++ b/arduino-core/src/cc/arduino/contributions/SignatureVerifier.java @@ -50,6 +50,15 @@ public boolean isSigned(File indexFile) { } } + public boolean isSigned(File indexFile, File signature) { + try { + return verify(indexFile, signature, new File(BaseNoGui.getContentFile("lib"), "public.gpg.key")); + } catch (Exception e) { + BaseNoGui.showWarning(e.getMessage(), e.getMessage(), e); + return false; + } + } + protected abstract boolean verify(File signedFile, File signature, File publicKey) throws IOException; } diff --git a/arduino-core/src/cc/arduino/contributions/VersionComparator.java b/arduino-core/src/cc/arduino/contributions/VersionComparator.java index 817f9bb5b2b..af6a1fdb376 100644 --- a/arduino-core/src/cc/arduino/contributions/VersionComparator.java +++ b/arduino-core/src/cc/arduino/contributions/VersionComparator.java @@ -31,42 +31,54 @@ import com.github.zafarkhaja.semver.Version; +import cc.arduino.contributions.libraries.ContributedLibrary; + import java.util.Comparator; +import java.util.Optional; public class VersionComparator implements Comparator { + public static int compareTo(String a, String b) { + Optional versionA = VersionHelper.valueOf(a); + Optional versionB = VersionHelper.valueOf(b); + if (versionA.isPresent() && versionB.isPresent()) { + return versionA.get().compareTo(versionB.get()); + } + if (versionA.isPresent()) { + return 1; + } + if (versionB.isPresent()) { + return -1; + } + return 0; + } + @Override public int compare(String a, String b) { - // null is always less than any other value - if (a == null && b == null) - return 0; - if (a == null) - return -1; - if (b == null) - return 1; + return compareTo(a, b); + } - Version versionA = VersionHelper.valueOf(a); - Version versionB = VersionHelper.valueOf(b); + public static boolean greaterThan(String a, String b) { + return compareTo(a, b) > 0; + } - return versionA.compareTo(versionB); + public static boolean greaterThanOrEqual(String a, String b) { + return compareTo(a, b) >= 0; } - public boolean greaterThan(String a, String b) { - // null is always less than any other value - if (a == null && b == null) { - return false; - } - if (a == null) { - return false; - } - if (b == null) { - return true; - } + public static String max(String a, String b) { + return greaterThan(a, b) ? a : b; + } - Version versionA = VersionHelper.valueOf(a); - Version versionB = VersionHelper.valueOf(b); + public static ContributedLibrary max(ContributedLibrary a, ContributedLibrary b) { + return greaterThan(a, b) ? a : b; + } - return versionA.greaterThan(versionB); + public static boolean greaterThan(ContributedLibrary a, ContributedLibrary b) { + return greaterThan(a.getParsedVersion(), b.getParsedVersion()); } + public static int compareTo(ContributedLibrary a, ContributedLibrary b) { + return compareTo(a.getParsedVersion(), b.getParsedVersion()); + } } diff --git a/arduino-core/src/cc/arduino/contributions/VersionHelper.java b/arduino-core/src/cc/arduino/contributions/VersionHelper.java index 0f108aed5a7..bead8d46ebf 100644 --- a/arduino-core/src/cc/arduino/contributions/VersionHelper.java +++ b/arduino-core/src/cc/arduino/contributions/VersionHelper.java @@ -29,13 +29,15 @@ package cc.arduino.contributions; +import java.util.Optional; + import com.github.zafarkhaja.semver.Version; public class VersionHelper { - public static Version valueOf(String ver) { + public static Optional valueOf(String ver) { if (ver == null) { - return null; + return Optional.empty(); } try { // Allow x.y-something, assuming x.y.0-something @@ -49,7 +51,7 @@ public static Version valueOf(String ver) { } String[] parts = version.split("\\."); if (parts.length >= 3) { - return Version.valueOf(ver); + return Optional.of(Version.valueOf(ver)); } if (parts.length == 2) { version += ".0"; @@ -57,11 +59,13 @@ public static Version valueOf(String ver) { if (parts.length == 1) { version += ".0.0"; } - return Version.valueOf(version + extra); + return Optional.of(Version.valueOf(version + extra)); } catch (Exception e) { - System.err.println("Invalid version found: " + ver); - return null; + return Optional.empty(); } } + public static int compare(String a, String b) { + return valueOf(a).get().compareTo(valueOf(b).get()); + } } diff --git a/arduino-core/src/cc/arduino/contributions/filters/BuiltInPredicate.java b/arduino-core/src/cc/arduino/contributions/filters/BuiltInPredicate.java deleted file mode 100644 index 4537faf4f8c..00000000000 --- a/arduino-core/src/cc/arduino/contributions/filters/BuiltInPredicate.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.filters; - -import cc.arduino.contributions.DownloadableContribution; - -import java.util.function.Predicate; - -public class BuiltInPredicate implements Predicate { - - @Override - public boolean test(DownloadableContribution input) { - return input.isReadOnly(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof BuiltInPredicate; - } -} diff --git a/arduino-core/src/cc/arduino/contributions/filters/InstalledPredicate.java b/arduino-core/src/cc/arduino/contributions/filters/InstalledPredicate.java deleted file mode 100644 index 12c4e61fd57..00000000000 --- a/arduino-core/src/cc/arduino/contributions/filters/InstalledPredicate.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.filters; - -import cc.arduino.contributions.DownloadableContribution; - -import java.util.function.Predicate; - -public class InstalledPredicate implements Predicate { - - @Override - public boolean test(DownloadableContribution input) { - return input.isInstalled(); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof DownloadableContribution; - } - -} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibrary.java b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibrary.java index cb0d34c916b..603b46909b3 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibrary.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibrary.java @@ -31,40 +31,99 @@ import cc.arduino.contributions.DownloadableContribution; import processing.app.I18n; +import processing.app.packages.UserLibrary; +import static processing.app.I18n.tr; import java.util.Comparator; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; -import static processing.app.I18n.tr; +import cc.arduino.contributions.VersionHelper; + +public class ContributedLibrary extends DownloadableContribution { + + private String url; + private String version; + private String checksum; + private long size; + private String archiveFileName; + private String name; + private String maintainer; + private String author; + private String website; + private String category; + private String licence; + private String paragraph; + private String sentence; + private ArrayList architectures; + private ArrayList types; + private ArrayList dependencies; + private ArrayList providesIncludes; + + public String getUrl() { return url; } + + public String getVersion() { return version; } + + public String getChecksum() { return checksum; } -public abstract class ContributedLibrary extends DownloadableContribution { + public long getSize() { return size; } - public abstract String getName(); + public String getArchiveFileName() { return archiveFileName; } - public abstract String getMaintainer(); + public String getName() { return name; } - public abstract String getAuthor(); + public String getMaintainer() { return maintainer; } - public abstract String getWebsite(); + public String getAuthor() { return author; } - public abstract String getCategory(); + public String getWebsite() { return website; } - public abstract void setCategory(String category); + public String getCategory() { return category; } - public abstract String getLicense(); + public void setCategory(String category) { this.category = category; } - public abstract String getParagraph(); + public String getLicense() { return licence; } - public abstract String getSentence(); + public String getParagraph() { return paragraph; } - public abstract List getArchitectures(); + public String getSentence() { return sentence; } - public abstract List getTypes(); + public List getArchitectures() { return architectures; } - public abstract List getRequires(); + public List getTypes() { return types; } + + public List getDependencies() { return dependencies; } + + public List getProvidesIncludes() { return providesIncludes; } public static final Comparator CASE_INSENSITIVE_ORDER = (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()); + private Optional installedLib = Optional.empty(); + + public Optional getInstalledLibrary() { + return installedLib; + } + + public boolean isLibraryInstalled() { + return installedLib.isPresent(); + } + + public void setInstalledUserLibrary(UserLibrary installed) { + this.installedLib = Optional.of(installed); + } + + public void unsetInstalledUserLibrary() { + installedLib = Optional.empty(); + } + + public boolean isIDEBuiltIn() { + if (!installedLib.isPresent()) { + return false; + } + return installedLib.get().isIDEBuiltIn(); + } + /** * Returns true if the library declares to support the specified * architecture (through the "architectures" property field). @@ -116,8 +175,8 @@ public String info() { } res += "\n"; res += " requires :\n"; - if (getRequires() != null) - for (ContributedLibraryReference r : getRequires()) { + if (getDependencies() != null) + for (ContributedLibraryDependency r : getDependencies()) { res += " " + r; } res += "\n"; @@ -137,7 +196,7 @@ public boolean equals(Object obj) { String thisVersion = getParsedVersion(); String otherVersion = other.getParsedVersion(); - boolean versionEquals = (thisVersion != null && otherVersion != null + boolean versionEquals = (thisVersion != null && thisVersion.equals(otherVersion)); // Important: for legacy libs, versions are null. Two legacy libs must @@ -147,9 +206,18 @@ public boolean equals(Object obj) { String thisName = getName(); String otherName = other.getName(); - - boolean nameEquals = thisName == null || otherName == null || thisName.equals(otherName); + boolean nameEquals = thisName != null && thisName.equals(otherName); return versionEquals && nameEquals; } + + public boolean isBefore(ContributedLibrary other) { + return VersionHelper.compare(getVersion(), other.getVersion()) < 0; + } + + @Override + public int hashCode() { + String hashingData = "CONTRIBUTEDLIB" + getName() + getVersion(); + return hashingData.hashCode(); + } } diff --git a/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryDependency.java b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryDependency.java new file mode 100644 index 00000000000..4da5ba6f75b --- /dev/null +++ b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryDependency.java @@ -0,0 +1,45 @@ +/* + * This file is part of Arduino. + * + * Copyright 2014 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package cc.arduino.contributions.libraries; + +public class ContributedLibraryDependency { + + private String name; + private String version; + + public String getName() { return name; } + + public String getVersion() { return version; } + + @Override + public String toString() { + return getName() + " " + getVersion(); + } +} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryReference.java b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryReference.java deleted file mode 100644 index f4edd57327f..00000000000 --- a/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryReference.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2014 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries; - -public abstract class ContributedLibraryReference { - - public abstract String getName(); - - public abstract String getMaintainer(); - - public abstract String getVersion(); - - @Override - public String toString() { - return getName() + " " + getVersion() + " (" + getMaintainer() + ")"; - } -} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryReleases.java b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryReleases.java new file mode 100644 index 00000000000..7a2a75a4498 --- /dev/null +++ b/arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryReleases.java @@ -0,0 +1,109 @@ +/* + * This file is part of Arduino. + * + * Copyright 2015 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package cc.arduino.contributions.libraries; + +import cc.arduino.contributions.VersionComparator; +import processing.app.packages.UserLibraryFolder.Location; + +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; + +public class ContributedLibraryReleases { + + private List releases = new LinkedList<>(); + private List versions = new LinkedList<>(); + private ContributedLibrary latest = null; + private ContributedLibrary selected = null; + + public ContributedLibraryReleases(ContributedLibrary library) { + add(library); + } + + public ContributedLibraryReleases(List libraries) { + libraries.forEach(this::add); + } + + public List getReleases() { + return releases; + } + + public boolean shouldContain(ContributedLibrary lib) { + if (latest == null) { + return true; + } + return lib.getName().equals(latest.getName()); + } + + public void add(ContributedLibrary library) { + if (latest == null) { + latest = library; + } + releases.add(library); + String version = library.getParsedVersion(); + if (version != null) { + versions.add(version); + } + if (VersionComparator.greaterThan(version, latest.getParsedVersion())) { + latest = library; + } + selected = latest; + } + + public Optional getInstalled() { + return releases.stream() // + .filter(ContributedLibrary::isLibraryInstalled) // + .reduce((x, y) -> { + Location lx = x.getInstalledLibrary().get().getLocation(); + Location ly = y.getInstalledLibrary().get().getLocation(); + if (lx == ly) { + return VersionComparator.max(x, y); + } + return lx == Location.SKETCHBOOK ? x : y; + }); + } + + public ContributedLibrary getLatest() { + return latest; + } + + public ContributedLibrary getSelected() { + return selected; + } + + public void select(ContributedLibrary lib) { + for (ContributedLibrary r : releases) { + if (r == lib) { + selected = r; + return; + } + } + } +} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/EmptyLibrariesIndex.java b/arduino-core/src/cc/arduino/contributions/libraries/EmptyLibrariesIndex.java deleted file mode 100644 index f85ab46ef3c..00000000000 --- a/arduino-core/src/cc/arduino/contributions/libraries/EmptyLibrariesIndex.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2016 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries; - -import java.util.ArrayList; -import java.util.List; - -public class EmptyLibrariesIndex extends LibrariesIndex { - - private List list = new ArrayList<>(); - - @Override - public List getLibraries() { - return list; - } - -} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java index a78b6b63733..02ff0475cfa 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndex.java @@ -29,19 +29,29 @@ package cc.arduino.contributions.libraries; -import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator; -import cc.arduino.contributions.filters.InstalledPredicate; -import cc.arduino.contributions.libraries.filters.LibraryWithNamePredicate; - -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; -public abstract class LibrariesIndex { +import cc.arduino.contributions.VersionComparator; + +public class LibrariesIndex { + + private ArrayList list = new ArrayList<>(); - public abstract List getLibraries(); + public List getLibraries() { + return list; + } public List find(final String name) { - return getLibraries().stream().filter(new LibraryWithNamePredicate(name)).collect(Collectors.toList()); + return getLibraries().stream() // + .filter(l -> name.equals(l.getName())) // + .collect(Collectors.toList()); } public ContributedLibrary find(String name, String version) { @@ -91,14 +101,82 @@ public List getTypes() { return types; } - public ContributedLibrary getInstalled(String name) { - List installedReleases = find(name).stream().filter(new InstalledPredicate()).collect(Collectors.toList()); - Collections.sort(installedReleases, new DownloadableContributionBuiltInAtTheBottomComparator()); + public Optional getInstalled(String name) { + ContributedLibraryReleases rel = new ContributedLibraryReleases(find(name)); + return rel.getInstalled(); + } - if (installedReleases.isEmpty()) { + public List resolveDependeciesOf(ContributedLibrary library) { + List solution = new ArrayList<>(); + solution.add(library); + if (resolveDependeciesOf(solution, library)) { + return solution; + } else { return null; } + } + + public boolean resolveDependeciesOf(List solution, + ContributedLibrary library) { + List requirements = library.getDependencies(); + if (requirements == null) { + // No deps for this library, great! + return true; + } + + for (ContributedLibraryDependency dep : requirements) { + + // If the current solution already contains this dependency, skip over + boolean alreadyInSolution = solution.stream() + .anyMatch(l -> l.getName().equals(dep.getName())); + if (alreadyInSolution) + continue; + + // Generate possible matching dependencies + List possibleDeps = findMatchingDependencies(dep); + + // If there are no dependencies available add as "missing" lib + if (possibleDeps.isEmpty()) { + solution.add(new UnavailableContributedLibrary(dep)); + continue; + } + + // Pick the installed version if available + ContributedLibrary selected; + Optional installed = possibleDeps.stream() + .filter(l -> l.getInstalledLibrary().isPresent()).findAny(); + if (installed.isPresent()) { + selected = installed.get(); + } else { + // otherwise pick the latest version + selected = possibleDeps.stream().reduce(VersionComparator::max).get(); + } + + // Add dependency to the solution and process recursively + solution.add(selected); + if (!resolveDependeciesOf(solution, selected)) { + return false; + } + } + return true; + } + + private List findMatchingDependencies(ContributedLibraryDependency dep) { + List available = find(dep.getName()); + if (dep.getVersion() == null || dep.getVersion().isEmpty()) + return available; + + // XXX: The following part is actually never reached. The use of version + // constraints requires a much complex backtracking algorithm, the following + // is just a draft placeholder. + +// List match = available.stream() +// // TODO: add more complex version comparators (> >= < <= ~ 1.0.* 1.*...) +// .filter(candidate -> candidate.getParsedVersion() +// .equals(dep.getVersionRequired())) +// .collect(Collectors.toList()); +// return match; - return installedReleases.get(0); + return available; } } diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java index a09eb2a468f..57460fc19e1 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java @@ -30,20 +30,22 @@ package cc.arduino.contributions.libraries; import cc.arduino.Constants; -import cc.arduino.contributions.libraries.filters.LibraryInstalledInsideCore; -import cc.arduino.contributions.libraries.filters.TypePredicate; import cc.arduino.contributions.packages.ContributedPlatform; + +import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.module.mrbean.MrBeanModule; import org.apache.commons.compress.utils.IOUtils; import processing.app.BaseNoGui; import processing.app.I18n; -import processing.app.helpers.FileUtils; import processing.app.helpers.filefilters.OnlyDirs; import processing.app.packages.LegacyUserLibrary; import processing.app.packages.LibraryList; import processing.app.packages.UserLibrary; +import processing.app.packages.UserLibraryFolder; +import processing.app.packages.UserLibraryFolder.Location; +import processing.app.packages.UserLibraryPriorityComparator; import java.io.File; import java.io.FileInputStream; @@ -52,18 +54,18 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Optional; +import static processing.app.I18n.format; import static processing.app.I18n.tr; public class LibrariesIndexer { private LibrariesIndex index; private final LibraryList installedLibraries = new LibraryList(); - private final LibraryList installedLibrariesWithDuplicates = new LibraryList(); - private List librariesFolders; + private List librariesFolders; private final File indexFile; private final File stagingFolder; - private File sketchbookLibrariesFolder; private final List badLibNotified = new ArrayList<>(); @@ -73,11 +75,14 @@ public LibrariesIndexer(File preferencesFolder) { } public void parseIndex() throws IOException { + index = new LibrariesIndex(); // Fallback + if (!indexFile.exists()) { - index = new EmptyLibrariesIndex(); - } else { - parseIndex(indexFile); + return; } + + parseIndex(indexFile); + // TODO: resolve libraries inner references } @@ -86,133 +91,161 @@ private void parseIndex(File file) throws IOException { try { indexIn = new FileInputStream(file); ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new MrBeanModule()); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); mapper.configure(DeserializationFeature.EAGER_DESERIALIZER_FETCH, true); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - index = mapper.readValue(indexIn, LibrariesIndex.class); + LibrariesIndex newIndex = mapper.readValue(indexIn, LibrariesIndex.class); - index.getLibraries() + newIndex.getLibraries() .stream() .filter(library -> library.getCategory() == null || "".equals(library.getCategory()) || !Constants.LIBRARY_CATEGORIES.contains(library.getCategory())) .forEach(library -> library.setCategory("Uncategorized")); + + index = newIndex; + } catch (JsonParseException | JsonMappingException e) { + System.err.println( + format(tr("Error parsing libraries index: {0}\nTry to open the Library Manager to update the libraries index."), + e.getMessage())); + } catch (Exception e) { + System.err.println(format(tr("Error reading libraries index: {0}"), e.getMessage())); } finally { IOUtils.closeQuietly(indexIn); } } - public void setLibrariesFolders(List _librariesFolders) { - librariesFolders = _librariesFolders; + public void setLibrariesFolders(List folders) { + this.librariesFolders = folders; + } + + public void setLibrariesFoldersAndRescan(List folders) { + setLibrariesFolders(folders); rescanLibraries(); } + public List getLibrariesFolders() { + return librariesFolders; + } + + private UserLibraryPriorityComparator priorityComparator = new UserLibraryPriorityComparator(null); + + public void addToInstalledLibraries(UserLibrary lib) { + UserLibrary toReplace = installedLibraries.getByName(lib.getName()); + if (toReplace == null) { + installedLibraries.add(lib); + return; + } + if (priorityComparator.compare(toReplace, lib) >= 0) { + // The current lib has priority, do nothing + return; + } + installedLibraries.remove(toReplace); + installedLibraries.add(lib); + } + + public void setArchitecturePriority(String arch) { + priorityComparator = new UserLibraryPriorityComparator(arch); + } + public void rescanLibraries() { // Clear all installed flags installedLibraries.clear(); - installedLibrariesWithDuplicates.clear(); if (index.getLibraries() == null) { return; } for (ContributedLibrary lib : index.getLibraries()) { - lib.setInstalled(false); + lib.unsetInstalledUserLibrary(); } // Rescan libraries - for (File folder : librariesFolders) { - scanInstalledLibraries(folder, folder.equals(sketchbookLibrariesFolder)); + for (UserLibraryFolder folderDesc : librariesFolders) { + scanInstalledLibraries(folderDesc); } - installedLibraries.stream().filter(new TypePredicate("Contributed")).filter(new LibraryInstalledInsideCore()).forEach(userLibrary -> { - ContributedPlatform platform = BaseNoGui.indexer.getPlatformByFolder(userLibrary.getInstalledFolder()); - userLibrary.setTypes(Collections.singletonList(platform.getCategory())); - }); + installedLibraries.stream() // + .filter(l -> l.getTypes().contains("Contributed")) // + .filter(l -> l.getLocation() == Location.CORE || l.getLocation() == Location.REFERENCED_CORE) // + .forEach(l -> { + File libFolder = l.getInstalledFolder(); + Optional platform = BaseNoGui.indexer.getPlatformByFolder(libFolder); + if (platform.isPresent()) { + l.setTypes(Collections.singletonList(platform.get().getCategory())); + } + }); } - private void scanInstalledLibraries(File folder, boolean isSketchbook) { - File list[] = folder.listFiles(OnlyDirs.ONLY_DIRS); + private void scanInstalledLibraries(UserLibraryFolder folderDesc) { + File list[] = folderDesc.folder.listFiles(OnlyDirs.ONLY_DIRS); // if a bad folder or something like that, this might come back null if (list == null) return; for (File subfolder : list) { - if (!BaseNoGui.isSanitaryName(subfolder.getName())) { + String subfolderName = subfolder.getName(); + if (!BaseNoGui.isSanitaryName(subfolderName)) { // Detect whether the current folder name has already had a notification. - if (!badLibNotified.contains(subfolder.getName())) { + if (!badLibNotified.contains(subfolderName)) { - badLibNotified.add(subfolder.getName()); + badLibNotified.add(subfolderName); String mess = I18n.format(tr("The library \"{0}\" 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)"), - subfolder.getName()); - BaseNoGui.showMessage(tr("Ignoring bad library name"), mess); + + "Library folder names must start with a letter or number, followed by letters,\n" + + "numbers, dashes, dots and underscores. Maximum length is 63 characters."), + subfolderName); + BaseNoGui.showMessage(tr("Ignoring library with bad name"), mess); } continue; } try { - scanLibrary(subfolder, isSketchbook); + scanLibrary(new UserLibraryFolder(subfolder, folderDesc.location)); } catch (IOException e) { System.out.println(I18n.format(tr("Invalid library found in {0}: {1}"), subfolder, e.getMessage())); } } } - private void scanLibrary(File folder, boolean isSketchbook) throws IOException { - boolean readOnly = !FileUtils.isSubDirectory(sketchbookLibrariesFolder, folder); - + private void scanLibrary(UserLibraryFolder folderDesc) throws IOException { // A library is considered "legacy" if it doesn't contains // a file called "library.properties" - File check = new File(folder, "library.properties"); + File check = new File(folderDesc.folder, "library.properties"); if (!check.exists() || !check.isFile()) { // Create a legacy library and exit - LegacyUserLibrary lib = LegacyUserLibrary.create(folder); - lib.setReadOnly(readOnly); + LegacyUserLibrary lib = LegacyUserLibrary.create(folderDesc); String[] headers = BaseNoGui.headerListFromIncludePath(lib.getSrcFolder()); if (headers.length == 0) { - throw new IOException(lib.getSrcFolder().getAbsolutePath()); - } - installedLibraries.addOrReplace(lib); - if (isSketchbook) { - installedLibrariesWithDuplicates.add(lib); - } else { - installedLibrariesWithDuplicates.addOrReplace(lib); + throw new IOException(format(tr("no headers files (.h) found in {0}"), lib.getSrcFolder())); } + addToInstalledLibraries(lib); return; } // Create a regular library - UserLibrary lib = UserLibrary.create(folder); - lib.setReadOnly(readOnly); + UserLibrary lib = UserLibrary.create(folderDesc); String[] headers = BaseNoGui.headerListFromIncludePath(lib.getSrcFolder()); if (headers.length == 0) { - throw new IOException(lib.getSrcFolder().getAbsolutePath()); + throw new IOException(format(tr("no headers files (.h) found in {0}"), lib.getSrcFolder())); } - installedLibraries.addOrReplaceArchAware(lib); - if (isSketchbook) { - installedLibrariesWithDuplicates.add(lib); - } else { - installedLibrariesWithDuplicates.addOrReplaceArchAware(lib); - } - - // Check if we can find the same library in the index - // and mark it as installed - ContributedLibrary foundLib = index.find(lib.getName(), lib.getParsedVersion()); - if (foundLib != null) { - foundLib.setInstalled(true); - foundLib.setInstalledFolder(folder); - foundLib.setReadOnly(readOnly); - lib.setTypes(foundLib.getTypes()); + addToInstalledLibraries(lib); + + Location loc = lib.getLocation(); + if (loc != Location.CORE && loc != Location.REFERENCED_CORE) { + // Check if we can find the same library in the index + // and mark it as installed + ContributedLibrary foundLib = index.find(lib.getName(), lib.getVersion()); + if (foundLib != null) { + foundLib.setInstalledUserLibrary(lib); + lib.setTypes(foundLib.getTypes()); + } } - if (lib.isReadOnly() && lib.getTypes() == null && !lib.getDeclaredTypes().isEmpty()) { + if (lib.getTypes().isEmpty() && loc == Location.SKETCHBOOK) { lib.setTypes(lib.getDeclaredTypes()); } - if (lib.getTypes() == null) { + if (lib.getTypes().isEmpty()) { lib.setTypes(Collections.singletonList("Contributed")); } } @@ -225,32 +258,10 @@ public LibraryList getInstalledLibraries() { return new LibraryList(installedLibraries); } - // Same as getInstalledLibraries(), but allow duplicates between - // builtin+package libraries and sketchbook installed libraries. - // However, do not report duplicates among builtin and packages, to - // allow any package to override builtin libraries without being - // reported as duplicates. - public LibraryList getInstalledLibrariesWithDuplicates() { - return installedLibrariesWithDuplicates; - } - public File getStagingFolder() { return stagingFolder; } - /** - * Set the sketchbook library folder.
- * New libraries will be installed here.
- * Libraries not found on this folder will be marked as read-only. - */ - public void setSketchbookLibrariesFolder(File folder) { - this.sketchbookLibrariesFolder = folder; - } - - public File getSketchbookLibrariesFolder() { - return sketchbookLibrariesFolder; - } - public File getIndexFile() { return indexFile; } diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java b/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java index 12ac6519ae4..3f00f909b0d 100644 --- a/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java +++ b/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java @@ -31,10 +31,15 @@ import cc.arduino.Constants; import cc.arduino.contributions.DownloadableContributionsDownloader; +import cc.arduino.contributions.GPGDetachedSignatureVerifier; import cc.arduino.contributions.GZippedJsonDownloader; import cc.arduino.contributions.ProgressListener; import cc.arduino.utils.ArchiveExtractor; import cc.arduino.utils.MultiStepProgress; +import cc.arduino.utils.network.FileDownloader; +import org.apache.commons.io.FilenameUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import processing.app.BaseNoGui; import processing.app.I18n; import processing.app.Platform; @@ -43,71 +48,124 @@ import java.io.File; import java.io.IOException; import java.net.URL; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; import static processing.app.I18n.tr; public class LibraryInstaller { + private static Logger log = LogManager.getLogger(LibraryInstaller.class); private final Platform platform; + private final GPGDetachedSignatureVerifier signatureVerifier; - public LibraryInstaller(Platform platform) { + public LibraryInstaller(Platform platform, GPGDetachedSignatureVerifier signatureVerifier) { this.platform = platform; + this.signatureVerifier = signatureVerifier; } public synchronized void updateIndex(ProgressListener progressListener) throws Exception { - final MultiStepProgress progress = new MultiStepProgress(2); + final MultiStepProgress progress = new MultiStepProgress(3); DownloadableContributionsDownloader downloader = new DownloadableContributionsDownloader(BaseNoGui.librariesIndexer.getStagingFolder()); // Step 1: Download index File outputFile = BaseNoGui.librariesIndexer.getIndexFile(); - File tmpFile = new File(outputFile.getAbsolutePath() + ".tmp"); + // Create temp files + String signatureFileName = FilenameUtils.getName(new URL(Constants.LIBRARY_INDEX_URL).getPath()); + File libraryIndexTemp = File.createTempFile(signatureFileName, ".tmp"); + final URL libraryURL = new URL(Constants.LIBRARY_INDEX_URL); + final URL libraryGzURL = new URL(Constants.LIBRARY_INDEX_URL_GZ); + final String statusText = tr("Downloading libraries index..."); try { - GZippedJsonDownloader gZippedJsonDownloader = new GZippedJsonDownloader(downloader, new URL(Constants.LIBRARY_INDEX_URL), new URL(Constants.LIBRARY_INDEX_URL_GZ)); - gZippedJsonDownloader.download(tmpFile, progress, tr("Downloading libraries index..."), progressListener); + GZippedJsonDownloader gZippedJsonDownloader = new GZippedJsonDownloader(downloader, libraryURL, libraryGzURL); + gZippedJsonDownloader.download(libraryIndexTemp, progress, statusText, progressListener, true); } catch (InterruptedException e) { // Download interrupted... just exit return; } progress.stepDone(); - // TODO: Check downloaded index + URL signatureUrl = new URL(libraryURL.toString() + ".sig"); + if (downloader.verifyDomain(signatureUrl)) { + if (downloader.checkSignature(progress, signatureUrl, progressListener, signatureVerifier, statusText, libraryIndexTemp)) { + // Replace old index with the updated one + if (libraryIndexTemp.length() > 0) { + Files.move(libraryIndexTemp.toPath(), outputFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + } + } else { + FileDownloader.invalidateFiles(libraryGzURL, libraryURL, signatureUrl); + log.error("Fail to verify the signature of {} the cached files have been removed", libraryURL); + } + } else { + log.info("The domain is not selected to verify the signature. library index: {}", signatureUrl); + } + + // Step 2: Parse index + BaseNoGui.librariesIndexer.parseIndex(); - // Replace old index with the updated one - if (outputFile.exists()) - outputFile.delete(); - if (!tmpFile.renameTo(outputFile)) - throw new Exception(tr("An error occurred while updating libraries index!")); + // Step 3: Rescan index + rescanLibraryIndex(progress, progressListener); - // Step 2: Rescan index + } + + public void install(ContributedLibrary lib, ProgressListener progressListener) throws Exception { + ArrayList libs = new ArrayList<>(); + libs.add(lib); + install(libs, progressListener); + } + + public synchronized void install(List libs, ProgressListener progressListener) throws Exception { + MultiStepProgress progress = new MultiStepProgress(3 * libs.size() + 1); + + for (ContributedLibrary lib : libs) { + // Do install library (3 steps) + performInstall(lib, progressListener, progress); + } + + // Rescan index (1 step) rescanLibraryIndex(progress, progressListener); } - public synchronized void install(ContributedLibrary lib, ContributedLibrary replacedLib, ProgressListener progressListener) throws Exception { - if (lib.isInstalled()) { - System.out.println(I18n.format(tr("Library is already installed: {0} version {1}"), lib.getName(), lib.getParsedVersion())); + private void performInstall(ContributedLibrary lib, ProgressListener progressListener, MultiStepProgress progress) throws Exception { + if (lib.isLibraryInstalled()) { + System.out.println(I18n.format(tr("Library is already installed: {0}:{1}"), lib.getName(), lib.getParsedVersion())); return; } - DownloadableContributionsDownloader downloader = new DownloadableContributionsDownloader(BaseNoGui.librariesIndexer.getStagingFolder()); + File libsFolder = BaseNoGui.getSketchbookLibrariesFolder().folder; + File destFolder = new File(libsFolder, lib.getName().replaceAll(" ", "_")); - final MultiStepProgress progress = new MultiStepProgress(3); + // Check if we are replacing an already installed lib + LibrariesIndex index = BaseNoGui.librariesIndexer.getIndex(); + Optional replacedLib = index.find(lib.getName()).stream() // + .filter(l -> l.getInstalledLibrary().isPresent()) // + .filter(l -> l.getInstalledLibrary().get().getInstalledFolder().equals(destFolder)) // + .findAny(); + if (!replacedLib.isPresent() && destFolder.exists()) { + System.out.println(I18n.format(tr("Library {0} is already installed in: {1}"), lib.getName(), destFolder)); + return; + } + DownloadableContributionsDownloader downloader = new DownloadableContributionsDownloader(BaseNoGui.librariesIndexer.getStagingFolder()); // Step 1: Download library try { - downloader.download(lib, progress, I18n.format(tr("Downloading library: {0}"), lib.getName()), progressListener); + downloader.download(lib, progress, I18n.format(tr("Downloading library: {0}"), lib.getName()), progressListener, false); } catch (InterruptedException e) { // Download interrupted... just exit return; } + progress.stepDone(); // TODO: Extract to temporary folders and move to the final destination only // once everything is successfully unpacked. If the operation fails remove // all the temporary folders and abort installation. // Step 2: Unpack library on the correct location - progress.setStatus(I18n.format(tr("Installing library: {0}"), lib.getName())); + progress.setStatus(I18n.format(tr("Installing library: {0}:{1}"), lib.getName(), lib.getParsedVersion())); progressListener.onProgress(progress); - File libsFolder = BaseNoGui.librariesIndexer.getSketchbookLibrariesFolder(); File tmpFolder = FileUtils.createTempFolder(libsFolder); try { new ArchiveExtractor(platform).extract(lib.getDownloadedFile(), tmpFolder, 1); @@ -119,26 +177,24 @@ public synchronized void install(ContributedLibrary lib, ContributedLibrary repl // Step 3: Remove replaced library and move installed one to the correct location // TODO: Fix progress bar... - remove(replacedLib, progressListener); - File destFolder = new File(libsFolder, lib.getName().replaceAll(" ", "_")); + if (replacedLib.isPresent()) { + remove(replacedLib.get(), progressListener); + } tmpFolder.renameTo(destFolder); progress.stepDone(); - - // Step 4: Rescan index - rescanLibraryIndex(progress, progressListener); } public synchronized void remove(ContributedLibrary lib, ProgressListener progressListener) throws IOException { - if (lib == null || lib.isReadOnly()) { + if (lib.isIDEBuiltIn()) { return; } final MultiStepProgress progress = new MultiStepProgress(2); // Step 1: Remove library - progress.setStatus(I18n.format(tr("Removing library: {0}"), lib.getName())); + progress.setStatus(I18n.format(tr("Removing library: {0}:{1}"), lib.getName(), lib.getParsedVersion())); progressListener.onProgress(progress); - FileUtils.recursiveDelete(lib.getInstalledFolder()); + FileUtils.recursiveDelete(lib.getInstalledLibrary().get().getInstalledFolder()); progress.stepDone(); // Step 2: Rescan index diff --git a/arduino-core/src/cc/arduino/contributions/libraries/UnavailableContributedLibrary.java b/arduino-core/src/cc/arduino/contributions/libraries/UnavailableContributedLibrary.java new file mode 100644 index 00000000000..277d969dede --- /dev/null +++ b/arduino-core/src/cc/arduino/contributions/libraries/UnavailableContributedLibrary.java @@ -0,0 +1,143 @@ +/* + * This file is part of Arduino. + * + * Copyright 2017 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package cc.arduino.contributions.libraries; + +import java.util.ArrayList; +import java.util.List; + +public class UnavailableContributedLibrary extends ContributedLibrary { + + private String name; + private String version; + + public UnavailableContributedLibrary(ContributedLibraryDependency dependency) { + this(dependency.getName(), dependency.getVersion()); + } + + public UnavailableContributedLibrary(String _name, String _version) { + name = _name; + version = _version; + } + + @Override + public String getName() { + return name; + } + + @Override + public String getMaintainer() { + return "Unknown"; + } + + @Override + public String getAuthor() { + return "Unknown"; + } + + @Override + public String getWebsite() { + return "Unknown"; + } + + @Override + public String getCategory() { + return "Uncategorized"; + } + + @Override + public void setCategory(String category) { + // Empty + } + + @Override + public String getLicense() { + return "Unknown"; + } + + @Override + public String getParagraph() { + return ""; + } + + @Override + public String getSentence() { + return ""; + } + + @Override + public List getArchitectures() { + return new ArrayList<>(); + } + + @Override + public List getTypes() { + return new ArrayList<>(); + } + + @Override + public List getDependencies() { + return new ArrayList<>(); + } + + @Override + public String getUrl() { + return ""; + } + + @Override + public String getVersion() { + return version; + } + + @Override + public String getChecksum() { + return ""; + } + + @Override + public long getSize() { + return 0; + } + + @Override + public String getArchiveFileName() { + return ""; + } + + @Override + public String toString() { + return "!" + super.toString(); + } + + @Override + public List getProvidesIncludes() { + return new ArrayList<>(); + } +} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/filters/LibraryInstalledInsideCore.java b/arduino-core/src/cc/arduino/contributions/libraries/filters/LibraryInstalledInsideCore.java deleted file mode 100644 index f731a272d53..00000000000 --- a/arduino-core/src/cc/arduino/contributions/libraries/filters/LibraryInstalledInsideCore.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.filters; - -import cc.arduino.contributions.libraries.ContributedLibrary; -import processing.app.BaseNoGui; - -import java.util.function.Predicate; - -public class LibraryInstalledInsideCore implements Predicate { - - @Override - public boolean test(ContributedLibrary contributedLibrary) { - return BaseNoGui.indexer.isFolderInsidePlatform(contributedLibrary.getInstalledFolder()); - } - -} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/filters/LibraryWithNamePredicate.java b/arduino-core/src/cc/arduino/contributions/libraries/filters/LibraryWithNamePredicate.java deleted file mode 100644 index 74aeb866d63..00000000000 --- a/arduino-core/src/cc/arduino/contributions/libraries/filters/LibraryWithNamePredicate.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.filters; - -import cc.arduino.contributions.libraries.ContributedLibrary; - -import java.util.function.Predicate; - -public class LibraryWithNamePredicate implements Predicate { - - private final String name; - - public LibraryWithNamePredicate(String name) { - this.name = name; - } - - @Override - public boolean test(ContributedLibrary contributedLibrary) { - return name.equals(contributedLibrary.getName()); - } - -} diff --git a/arduino-core/src/cc/arduino/contributions/libraries/filters/TypePredicate.java b/arduino-core/src/cc/arduino/contributions/libraries/filters/TypePredicate.java deleted file mode 100644 index 79e930ae8d1..00000000000 --- a/arduino-core/src/cc/arduino/contributions/libraries/filters/TypePredicate.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.libraries.filters; - -import cc.arduino.contributions.libraries.ContributedLibrary; - -import java.util.function.Predicate; - -public class TypePredicate implements Predicate { - - private final String type; - - public TypePredicate(String type) { - this.type = type; - } - - @Override - public boolean test(ContributedLibrary input) { - return input.getTypes() != null && input.getTypes().contains(type); - } - - @Override - public boolean equals(Object obj) { - return obj instanceof TypePredicate && ((TypePredicate) obj).type.equals(type); - } - -} diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedBoard.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedBoard.java index 7017ced5d10..c29110376bc 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedBoard.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedBoard.java @@ -29,8 +29,9 @@ package cc.arduino.contributions.packages; -public interface ContributedBoard { +public class ContributedBoard { - String getName(); + private String name; + public String getName() { return name; } } diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedHelp.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedHelp.java index a8f998f668b..2156f5c48c9 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedHelp.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedHelp.java @@ -29,8 +29,9 @@ package cc.arduino.contributions.packages; -public abstract class ContributedHelp { +public class ContributedHelp { - public abstract String getOnline(); + private String online; + public String getOnline() { return online; } } diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedPackage.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedPackage.java index 507a63be11d..8b260527ae5 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedPackage.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedPackage.java @@ -29,25 +29,33 @@ package cc.arduino.contributions.packages; +import java.util.ArrayList; import java.util.List; -public abstract class ContributedPackage { +public class ContributedPackage { - public abstract String getName(); + private String name; + private String maintainer; + private String websiteURL; + private String email; + private ArrayList platforms = new ArrayList(); + private ArrayList tools = new ArrayList(); + private ContributedHelp help; + private boolean trusted; - public abstract String getMaintainer(); + public String getName() { return name; } - public abstract String getWebsiteURL(); + public String getMaintainer() { return maintainer; } - public abstract String getEmail(); + public String getWebsiteURL() { return websiteURL; } - public abstract List getPlatforms(); + public String getEmail() { return email; } - public abstract List getTools(); + public List getPlatforms() { return platforms; } - public abstract ContributedHelp getHelp(); + public List getTools() { return tools; } - private boolean trusted; + public ContributedHelp getHelp() { return help; } public ContributedPlatform findPlatform(String architecture, String version) { if (architecture == null || version == null) { diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java index 48b07e1d8e3..5fea546c108 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java @@ -32,30 +32,82 @@ import cc.arduino.contributions.DownloadableContribution; import com.fasterxml.jackson.annotation.JsonIgnore; +import java.io.File; import java.util.*; -public abstract class ContributedPlatform extends DownloadableContribution { +public class ContributedPlatform extends DownloadableContribution { + + private String url; + private String version; + private long size; + private String archiveFileName; + private String name; + private String category; + private String architecture; + private String checksum; + private ArrayList toolsDependencies = new ArrayList(); + private ArrayList boards = new ArrayList(); + private ContributedHelp help; + private boolean installed; + private File installedFolder; + private boolean builtIn; + private Map resolvedToolReferences; + private ContributedPackage parentPackage; + + public String getUrl() { return url; } + + public String getVersion() { return version; } + + public long getSize() { return size; } - public abstract String getName(); + public String getArchiveFileName() { return archiveFileName; } - public abstract String getCategory(); + public String getName() { return name; } - public abstract void setCategory(String category); + public String getCategory() { return category; } - public abstract String getArchitecture(); + public void setCategory(String category) { this.category = category; } + + public String getArchitecture() { return architecture; } @Override - public abstract String getChecksum(); + public String getChecksum() { return checksum; } - public abstract List getToolsDependencies(); + public List getToolsDependencies() { return toolsDependencies; } - public abstract List getBoards(); + public List getBoards() { return boards; } - public abstract ContributedHelp getHelp(); + public ContributedHelp getHelp() { return help; } - private Map resolvedToolReferences; + public boolean isInstalled() { + return installed; + } - private ContributedPackage parentPackage; + public void setInstalled(boolean installed) { + this.installed = installed; + } + + public File getInstalledFolder() { + return installedFolder; + } + + public void setInstalledFolder(File installedFolder) { + this.installedFolder = installedFolder; + } + + public boolean isBuiltIn() { + return builtIn; + } + + public void setBuiltIn(boolean builtIn) { + this.builtIn = builtIn; + } + + public static final Comparator BUILTIN_AS_LAST = (x, y) -> { + int px = x.isBuiltIn() ? 1 : -1; + int py = y.isBuiltIn() ? 1 : -1; + return px - py; + }; public List getResolvedTools() { return new LinkedList<>(resolvedToolReferences.values()); diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java index db63cdb7358..915dc28489b 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedTool.java @@ -32,17 +32,49 @@ import cc.arduino.contributions.DownloadableContribution; import processing.app.Platform; +import java.io.File; +import java.util.ArrayList; import java.util.List; -public abstract class ContributedTool { +public class ContributedTool { - public abstract String getName(); + private String name; + private String version; + private ArrayList systems = new ArrayList(); + private boolean installed; + private File installedFolder; + private boolean builtIn; + private ContributedPackage contributedPackage; - public abstract String getVersion(); + public String getName() { return name; } - public abstract List getSystems(); + public String getVersion() { return version; } - private ContributedPackage contributedPackage; + public List getSystems() { return systems; } + + public boolean isInstalled() { + return installed; + } + + public void setInstalled(boolean installed) { + this.installed = installed; + } + + public File getInstalledFolder() { + return installedFolder; + } + + public void setInstalledFolder(File installedFolder) { + this.installedFolder = installedFolder; + } + + public boolean isBuiltIn() { + return builtIn; + } + + public void setBuiltIn(boolean builtIn) { + this.builtIn = builtIn; + } public ContributedPackage getPackage() { return contributedPackage; diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java index 7d86f234f23..3faf0cbbd31 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedToolReference.java @@ -31,13 +31,17 @@ import java.util.Collection; -public abstract class ContributedToolReference { +public class ContributedToolReference { - public abstract String getName(); + private String name; + private String version; + private String packager; - public abstract String getVersion(); + public String getName() { return name; } - public abstract String getPackager(); + public String getVersion() { return version; } + + public String getPackager() { return packager; } public ContributedTool resolve(Collection packages) { for (ContributedPackage pack : packages) { diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java index e1ab6867f2b..2b6ff4cdea8 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java @@ -41,6 +41,9 @@ import org.apache.commons.exec.DefaultExecutor; import org.apache.commons.exec.Executor; import org.apache.commons.exec.PumpStreamHandler; +import org.apache.commons.io.FilenameUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import processing.app.BaseNoGui; import processing.app.I18n; import processing.app.Platform; @@ -62,6 +65,7 @@ import static processing.app.I18n.tr; public class ContributionInstaller { + private static Logger log = LogManager.getLogger(ContributionInstaller.class); private final Platform platform; private final SignatureVerifier signatureVerifier; @@ -85,7 +89,7 @@ public synchronized List install(ContributedPlatform contributedPlatform throw new Exception(format(tr("Tool {0} is not available for your operating system."), tool.getName())); } // Download the tool if it's not installed or it's a built-in tool - if (!downloadable.isInstalled() || downloadable.isReadOnly()) { + if (!tool.isInstalled() || tool.isBuiltIn()) { tools.add(tool); } } @@ -98,7 +102,7 @@ public synchronized List install(ContributedPlatform contributedPlatform // Download all try { // Download platform - downloader.download(contributedPlatform, progress, tr("Downloading boards definitions."), progressListener); + downloader.download(contributedPlatform, progress, tr("Downloading boards definitions."), progressListener, false); progress.stepDone(); // Download tools @@ -106,7 +110,7 @@ public synchronized List install(ContributedPlatform contributedPlatform for (ContributedTool tool : tools) { String msg = format(tr("Downloading tools ({0}/{1})."), i, tools.size()); i++; - downloader.download(tool.getDownloadableContribution(platform), progress, msg, progressListener); + downloader.download(tool.getDownloadableContribution(platform), progress, msg, progressListener, false); progress.stepDone(); } } catch (InterruptedException e) { @@ -121,10 +125,10 @@ public synchronized List install(ContributedPlatform contributedPlatform // once everything is successfully unpacked. If the operation fails remove // all the temporary folders and abort installation. - List> resolvedToolReferences = contributedPlatform.getResolvedToolReferences().entrySet() - .stream() - .filter((entry) -> !entry.getValue().getDownloadableContribution(platform).isInstalled() - || entry.getValue().getDownloadableContribution(platform).isReadOnly()) + List> resolvedToolReferences = contributedPlatform + .getResolvedToolReferences().entrySet().stream() + .filter((entry) -> !entry.getValue().isInstalled() + || entry.getValue().isBuiltIn()) .collect(Collectors.toList()); int i = 1; @@ -133,19 +137,20 @@ public synchronized List install(ContributedPlatform contributedPlatform progressListener.onProgress(progress); i++; ContributedTool tool = entry.getValue(); - DownloadableContribution toolContrib = tool.getDownloadableContribution(platform); Path destFolder = Paths.get(BaseNoGui.indexer.getPackagesFolder().getAbsolutePath(), entry.getKey().getPackager(), "tools", tool.getName(), tool.getVersion()); Files.createDirectories(destFolder); + + DownloadableContribution toolContrib = tool.getDownloadableContribution(platform); assert toolContrib.getDownloadedFile() != null; new ArchiveExtractor(platform).extract(toolContrib.getDownloadedFile(), destFolder.toFile(), 1); try { - findAndExecutePostInstallScriptIfAny(destFolder.toFile(), contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL)); + findAndExecutePostInstallScriptIfAny(destFolder.toFile(), contributedPlatform.getParentPackage().isTrusted(), PreferencesData.areInsecurePackagesAllowed()); } catch (IOException e) { errors.add(tr("Error running post install script")); } - toolContrib.setInstalled(true); - toolContrib.setInstalledFolder(destFolder.toFile()); + tool.setInstalled(true); + tool.setInstalledFolder(destFolder.toFile()); progress.stepDone(); } @@ -159,7 +164,7 @@ public synchronized List install(ContributedPlatform contributedPlatform contributedPlatform.setInstalled(true); contributedPlatform.setInstalledFolder(destFolder); try { - findAndExecutePostInstallScriptIfAny(destFolder, contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL)); + findAndExecutePostInstallScriptIfAny(destFolder, contributedPlatform.getParentPackage().isTrusted(), PreferencesData.areInsecurePackagesAllowed()); } catch (IOException e) { e.printStackTrace(); errors.add(tr("Error running post install script")); @@ -234,12 +239,12 @@ private void executeScripts(File folder, Collection postInstallScripts, bo } public synchronized List remove(ContributedPlatform contributedPlatform) { - if (contributedPlatform == null || contributedPlatform.isReadOnly()) { + if (contributedPlatform == null || contributedPlatform.isBuiltIn()) { return new LinkedList<>(); } List errors = new LinkedList<>(); try { - findAndExecutePreUninstallScriptIfAny(contributedPlatform.getInstalledFolder(), contributedPlatform.getParentPackage().isTrusted(), PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL)); + findAndExecutePreUninstallScriptIfAny(contributedPlatform.getInstalledFolder(), contributedPlatform.getParentPackage().isTrusted(), PreferencesData.areInsecurePackagesAllowed()); } catch (IOException e) { errors.add(tr("Error running post install script")); } @@ -251,15 +256,14 @@ public synchronized List remove(ContributedPlatform contributedPlatform) continue; // Do not remove built-in tools - DownloadableContribution toolContrib = tool.getDownloadableContribution(platform); - if (toolContrib.isReadOnly()) + if (tool.isBuiltIn()) continue; // Ok, delete the tool - File destFolder = toolContrib.getInstalledFolder(); + File destFolder = tool.getInstalledFolder(); FileUtils.recursiveDelete(destFolder); - toolContrib.setInstalled(false); - toolContrib.setInstalledFolder(null); + tool.setInstalled(false); + tool.setInstalledFolder(null); // We removed the version folder (.../tools/TOOL_NAME/VERSION) // now try to remove the containing TOOL_NAME folder @@ -268,6 +272,8 @@ public synchronized List remove(ContributedPlatform contributedPlatform) Files.delete(destFolder.getParentFile().toPath()); } catch (Exception e) { // ignore + log.info("The directory is not empty there is another version installed. directory {}", + destFolder.getParentFile().toPath(), e); } } @@ -278,73 +284,48 @@ public synchronized List remove(ContributedPlatform contributedPlatform) return errors; } - public synchronized List updateIndex(ProgressListener progressListener) throws Exception { + public synchronized List updateIndex(ProgressListener progressListener) { MultiStepProgress progress = new MultiStepProgress(1); - List downloadedPackageIndexFilesAccumulator = new LinkedList<>(); - downloadIndexAndSignature(progress, downloadedPackageIndexFilesAccumulator, Constants.PACKAGE_INDEX_URL, progressListener); + final DownloadableContributionsDownloader downloader = new DownloadableContributionsDownloader(BaseNoGui.indexer.getStagingFolder()); - Set packageIndexURLs = new HashSet<>(); - String additionalURLs = PreferencesData.get(Constants.PREF_BOARDS_MANAGER_ADDITIONAL_URLS, ""); - if (!"".equals(additionalURLs)) { - packageIndexURLs.addAll(Arrays.asList(additionalURLs.split(","))); - } + final Set packageIndexURLs = new HashSet<>( + PreferencesData.getCollection(Constants.PREF_BOARDS_MANAGER_ADDITIONAL_URLS) + ); + packageIndexURLs.add(Constants.PACKAGE_INDEX_URL); + List downloadedPackageIndexFilesAccumulator = new LinkedList<>(); - for (String packageIndexURL : packageIndexURLs) { + for (String packageIndexURLString : packageIndexURLs) { try { - downloadIndexAndSignature(progress, downloadedPackageIndexFilesAccumulator, packageIndexURL, progressListener); + // Extract the file name from the URL + final URL packageIndexURL = new URL(packageIndexURLString); + String indexFileName = FilenameUtils.getName(packageIndexURL.getPath()); + downloadedPackageIndexFilesAccumulator.add(BaseNoGui.indexer.getIndexFile(indexFileName).getName()); + + log.info("Start download and signature check of={}", packageIndexURLs); + downloader.downloadIndexAndSignature(progress, packageIndexURL, progressListener, signatureVerifier); } catch (Exception e) { + log.error(e.getMessage(), e); System.err.println(e.getMessage()); } } progress.stepDone(); - + log.info("Downloaded package index URL={}", packageIndexURLs); return downloadedPackageIndexFilesAccumulator; } - private void downloadIndexAndSignature(MultiStepProgress progress, List downloadedPackagedIndexFilesAccumulator, String packageIndexUrl, ProgressListener progressListener) throws Exception { - File packageIndex = download(progress, packageIndexUrl, progressListener); - downloadedPackagedIndexFilesAccumulator.add(packageIndex.getName()); - try { - File packageIndexSignature = download(progress, packageIndexUrl + ".sig", progressListener); - boolean signatureVerified = signatureVerifier.isSigned(packageIndex); - if (signatureVerified) { - downloadedPackagedIndexFilesAccumulator.add(packageIndexSignature.getName()); - } else { - downloadedPackagedIndexFilesAccumulator.remove(packageIndex.getName()); - Files.delete(packageIndex.toPath()); - Files.delete(packageIndexSignature.toPath()); - System.err.println(I18n.format(tr("{0} file signature verification failed. File ignored."), packageIndexUrl)); - } - } catch (Exception e) { - //ignore errors - } - } - - private File download(MultiStepProgress progress, String packageIndexUrl, ProgressListener progressListener) throws Exception { - String statusText = tr("Downloading platforms index..."); - URL url = new URL(packageIndexUrl); - String[] urlPathParts = url.getFile().split("/"); - File outputFile = BaseNoGui.indexer.getIndexFile(urlPathParts[urlPathParts.length - 1]); - File tmpFile = new File(outputFile.getAbsolutePath() + ".tmp"); - DownloadableContributionsDownloader downloader = new DownloadableContributionsDownloader(BaseNoGui.indexer.getStagingFolder()); - downloader.download(url, tmpFile, progress, statusText, progressListener); - - Files.deleteIfExists(outputFile.toPath()); - Files.move(tmpFile.toPath(), outputFile.toPath()); - - return outputFile; - } - public synchronized void deleteUnknownFiles(List downloadedPackageIndexFiles) throws IOException { File preferencesFolder = BaseNoGui.indexer.getIndexFile(".").getParentFile(); File[] additionalPackageIndexFiles = preferencesFolder.listFiles(new PackageIndexFilenameFilter(Constants.DEFAULT_INDEX_FILE_NAME)); if (additionalPackageIndexFiles == null) { return; } + log.info("Check unknown files. Additional package index folder files={}, Additional package index url downloaded={}", downloadedPackageIndexFiles, additionalPackageIndexFiles); + for (File additionalPackageIndexFile : additionalPackageIndexFiles) { if (!downloadedPackageIndexFiles.contains(additionalPackageIndexFile.getName())) { + log.info("Delete this unknown file={} because not included in this list={}", additionalPackageIndexFile, additionalPackageIndexFiles); Files.delete(additionalPackageIndexFile.toPath()); } } diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndex.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndex.java index 1ffc97d0229..0a9b19cc365 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndex.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndex.java @@ -29,9 +29,7 @@ package cc.arduino.contributions.packages; -import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator; import cc.arduino.contributions.filters.DownloadableContributionWithVersionPredicate; -import cc.arduino.contributions.filters.InstalledPredicate; import cc.arduino.contributions.packages.filters.PlatformArchitecturePredicate; import java.util.ArrayList; @@ -40,9 +38,10 @@ import java.util.List; import java.util.stream.Collectors; -public abstract class ContributionsIndex { +public class ContributionsIndex { - public abstract List getPackages(); + private ArrayList packages = new ArrayList(); + public List getPackages() { return packages; } public ContributedPackage findPackage(String packageName) { for (ContributedPackage pack : getPackages()) { @@ -84,7 +83,9 @@ public ContributedPlatform findPlatform(String packageName, final String platfor } public List getInstalledPlatforms() { - return getPlatforms().stream().filter(new InstalledPredicate()).collect(Collectors.toList()); + return getPlatforms().stream() // + .filter(p -> p.isInstalled()) // + .collect(Collectors.toList()); } public ContributedPlatform getInstalledPlatform(String packageName, String platformArch) { @@ -92,8 +93,10 @@ public ContributedPlatform getInstalledPlatform(String packageName, String platf if (platforms == null) { return null; } - List installedPlatforms = platforms.stream().filter(new InstalledPredicate()).collect(Collectors.toList()); - Collections.sort(installedPlatforms, new DownloadableContributionBuiltInAtTheBottomComparator()); + List installedPlatforms = platforms.stream() // + .filter(p -> p.isInstalled()) // + .collect(Collectors.toList()); + Collections.sort(installedPlatforms, ContributedPlatform.BUILTIN_AS_LAST); if (installedPlatforms.isEmpty()) { return null; diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index 6cbfd2fd31b..060a94e6aa6 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -31,18 +31,13 @@ import cc.arduino.Constants; import cc.arduino.contributions.DownloadableContribution; -import cc.arduino.contributions.DownloadableContributionBuiltInAtTheBottomComparator; -import cc.arduino.contributions.SignatureVerificationFailedException; import cc.arduino.contributions.SignatureVerifier; -import cc.arduino.contributions.filters.BuiltInPredicate; -import cc.arduino.contributions.filters.InstalledPredicate; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.module.mrbean.MrBeanModule; import org.apache.commons.compress.utils.IOUtils; -import processing.app.I18n; + +import processing.app.BaseNoGui; import processing.app.Platform; import processing.app.PreferencesData; import processing.app.debug.TargetPackage; @@ -58,6 +53,7 @@ import java.util.*; import java.util.stream.Collectors; +import static processing.app.I18n.format; import static processing.app.I18n.tr; import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS; @@ -76,7 +72,7 @@ public ContributionsIndexer(File preferencesFolder, File builtInHardwareFolder, this.builtInHardwareFolder = builtInHardwareFolder; this.platform = platform; this.signatureVerifier = signatureVerifier; - index = new EmptyContributionIndex(); + index = new ContributionsIndex(); packagesFolder = new File(preferencesFolder, "packages"); stagingFolder = new File(preferencesFolder, "staging" + File.separator + "packages"); } @@ -90,11 +86,21 @@ public void parseIndex() throws Exception { File defaultIndexFile = getIndexFile(Constants.DEFAULT_INDEX_FILE_NAME); if (defaultIndexFile.exists()) { // Check main index signature - if (!PreferencesData.getBoolean("allow_insecure_packages") && !signatureVerifier.isSigned(defaultIndexFile)) { - throw new SignatureVerificationFailedException(Constants.DEFAULT_INDEX_FILE_NAME); + if (signatureVerifier.isSigned(defaultIndexFile)) { + mergeContributions(defaultIndexFile); + } else if (PreferencesData.areInsecurePackagesAllowed()) { + System.err.println(format(tr("Warning: forced trusting untrusted contributions"))); + mergeContributions(defaultIndexFile); + } else { + BaseNoGui + .showWarning(Constants.DEFAULT_INDEX_FILE_NAME, + tr("A package index has an invalid signature and needs to be updated.\n" + + "Please open the Board Manager from the menu\n" + + "\n" // + + " Tools -> Board -> Board Manager\n" + + "\nto update it"), + null); } - - mergeContributions(defaultIndexFile); } // Set main and bundled indexes as trusted @@ -103,13 +109,17 @@ public void parseIndex() throws Exception { // Overlay 3rd party indexes File[] indexFiles = preferencesFolder.listFiles(new TestPackageIndexFilenameFilter(new PackageIndexFilenameFilter(Constants.DEFAULT_INDEX_FILE_NAME))); - for (File indexFile : indexFiles) { - try { - mergeContributions(indexFile); - } catch (JsonProcessingException e) { - System.err.println(I18n.format(tr("Skipping contributed index file {0}, parsing error occured:"), indexFile)); - System.err.println(e); + if (indexFiles != null) { + for (File indexFile : indexFiles) { + try { + mergeContributions(indexFile); + } catch (JsonProcessingException e) { + System.err.println(format(tr("Skipping contributed index file {0}, parsing error occured:"), indexFile)); + System.err.println(e); + } } + } else { + System.err.println(format(tr("Error reading package indexes folder: {0}\n(maybe a permission problem?)"), preferencesFolder)); } // Fill tools and toolsDependency cross references @@ -142,7 +152,7 @@ private void mergeContributions(File indexFile) throws IOException { ContributionsIndex contributionsIndex = parseIndex(indexFile); boolean signed = signatureVerifier.isSigned(indexFile); - boolean trustall = PreferencesData.getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL); + boolean trustall = PreferencesData.areInsecurePackagesAllowed(); for (ContributedPackage contributedPackage : contributionsIndex.getPackages()) { contributedPackage.setTrusted(signed || trustall); @@ -159,7 +169,7 @@ private void mergeContributions(File indexFile) throws IOException { } else { if (contributedPackage.isTrusted() || !isPackageNameProtected(contributedPackage)) { if (isPackageNameProtected(contributedPackage) && trustall) { - System.err.println(I18n.format(tr("Warning: forced trusting untrusted contributions"))); + System.err.println(format(tr("Warning: forced trusting untrusted contributions"))); } List platforms = contributedPackage.getPlatforms(); if (platforms == null) { @@ -197,7 +207,6 @@ private ContributionsIndex parseIndex(File indexFile) throws IOException { try { inputStream = new FileInputStream(indexFile); ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new MrBeanModule()); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); mapper.configure(DeserializationFeature.EAGER_DESERIALIZER_FETCH, true); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @@ -214,7 +223,7 @@ public void syncWithFilesystem() throws IOException { } private void syncBuiltInHardware() throws IOException { - if (index == null) { + if (index == null || builtInHardwareFolder == null) { return; } for (File folder : builtInHardwareFolder.listFiles(ONLY_DIRS)) { @@ -240,9 +249,9 @@ private void syncBuiltInHardware() throws IOException { PreferencesMap toolsVersion = new PreferencesMap(versionsFile).subTree(pack.getName()); for (String name : toolsVersion.keySet()) { String version = toolsVersion.get(name); - DownloadableContribution tool = syncToolWithFilesystem(pack, toolFolder, name, version); + ContributedTool tool = syncToolWithFilesystem(pack, toolFolder, name, version); if (tool != null) - tool.setReadOnly(true); + tool.setBuiltIn(true); } } } @@ -255,7 +264,7 @@ private void syncBuiltInPackageWithFilesystem(ContributedPackage pack, File hard String version = new PreferencesMap(platformTxt).get("version"); ContributedPlatform p = syncHardwareWithFilesystem(pack, platformFolder, platformFolder.getName(), version); if (p != null) { - p.setReadOnly(true); + p.setBuiltIn(true); } } } @@ -301,7 +310,7 @@ private void syncPackageWithFilesystem(ContributedPackage pack, File root) { } } - private DownloadableContribution syncToolWithFilesystem(ContributedPackage pack, File installationFolder, String toolName, String version) { + private ContributedTool syncToolWithFilesystem(ContributedPackage pack, File installationFolder, String toolName, String version) { ContributedTool tool = pack.findTool(toolName, version); if (tool == null) { tool = pack.findResolvedTool(toolName, version); @@ -314,17 +323,17 @@ private DownloadableContribution syncToolWithFilesystem(ContributedPackage pack, System.err.println(tool + " seems to have no downloadable contributions for your operating system, but it is installed in\n" + installationFolder); return null; } - contrib.setInstalled(true); - contrib.setInstalledFolder(installationFolder); - contrib.setReadOnly(false); - return contrib; + tool.setInstalled(true); + tool.setInstalledFolder(installationFolder); + tool.setBuiltIn(false); + return tool; } private ContributedPlatform syncHardwareWithFilesystem(ContributedPackage pack, File installationFolder, String architecture, String version) { ContributedPlatform p = pack.findPlatform(architecture, version); if (p != null) { p.setInstalled(true); - p.setReadOnly(false); + p.setBuiltIn(false); p.setInstalledFolder(installationFolder); } return p; @@ -345,8 +354,10 @@ public List createTargetPackages() { for (ContributedPackage aPackage : index.getPackages()) { ContributedTargetPackage targetPackage = new ContributedTargetPackage(aPackage.getName()); - List platforms = aPackage.getPlatforms().stream().filter(new InstalledPredicate()).collect(Collectors.toList()); - Collections.sort(platforms, new DownloadableContributionBuiltInAtTheBottomComparator()); + List platforms = aPackage.getPlatforms().stream() // + .filter(p -> p.isInstalled()) // + .collect(Collectors.toList()); + Collections.sort(platforms, ContributedPlatform.BUILTIN_AS_LAST); for (ContributedPlatform p : platforms) { String arch = p.getArchitecture(); @@ -381,7 +392,7 @@ public boolean isContributedToolUsed(ContributedPlatform platformToIgnore, Contr if (platformToIgnore.equals(p)) { continue; } - if (!p.isInstalled() || p.isReadOnly()) { + if (!p.isInstalled() || p.isBuiltIn()) { continue; } for (ContributedTool requiredTool : p.getResolvedTools()) { @@ -399,12 +410,16 @@ public Set getInstalledTools() { return tools; } for (ContributedPackage pack : index.getPackages()) { - Collection platforms = pack.getPlatforms().stream().filter(new InstalledPredicate()).collect(Collectors.toList()); + Collection platforms = pack.getPlatforms().stream() // + .filter(p -> p.isInstalled()) // + .collect(Collectors.toList()); Map> platformsByName = platforms.stream().collect(Collectors.groupingBy(ContributedPlatform::getName)); platformsByName.forEach((platformName, platformsWithName) -> { if (platformsWithName.size() > 1) { - platformsWithName = platformsWithName.stream().filter(new BuiltInPredicate().negate()).collect(Collectors.toList()); + platformsWithName = platformsWithName.stream() // + .filter(p -> !p.isBuiltIn()) // + .collect(Collectors.toList()); } for (ContributedPlatform p : platformsWithName) { tools.addAll(p.getResolvedTools()); @@ -458,17 +473,11 @@ private List getInstalledPlatforms() { return index.getInstalledPlatforms(); } - public boolean isFolderInsidePlatform(final File folder) { - return getPlatformByFolder(folder) != null; - } - - public ContributedPlatform getPlatformByFolder(final File folder) { - Optional platformOptional = getInstalledPlatforms().stream().filter(contributedPlatform -> { + public Optional getPlatformByFolder(final File folder) { + return getInstalledPlatforms().stream().filter(contributedPlatform -> { assert contributedPlatform.getInstalledFolder() != null; return FileUtils.isSubDirectory(contributedPlatform.getInstalledFolder(), folder); }).findFirst(); - - return platformOptional.orElse(null); } public ContributedPlatform getContributedPlaform(TargetPlatform targetPlatform) { diff --git a/arduino-core/src/cc/arduino/contributions/packages/EmptyContributionIndex.java b/arduino-core/src/cc/arduino/contributions/packages/EmptyContributionIndex.java deleted file mode 100644 index 200dce3c2fe..00000000000 --- a/arduino-core/src/cc/arduino/contributions/packages/EmptyContributionIndex.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is part of Arduino. - * - * Copyright 2014 Arduino LLC (http://www.arduino.cc/) - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - */ - -package cc.arduino.contributions.packages; - -import java.util.ArrayList; -import java.util.List; - -class EmptyContributionIndex extends ContributionsIndex { - List packs = new ArrayList<>(); - - @Override - public List getPackages() { - return packs; - } -} \ No newline at end of file diff --git a/arduino-core/src/cc/arduino/contributions/packages/HostDependentDownloadableContribution.java b/arduino-core/src/cc/arduino/contributions/packages/HostDependentDownloadableContribution.java index 9209c77fc3f..2b692a54fb8 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/HostDependentDownloadableContribution.java +++ b/arduino-core/src/cc/arduino/contributions/packages/HostDependentDownloadableContribution.java @@ -32,9 +32,26 @@ import cc.arduino.contributions.DownloadableContribution; import processing.app.Platform; -public abstract class HostDependentDownloadableContribution extends DownloadableContribution { +public class HostDependentDownloadableContribution extends DownloadableContribution { - public abstract String getHost(); + private String url; + private String version; + private String checksum; + private long size; + private String archiveFileName; + private String host; + + public String getUrl() { return url; } + + public String getVersion() { return version; } + + public String getChecksum() { return checksum; } + + public long getSize() { return size; } + + public String getArchiveFileName() { return archiveFileName; } + + public String getHost() { return host; } @Override public String toString() { @@ -60,6 +77,8 @@ public boolean isCompatible(Platform platform) { // Debian 7.9 on BBB: "arm-linux-gnueabihf" // Raspbian on PI Zero: "arm-linux-gnueabihf" return host.matches("arm.*-linux-gnueabihf"); + } else if (osArch.contains("aarch64")) { + return host.matches("aarch64.*-linux-gnu*"); } else if (osArch.contains("amd64")) { return host.matches("x86_64-.*linux-gnu"); } else { diff --git a/app/src/cc/arduino/i18n/Language.java b/arduino-core/src/cc/arduino/i18n/Language.java similarity index 99% rename from app/src/cc/arduino/i18n/Language.java rename to arduino-core/src/cc/arduino/i18n/Language.java index c3eb133f2c9..cf94733d928 100644 --- a/app/src/cc/arduino/i18n/Language.java +++ b/arduino-core/src/cc/arduino/i18n/Language.java @@ -41,6 +41,7 @@ public Language(String name, String originalName, String isoCode) { this.isoCode = isoCode; } + @Override public String toString() { if (originalName.length() == 0) { return name; diff --git a/app/src/cc/arduino/i18n/Languages.java b/arduino-core/src/cc/arduino/i18n/Languages.java similarity index 96% rename from app/src/cc/arduino/i18n/Languages.java rename to arduino-core/src/cc/arduino/i18n/Languages.java index d9d1c673697..7eb8df11cd5 100644 --- a/app/src/cc/arduino/i18n/Languages.java +++ b/arduino-core/src/cc/arduino/i18n/Languages.java @@ -35,6 +35,15 @@ public class Languages { public static final Language[] languages; + public static boolean have(String isoCode) { + for (Language language : languages) { + if (language.getIsoCode().equals(isoCode)) { + return true; + } + } + return false; + } + static { languages = new Language[]{ new Language(tr("System Default"), "", ""), @@ -63,7 +72,6 @@ public class Languages { new Language(tr("English"), "English", "en"), new Language(tr("English (United Kingdom)"), "English (United Kingdom)", "en_GB"), new Language(tr("Estonian"), "Eesti", "et"), - new Language(tr("Estonian (Estonia)"), "Eesti keel", "et_EE"), new Language(tr("Filipino"), "Pilipino", "fil"), new Language(tr("Finnish"), "Suomi", "fi"), new Language(tr("French"), "Français", "fr"), diff --git a/arduino-core/src/cc/arduino/net/CustomProxySelector.java b/arduino-core/src/cc/arduino/net/CustomProxySelector.java index 6bb29879e10..32a0894e89e 100644 --- a/arduino-core/src/cc/arduino/net/CustomProxySelector.java +++ b/arduino-core/src/cc/arduino/net/CustomProxySelector.java @@ -75,7 +75,7 @@ public Proxy getProxyFor(URI uri) throws IOException, ScriptException, NoSuchMet } private Proxy pacProxy(String pac, URI uri) throws IOException, ScriptException, NoSuchMethodException { - setAuthenticator(preferences.get(Constants.PREF_PROXY_AUTO_USERNAME), preferences.get(Constants.PREF_PROXY_AUTO_PASSWORD)); + setAuthenticator(preferences.get(Constants.PREF_PROXY_USERNAME), preferences.get(Constants.PREF_PROXY_PASSWORD)); URLConnection urlConnection = new URL(pac).openConnection(); urlConnection.connect(); @@ -141,7 +141,7 @@ private URL toUrl(URI uri) { } private Proxy manualProxy() { - setAuthenticator(preferences.get(Constants.PREF_PROXY_MANUAL_USERNAME), preferences.get(Constants.PREF_PROXY_MANUAL_PASSWORD)); + setAuthenticator(preferences.get(Constants.PREF_PROXY_USERNAME), preferences.get(Constants.PREF_PROXY_PASSWORD)); Proxy.Type type = Proxy.Type.valueOf(preferences.get(Constants.PREF_PROXY_MANUAL_TYPE)); return new Proxy(type, new InetSocketAddress(preferences.get(Constants.PREF_PROXY_MANUAL_HOSTNAME), Integer.valueOf(preferences.get(Constants.PREF_PROXY_MANUAL_PORT)))); } diff --git a/arduino-core/src/cc/arduino/packages/BoardPort.java b/arduino-core/src/cc/arduino/packages/BoardPort.java index 0e85ffe135d..397c0818a49 100644 --- a/arduino-core/src/cc/arduino/packages/BoardPort.java +++ b/arduino-core/src/cc/arduino/packages/BoardPort.java @@ -29,22 +29,36 @@ package cc.arduino.packages; +import processing.app.BaseNoGui; +import processing.app.debug.TargetBoard; +import processing.app.debug.TargetPackage; +import processing.app.debug.TargetPlatform; import processing.app.helpers.PreferencesMap; public class BoardPort { - private String address; - private String protocol; + private String address; // unique name for this port, used by Preferences + private String protocol; // how to communicate, used for Ports menu sections + private String protocolLabel; // protocol extended name to display on GUI private String boardName; - private String vid; - private String pid; - private String iserial; - private String label; - private final PreferencesMap prefs; - private boolean online; + private String label; // friendly name shown in Ports menu + private final PreferencesMap identificationPrefs; // data to match with boards.txt + private final PreferencesMap prefs; // "vendorId", "productId", "serialNumber" + private boolean online; // used by SerialBoardsLister (during upload??) public BoardPort() { this.prefs = new PreferencesMap(); + this.identificationPrefs = new PreferencesMap(); + } + + public BoardPort(BoardPort bp) { + prefs = new PreferencesMap(bp.prefs); + identificationPrefs = new PreferencesMap(bp.identificationPrefs); + address = bp.address; + protocol = bp.protocol; + boardName = bp.boardName; + label = bp.label; + online = bp.online; } public String getAddress() { @@ -63,6 +77,14 @@ public void setProtocol(String protocol) { this.protocol = protocol; } + public String getProtocolLabel() { + return protocolLabel; + } + + public void setProtocolLabel(String protocolLabel) { + this.protocolLabel = protocolLabel; + } + public String getBoardName() { return boardName; } @@ -75,6 +97,10 @@ public PreferencesMap getPrefs() { return prefs; } + public PreferencesMap getIdentificationPrefs() { + return identificationPrefs; + } + public void setLabel(String label) { this.label = label; } @@ -91,28 +117,80 @@ public boolean isOnline() { return online; } - public void setVIDPID(String vid, String pid) { - this.vid = vid; - this.pid = pid; - } - - public String getVID() { - return vid; - } - - public String getPID() { - return pid; - } - - public void setISerial(String iserial) { - this.iserial = iserial; - } - public String getISerial() { - return iserial; - } - @Override public String toString() { - return this.address+"_"+this.vid+"_"+this.pid; + return this.address; + } + + public String toCompleteString() { + return this.address + "_" + this.getPrefs().get("vid") + "_" + this.getPrefs().get("pid"); + } + + // Search for the board which matches identificationPrefs. + // If found, boardName is set to the name from boards.txt + // and the board is returned. If not found, null is returned. + public TargetBoard searchMatchingBoard() { + if (identificationPrefs == null || identificationPrefs.isEmpty()) return null; + for (TargetPackage targetPackage : BaseNoGui.packages.values()) { + for (TargetPlatform targetPlatform : targetPackage.getPlatforms().values()) { + for (TargetBoard board : targetPlatform.getBoards().values()) { + if (matchesBoard(board)) { + setBoardName(board.getName()); + return board; + } + } + } + } + return null; + } + + public boolean matchesBoard(TargetBoard board) { + PreferencesMap identificationProps = getIdentificationPrefs(); + PreferencesMap boardProps = board.getPreferences(); + + String wildMatcher = identificationProps.get("."); + if (wildMatcher != null) { + if (wildMatcher.equals(board.getId())) { + return true; + } + if (wildMatcher.equals(board.getFQBN())) { + return true; + } + } + + // Identification properties are defined in boards.txt with a ".N" suffix + // for example: + // + // uno.name=Arduino/Genuino Uno + // uno.vid.0=0x2341 + // uno.pid.0=0x0043 + // uno.vid.1=0x2341 + // uno.pid.1=0x0001 + // uno.vid.2=0x2A03 + // uno.pid.2=0x0043 + // uno.vid.3=0x2341 + // uno.pid.3=0x0243 + // + // so we must search starting from suffix ".0" and increasing until we + // found a match or the board has no more identification properties defined + + for (int suffix = 0;; suffix++) { + boolean found = true; + for (String prop : identificationProps.keySet()) { + String value = identificationProps.get(prop); + prop += "." + suffix; + if (!boardProps.containsKey(prop)) { + return false; + } + if (!value.equalsIgnoreCase(boardProps.get(prop))) { + found = false; + break; + } + } + if (found) { + return true; + } + } } + } diff --git a/arduino-core/src/cc/arduino/packages/Discovery.java b/arduino-core/src/cc/arduino/packages/Discovery.java index 911fcc2f6f5..5bbd740cd59 100644 --- a/arduino-core/src/cc/arduino/packages/Discovery.java +++ b/arduino-core/src/cc/arduino/packages/Discovery.java @@ -31,7 +31,7 @@ import java.util.List; -public interface Discovery { +public interface Discovery extends Runnable { /** * Start discovery service diff --git a/arduino-core/src/cc/arduino/packages/DiscoveryManager.java b/arduino-core/src/cc/arduino/packages/DiscoveryManager.java index 01259e8e052..21876ffc47e 100644 --- a/arduino-core/src/cc/arduino/packages/DiscoveryManager.java +++ b/arduino-core/src/cc/arduino/packages/DiscoveryManager.java @@ -29,13 +29,22 @@ package cc.arduino.packages; -import cc.arduino.packages.discoverers.NetworkDiscovery; -import cc.arduino.packages.discoverers.SerialDiscovery; +import static processing.app.I18n.format; +import static processing.app.I18n.tr; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.io.File; -import static processing.app.I18n.tr; +import cc.arduino.packages.discoverers.PluggableDiscovery; +import cc.arduino.packages.discoverers.serial.SerialDiscovery; +import cc.arduino.packages.discoverers.NetworkDiscovery; +import processing.app.PreferencesData; +import processing.app.debug.TargetPackage; +import processing.app.debug.TargetPlatform; +import processing.app.helpers.PreferencesMap; +import processing.app.helpers.StringReplacer; public class DiscoveryManager { @@ -43,17 +52,57 @@ public class DiscoveryManager { private final SerialDiscovery serialDiscoverer = new SerialDiscovery(); private final NetworkDiscovery networkDiscoverer = new NetworkDiscovery(); - public DiscoveryManager() { +// private final Map packages; + + public DiscoveryManager(Map packages) { +// this.packages = packages; + discoverers = new ArrayList<>(); discoverers.add(serialDiscoverer); discoverers.add(networkDiscoverer); + // Search for discoveries in installed packages + for (TargetPackage targetPackage : packages.values()) { + for (TargetPlatform platform: targetPackage.getPlatforms().values()) { + //System.out.println("installed: "+platform); + PreferencesMap prefs = platform.getPreferences().subTree("discovery"); + PreferencesMap pathPrefs = new PreferencesMap(); + File platformFolder = platform.getFolder(); + pathPrefs.put("runtime.platform.path", platformFolder.getAbsolutePath()); + pathPrefs.put("runtime.hardware.path", platformFolder.getParentFile().getAbsolutePath()); + for (String discoveryName : prefs.firstLevelMap().keySet()) { + PreferencesMap discoveryPrefs = prefs.subTree(discoveryName); + + String pattern = discoveryPrefs.get("pattern"); + if (pattern == null) { + System.out.println(format(tr("No recipes defined for discovery '{0}'"),discoveryName)); + continue; + } + try { + if (PreferencesData.getBoolean("discovery.debug")) { + System.out.println("found discovery: " + discoveryName + " -> " + pattern); + System.out.println("with pathnames -> " + pathPrefs); + System.out.println("with preferencess -> " + discoveryPrefs); + } + pattern = StringReplacer.replaceFromMapping(pattern, PreferencesData.getMap()); + pattern = StringReplacer.replaceFromMapping(pattern, pathPrefs); + String[] cmd = StringReplacer.formatAndSplit(pattern, discoveryPrefs); + discoverers.add(new PluggableDiscovery(discoveryName, cmd)); + } catch (Exception e) { + if (PreferencesData.getBoolean("discovery.debug")) { + System.out.println(format(tr("Could not start discovery '{0}': {1}"), discoveryName, e.getMessage())); + } + } + } + } + } + // Start all discoverers for (Discovery d : discoverers) { try { - d.start(); + new Thread(d).start(); } catch (Exception e) { - System.err.println(tr("Error starting discovery method: ") + d.getClass()); + System.err.println(tr("Error starting discovery method: ") + d.toString()); e.printStackTrace(); } } diff --git a/arduino-core/src/cc/arduino/packages/Uploader.java b/arduino-core/src/cc/arduino/packages/Uploader.java index 54b5c7abd1e..55ddd46e95a 100644 --- a/arduino-core/src/cc/arduino/packages/Uploader.java +++ b/arduino-core/src/cc/arduino/packages/Uploader.java @@ -37,35 +37,35 @@ import processing.app.debug.MessageConsumer; import processing.app.debug.MessageSiphon; import processing.app.helpers.ProcessUtils; -import processing.app.helpers.StringUtils; import java.io.File; -import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.concurrent.TimeUnit; +import org.apache.commons.lang3.StringUtils; + import static processing.app.I18n.tr; public abstract class Uploader implements MessageConsumer { - private static final List STRINGS_TO_SUPPRESS; - private static final List AVRDUDE_PROBLEMS; + private static final String[] STRINGS_TO_SUPPRESS; + private static final String[] AVRDUDE_PROBLEMS; static { - STRINGS_TO_SUPPRESS = Arrays.asList("Connecting to programmer:", + STRINGS_TO_SUPPRESS = new String[] {"Connecting to programmer:", "Found programmer: Id = \"CATERIN\"; type = S", "Software Version = 1.0; No Hardware Version given.", "Programmer supports auto addr increment.", "Programmer supports buffered memory access with buffersize=128 bytes.", - "Programmer supports the following devices:", "Device code: 0x44"); + "Programmer supports the following devices:", "Device code: 0x44"}; - AVRDUDE_PROBLEMS = Arrays.asList("Programmer is not responding", + AVRDUDE_PROBLEMS = new String[] {"Programmer is not responding", "programmer is not responding", "protocol error", "avrdude: ser_open(): can't open device", "avrdude: ser_drain(): read error", "avrdude: ser_send(): write error", - "avrdude: error: buffered memory access not supported."); + "avrdude: error: buffered memory access not supported."}; } protected final boolean verbose; @@ -106,7 +106,7 @@ public String getAuthorizationKey() { } // static field for last executed programmer process ID - static protected Process programmerPid; + static public Process programmerPid; protected boolean executeUploadCommand(Collection command) throws Exception { return executeUploadCommand(command.toArray(new String[command.size()])); @@ -155,7 +155,7 @@ public String getFailureMessage() { @Override public void message(String s) { // selectively suppress a bunch of avrdude output for AVR109/Caterina that should already be quelled but isn't - if (!verbose && StringUtils.stringContainsOneOf(s, STRINGS_TO_SUPPRESS)) { + if (!verbose && StringUtils.containsAny(s, STRINGS_TO_SUPPRESS)) { s = ""; } @@ -175,7 +175,7 @@ public void message(String s) { error = tr("Device is not responding, check the right serial port is selected or RESET the board right before exporting"); return; } - if (StringUtils.stringContainsOneOf(s, AVRDUDE_PROBLEMS)) { + if (StringUtils.containsAny(s, AVRDUDE_PROBLEMS)) { error = tr("Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions."); return; } diff --git a/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java b/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java index 4ed374a57f5..8619a92f0fd 100644 --- a/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java +++ b/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java @@ -37,13 +37,10 @@ import java.net.InetAddress; import java.util.*; -import cc.arduino.packages.discoverers.network.BoardReachabilityFilter; - -public class NetworkDiscovery implements Discovery, ServiceListener { +public class NetworkDiscovery implements Discovery, ServiceListener, Runnable { private final List reachableBoardPorts = new LinkedList<>(); private final List boardPortsDiscoveredWithJmDNS = new LinkedList<>(); - private Timer reachabilityTimer; private JmmDNS jmdns = null; private void removeDuplicateBoards(BoardPort newBoard) { @@ -81,6 +78,7 @@ public void serviceResolved(ServiceEvent serviceEvent) { } ServiceInfo info = serviceEvent.getInfo(); + for (InetAddress inetAddress : info.getInet4Addresses()) { String address = inetAddress.getHostAddress(); String name = serviceEvent.getName(); @@ -115,15 +113,12 @@ public void serviceResolved(ServiceEvent serviceEvent) { String label = name + " at " + address; if (board != null && BaseNoGui.packages != null) { String boardName = BaseNoGui.getPlatform().resolveDeviceByBoardID(BaseNoGui.packages, board); - if (boardName != null) { - label += " (" + boardName + ")"; - } + port.setBoardName(boardName); } else if (description != null) { label += " (" + description + ")"; } port.setAddress(address); - port.setBoardName(name); port.setProtocol("network"); port.setLabel(label); @@ -138,17 +133,23 @@ public NetworkDiscovery() { } + @Override + public void run() { + start(); + } + @Override public void start() { + System.getProperties().setProperty("net.dns.ttl", "10"); jmdns = JmmDNS.Factory.getInstance(); jmdns.addServiceListener("_arduino._tcp.local.", this); - reachabilityTimer = new Timer(); - new BoardReachabilityFilter(this).start(reachabilityTimer); } @Override public void stop() { - jmdns.unregisterAllServices(); + if (jmdns != null) { + jmdns.unregisterAllServices(); + } // we don't close the JmmDNS instance as it's too slow /* try { @@ -157,13 +158,12 @@ public void stop() { e.printStackTrace(); } */ - reachabilityTimer.cancel(); } @Override public List listDiscoveredBoards() { - synchronized (reachableBoardPorts) { - return new LinkedList<>(reachableBoardPorts); + synchronized (reachableBoardPorts) { + return getBoardPortsDiscoveredWithJmDNS(); } } @@ -176,8 +176,8 @@ public List listDiscoveredBoards(boolean complete) { public void setReachableBoardPorts(List newReachableBoardPorts) { synchronized (reachableBoardPorts) { - this.reachableBoardPorts.clear(); - this.reachableBoardPorts.addAll(newReachableBoardPorts); + reachableBoardPorts.clear(); + reachableBoardPorts.addAll(newReachableBoardPorts); } } diff --git a/arduino-core/src/cc/arduino/packages/discoverers/PluggableDiscovery.java b/arduino-core/src/cc/arduino/packages/discoverers/PluggableDiscovery.java new file mode 100644 index 00000000000..3f7202fa6a9 --- /dev/null +++ b/arduino-core/src/cc/arduino/packages/discoverers/PluggableDiscovery.java @@ -0,0 +1,293 @@ +/* + * This file is part of Arduino. + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + * + * Copyright 2018 Arduino SA (http://www.arduino.cc/) + */ + +package cc.arduino.packages.discoverers; + +import static processing.app.I18n.format; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; + +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import cc.arduino.packages.BoardPort; +import cc.arduino.packages.Discovery; +import processing.app.PreferencesData; + +public class PluggableDiscovery implements Discovery { + + private final String discoveryName; + private final String[] cmd; + private final List portList = new ArrayList<>(); + private Process program=null; + private Thread pollingThread; + + private void debug(String x) { + if (PreferencesData.getBoolean("discovery.debug")) + System.out.println(discoveryName + ": " + x); + } + + public PluggableDiscovery(String discoveryName, String[] cmd) { + this.cmd = cmd; + this.discoveryName = discoveryName; + } + + @Override + public void run() { + // this method is started as a new thread, it will constantly listen + // to the discovery tool and keep track of the discovered ports + try { + start(); + InputStream input = program.getInputStream(); + JsonFactory factory = new JsonFactory(); + JsonParser parser = factory.createParser(input); + ObjectMapper mapper = new ObjectMapper(); + mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE); + mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + while (program != null && program.isAlive()) { + JsonNode tree = mapper.readTree(parser); + if (tree == null) { + if (program != null && program.isAlive()) { + System.err.println(format("{0}: Invalid json message", discoveryName)); + } + break; + } + debug("Received json: " + tree); + + processJsonNode(mapper, tree); + } + debug("thread exit normally"); + } catch (InterruptedException e) { + debug("thread exit by interrupt"); + e.printStackTrace(); + } catch (Exception e) { + debug("thread exit other exception"); + e.printStackTrace(); + } + try { + stop(); + } catch (Exception e) { + } + } + + private void processJsonNode(ObjectMapper mapper, JsonNode node) { + JsonNode eventTypeNode = node.get("eventType"); + if (eventTypeNode == null) { + System.err.println(format("{0}: Invalid message, missing eventType", discoveryName)); + return; + } + + switch (eventTypeNode.asText()) { + case "error": + try { + PluggableDiscoveryMessage msg = mapper.treeToValue(node, PluggableDiscoveryMessage.class); + debug("error: " + msg.getMessage()); + if (msg.getMessage().contains("START_SYNC")) { + startPolling(); + } + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return; + + case "list": + JsonNode portsNode = node.get("ports"); + if (portsNode == null) { + System.err.println(format("{0}: Invalid message, missing ports list", discoveryName)); + return; + } + if (!portsNode.isArray()) { + System.err.println(format("{0}: Invalid message, ports list should be an array", discoveryName)); + return; + } + + synchronized (portList) { + portList.clear(); + } + portsNode.forEach(portNode -> { + BoardPort port = mapJsonNodeToBoardPort(mapper, node); + if (port != null) { + addOrUpdate(port); + } + }); + return; + + // Messages for SYNC updates + + case "add": + BoardPort addedPort = mapJsonNodeToBoardPort(mapper, node); + if (addedPort != null) { + addOrUpdate(addedPort); + } + return; + + case "remove": + BoardPort removedPort = mapJsonNodeToBoardPort(mapper, node); + if (removedPort != null) { + remove(removedPort); + } + return; + + default: + debug("Invalid event: " + eventTypeNode.asText()); + return; + } + } + + private BoardPort mapJsonNodeToBoardPort(ObjectMapper mapper, JsonNode node) { + try { + BoardPort port = mapper.treeToValue(node.get("port"), BoardPort.class); + // if no label, use address + if (port.getLabel() == null || port.getLabel().isEmpty()) { + port.setLabel(port.getAddress()); + } + port.searchMatchingBoard(); + return port; + } catch (JsonProcessingException e) { + System.err.println(format("{0}: Invalid BoardPort message", discoveryName)); + e.printStackTrace(); + return null; + } + } + + @Override + public void start() throws Exception { + try { + debug("Starting: " + StringUtils.join(cmd, " ")); + program = Runtime.getRuntime().exec(cmd); + } catch (Exception e) { + program = null; + return; + } + debug("START_SYNC"); + write("START_SYNC\n"); + pollingThread = null; + } + + private void startPolling() { + // Discovery tools not supporting START_SYNC require a periodic + // LIST command. A second thread is created to send these + // commands, while the run() thread above listens for the + // discovery tool output. + debug("START"); + write("START\n"); + Thread pollingThread = new Thread() { + public void run() { + try { + while (program != null && program.isAlive()) { + debug("LIST"); + write("LIST\n"); + sleep(2500); + } + } catch (Exception e) { + } + } + }; + pollingThread.start(); + } + + @Override + public void stop() throws Exception { + if (pollingThread != null) { + pollingThread.interrupt(); + pollingThread = null; + } + write("STOP\n"); + if (program != null) { + program.destroy(); + program = null; + } + } + + private void write(String command) { + if (program != null && program.isAlive()) { + OutputStream out = program.getOutputStream(); + try { + out.write(command.getBytes()); + out.flush(); + } catch (Exception e) { + } + } + } + + private void addOrUpdate(BoardPort port) { + String address = port.getAddress(); + if (address == null) + return; // address required for "add" & "remove" + + synchronized (portList) { + // if address already on the list, discard old info + portList.removeIf(bp -> address.equals(bp.getAddress())); + portList.add(port); + } + } + + private void remove(BoardPort port) { + String address = port.getAddress(); + if (address == null) + return; // address required for "add" & "remove" + synchronized (portList) { + portList.removeIf(bp -> address.equals(bp.getAddress())); + } + } + + @Override + public List listDiscoveredBoards() { + synchronized (portList) { + return new ArrayList<>(portList); + } + } + + @Override + public List listDiscoveredBoards(boolean complete) { + // XXX: parameter "complete "is really needed? + // should be checked on all existing discoveries + synchronized (portList) { + return new ArrayList<>(portList); + } + } + + @Override + public String toString() { + return discoveryName; + } +} diff --git a/arduino-core/src/cc/arduino/packages/discoverers/PluggableDiscoveryMessage.java b/arduino-core/src/cc/arduino/packages/discoverers/PluggableDiscoveryMessage.java new file mode 100644 index 00000000000..3a377d0643f --- /dev/null +++ b/arduino-core/src/cc/arduino/packages/discoverers/PluggableDiscoveryMessage.java @@ -0,0 +1,43 @@ +/* + * This file is part of Arduino. + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + * + * Copyright 2018 Arduino SA (http://www.arduino.cc/) + */ + +package cc.arduino.packages.discoverers; + +public class PluggableDiscoveryMessage { + private String eventType; // "add", "remove", "error" + private String message; // optional message, e.g. "START_SYNC not supported" + + public String getEventType() { + return eventType; + } + + public String getMessage() { + return message; + } +} diff --git a/arduino-core/src/cc/arduino/packages/discoverers/SerialDiscovery.java b/arduino-core/src/cc/arduino/packages/discoverers/SerialDiscovery.java deleted file mode 100644 index da3593332d8..00000000000 --- a/arduino-core/src/cc/arduino/packages/discoverers/SerialDiscovery.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * This file is part of Arduino. - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - * - * Copyright 2013 Arduino LLC (http://www.arduino.cc/) - */ - -package cc.arduino.packages.discoverers; - -import cc.arduino.packages.BoardPort; -import cc.arduino.packages.Discovery; -import cc.arduino.packages.discoverers.serial.SerialBoardsLister; - -import java.util.LinkedList; -import java.util.List; -import java.util.Timer; - -public class SerialDiscovery implements Discovery { - - private Timer serialBoardsListerTimer; - private final List serialBoardPorts; - private SerialBoardsLister serialBoardsLister = new SerialBoardsLister(this); - - public SerialDiscovery() { - this.serialBoardPorts = new LinkedList<>(); - } - - @Override - public List listDiscoveredBoards() { - return getSerialBoardPorts(false); - } - - @Override - public List listDiscoveredBoards(boolean complete) { - return getSerialBoardPorts(complete); - } - - private List getSerialBoardPorts(boolean complete) { - if (complete) { - return new LinkedList<>(serialBoardPorts); - } - List onlineBoardPorts = new LinkedList<>(); - for (BoardPort port : serialBoardPorts) { - if (port.isOnline() == true) { - onlineBoardPorts.add(port); - } - } - return onlineBoardPorts; - } - - public void setSerialBoardPorts(List newSerialBoardPorts) { - serialBoardPorts.clear(); - serialBoardPorts.addAll(newSerialBoardPorts); - } - - public void forceRefresh() { - serialBoardsLister.retriggerDiscovery(false); - } - - public void setUploadInProgress(boolean param) { - serialBoardsLister.uploadInProgress = param; - } - - public void pausePolling(boolean param) { serialBoardsLister.pausePolling = param;} - - @Override - public void start() { - this.serialBoardsListerTimer = new Timer(SerialBoardsLister.class.getName()); - serialBoardsLister.start(serialBoardsListerTimer); - } - - @Override - public void stop() { - this.serialBoardsListerTimer.purge(); - } -} diff --git a/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialBoardsLister.java b/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialBoardsLister.java deleted file mode 100644 index d055a921ab4..00000000000 --- a/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialBoardsLister.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * This file is part of Arduino. - * - * Arduino is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * As a special exception, you may use this file as part of a free software - * library without restriction. Specifically, if other files instantiate - * templates or use macros or inline functions from this file, or you compile - * this file and link it with other files to produce an executable, this - * file does not by itself cause the resulting executable to be covered by - * the GNU General Public License. This exception does not however - * invalidate any other reasons why the executable file might be covered by - * the GNU General Public License. - * - * Copyright 2015 Arduino LLC (http://www.arduino.cc/) - */ - -package cc.arduino.packages.discoverers.serial; - -import cc.arduino.packages.BoardPort; -import cc.arduino.packages.discoverers.SerialDiscovery; -import processing.app.BaseNoGui; -import processing.app.Platform; -import processing.app.debug.TargetBoard; - -import java.util.*; - -public class SerialBoardsLister extends TimerTask { - - private final SerialDiscovery serialDiscovery; - private final List boardPorts = new LinkedList<>(); - private List oldPorts = new LinkedList<>(); - public boolean uploadInProgress = false; - public boolean pausePolling = false; - private BoardPort oldUploadBoardPort = null; - - public SerialBoardsLister(SerialDiscovery serialDiscovery) { - this.serialDiscovery = serialDiscovery; - } - - public void start(Timer timer) { - timer.schedule(this, 0, 1000); - } - - public synchronized void retriggerDiscovery(boolean polled) { - Platform platform = BaseNoGui.getPlatform(); - if (platform == null) { - return; - } - - if (polled && pausePolling) { - return; - } - - List ports = platform.listSerials(); - if (ports.equals(oldPorts)) { - return; - } - - // if (updating) {} - // a port will disappear, another will appear - // use this information to "merge" the boards - // updating must be signaled by SerialUpload class - - oldPorts.clear(); - oldPorts.addAll(ports); - - for (BoardPort board : boardPorts) { - if (ports.contains(board.toString())) { - if (board.isOnline()) { - ports.remove(ports.indexOf(board.toString())); - } - } else { - if (uploadInProgress && board.isOnline()) { - oldUploadBoardPort = board; - } - board.setOnlineStatus(false); - } - } - - for (String newPort : ports) { - - String[] parts = newPort.split("_"); - - if (parts.length < 3) { - // something went horribly wrong - continue; - } - - if (parts.length > 3) { - // port name with _ in it (like CP2102 on OSX) - for (int i = 1; i < (parts.length-2); i++) { - parts[0] += "_" + parts[i]; - } - parts[1] = parts[parts.length-2]; - parts[2] = parts[parts.length-1]; - } - - String port = parts[0]; - - Map boardData = platform.resolveDeviceByVendorIdProductId(port, BaseNoGui.packages); - - BoardPort boardPort = null; - boolean updatingInfos = false; - int i = 0; - // create new board or update existing - for (BoardPort board : boardPorts) { - if (board.toString().equals(newPort)) { - updatingInfos = true; - boardPort = boardPorts.get(i); - break; - } - i++; - } - if (!updatingInfos) { - boardPort = new BoardPort(); - } - boardPort.setAddress(port); - boardPort.setProtocol("serial"); - boardPort.setOnlineStatus(true); - - String label = port; - - if (boardData != null) { - boardPort.getPrefs().put("vid", boardData.get("vid").toString()); - boardPort.getPrefs().put("pid", boardData.get("pid").toString()); - boardPort.setVIDPID(parts[1], parts[2]); - - String iserial = boardData.get("iserial").toString(); - if (iserial.length() >= 10) { - boardPort.getPrefs().put("iserial", iserial); - boardPort.setISerial(iserial); - } - if (uploadInProgress && oldUploadBoardPort!=null) { - oldUploadBoardPort.getPrefs().put("iserial", iserial); - oldUploadBoardPort.setISerial(iserial); - } - - TargetBoard board = (TargetBoard) boardData.get("board"); - if (board != null) { - String boardName = board.getName(); - if (boardName != null) { - label += " (" + boardName + ")"; - } - boardPort.setBoardName(boardName); - } - } else { - if (!parts[1].equals("0000")) { - boardPort.setVIDPID(parts[1], parts[2]); - // ask Cloud API to match the board with known VID/PID pair - platform.getBoardWithMatchingVidPidFromCloud(parts[1], parts[2]); - } else { - boardPort.setVIDPID("0000", "0000"); - boardPort.setISerial(""); - } - } - - boardPort.setLabel(label); - if (!updatingInfos) { - boardPorts.add(boardPort); - } - } - serialDiscovery.setSerialBoardPorts(boardPorts); - } - - @Override - public void run() { - if (BaseNoGui.packages == null) { - return; - } - retriggerDiscovery(true); - } -} diff --git a/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java b/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java new file mode 100644 index 00000000000..fc86c950ecd --- /dev/null +++ b/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java @@ -0,0 +1,192 @@ +/* + * This file is part of Arduino. + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + * + * Copyright 2015 Arduino LLC (http://www.arduino.cc/) + */ + +package cc.arduino.packages.discoverers.serial; + +import cc.arduino.packages.BoardPort; +import cc.arduino.packages.Discovery; +import processing.app.BaseNoGui; +import processing.app.Platform; +import processing.app.debug.TargetBoard; +import processing.app.helpers.BoardCloudResolver; + +import java.util.*; + +public class SerialDiscovery implements Discovery, Runnable { + + private Timer serialBoardsListerTimer; + private final List serialBoardPorts = new ArrayList<>(); + private final List boardPorts = new ArrayList<>(); + private final List oldPorts = new ArrayList<>(); + public boolean uploadInProgress = false; + public boolean pausePolling = false; + private final BoardCloudResolver boardCloudResolver = new BoardCloudResolver(); + + + @Override + public List listDiscoveredBoards() { + return listDiscoveredBoards(false); + } + + @Override + public synchronized List listDiscoveredBoards(boolean complete) { + if (complete) { + return new ArrayList<>(serialBoardPorts); + } + List onlineBoardPorts = new ArrayList<>(); + for (BoardPort port : serialBoardPorts) { + if (port.isOnline() == true) { + onlineBoardPorts.add(port); + } + } + return onlineBoardPorts; + } + + public synchronized void setSerialBoardPorts(List newSerialBoardPorts) { + serialBoardPorts.clear(); + serialBoardPorts.addAll(newSerialBoardPorts); + } + + public void setUploadInProgress(boolean param) { + uploadInProgress = param; + } + + public void pausePolling(boolean param) { + pausePolling = param; + } + + @Override + public void run() { + start(); + } + + @Override + public void start() { + serialBoardsListerTimer = new Timer(SerialDiscovery.class.getName()); + serialBoardsListerTimer.schedule(new TimerTask() { + @Override + public void run() { + if (BaseNoGui.packages != null && !pausePolling) { + forceRefresh(); + } + } + }, 0, 1000); + } + + @Override + public void stop() { + serialBoardsListerTimer.cancel(); + } + + public synchronized void forceRefresh() { + Platform platform = BaseNoGui.getPlatform(); + if (platform == null) { + return; + } + + List ports = platform.listSerials(); + if (ports.equals(oldPorts)) { + return; + } + + oldPorts.clear(); + oldPorts.addAll(ports); + + // set unreachable ports offline + for (BoardPort board : boardPorts) { + if (!ports.contains(board.toCompleteString())) { + board.setOnlineStatus(false); + } + } + + // add information for newly added ports + for (String newPort : ports) { + + // if port has been already discovered bring it back online + BoardPort oldBoardPort = boardPorts.stream() // + .filter(bp -> bp.toCompleteString().equalsIgnoreCase(newPort)) // + .findAny().orElse(null); + if (oldBoardPort != null) { + oldBoardPort.setOnlineStatus(true); + continue; + } + + // Otherwise build a BoardPort object out of it and add it to + // to the known boardPorts + + String[] parts = newPort.split("_"); + if (parts.length < 3) { + // something went horribly wrong + continue; + } + if (parts.length > 3) { + // port name with _ in it (like CP2102 on OSX) + for (int i = 1; i < (parts.length-2); i++) { + parts[0] += "_" + parts[i]; + } + parts[1] = parts[parts.length-2]; + parts[2] = parts[parts.length-1]; + } + + String port = parts[0]; + + BoardPort boardPort = new BoardPort(); + boardPorts.add(boardPort); + boardPort.setAddress(port); + boardPort.setProtocol("serial"); + boardPort.setOnlineStatus(true); + boardPort.setLabel(port); + + Map boardData = platform.resolveDeviceByVendorIdProductId(port, BaseNoGui.packages); + if (boardData != null) { + boardPort.getPrefs().put("vid", boardData.get("vid").toString()); + boardPort.getPrefs().put("pid", boardData.get("pid").toString()); + + String iserial = boardData.get("iserial").toString(); + boardPort.getPrefs().put("iserial", iserial); + + TargetBoard board = (TargetBoard) boardData.get("board"); + if (board != null) { + String boardName = board.getName(); + boardPort.setBoardName(boardName); + } + } else if (!parts[1].equals("0000")) { + boardPort.getPrefs().put("vid", parts[1]); + boardPort.getPrefs().put("pid", parts[2]); + // ask Cloud API to match the board with known VID/PID pair + boardCloudResolver.getBoardBy(parts[1], parts[2]); + } else { + boardPort.getPrefs().put("vid", "0000"); + boardPort.getPrefs().put("pid", "0000"); + boardPort.getPrefs().put("iserial", ""); + } + } + setSerialBoardPorts(boardPorts); + } +} diff --git a/arduino-core/src/cc/arduino/packages/ssh/SSHConfigFileSetup.java b/arduino-core/src/cc/arduino/packages/ssh/SSHConfigFileSetup.java index 2f2e53cff44..5d4cb66cf7e 100644 --- a/arduino-core/src/cc/arduino/packages/ssh/SSHConfigFileSetup.java +++ b/arduino-core/src/cc/arduino/packages/ssh/SSHConfigFileSetup.java @@ -46,7 +46,6 @@ public SSHConfigFileSetup(SSHClientSetupChainRing nextChainRing) { @Override public Session setup(BoardPort port, JSch jSch) throws JSchException, IOException { String ipAddress = port.getAddress(); - String hostname = port.getBoardName().contains(".local") ? port.getBoardName() : port.getBoardName() + ".local"; File sshFolder = new File(System.getProperty("user.home"), ".ssh"); File sshConfig = new File(sshFolder, "config"); @@ -62,7 +61,7 @@ public Session setup(BoardPort port, JSch jSch) throws JSchException, IOExceptio jSch.setConfigRepository(new OpenSSHConfigWrapper(configRepository, ipAddress)); - return jSch.getSession(hostname); + return jSch.getSession(ipAddress); } public static class OpenSSHConfigWrapper implements ConfigRepository { diff --git a/arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java b/arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java index ab7667787dc..0cf2ba04be5 100644 --- a/arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java +++ b/arduino-core/src/cc/arduino/packages/uploaders/GenericNetworkUploader.java @@ -95,7 +95,7 @@ public boolean uploadUsingPreferences(File sourcePath, String buildPath, String pattern = prefs.get("upload.network_pattern"); if(pattern == null) pattern = prefs.getOrExcept("upload.pattern"); - String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); + String[] cmd = StringReplacer.formatAndSplit(pattern, prefs); uploadResult = executeUploadCommand(cmd); } catch (RunnerException e) { throw e; diff --git a/arduino-core/src/cc/arduino/packages/uploaders/MergeSketchWithBooloader.java b/arduino-core/src/cc/arduino/packages/uploaders/MergeSketchWithBooloader.java index a6f34b265d2..bbab2bd7b09 100644 --- a/arduino-core/src/cc/arduino/packages/uploaders/MergeSketchWithBooloader.java +++ b/arduino-core/src/cc/arduino/packages/uploaders/MergeSketchWithBooloader.java @@ -29,19 +29,19 @@ package cc.arduino.packages.uploaders; -import processing.app.helpers.FileUtils; - import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.List; public class MergeSketchWithBooloader { public void merge(File sketch, File bootloader) throws IOException { - List mergedSketch = FileUtils.readFileToListOfStrings(sketch); + List mergedSketch = Files.readAllLines(sketch.toPath(), StandardCharsets.UTF_8); mergedSketch.remove(mergedSketch.size() - 1); - mergedSketch.addAll(FileUtils.readFileToListOfStrings(bootloader)); + mergedSketch.addAll(Files.readAllLines(bootloader.toPath(), StandardCharsets.UTF_8)); FileWriter writer = null; try { diff --git a/arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java b/arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java index b3152a75539..fb0eb3ffbd5 100644 --- a/arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java +++ b/arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java @@ -44,18 +44,23 @@ import processing.app.helpers.PreferencesMap; import processing.app.helpers.PreferencesMapException; import processing.app.helpers.StringReplacer; -import processing.app.helpers.StringUtils; import java.io.File; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; import static processing.app.I18n.tr; public class SSHUploader extends Uploader { - private static final List FILES_NOT_TO_COPY = Arrays.asList(".DS_Store", ".Trash", "Thumbs.db", "__MACOSX"); + private static final Set FILES_NOT_TO_COPY = + Collections.unmodifiableSet(new HashSet(Arrays.asList(".DS_Store", ".Trash", "Thumbs.db", "__MACOSX"))); private final BoardPort port; @@ -165,7 +170,7 @@ private boolean runUploadTool(SSH ssh, PreferencesMap prefs) throws Exception { } String pattern = prefs.getOrExcept("upload.pattern"); - String command = StringUtils.join(StringReplacer.formatAndSplit(pattern, prefs, true), " "); + String command = StringUtils.join(StringReplacer.formatAndSplit(pattern, prefs), " "); if (verbose) { System.out.println(command); } @@ -223,7 +228,7 @@ private void recursiveSCP(File from, SCP scp) throws IOException { } for (File file : files) { - if (!StringUtils.stringContainsOneOf(file.getName(), FILES_NOT_TO_COPY)) { + if (!FILES_NOT_TO_COPY.contains(file.getName())) { if (file.isDirectory() && file.canExecute()) { scp.startFolder(file.getName()); recursiveSCP(file, scp); diff --git a/arduino-core/src/cc/arduino/packages/uploaders/SerialUploader.java b/arduino-core/src/cc/arduino/packages/uploaders/SerialUploader.java index cd5e285c415..96ba383aceb 100644 --- a/arduino-core/src/cc/arduino/packages/uploaders/SerialUploader.java +++ b/arduino-core/src/cc/arduino/packages/uploaders/SerialUploader.java @@ -41,6 +41,7 @@ import processing.app.debug.RunnerException; import processing.app.debug.TargetPlatform; import processing.app.helpers.PreferencesMap; +import processing.app.helpers.PreferencesMapException; import processing.app.helpers.StringReplacer; import java.io.File; @@ -105,17 +106,11 @@ public boolean uploadUsingPreferences(File sourcePath, String buildPath, String else prefs.put("upload.verify", prefs.get("upload.params.noverify", "")); - boolean uploadResult; try { - String pattern = prefs.getOrExcept("upload.pattern"); - String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); - uploadResult = executeUploadCommand(cmd); - } catch (Exception e) { - throw new RunnerException(e); + return runCommand("upload.pattern", prefs); } finally { BaseNoGui.getDiscoveryManager().getSerialDiscoverer().pausePolling(false); } - return uploadResult; } // need to do a little dance for Leonardo and derivatives: @@ -124,13 +119,10 @@ public boolean uploadUsingPreferences(File sourcePath, String buildPath, String // this wait a moment for the bootloader to enumerate. On Windows, also must // deal with the fact that the COM port number changes from bootloader to // sketch. - String t = prefs.get("upload.use_1200bps_touch"); - boolean doTouch = t != null && t.equals("true"); - - t = prefs.get("upload.wait_for_upload_port"); - boolean waitForUploadPort = (t != null) && t.equals("true"); + boolean doTouch = prefs.getBoolean("upload.use_1200bps_touch"); + boolean waitForUploadPort = prefs.getBoolean("upload.wait_for_upload_port"); - String userSelectedUploadPort = prefs.getOrExcept("serial.port"); + String userSelectedUploadPort = prefs.get("serial.port", ""); String actualUploadPort = null; if (doTouch) { @@ -180,7 +172,7 @@ public boolean uploadUsingPreferences(File sourcePath, String buildPath, String Thread.sleep(100); } - BoardPort boardPort = BaseNoGui.getDiscoveryManager().find(PreferencesData.get("serial.port")); + BoardPort boardPort = BaseNoGui.getDiscoveryManager().find(PreferencesData.get("serial.port", "")); try { prefs.put("serial.port.iserial", boardPort.getPrefs().getOrExcept("iserial")); } catch (Exception e) { @@ -202,20 +194,11 @@ public boolean uploadUsingPreferences(File sourcePath, String buildPath, String boolean uploadResult; try { - String pattern = prefs.getOrExcept("upload.pattern"); - String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); - uploadResult = executeUploadCommand(cmd); - } catch (RunnerException e) { - throw e; - } catch (Exception e) { - throw new RunnerException(e); + uploadResult = runCommand("upload.pattern", prefs); } finally { BaseNoGui.getDiscoveryManager().getSerialDiscoverer().pausePolling(false); } - BaseNoGui.getDiscoveryManager().getSerialDiscoverer().setUploadInProgress(false); - BaseNoGui.getDiscoveryManager().getSerialDiscoverer().pausePolling(false); - String finalUploadPort = null; if (uploadResult && doTouch) { try { @@ -224,37 +207,35 @@ public boolean uploadUsingPreferences(File sourcePath, String buildPath, String // sketch serial port reconnects (or timeout after a few seconds if the // sketch port never comes back). Doing this saves users from accidentally // opening Serial Monitor on the soon-to-be-orphaned bootloader port. - Thread.sleep(1000); - long started = System.currentTimeMillis(); - while (System.currentTimeMillis() - started < 2000) { - List portList = Serial.list(); - if (portList.contains(userSelectedUploadPort)) { - finalUploadPort = userSelectedUploadPort; - break; - } - Thread.sleep(250); - } + + // Reuse waitForUploadPort for this task, but this time we are simply waiting + // for one port to reappear. If no port reappears before the timeout, actualUploadPort is selected + finalUploadPort = waitForUploadPort(actualUploadPort, Serial.list(), false, 2000); } - } catch (InterruptedException ex) { + } catch (RunnerException ex) { // noop } } - if (finalUploadPort == null) { - finalUploadPort = actualUploadPort; - } if (finalUploadPort == null) { finalUploadPort = userSelectedUploadPort; } BaseNoGui.selectSerialPort(finalUploadPort); + BaseNoGui.getDiscoveryManager().getSerialDiscoverer().setUploadInProgress(false); + BaseNoGui.getDiscoveryManager().getSerialDiscoverer().pausePolling(false); + return uploadResult; } private String waitForUploadPort(String uploadPort, List before) throws InterruptedException, RunnerException { + return waitForUploadPort(uploadPort, before, verbose, 10000); + } + + private String waitForUploadPort(String uploadPort, List before, boolean verbose, int timeout) throws InterruptedException, RunnerException { // Wait for a port to appear on the list int elapsed = 0; - while (elapsed < 10000) { + while (elapsed < timeout) { List now = Serial.list(); List diff = new ArrayList<>(now); diff.removeAll(before); @@ -331,21 +312,7 @@ private boolean uploadUsingProgrammer(String buildPath, String className) throws else prefs.put("program.verify", prefs.get("program.params.noverify", "")); - try { - // if (prefs.get("program.disable_flushing") == null - // || prefs.get("program.disable_flushing").toLowerCase().equals("false")) - // { - // flushSerialBuffer(); - // } - - String pattern = prefs.getOrExcept("program.pattern"); - String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); - return executeUploadCommand(cmd); - } catch (RunnerException e) { - throw e; - } catch (Exception e) { - throw new RunnerException(e); - } + return runCommand("program.pattern", prefs); } @Override @@ -402,13 +369,27 @@ public boolean burnBootloader() throws Exception { new LoadVIDPIDSpecificPreferences().load(prefs); - String pattern = prefs.getOrExcept("erase.pattern"); - String[] cmd = StringReplacer.formatAndSplit(pattern, prefs, true); - if (!executeUploadCommand(cmd)) + if (!runCommand("erase.pattern", prefs)) return false; - pattern = prefs.getOrExcept("bootloader.pattern"); - cmd = StringReplacer.formatAndSplit(pattern, prefs, true); - return executeUploadCommand(cmd); + return runCommand("bootloader.pattern", prefs); + } + + private boolean runCommand(String patternKey, PreferencesMap prefs) throws Exception, RunnerException { + try { + String pattern = prefs.getOrExcept(patternKey); + StringReplacer.checkIfRequiredKeyIsMissingOrExcept("serial.port", pattern, prefs); + String[] cmd = StringReplacer.formatAndSplit(pattern, prefs); + return executeUploadCommand(cmd); + } catch (RunnerException e) { + throw e; + } catch (PreferencesMapException e) { + if (e.getMessage().equals("serial.port")) { + throw new SerialNotFoundException(e); + } + throw e; + } catch (Exception e) { + throw new RunnerException(e); + } } } diff --git a/arduino-core/src/cc/arduino/utils/ArchiveExtractor.java b/arduino-core/src/cc/arduino/utils/ArchiveExtractor.java index 6d1e4ba3193..c22f7da156c 100644 --- a/arduino-core/src/cc/arduino/utils/ArchiveExtractor.java +++ b/arduino-core/src/cc/arduino/utils/ArchiveExtractor.java @@ -36,6 +36,7 @@ import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; +import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; import org.apache.commons.compress.utils.IOUtils; import processing.app.I18n; import processing.app.Platform; @@ -98,6 +99,8 @@ public void extract(File archiveFile, File destFolder, int stripPath, boolean ov in = new ZipArchiveInputStream(new FileInputStream(archiveFile)); } else if (archiveFile.getName().endsWith("tar.gz")) { in = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(archiveFile))); + } else if (archiveFile.getName().endsWith("tar.xz")) { + in = new TarArchiveInputStream(new XZCompressorInputStream(new FileInputStream(archiveFile))); } else if (archiveFile.getName().endsWith("tar")) { in = new TarArchiveInputStream(new FileInputStream(archiveFile)); } else { diff --git a/arduino-core/src/cc/arduino/utils/network/CacheControl.java b/arduino-core/src/cc/arduino/utils/network/CacheControl.java new file mode 100644 index 00000000000..a34fde7be3b --- /dev/null +++ b/arduino-core/src/cc/arduino/utils/network/CacheControl.java @@ -0,0 +1,119 @@ +/* + * This file is part of Arduino. + * + * Copyright 2019 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + + +package cc.arduino.utils.network; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class CacheControl { + + + // see org.apache.abdera.protocol.util.CacheControlUtil + private static final Pattern PATTERN + = Pattern.compile("\\s*([\\w\\-]+)\\s*(=)?\\s*(\\-?\\d+|\\\"([^\"\\\\]*(\\\\.[^\"\\\\]*)*)+\\\")?\\s*"); + + private int maxAge = -1; + + private boolean isMustRevalidate = false; + + private boolean isNoCache = false; + + private boolean isNoStore = false; + + + public static CacheControl valueOf(String value) { + CacheControl cc = new CacheControl(); + + if (value != null) { + Matcher matcher = PATTERN.matcher(value); + while (matcher.find()) { + switch (matcher.group(1).toLowerCase()) { + case "max-age": + cc.setMaxAge(Integer.parseInt(matcher.group(3))); + break; + case "must-revalidate": + cc.setMustRevalidate(true); + break; + case "no-cache": + cc.setNoCache(true); + break; + case "no-store": + cc.setNoStore(true); + break; + default: //ignore + } + } + } + return cc; + } + + public void setMaxAge(int maxAge) { + this.maxAge = maxAge; + } + + public int getMaxAge() { + return maxAge; + } + + public boolean isMustRevalidate() { + return isMustRevalidate; + } + + public void setMustRevalidate(boolean mustRevalidate) { + isMustRevalidate = mustRevalidate; + } + + public boolean isNoCache() { + return isNoCache; + } + + public void setNoCache(boolean noCache) { + isNoCache = noCache; + } + + public boolean isNoStore() { + return isNoStore; + } + + public void setNoStore(boolean noStore) { + isNoStore = noStore; + } + + @Override + public String toString() { + return "CacheControl{" + + "maxAge=" + maxAge + + ", isMustRevalidate=" + isMustRevalidate + + ", isNoCache=" + isNoCache + + ", isNoStore=" + isNoStore + + '}'; + } +} diff --git a/arduino-core/src/cc/arduino/utils/network/FileDownloader.java b/arduino-core/src/cc/arduino/utils/network/FileDownloader.java index 314ec072343..b69a1fa1bc5 100644 --- a/arduino-core/src/cc/arduino/utils/network/FileDownloader.java +++ b/arduino-core/src/cc/arduino/utils/network/FileDownloader.java @@ -29,26 +29,28 @@ package cc.arduino.utils.network; -import cc.arduino.net.CustomProxySelector; -import org.apache.commons.codec.binary.Base64; import org.apache.commons.compress.utils.IOUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import processing.app.helpers.FileUtils; -import processing.app.BaseNoGui; -import processing.app.PreferencesData; - +import javax.script.ScriptException; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; -import java.net.Proxy; import java.net.SocketTimeoutException; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.Arrays; import java.util.Observable; +import java.util.Optional; public class FileDownloader extends Observable { + private static Logger log = LogManager.getLogger(FileDownloader.class); public enum Status { CONNECTING, // @@ -66,17 +68,15 @@ public enum Status { private final URL downloadUrl; private final File outputFile; - private InputStream stream = null; + private final boolean allowCache; private Exception error; - private String userAgent; - - public FileDownloader(URL url, File file) { - downloadUrl = url; - outputFile = file; - downloaded = 0; - initialSize = 0; - userAgent = "ArduinoIDE/" + BaseNoGui.VERSION_NAME + " Java/" - + System.getProperty("java.version"); + + public FileDownloader(URL url, File file, boolean allowCache) { + this.downloadUrl = url; + this.outputFile = file; + this.allowCache = allowCache; + this.downloaded = 0; + this.initialSize = 0; } public long getInitialSize() { @@ -121,11 +121,12 @@ public void setStatus(Status status) { notifyObservers(); } - public void download() throws InterruptedException { + + public void download(boolean noResume) throws InterruptedException { if ("file".equals(downloadUrl.getProtocol())) { saveLocalFile(); } else { - downloadFile(); + downloadFile(noResume); } } @@ -139,61 +140,120 @@ private void saveLocalFile() { } } - private void downloadFile() throws InterruptedException { - RandomAccessFile file = null; + public static void invalidateFiles(URL... filesUrl) { + // For each file delete the file cached if exist + Arrays.stream(filesUrl).forEach(url -> { + try { + FileDownloaderCache.getFileCached(url).ifPresent(fileCached -> { + try { + log.info("Invalidate this file {} that comes from {}", fileCached.getLocalPath(), fileCached.getRemoteURL()); + fileCached.invalidateCache(); + } catch (Exception e) { + log.warn("Fail to invalidate cache", e); + } + }); + } catch (URISyntaxException | NoSuchMethodException | ScriptException | IOException e) { + log.warn("Fail to get the file cached during the file invalidation", e); + } + }); + + } - try { - // Open file and seek to the end of it - file = new RandomAccessFile(outputFile, "rw"); - initialSize = file.length(); - file.seek(initialSize); + private void downloadFile(boolean noResume) throws InterruptedException { + try { setStatus(Status.CONNECTING); - Proxy proxy = new CustomProxySelector(PreferencesData.getMap()).getProxyFor(downloadUrl.toURI()); - if ("true".equals(System.getProperty("DEBUG"))) { - System.err.println("Using proxy " + proxy); - } + final Optional fileCachedOpt = FileDownloaderCache.getFileCached(downloadUrl, allowCache); + if (fileCachedOpt.isPresent()) { + final FileDownloaderCache.FileCached fileCached = fileCachedOpt.get(); - HttpURLConnection connection = (HttpURLConnection) downloadUrl.openConnection(proxy); - connection.setRequestProperty("User-agent", userAgent); - if (downloadUrl.getUserInfo() != null) { - String auth = "Basic " + new String(new Base64().encode(downloadUrl.getUserInfo().getBytes())); - connection.setRequestProperty("Authorization", auth); - } + final Optional fileFromCache = getFileCached(fileCached); + if (fileCached.isNotChange() && fileFromCache.isPresent()) { + // Copy the cached file in the destination file + log.info("The file will be taken from the cache {}", fileFromCache); + FileUtils.copyFile(fileFromCache.get(), outputFile); + } else { + openConnectionAndFillTheFile(noResume); - connection.setRequestProperty("Range", "bytes=" + initialSize + "-"); - connection.setConnectTimeout(5000); - setDownloaded(0); + fileCached.updateCacheFile(outputFile); + } + } else { + openConnectionAndFillTheFile(noResume); + } + setStatus(Status.COMPLETE); - // Connect - connection.connect(); - int resp = connection.getResponseCode(); + } catch (InterruptedException e) { + setStatus(Status.CANCELLED); + // lets InterruptedException go up to the caller + throw e; - if (resp == HttpURLConnection.HTTP_MOVED_PERM || resp == HttpURLConnection.HTTP_MOVED_TEMP) { - URL newUrl = new URL(connection.getHeaderField("Location")); + } catch (SocketTimeoutException e) { + setStatus(Status.CONNECTION_TIMEOUT_ERROR); + setError(e); + log.error("The request went in socket timeout", e); - proxy = new CustomProxySelector(PreferencesData.getMap()).getProxyFor(newUrl.toURI()); + } catch (Exception e) { + setStatus(Status.ERROR); + setError(e); + log.error("The request stop", e); + } - // open the new connnection again - connection = (HttpURLConnection) newUrl.openConnection(proxy); - connection.setRequestProperty("User-agent", userAgent); - if (downloadUrl.getUserInfo() != null) { - String auth = "Basic " + new String(new Base64().encode(downloadUrl.getUserInfo().getBytes())); - connection.setRequestProperty("Authorization", auth); - } + } - connection.setRequestProperty("Range", "bytes=" + initialSize + "-"); - connection.setConnectTimeout(5000); + private Optional getFileCached(FileDownloaderCache.FileCached fileCached) { - connection.connect(); - resp = connection.getResponseCode(); + try { + final Optional fileFromCache = + fileCached.getFileFromCache(); + if (fileFromCache.isPresent()) { + log.info("No need to download using cached file: {}", fileCached); + return fileFromCache; + } else { + log.info( + "The file in the cache is not in the path or the md5 validation failed: path={}, file exist={}, md5 validation={}", + fileCached.getLocalPath(), fileCached.exists(), fileCached.md5Check()); } + } catch (Exception e) { + log.warn( + "Cannot get the file from the cache, will be downloaded a new one ", e); + } + log.info("The file is change {}", fileCached); + return Optional.empty(); + } - if (resp < 200 || resp >= 300) { - throw new IOException("Received invalid http status code from server: " + resp); - } + private void openConnectionAndFillTheFile(boolean noResume) throws Exception { + initialSize = outputFile.length(); + if (noResume && initialSize > 0) { + // delete file and restart downloading + Files.deleteIfExists(outputFile.toPath()); + initialSize = 0; + } + + final HttpURLConnection connection = new HttpConnectionManager(downloadUrl) + .makeConnection((c) -> setDownloaded(0)); + final int resp = connection.getResponseCode(); + + if (resp < 200 || resp >= 300) { + Files.deleteIfExists(outputFile.toPath()); + throw new IOException("Received invalid http status code from server: " + resp); + } + + RandomAccessFile randomAccessOutputFile = null; + try { + // Open file and seek to the end of it + randomAccessOutputFile = new RandomAccessFile(outputFile, "rw"); + randomAccessOutputFile.seek(initialSize); + readStreamCopyTo(randomAccessOutputFile, connection); + } finally { + IOUtils.closeQuietly(randomAccessOutputFile); + } + + } + private void readStreamCopyTo(RandomAccessFile randomAccessOutputFile, HttpURLConnection connection) throws Exception { + InputStream stream = null; + try { // Check for valid content length. long len = connection.getContentLength(); if (len >= 0) { @@ -201,20 +261,19 @@ private void downloadFile() throws InterruptedException { } setStatus(Status.DOWNLOADING); - synchronized (this) { - stream = connection.getInputStream(); - } - byte buffer[] = new byte[10240]; + stream = connection.getInputStream(); + + byte[] buffer = new byte[10240]; while (status == Status.DOWNLOADING) { int read = stream.read(buffer); if (read == -1) break; - file.write(buffer, 0, read); + randomAccessOutputFile.write(buffer, 0, read); setDownloaded(getDownloaded() + read); if (Thread.interrupted()) { - file.close(); + randomAccessOutputFile.close(); throw new InterruptedException(); } } @@ -223,26 +282,8 @@ private void downloadFile() throws InterruptedException { if (getDownloaded() < getDownloadSize()) throw new Exception("Incomplete download"); } - setStatus(Status.COMPLETE); - } catch (InterruptedException e) { - setStatus(Status.CANCELLED); - // lets InterruptedException go up to the caller - throw e; - - } catch (SocketTimeoutException e) { - setStatus(Status.CONNECTION_TIMEOUT_ERROR); - setError(e); - - } catch (Exception e) { - setStatus(Status.ERROR); - setError(e); - } finally { - IOUtils.closeQuietly(file); - - synchronized (this) { - IOUtils.closeQuietly(stream); - } + IOUtils.closeQuietly(stream); } } diff --git a/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java b/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java new file mode 100644 index 00000000000..766e70859e1 --- /dev/null +++ b/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java @@ -0,0 +1,428 @@ +/* + * This file is part of Arduino. + * + * Copyright 2019 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + + +package cc.arduino.utils.network; + +import cc.arduino.utils.FileHash; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import processing.app.BaseNoGui; +import processing.app.PreferencesData; +import processing.app.helpers.FileUtils; + +import javax.script.ScriptException; +import java.io.File; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.ProtocolException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.NoSuchAlgorithmException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class FileDownloaderCache { + private final static String CACHE_ENABLE_PREFERENCE_KEY = "cache.enable"; + private final static Logger log = LogManager + .getLogger(FileDownloaderCache.class); + private final static Map cachedFiles = Collections + .synchronizedMap(new HashMap<>()); + private final static String cacheFolder; + private static boolean enableCache; + + static { + enableCache = Boolean.valueOf(PreferencesData.get(CACHE_ENABLE_PREFERENCE_KEY, "true")); + if (!enableCache) { + log.info("The cache is disable cache.enable=false"); + } + PreferencesData.set(CACHE_ENABLE_PREFERENCE_KEY, Boolean.toString(enableCache)); + + final File settingsFolder; + settingsFolder = BaseNoGui.getSettingsFolder(); + if (settingsFolder != null) { + cacheFolder = Paths.get(settingsFolder.getPath(), "cache") + .toString(); + } else { + enableCache = false; + cacheFolder = null; + log.error("The cache will disable because the setting folder is null, cannot generate the cache path"); + } + final Path pathCacheInfo = getCachedInfoPath(); + log.info("Cache folder {}", cacheFolder); + try { + if (Files.exists(pathCacheInfo)) { + ObjectMapper mapper = new ObjectMapper(); + final JsonNode jsonNode = mapper.readTree(pathCacheInfo.toFile()); + + // Read the files array + TypeReference> typeRef = new TypeReference>() { + }; + final List files = mapper + .readValue(mapper.treeAsTokens(jsonNode.get("files")), typeRef); + + // Update the map with the remote url as a key and the file cache info as a value + cachedFiles.putAll(Collections + .synchronizedMap(files + .stream() + .filter(FileCached::exists) + .collect(Collectors.toMap(FileCached::getRemoteURL, Function.identity())) + ) + ); + log.info("Number of file already in the cache {}", cachedFiles.size()); + + } + } catch (Exception e) { + log.error("Cannot initialized the cache", e); + } + } + + public static Optional getFileCached(final URL remoteURL) + throws URISyntaxException, NoSuchMethodException, ScriptException, + IOException { + return getFileCached(remoteURL, true); + } + + public static Optional getFileCached(final URL remoteURL, boolean enableCache) + throws URISyntaxException, NoSuchMethodException, ScriptException, + IOException { + // Return always and empty file if the cache is not enable + if (!(enableCache && FileDownloaderCache.enableCache)) { + log.info("The cache is not enable."); + return Optional.empty(); + } + final String[] splitPath = remoteURL.getPath().split("/"); + if (splitPath.length == 0) { + log.warn("The remote path as no file name {}", remoteURL); + return Optional.empty(); + } + // Create the path where the cached file should exist + final Deque addFirstRemoteURL = new LinkedList<>(Arrays.asList(splitPath)); + addFirstRemoteURL.addFirst(remoteURL.getHost()); + final Path cacheFilePath = Paths.get(cacheFolder, addFirstRemoteURL.toArray(new String[0])); + + // Take from the cache the file info or build from scratch + final FileCached fileCached = Optional.ofNullable(cachedFiles.get(remoteURL.toString())) + .orElseGet(() -> new FileCached(remoteURL.toString(), cacheFilePath.toString())); + + // If the file is change of the cache is disable run the HEAD request to check if the file is changed + log.info("Get file cached is expire {}, exist {}, info {} ", fileCached.isExpire(), fileCached.exists(), fileCached); + if (fileCached.isExpire() || !fileCached.exists()) { + // Update remote etag and cache control header + final Optional fileCachedInfoUpdated = + FileDownloaderCache.updateCacheInfo(remoteURL, (remoteETagClean, cacheControl) -> { + // Check cache control data + if (cacheControl.isNoCache() || cacheControl.isMustRevalidate() || cacheControl.isNoStore()) { + log.warn("The file {} must not be cache due to cache control header {}", + remoteURL, cacheControl); + return Optional.empty(); + } + log.info("Update cached info of {}, createdAt {}, previous eTag {}, last eTag {}, cache control header {} ", + remoteURL, fileCached.createdAt, fileCached.eTag, remoteETagClean, cacheControl); + final FileCached fileCachedUpdateETag = new FileCached( + remoteURL.toString(), + cacheFilePath.toString(), + fileCached.eTag, + remoteETagClean, // Set the lastETag + fileCached.md5, + cacheControl // Set the new cache control + ); + cachedFiles.put(remoteURL.toString(), fileCachedUpdateETag); + return Optional.of(fileCachedUpdateETag); + }); + FileDownloaderCache.updateCacheFilesInfo(); + return fileCachedInfoUpdated; + } + return Optional.of(fileCached); + } + + private static Optional updateCacheInfo(URL remoteURL, BiFunction> getNewFile) + throws URISyntaxException, NoSuchMethodException, ScriptException, + IOException { + // Update the headers of the cached file + final HttpURLConnection headRequest = new HttpConnectionManager( + remoteURL).makeConnection((connection) -> { + try { + connection.setRequestMethod("HEAD"); + } catch (ProtocolException e) { + log.error("Invalid protocol", e); + } + }); + final int responseCode = headRequest.getResponseCode(); + headRequest.disconnect(); + // Something bad is happening return a conservative true to try to download the file + if (responseCode < 200 || responseCode >= 300) { + log.warn("The head request return a bad response code " + responseCode); + // if something bad happend + return Optional.empty(); + } + // Get all the useful headers + String remoteETag = headRequest.getHeaderField("ETag"); + String cacheControlHeader = headRequest.getHeaderField("Cache-Control"); + if (remoteETag != null && cacheControlHeader != null) { + final String remoteETagClean = remoteETag.trim().replace("\"", ""); + final CacheControl cacheControl = CacheControl.valueOf(cacheControlHeader); + return getNewFile.apply(remoteETagClean, cacheControl); + } + log.warn("The head request do not return the ETag {} or the Cache-Control {}", remoteETag, cacheControlHeader); + return Optional.empty(); + } + + private synchronized static void updateCacheFilesInfo() throws IOException { + ObjectMapper mapper = new ObjectMapper(); + // Generate a pretty json + mapper.enable(SerializationFeature.INDENT_OUTPUT); + final ObjectNode objectNode = mapper.createObjectNode(); + // Generate a json {"files":[...{files_info}...]} + objectNode.putArray("files").addAll( + cachedFiles.values().stream() + .map((v) -> mapper.convertValue(v, JsonNode.class)) + .collect(Collectors.toList())); + // Create the path Arduino15/cache + Path cachedFileInfo = getCachedInfoPath(); + if (Files.notExists(cachedFileInfo)) { + Files.createDirectories(cachedFileInfo.getParent()); + } + log.info("Update cache file info in {}, number of cached files is {}", cachedFileInfo.toFile(), cachedFiles.size()); + // Write to cache.json + mapper.writeValue(cachedFileInfo.toFile(), objectNode); + } + + private static Path getCachedInfoPath() { + return Paths.get(cacheFolder, "cache.json"); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + static class FileCached { + private final String remoteURL; + private final String localPath; + private final String eTag; + private final String lastETag; + private final String md5; + private final String createdAt; + private final CacheControl cacheControl; + + FileCached() { + this.remoteURL = null; + this.localPath = null; + lastETag = null; + eTag = null; + md5 = null; + createdAt = null; + cacheControl = null; + } + + FileCached(String remoteURL, String localPath) { + this.remoteURL = remoteURL; + this.localPath = localPath; + lastETag = null; + eTag = null; + md5 = null; + createdAt = LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME); + cacheControl = null; + } + + public FileCached(String remoteURL, String localPath, String eTag, String lastETag, String md5, CacheControl cacheControl) { + this.remoteURL = remoteURL; + this.localPath = localPath; + this.eTag = eTag; + this.lastETag = lastETag; + this.md5 = md5; + this.createdAt = LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME); + this.cacheControl = cacheControl; + } + + @JsonIgnore + public boolean isExpire() { + // Check if the file is expire + final LocalDateTime now = LocalDateTime.now(); + return this.getExpiresTime().isBefore(now) || this.getExpiresTime().isEqual(now); + } + + @JsonIgnore + public boolean isNotChange() { + return !isChange(); + } + + @JsonIgnore + public boolean isChange() { + // Check if the file is expire + boolean isChange = false; + if (isExpire()) { + log.debug("The file \"{}\" is expire. Expire time: {}", localPath, + this.getExpiresTime().format(DateTimeFormatter.ISO_DATE_TIME)); + isChange = true; + } + + if (lastETag != null && !lastETag.equals(eTag)) { + // If are different means that the file is change + log.debug("The file \"{}\" is changed last ETag != now Etag ({}!={})", localPath, lastETag, eTag); + isChange = true; + } + return isChange; + } + + @JsonIgnore + public boolean exists() { + return localPath != null && Files.exists(Paths.get(localPath)); + } + + @JsonIgnore + public Optional getFileFromCache() { + if (md5Check()) { + return Optional.of(Paths.get(localPath).toFile()); + } + return Optional.empty(); + + } + + public synchronized void updateCacheFile(File fileToCache) throws Exception { + Path cacheFilePath = Paths.get(localPath); + + // If the cache directory does not exist create it + if (!Files.exists(cacheFilePath.getParent())) { + Files.createDirectories(cacheFilePath.getParent()); + } + FileUtils.copyFile(fileToCache, cacheFilePath.toFile()); + final String md5 = this.calculateMD5(); + final String eTag; + if (lastETag == null) { + log.warn("The eTag was not calculate this time, is not the right behaviour fileCached={}, md5={}", this, md5); + eTag = this.eTag; + } else { + eTag = this.lastETag; + } + FileCached newFileCached = new FileCached( + this.remoteURL, + this.localPath, + eTag, // Initialize the right eTag with the last eTag because the file was updated + eTag, + md5, + this.cacheControl + ); + log.info("Update cache file: {}", newFileCached); + cachedFiles.put(remoteURL, newFileCached); + updateCacheFilesInfo(); + + } + + public synchronized void invalidateCache() throws IOException { + cachedFiles.remove(remoteURL); + Files.deleteIfExists(Paths.get(localPath)); + } + + private String calculateMD5() throws IOException, NoSuchAlgorithmException { + if (exists()) { + return FileHash.hash(Paths.get(localPath).toFile(), "MD5"); + } + return null; + } + + @JsonIgnore + public boolean md5Check() { + try { + return !Objects.isNull(getMD5()) && Objects.equals(calculateMD5(), getMD5()); + } catch (Exception e) { + log.error("Fail to calculate the MD5. file={}", this, e); + return false; + } + } + + @JsonIgnore + public LocalDateTime getExpiresTime() { + final int maxAge; + if (cacheControl != null) { + maxAge = cacheControl.getMaxAge(); + } else { + maxAge = 0; + } + if (createdAt != null) { + return LocalDateTime.parse(createdAt, DateTimeFormatter.ISO_DATE_TIME) + .plusSeconds(maxAge); + } + return LocalDateTime.now(); + + } + + public String getExpires() { + return getExpiresTime().toString(); + } + + public String getMD5() { + return md5; + } + + public String geteTag() { + return eTag; + } + + public String getRemoteURL() { + return remoteURL; + } + + public String getLocalPath() { + return localPath; + } + + public String getCreatedAt() { + return createdAt; + } + + public CacheControl getCacheControl() { + return cacheControl; + } + + @Override + public String toString() { + return "FileCached{" + + "eTag='" + eTag + '\'' + + ", lastETag='" + lastETag + '\'' + + ", remoteURL='" + remoteURL + '\'' + + ", localPath='" + localPath + '\'' + + ", md5='" + md5 + '\'' + + ", createdAt='" + createdAt + '\'' + + ", cacheControl=" + cacheControl + + '}'; + } + } +} diff --git a/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java b/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java new file mode 100644 index 00000000000..b067e8faaa9 --- /dev/null +++ b/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java @@ -0,0 +1,173 @@ +/* + * This file is part of Arduino. + * + * Copyright 2019 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package cc.arduino.utils.network; + +import cc.arduino.net.CustomProxySelector; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import processing.app.BaseNoGui; +import processing.app.PreferencesData; + +import javax.script.ScriptException; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.Proxy; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.UUID; +import java.util.function.Consumer; + +public class HttpConnectionManager { + private static Logger log = LogManager.getLogger(HttpConnectionManager.class); + private static final String userAgent; + private static final int connectTimeout; + private static final int maxRedirectNumber; + private final URL requestURL; + private final String id; + + + static { + final String defaultUserAgent = String.format( + "ArduinoIDE/%s (%s; %s; %s; %s) Java/%s (%s)", + BaseNoGui.VERSION_NAME, + System.getProperty("os.name"), + System.getProperty("os.version"), + System.getProperty("os.arch"), + System.getProperty("user.language"), + System.getProperty("java.version"), + System.getProperty("java.vendor") + ); + userAgent = PreferencesData.get("http.user_agent", defaultUserAgent); + int connectTimeoutFromConfig = 5000; + try { + connectTimeoutFromConfig = + Integer.parseInt( + PreferencesData.get("http.connection_timeout_ms", "5000")); + } catch (NumberFormatException e) { + log.warn( + "Cannot parse the http.connection_timeout configuration switch to default {} milliseconds", connectTimeoutFromConfig, e.getCause()); + } + connectTimeout = connectTimeoutFromConfig; + // Set by default 20 max redirect to follow + int maxRedirectNumberConfig = 20; + try { + maxRedirectNumberConfig = + Integer.parseInt( + PreferencesData.get("http.max_redirect_number", "20")); + } catch (NumberFormatException e) { + log.warn( + "Cannot parse the http.max_redirect_number configuration switch to default {}", maxRedirectNumberConfig, e.getCause()); + } + maxRedirectNumber = maxRedirectNumberConfig; + } + + public HttpConnectionManager(URL requestURL) { + this.requestURL = requestURL; + if (requestURL.getHost().endsWith("arduino.cc")) { + final String idString = PreferencesData.get("update.id", "0"); + id = Long.toString(Long.parseLong(idString)); + } else { + id = null; + } + + } + + public HttpURLConnection makeConnection(Consumer beforeConnection) + throws IOException, NoSuchMethodException, ScriptException, URISyntaxException { + return makeConnection(this.requestURL, 0, beforeConnection); + } + + + public HttpURLConnection makeConnection() + throws IOException, NoSuchMethodException, ScriptException, URISyntaxException { + return makeConnection(this.requestURL, 0, (c) -> { + }); + } + + private HttpURLConnection makeConnection(URL requestURL, int movedTimes, + Consumer beforeConnection) throws IOException, URISyntaxException, ScriptException, NoSuchMethodException { + if (movedTimes > maxRedirectNumber) { + log.warn("Too many redirect " + requestURL); + throw new IOException("Too many redirect " + requestURL); + } + + Proxy proxy = new CustomProxySelector(PreferencesData.getMap()) + .getProxyFor(requestURL.toURI()); + log.debug("Using proxy {}", proxy); + + final String requestId = UUID.randomUUID().toString() + .toUpperCase().replace("-", "").substring(0, 16); + HttpURLConnection connection = (HttpURLConnection) requestURL + .openConnection(proxy); + + // see https://github.com/arduino/Arduino/issues/10264 + // Workaround for https://bugs.openjdk.java.net/browse/JDK-8163921 + connection.setRequestProperty("Accept", "*/*"); + + connection.setRequestProperty("User-agent", userAgent); + connection.setRequestProperty("X-Request-ID", requestId); + if (id != null) { + connection.setRequestProperty("X-ID", id); + } + if (requestURL.getUserInfo() != null) { + String auth = "Basic " + new String( + new Base64().encode(requestURL.getUserInfo().getBytes())); + connection.setRequestProperty("Authorization", auth); + } + + int initialSize = 0; + connection.setRequestProperty("Range", "bytes=" + initialSize + "-"); + connection.setConnectTimeout(connectTimeout); + beforeConnection.accept(connection); + + // Connect + log.info("Connect to {}, method={}, request id={}", requestURL, connection.getRequestMethod(), requestId); + + connection.connect(); + int resp = connection.getResponseCode(); + log.info("Request complete URL=\"{}\", method={}, response code={}, request id={}, headers={}", + requestURL, connection.getRequestMethod(), resp, requestId, StringUtils.join(connection.getHeaderFields())); + + if (resp == HttpURLConnection.HTTP_MOVED_PERM + || resp == HttpURLConnection.HTTP_MOVED_TEMP) { + + URL newUrl = new URL(connection.getHeaderField("Location")); + log.info("The response code was a 301,302 so try again with the new URL " + newUrl); + + return this.makeConnection(newUrl, movedTimes + 1, beforeConnection); + } + + return connection; + } + +} + diff --git a/arduino-core/src/processing/app/BaseNoGui.java b/arduino-core/src/processing/app/BaseNoGui.java index 62cfd0d687c..e9adb255b3d 100644 --- a/arduino-core/src/processing/app/BaseNoGui.java +++ b/arduino-core/src/processing/app/BaseNoGui.java @@ -2,7 +2,6 @@ import cc.arduino.Constants; import cc.arduino.contributions.GPGDetachedSignatureVerifier; -import cc.arduino.contributions.SignatureVerificationFailedException; import cc.arduino.contributions.VersionComparator; import cc.arduino.contributions.libraries.LibrariesIndexer; import cc.arduino.contributions.packages.ContributedPlatform; @@ -20,7 +19,8 @@ import processing.app.legacy.PApplet; import processing.app.packages.LibraryList; import processing.app.packages.UserLibrary; - +import processing.app.packages.UserLibraryFolder; +import processing.app.packages.UserLibraryFolder.Location; import cc.arduino.files.DeleteFilesOnShutdown; import processing.app.helpers.FileUtils; @@ -41,9 +41,9 @@ public class BaseNoGui { /** Version string to be used for build */ - public static final int REVISION = 10806; + public static final int REVISION = 10814; /** Extended version string displayed on GUI */ - public static final String VERSION_NAME = "1.8.6"; + public static final String VERSION_NAME = "1.8.14"; public static final String VERSION_NAME_LONG; // Current directory to use for relative paths specified on the @@ -87,7 +87,7 @@ public class BaseNoGui { public static Map importToLibraryTable; // XXX: Remove this field - static private List librariesFolders; + static private List librariesFolders; static UserNotifier notifier = new BasicUserNotifier(); @@ -182,12 +182,13 @@ static public PreferencesMap getBoardPreferences() { String prefix = "runtime.tools."; for (ContributedTool tool : requiredTools) { - File folder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder(); + File folder = tool.getInstalledFolder(); if (folder == null) { continue; } String toolPath = folder.getAbsolutePath(); prefs.put(prefix + tool.getName() + ".path", toolPath); + prefs.put(prefix + tool.getName() + "-" + tool.getVersion() + ".path", toolPath); PreferencesData.set(prefix + tool.getName() + ".path", toolPath); PreferencesData.set(prefix + tool.getName() + "-" + tool.getVersion() + ".path", toolPath); } @@ -221,7 +222,7 @@ static public File getDefaultSketchbookFolder() { public static DiscoveryManager getDiscoveryManager() { if (discoveryManager == null) { - discoveryManager = new DiscoveryManager(); + discoveryManager = new DiscoveryManager(packages); } return discoveryManager; } @@ -245,7 +246,7 @@ static public String getHardwarePath() { return getHardwareFolder().getAbsolutePath(); } - static public List getLibrariesPath() { + static public List getLibrariesFolders() { return librariesFolders; } @@ -326,7 +327,7 @@ static public File getSketchbookHardwareFolder() { return new File(getSketchbookFolder(), "hardware"); } - static public File getSketchbookLibrariesFolder() { + static public UserLibraryFolder getSketchbookLibrariesFolder() { File libdir = new File(getSketchbookFolder(), "libraries"); if (!libdir.exists()) { FileWriter freadme = null; @@ -340,7 +341,7 @@ static public File getSketchbookLibrariesFolder() { IOUtils.closeQuietly(freadme); } } - return libdir; + return new UserLibraryFolder(libdir, Location.SKETCHBOOK); } static public String getSketchbookPath() { @@ -422,11 +423,6 @@ static public String getToolsPath() { return toolsFolder.getAbsolutePath(); } - static public LibraryList getUserLibs() { - LibraryList libs = BaseNoGui.librariesIndexer.getInstalledLibraries(); - return libs.filterLibrariesInSubfolder(getSketchbookFolder()); - } - static public String getBoardManagerLink() { return boardManagerLink; } @@ -485,11 +481,11 @@ static public void initPackages() throws Exception { try { indexer.parseIndex(); - } catch (JsonProcessingException | SignatureVerificationFailedException e) { + } catch (JsonProcessingException e) { File indexFile = indexer.getIndexFile(Constants.DEFAULT_INDEX_FILE_NAME); File indexSignatureFile = indexer.getIndexFile(Constants.DEFAULT_INDEX_FILE_NAME + ".sig"); - FileUtils.deleteIfExists(indexFile); - FileUtils.deleteIfExists(indexSignatureFile); + indexFile.delete(); + indexSignatureFile.delete(); throw e; } indexer.syncWithFilesystem(); @@ -505,15 +501,15 @@ static public void initPackages() throws Exception { librariesIndexer.parseIndex(); } catch (JsonProcessingException e) { File librariesIndexFile = librariesIndexer.getIndexFile(); - FileUtils.deleteIfExists(librariesIndexFile); + librariesIndexFile.delete(); } if (discoveryManager == null) { - discoveryManager = new DiscoveryManager(); + discoveryManager = new DiscoveryManager(packages); } } - static protected void initPlatform() { + static public void initPlatform() { try { Class platformClass = Class.forName("processing.app.Platform"); if (OSUtils.isMacOS()) { @@ -651,7 +647,7 @@ static public void onBoardOrPortChange() { librariesFolders = new ArrayList<>(); // Add IDE libraries folder - librariesFolders.add(getContentFile("libraries")); + librariesFolders.add(new UserLibraryFolder(getContentFile("libraries"), Location.IDE_BUILTIN)); TargetPlatform targetPlatform = getTargetPlatform(); if (targetPlatform != null) { @@ -663,13 +659,13 @@ static public void onBoardOrPortChange() { File referencedPlatformFolder = referencedPlatform.getFolder(); // Add libraries folder for the referenced platform File folder = new File(referencedPlatformFolder, "libraries"); - librariesFolders.add(folder); + librariesFolders.add(new UserLibraryFolder(folder, Location.REFERENCED_CORE)); } } File platformFolder = targetPlatform.getFolder(); // Add libraries folder for the selected platform File folder = new File(platformFolder, "libraries"); - librariesFolders.add(folder); + librariesFolders.add(new UserLibraryFolder(folder, Location.CORE)); } // Add libraries folder for the sketchbook @@ -678,8 +674,10 @@ static public void onBoardOrPortChange() { // Scan for libraries in each library folder. // Libraries located in the latest folders on the list can override // other libraries with the same name. - librariesIndexer.setSketchbookLibrariesFolder(getSketchbookLibrariesFolder()); librariesIndexer.setLibrariesFolders(librariesFolders); + if (getTargetPlatform() != null) { + librariesIndexer.setArchitecturePriority(getTargetPlatform().getId()); + } librariesIndexer.rescanLibraries(); populateImportToLibraryTable(); @@ -698,9 +696,8 @@ public static void createToolPreferences(Collection installedTo } Map latestVersions = new HashMap<>(); - VersionComparator comparator = new VersionComparator(); for (ContributedTool tool : installedTools) { - File installedFolder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder(); + File installedFolder = tool.getInstalledFolder(); String toolPath; if (installedFolder != null) { toolPath = installedFolder.getAbsolutePath(); @@ -713,7 +710,7 @@ public static void createToolPreferences(Collection installedTo PreferencesData.set(prefix + tool.getPackager() + "-" + toolName + "-" + toolVersion + ".path", toolPath); // In the generic tool property put the path of the latest version if more are available try { - if (!latestVersions.containsKey(toolName) || comparator.greaterThan(toolVersion, latestVersions.get(toolName))) { + if (!latestVersions.containsKey(toolName) || VersionComparator.greaterThan(toolVersion, latestVersions.get(toolName))) { latestVersions.put(toolName, toolVersion); PreferencesData.set(prefix + toolName + ".path", toolPath); } @@ -815,25 +812,6 @@ static public void populateImportToLibraryTable() { .format("Unable to list header files in {0}", lib.getSrcFolder()), e); } } - // repeat for ALL libraries, to pick up duplicates not visible normally. - // any new libraries found here are NEVER used, but they are added to the - // end of already-found headers, to allow Compiler to report them if - // the sketch tries to use them. - for (UserLibrary lib : librariesIndexer.getInstalledLibrariesWithDuplicates()) { - try { - String headers[] = headerListFromIncludePath(lib.getSrcFolder()); - for (String header : headers) { - LibraryList list = importToLibraryTable.get(header); - if (list != null) { - if (!(list.hasLibrary(lib))) { - list.addLast(lib); - //System.out.println(" duplicate lib: " + lib.getInstalledFolder().getPath()); - } - } - } - } catch (IOException e) { - } - } } static public void initParameters(String args[]) throws Exception { @@ -906,10 +884,17 @@ static public String sanitizeName(String origName) { */ static public void saveFile(String str, File file) throws IOException { File temp = File.createTempFile(file.getName(), null, file.getParentFile()); - PApplet.saveStrings(temp, new String[] { str }); + // Split the file content using minimum common separator \n + // then trim any other character (\r) so saveStrings can print it in the correct + // format for every OS + String strArray[] = str.split("\n"); + for (String item : strArray) { + item.trim(); + } + PApplet.saveStrings(temp, strArray); try { - file = file.getCanonicalFile(); + file = file.toPath().toRealPath().toFile().getCanonicalFile(); } catch (IOException e) { } diff --git a/arduino-core/src/processing/app/I18n.java b/arduino-core/src/processing/app/I18n.java index 0ab961aa9ed..1f1a9f93703 100644 --- a/arduino-core/src/processing/app/I18n.java +++ b/arduino-core/src/processing/app/I18n.java @@ -106,10 +106,6 @@ public static String format(String fmt, Object... args) { * This method is an hack to extract words with gettext tool. */ protected static void unusedStrings() { - // These phrases are defined in the "platform.txt". - tr("Arduino AVR Boards"); - tr("Arduino ARM (32-bits) Boards"); - // This word is defined in the "boards.txt". tr("Processor"); } diff --git a/arduino-core/src/processing/app/Platform.java b/arduino-core/src/processing/app/Platform.java index 28a7ba0f550..913381316d3 100644 --- a/arduino-core/src/processing/app/Platform.java +++ b/arduino-core/src/processing/app/Platform.java @@ -31,19 +31,7 @@ import javax.swing.*; import java.io.File; import java.io.IOException; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import java.util.Arrays; - -import java.net.URL; -import java.net.URLConnection; -import java.net.HttpURLConnection; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.DeserializationFeature; -import java.io.InputStream; +import java.util.*; import static processing.app.I18n.tr; @@ -64,8 +52,7 @@ * know if name is proper Java package syntax.) */ public class Platform { - - + // DO NOT USE log4j here otherwise the root path of the logs will no be initialize correctly /** * Set the default L & F. While I enjoy the bounty of the sixteen possible * exception types that this UIManager method might throw, I feel that in @@ -170,6 +157,7 @@ private static void loadLib(File lib) { } private native String resolveDeviceAttachedToNative(String serial); + private native String[] listSerialsNative(); public String preListAllCandidateDevices() { @@ -180,7 +168,7 @@ public List listSerials() { return new ArrayList<>(Arrays.asList(listSerialsNative())); } - public List listSerialsNames(){ + public List listSerialsNames() { List list = new LinkedList<>(); for (String port : listSerialsNative()) { list.add(port.split("_")[0]); @@ -188,46 +176,6 @@ public List listSerialsNames(){ return list; } - public static class BoardCloudAPIid { - public BoardCloudAPIid() { } - private String name; - private String architecture; - private String id; - public String getName() { return name; } - public String getArchitecture() { return architecture; } - public String getId() { return id; } - public void setName(String tmp) { name = tmp; } - public void setArchitecture(String tmp) { architecture = tmp; } - public void setId(String tmp) { id = tmp; } - } - - public synchronized void getBoardWithMatchingVidPidFromCloud(String vid, String pid) { - // this method is less useful in Windows < WIN10 since you need drivers to be already installed - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - try { - URL jsonUrl = new URL("http", "api-builder.arduino.cc", 80, "/builder/v1/boards/0x"+vid+"/0x"+pid); - URLConnection connection = jsonUrl.openConnection(); - connection.connect(); - HttpURLConnection httpConnection = (HttpURLConnection) connection; - int code = httpConnection.getResponseCode(); - if (code == 404) { - return; - } - InputStream is = httpConnection.getInputStream(); - BoardCloudAPIid board = mapper.readValue(is, BoardCloudAPIid.class); - // Launch a popup with a link to boardmanager#board.getName() - // replace spaces with & - String realBoardName = board.getName().replaceAll("\\(.*?\\)", "").trim(); - String boardNameReplaced = realBoardName.replaceAll(" ", "&"); - String message = I18n.format(tr("{0}Install this package{1} to use your {2} board"), "", "", realBoardName); - BaseNoGui.setBoardManagerLink(message); - } catch (Exception e) { - // No connection no problem, fail silently - //e.printStackTrace(); - } - } - public synchronized Map resolveDeviceByVendorIdProductId(String serial, Map packages) { String vid_pid_iSerial = resolveDeviceAttachedToNative(serial); for (TargetPackage targetPackage : packages.values()) { @@ -254,9 +202,10 @@ public synchronized Map resolveDeviceByVendorIdProductId(String } Map boardData = new HashMap<>(); boardData.put("board", board); - boardData.put("vid", vids.get(i)); - boardData.put("pid", pids.get(i)); - String extrafields = vid_pid_iSerial.substring(vidPid.length()+1); + // remove 0x from VID / PID to keep them as reported by liblistserial + boardData.put("vid", vids.get(i).replaceAll("0x", "")); + boardData.put("pid", pids.get(i).replaceAll("0x", "")); + String extrafields = vid_pid_iSerial.substring(vidPid.length() + 1); String[] parts = extrafields.split("_"); boardData.put("iserial", parts[0]); return boardData; diff --git a/arduino-core/src/processing/app/PreferencesData.java b/arduino-core/src/processing/app/PreferencesData.java index 3de047a2ec4..11a250d689c 100644 --- a/arduino-core/src/processing/app/PreferencesData.java +++ b/arduino-core/src/processing/app/PreferencesData.java @@ -1,5 +1,7 @@ package processing.app; +import cc.arduino.Constants; +import cc.arduino.i18n.Languages; import org.apache.commons.compress.utils.IOUtils; import processing.app.helpers.PreferencesHelper; import processing.app.helpers.PreferencesMap; @@ -16,6 +18,7 @@ import java.util.MissingResourceException; import java.util.stream.Collectors; +import static processing.app.I18n.format; import static processing.app.I18n.tr; @@ -47,6 +50,9 @@ static public void init(File file) throws Exception { //ignore } + // Start with a clean slate + prefs = new PreferencesMap(); + // start by loading the defaults, in case something // important was deleted from the user prefs try { @@ -78,8 +84,13 @@ static public void init(File file) throws Exception { } // load the I18n module for internationalization + String lang = get("editor.languages.current"); + if (lang == null || !Languages.have(lang)) { + lang = ""; + set("editor.languages.current", ""); + } try { - I18n.init(get("editor.languages.current")); + I18n.init(lang); } catch (MissingResourceException e) { I18n.init("en"); set("editor.languages.current", "en"); @@ -107,6 +118,9 @@ static protected void save() { if (!doSave) return; + if (getBoolean("preferences.readonly")) + return; + // on startup, don't worry about it // this is trying to update the prefs for who is open // before Preferences.init() has been called. @@ -126,6 +140,9 @@ static protected void save() { } writer.flush(); + } catch (Throwable e) { + System.err.println(format(tr("Could not write preferences file: {0}"), e.getMessage())); + return; } finally { IOUtils.closeQuietly(writer); } @@ -251,11 +268,21 @@ static public Font getFont(String attr) { } public static Collection getCollection(String key) { - return Arrays.asList(get(key, "").split(",")); + return Arrays.stream(get(key, "").split(",")) + // Remove empty strings from the collection + .filter((v) -> !v.trim().isEmpty()) + .collect(Collectors.toList()); } public static void setCollection(String key, Collection values) { String value = values.stream().collect(Collectors.joining(",")); set(key, value); } + + public static boolean areInsecurePackagesAllowed() { + if (getBoolean(Constants.ALLOW_INSECURE_PACKAGES, false)) { + return true; + } + return getBoolean(Constants.PREF_CONTRIBUTIONS_TRUST_ALL, false); + } } diff --git a/arduino-core/src/processing/app/Serial.java b/arduino-core/src/processing/app/Serial.java index 484ac11909b..edc5e8f0c0f 100644 --- a/arduino-core/src/processing/app/Serial.java +++ b/arduino-core/src/processing/app/Serial.java @@ -116,7 +116,7 @@ public static boolean touchForCDCReset(String iname) throws SerialException { } } - private Serial(String iname, int irate, char iparity, int idatabits, float istopbits, boolean setRTS, boolean setDTR) throws SerialException { + protected Serial(String iname, int irate, char iparity, int idatabits, float istopbits, boolean setRTS, boolean setDTR) throws SerialException { //if (port != null) port.close(); //this.parent = parent; //parent.attach(this); @@ -131,6 +131,11 @@ private Serial(String iname, int irate, char iparity, int idatabits, float istop if (istopbits == 1.5f) stopbits = SerialPort.STOPBITS_1_5; if (istopbits == 2) stopbits = SerialPort.STOPBITS_2; + // This is required for unit-testing + if (iname.equals("none")) { + return; + } + try { port = new SerialPort(iname); port.openPort(); @@ -175,31 +180,54 @@ public synchronized void serialEvent(SerialPortEvent serialEvent) { if (serialEvent.isRXCHAR()) { try { byte[] buf = port.readBytes(serialEvent.getEventValue()); - int next = 0; - while(next < buf.length) { - while(next < buf.length && outToMessage.hasRemaining()) { - int spaceInIn = inFromSerial.remaining(); - int copyNow = buf.length - next < spaceInIn ? buf.length - next : spaceInIn; - inFromSerial.put(buf, next, copyNow); - next += copyNow; - inFromSerial.flip(); - bytesToStrings.decode(inFromSerial, outToMessage, false); - inFromSerial.compact(); - } - outToMessage.flip(); - if(outToMessage.hasRemaining()) { - char[] chars = new char[outToMessage.remaining()]; - outToMessage.get(chars); - message(chars, chars.length); - } - outToMessage.clear(); - } + processSerialEvent(buf); } catch (SerialPortException e) { errorMessage("serialEvent", e); } } } + public void processSerialEvent(byte[] buf) { + int next = 0; + // This uses a CharsetDecoder to convert from bytes to UTF-8 in + // a streaming fashion (i.e. where characters might be split + // over multiple reads). This needs the data to be in a + // ByteBuffer (inFromSerial, which we also use to store leftover + // incomplete characters for the nexst run) and produces a + // CharBuffer (outToMessage), which we then convert to char[] to + // pass onwards. + // Note that these buffers switch from input to output mode + // using flip/compact/clear + while (next < buf.length || inFromSerial.position() > 0) { + do { + // This might be 0 when all data was already read from buf + // (but then there will be data in inFromSerial left to + // decode). + int copyNow = Math.min(buf.length - next, inFromSerial.remaining()); + inFromSerial.put(buf, next, copyNow); + next += copyNow; + + inFromSerial.flip(); + bytesToStrings.decode(inFromSerial, outToMessage, false); + inFromSerial.compact(); + + // When there are multi-byte characters, outToMessage might + // still have room, so add more bytes if we have any. + } while (next < buf.length && outToMessage.hasRemaining()); + + // If no output was produced, the input only contained + // incomplete characters, so we're done processing + if (outToMessage.position() == 0) + break; + + outToMessage.flip(); + char[] chars = new char[outToMessage.remaining()]; + outToMessage.get(chars); + message(chars, chars.length); + outToMessage.clear(); + } + } + /** * This method is intented to be extended to receive messages * coming from serial port. diff --git a/arduino-core/src/processing/app/debug/LegacyTargetBoard.java b/arduino-core/src/processing/app/debug/LegacyTargetBoard.java index 16770a63525..09e7ac5085c 100644 --- a/arduino-core/src/processing/app/debug/LegacyTargetBoard.java +++ b/arduino-core/src/processing/app/debug/LegacyTargetBoard.java @@ -100,4 +100,8 @@ public TargetPlatform getContainerPlatform() { return containerPlatform; } + @Override + public String getFQBN() { + return getContainerPlatform().getContainerPackage().getId() + ":" + getContainerPlatform().getId() + ":" + getId(); + } } diff --git a/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java b/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java index c00378c48b4..f3c1dd45b30 100644 --- a/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java +++ b/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java @@ -245,4 +245,9 @@ public String toString() { res += " " + boardId + " = " + boards.get(boardId) + "\n"; return res + "}"; } + + @Override + public boolean isInSketchbook() { + return getFolder().getAbsolutePath().startsWith(BaseNoGui.getSketchbookHardwareFolder().getAbsolutePath()); + } } diff --git a/arduino-core/src/processing/app/debug/Sizer.java b/arduino-core/src/processing/app/debug/Sizer.java index 4d54d8d52c8..6e748a94162 100644 --- a/arduino-core/src/processing/app/debug/Sizer.java +++ b/arduino-core/src/processing/app/debug/Sizer.java @@ -60,7 +60,7 @@ public long[] computeSize() throws RunnerException { int r = 0; try { String pattern = prefs.get("recipe.size.pattern"); - String cmd[] = StringReplacer.formatAndSplit(pattern, prefs, true); + String cmd[] = StringReplacer.formatAndSplit(pattern, prefs); exception = null; textSize = -1; diff --git a/arduino-core/src/processing/app/debug/TargetBoard.java b/arduino-core/src/processing/app/debug/TargetBoard.java index 5dae869060e..d635bbf1d0f 100644 --- a/arduino-core/src/processing/app/debug/TargetBoard.java +++ b/arduino-core/src/processing/app/debug/TargetBoard.java @@ -92,4 +92,6 @@ public interface TargetBoard { public TargetPlatform getContainerPlatform(); + public String getFQBN(); + } diff --git a/arduino-core/src/processing/app/debug/TargetPlatform.java b/arduino-core/src/processing/app/debug/TargetPlatform.java index 4b13cf87ac7..330b260bb16 100644 --- a/arduino-core/src/processing/app/debug/TargetPlatform.java +++ b/arduino-core/src/processing/app/debug/TargetPlatform.java @@ -94,4 +94,10 @@ public interface TargetPlatform { */ public TargetPackage getContainerPackage(); + /** + * Returns true if the platform is installed in a subfolder of the sketchbook + * + * @return + */ + public boolean isInSketchbook(); } diff --git a/arduino-core/src/processing/app/helpers/BoardCloudResolver.java b/arduino-core/src/processing/app/helpers/BoardCloudResolver.java new file mode 100644 index 00000000000..8fa6f96da14 --- /dev/null +++ b/arduino-core/src/processing/app/helpers/BoardCloudResolver.java @@ -0,0 +1,149 @@ +/* + * This file is part of Arduino. + * + * Copyright 2015 Arduino LLC (http://www.arduino.cc/) + * + * Arduino is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. + */ + +package processing.app.helpers; + +import cc.arduino.utils.network.HttpConnectionManager; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import processing.app.BaseNoGui; +import processing.app.I18n; +import processing.app.debug.TargetBoard; +import processing.app.debug.TargetPackage; +import processing.app.debug.TargetPlatform; + +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Map; + +import static processing.app.I18n.tr; + +public class BoardCloudResolver { + private static Logger log = LogManager.getLogger(BoardCloudResolver.class); + + public synchronized void getBoardBy(String vid, String pid) { + // this method is less useful in Windows < WIN10 since you need drivers to be already installed + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + try { + URL jsonUrl = new URL(String.format("https://builder.arduino.cc/builder/v1/boards/0x%s/0x%s", vid, pid)); + + final HttpURLConnection httpConnection = new HttpConnectionManager(jsonUrl) + .makeConnection(); + int code = httpConnection.getResponseCode(); + if (code == 404) { + log.warn("Fail to get the Vid Pid information from the builder response code={}", code); + return; + } + InputStream is = httpConnection.getInputStream(); + BoardCloudAPIid board = mapper.readValue(is, BoardCloudAPIid.class); + log.info("Board info from the cloud {}", board); + // Launch a popup with a link to boardmanager#board.getName() + // replace spaces with & + String realBoardName = board.getName().replaceAll("\\(.*?\\)", "").trim(); + String boardNameReplaced = realBoardName.replaceAll(" ", "&"); + String message = I18n.format(tr("{0}Install this package{1} to use your {2} board"), "", "", realBoardName); + BaseNoGui.setBoardManagerLink(message); + } catch (Exception e) { + // No connection no problem, fail silently + //e.printStackTrace(); + log.warn("Error during get board information by vid, pid", e); + + } + } + + public String resolveDeviceByBoardID(Map packages, String boardId) { + assert packages != null; + assert boardId != null; + for (TargetPackage targetPackage : packages.values()) { + for (TargetPlatform targetPlatform : targetPackage.getPlatforms().values()) { + for (TargetBoard board : targetPlatform.getBoards().values()) { + if (boardId.equals(board.getId())) { + return board.getName(); + } + } + } + } + return null; + } + + private static class BoardCloudAPIid { + + private String fqbn; + private String name; + private String architecture; + private String id; + + public String getName() { + return name; + } + + public void setName(String tmp) { + name = tmp; + } + + public String getFqbn() { + return fqbn; + } + + public void setFqbn(String fqbn) { + this.fqbn = fqbn; + } + + public String getArchitecture() { + return architecture; + } + + public void setArchitecture(String tmp) { + architecture = tmp; + } + + public String getId() { + return id; + } + + public void setId(String tmp) { + id = tmp; + } + + @Override + public String toString() { + return "BoardCloudAPIid{" + + "name='" + name + '\'' + + ", fqbn='" + fqbn + '\'' + + ", architecture='" + architecture + '\'' + + ", id='" + id + '\'' + + '}'; + } + } + +} diff --git a/arduino-core/src/processing/app/helpers/CommandlineParser.java b/arduino-core/src/processing/app/helpers/CommandlineParser.java index 17e1bc86d2e..4c8b3a241b4 100644 --- a/arduino-core/src/processing/app/helpers/CommandlineParser.java +++ b/arduino-core/src/processing/app/helpers/CommandlineParser.java @@ -16,7 +16,7 @@ public class CommandlineParser { private enum ACTION { - GUI, NOOP, VERIFY("--verify"), UPLOAD("--upload"), GET_PREF("--get-pref"), INSTALL_BOARD("--install-boards"), INSTALL_LIBRARY("--install-library"); + GUI, NOOP, VERIFY("--verify"), UPLOAD("--upload"), GET_PREF("--get-pref"), INSTALL_BOARD("--install-boards"), INSTALL_LIBRARY("--install-library"), VERSION("--version"); final String value; @@ -41,6 +41,7 @@ private enum ACTION { private String getPref; private String boardToInstall; private String libraryToInstall; + private Optional uploadPort = Optional.empty(); private final List filenames = new LinkedList<>(); public CommandlineParser(String[] args) { @@ -52,6 +53,7 @@ public CommandlineParser(String[] args) { actions.put("--get-pref", ACTION.GET_PREF); actions.put("--install-boards", ACTION.INSTALL_BOARD); actions.put("--install-library", ACTION.INSTALL_LIBRARY); + actions.put("--version", ACTION.VERSION); } public void parseArgumentsPhase1() { @@ -140,7 +142,7 @@ public void parseArgumentsPhase1() { i++; if (i >= args.length) BaseNoGui.showError(null, tr("Argument required for --port"), 3); - BaseNoGui.selectSerialPort(args[i]); + uploadPort = Optional.of(args[i]); if (action == ACTION.GUI) action = ACTION.NOOP; continue; @@ -264,7 +266,7 @@ private void processBoardArgument(String selectBoard) { if (!targetBoard.hasMenu(key)) BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid option for board \"{1}\""), key, targetBoard.getId()), 3); if (targetBoard.getMenuLabel(key, value) == null) - BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid option for \"{1}\" option for board \"{2}\""), value, key, targetBoard.getId()), 3); + BaseNoGui.showError(null, I18n.format(tr("{0}: Invalid value for option \"{1}\" for board \"{2}\""), value, key, targetBoard.getId()), 3); PreferencesData.set("custom_" + key, targetBoard.getId() + "_" + value); } @@ -340,6 +342,10 @@ public boolean isInstallLibrary() { return action == ACTION.INSTALL_LIBRARY; } + public boolean isVersionMode() { + return action == ACTION.VERSION; + } + public String getBoardToInstall() { return this.boardToInstall; } @@ -351,4 +357,8 @@ public String getLibraryToInstall() { public boolean isPreserveTempFiles() { return preserveTempFiles; } + + public Optional getUploadPort() { + return uploadPort; + } } diff --git a/arduino-core/src/processing/app/helpers/FileUtils.java b/arduino-core/src/processing/app/helpers/FileUtils.java index 5e30319dc6a..f2a1603b698 100644 --- a/arduino-core/src/processing/app/helpers/FileUtils.java +++ b/arduino-core/src/processing/app/helpers/FileUtils.java @@ -2,16 +2,25 @@ import org.apache.commons.compress.utils.IOUtils; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.*; -import java.util.regex.Pattern; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; public class FileUtils { private static final List SOURCE_CONTROL_FOLDERS = Arrays.asList("CVS", "RCS", ".git", ".svn", ".hg", ".bzr"); - private static final Pattern BACKSLASH = Pattern.compile("\\\\"); /** * Checks, whether the child directory is a subdirectory of the base directory. @@ -109,75 +118,6 @@ public static File createTempFolder(File parent, String prefix, String suffix) t return Files.createDirectories(Paths.get(parent.getAbsolutePath(), prefix + suffix)).toFile(); } - // - // Compute relative path to "target" from a directory "origin". - // - // If "origin" is not absolute, it is relative from the current directory. - // If "target" is not absolute, it is relative from "origin". - // - // by Shigeru KANEMOTO at SWITCHSCIENCE. - // - public static String relativePath(String origin, String target) { - try { - origin = (new File(origin)).getCanonicalPath(); - File targetFile = new File(target); - if (targetFile.isAbsolute()) - target = targetFile.getCanonicalPath(); - else - target = (new File(origin, target)).getCanonicalPath(); - } catch (IOException e) { - return null; - } - - if (origin.equals(target)) { - // origin and target is identical. - return "."; - } - - if (origin.equals(File.separator)) { - // origin is root. - return "." + target; - } - - String prefix = ""; - String root = File.separator; - - if (System.getProperty("os.name").indexOf("Windows") != -1) { - if (origin.startsWith("\\\\") || target.startsWith("\\\\")) { - // Windows UNC path not supported. - return null; - } - - char originLetter = origin.charAt(0); - char targetLetter = target.charAt(0); - if (Character.isLetter(originLetter) && Character.isLetter(targetLetter)) { - // Windows only - if (originLetter != targetLetter) { - // Drive letters differ - return null; - } - } - - prefix = "" + originLetter + ':'; - root = prefix + File.separator; - } - - String relative = ""; - while (!target.startsWith(origin + File.separator)) { - origin = (new File(origin)).getParent(); - if (origin.equals(root)) - origin = prefix; - relative += ".."; - relative += File.separator; - } - - return relative + target.substring(origin.length() + 1); - } - - public static String getLinuxPathFrom(File file) { - return BACKSLASH.matcher(file.getAbsolutePath()).replaceAll("/"); - } - public static boolean isSCCSOrHiddenFile(File file) { return isSCCSFolder(file) || isHiddenFile(file); } @@ -209,25 +149,34 @@ public static String readFileToString(File file, String encoding) throws IOExcep } } - public static List readFileToListOfStrings(File file) throws IOException { - List strings = new LinkedList<>(); - BufferedReader reader = null; + /** + * Writes the given data to the given file, creating the file if it does not exist. + * This method is equivalent to calling {@code writeStringToFile(file, data, StandardCharsets.UTF_8)}. + * @param file - The file to write to. + * @param data - The string to write. + * @throws IOException If an I/O error occurs. + */ + public static void writeStringToFile(File file, String data) throws IOException { + writeStringToFile(file, data, StandardCharsets.UTF_8); + } + + /** + * Writes the given data to the given file, creating the file if it does not exist. + * @param file - The file to write to. + * @param data - The string to write. + * @param charset - The charset used to convert the string to bytes. + * @throws IOException If an I/O error occurs. + */ + public static void writeStringToFile(File file, String data, Charset charset) throws IOException { + OutputStream out = null; try { - reader = new BufferedReader(new FileReader(file)); - String line; - while ((line = reader.readLine()) != null) { - line = line.replaceAll("\r", "").replaceAll("\n", "").replaceAll(" ", ""); - strings.add(line); - } - return strings; + out = new FileOutputStream(file); + out.write(data.getBytes(charset)); } finally { - if (reader != null) { - reader.close(); - } + IOUtils.closeQuietly(out); } } - /** * Returns true if the given file has any of the given extensions. * @@ -236,10 +185,6 @@ public static List readFileToListOfStrings(File file) throws IOException * dot). Should all be lowercase, case insensitive matching * is used. */ - public static boolean hasExtension(File file, String... extensions) { - return hasExtension(file, Arrays.asList(extensions)); - } - public static boolean hasExtension(File file, List extensions) { String extension = splitFilename(file).extension; return extensions.contains(extension.toLowerCase()); @@ -344,6 +289,9 @@ public static List listFiles(File folder, boolean recursive, public static List listFiles(File folder, boolean recursive, List extensions) { List result = new ArrayList<>(); + if (!folder.exists()) { + return result; + } for (File file : folder.listFiles()) { if (isSCCSOrHiddenFile(file)) @@ -361,21 +309,4 @@ public static List listFiles(File folder, boolean recursive, return result; } - public static File newFile(File parent, String... parts) { - File result = parent; - for (String part : parts) { - result = new File(result, part); - } - - return result; - } - - public static boolean deleteIfExists(File file) { - if (file == null) { - return true; - } - - return file.delete(); - } - } diff --git a/arduino-core/src/processing/app/helpers/OSUtils.java b/arduino-core/src/processing/app/helpers/OSUtils.java index 50719af31aa..b063b18deb7 100644 --- a/arduino-core/src/processing/app/helpers/OSUtils.java +++ b/arduino-core/src/processing/app/helpers/OSUtils.java @@ -27,6 +27,10 @@ static public boolean isMacOS() { } static public boolean hasMacOSStyleMenus() { - return OSUtils.isMacOS() && System.getProperty("apple.laf.useScreenMenuBar").equals("true"); + return OSUtils.isMacOS() && "true".equals(System.getProperty("apple.laf.useScreenMenuBar")); + } + + static public String version() { + return System.getProperty("os.version"); } } diff --git a/arduino-core/src/processing/app/helpers/PreferencesMap.java b/arduino-core/src/processing/app/helpers/PreferencesMap.java index e1628b65284..700c2e60fcb 100644 --- a/arduino-core/src/processing/app/helpers/PreferencesMap.java +++ b/arduino-core/src/processing/app/helpers/PreferencesMap.java @@ -248,7 +248,8 @@ public String toString(String indent) { String res = indent + "{\n"; SortedSet treeSet = new TreeSet<>(keySet()); for (String k : treeSet) - res += indent + k + " = " + get(k) + "\n"; + res += indent + " " + k + " = " + get(k) + "\n"; + res += indent + "}\n"; return res; } diff --git a/arduino-core/src/processing/app/helpers/StringReplacer.java b/arduino-core/src/processing/app/helpers/StringReplacer.java index 159289d1d5b..1e1dd9eab3d 100644 --- a/arduino-core/src/processing/app/helpers/StringReplacer.java +++ b/arduino-core/src/processing/app/helpers/StringReplacer.java @@ -24,19 +24,57 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.UUID; public class StringReplacer { - public static String[] formatAndSplit(String src, Map dict, - boolean recursive) throws Exception { - String res; + public static void checkIfRequiredKeyIsMissingOrExcept(String key, String src, PreferencesMap inDict) throws PreferencesMapException { + // If the key is not missing -> everything is OK + String checkedValue = inDict.get(key); + if (checkedValue != null && !checkedValue.isEmpty()) + return; + + PreferencesMap dict = new PreferencesMap(inDict); + + // Find a random tag that is not contained in the dictionary and the src pattern + String tag; + while (true) { + tag = UUID.randomUUID().toString(); + if (src.contains(tag)) + continue; + if (dict.values().contains(tag)) + continue; + if (dict.keySet().contains(tag)) + continue; + break; + } + + // Inject tag inside the dictionary + dict.put(key, tag); // Recursive replace with a max depth of 10 levels. + String res; for (int i = 0; i < 10; i++) { // Do a replace with dictionary res = StringReplacer.replaceFromMapping(src, dict); - if (!recursive) + if (res.equals(src)) break; + src = res; + } + + // If the resulting string contains the tag, then the key is required + if (src.contains(tag)) { + throw new PreferencesMapException(key); + } + } + + public static String[] formatAndSplit(String src, Map dict) throws Exception { + String res; + + // Recursive replace with a max depth of 10 levels. + for (int i = 0; i < 10; i++) { + // Do a replace with dictionary + res = StringReplacer.replaceFromMapping(src, dict); if (res.equals(src)) break; src = res; diff --git a/arduino-core/src/processing/app/helpers/StringUtils.java b/arduino-core/src/processing/app/helpers/StringUtils.java deleted file mode 100644 index d17e7022c7e..00000000000 --- a/arduino-core/src/processing/app/helpers/StringUtils.java +++ /dev/null @@ -1,51 +0,0 @@ -package processing.app.helpers; - -import java.util.List; - -public class StringUtils { - - public static boolean stringContainsOneOf(String input, List listOfStrings) { - for (String string : listOfStrings) { - if (input.contains(string)) { - return true; - } - } - return false; - } - - /** - * Tries to match input with pattern. The pattern can use the - * "*" and "?" globs to match any-char-sequence and any-char respectively. - * - * @param input The string to be checked - * @param pattern The pattern to match - * @return true if the input matches the pattern, - * false otherwise. - */ - public static boolean wildcardMatch(String input, String pattern) { - String regex = pattern.replace("?", ".?").replace("*", ".*?"); - return input.matches(regex); - } - - /** - * Returns the string without trailing whitespace characters - * - * @param s - * @return - */ - public static String rtrim(String s) { - int i = s.length() - 1; - while (i >= 0 && Character.isWhitespace(s.charAt(i))) { - i--; - } - return s.substring(0, i + 1); - } - - public static String join(String[] arr, String separator) { - StringBuffer sb = new StringBuffer(); - for (String s : arr) { - sb.append(s).append(separator); - } - return sb.substring(0, sb.length() - separator.length()); - } -} diff --git a/arduino-core/src/processing/app/i18n/Resources_ach.po b/arduino-core/src/processing/app/i18n/Resources_ach.po index 3a4cab3d9f5..c6b48f4e298 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ach.po +++ b/arduino-core/src/processing/app/i18n/Resources_ach.po @@ -16,12 +16,16 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-08-03 11:06+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Acoli (http://www.transifex.com/mbanzi/arduino-ide-15/language/ach/)\n" "MIME-Version: 1.0\n" @@ -209,6 +213,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -615,6 +624,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -658,6 +672,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -666,6 +684,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "" @@ -841,6 +863,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -860,6 +887,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -894,6 +940,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -930,10 +980,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "" @@ -1137,8 +1183,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1165,6 +1211,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1198,9 +1248,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1227,6 +1277,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "" @@ -1259,9 +1320,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1679,9 +1740,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1718,6 +1779,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "" @@ -1841,11 +1906,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1869,6 +1937,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2040,6 +2112,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2085,11 +2165,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2107,6 +2187,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2599,6 +2683,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2686,11 +2776,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2701,6 +2786,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_ach.properties b/arduino-core/src/processing/app/i18n/Resources_ach.properties index 3f01a2826ff..81c57e96f63 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ach.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ach.properties @@ -16,7 +16,11 @@ # Translators: # Translators: # Translators: -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-08-03 11\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Acoli (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ach/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ach\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n +# Translators: +# Translators: +# Translators: +# Translators: +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Acoli (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ach/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ach\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -141,6 +145,10 @@ #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -435,6 +443,10 @@ #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -465,12 +477,18 @@ #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 !Delete= @@ -602,6 +620,10 @@ #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -616,6 +638,18 @@ #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -641,6 +675,9 @@ #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -669,9 +706,6 @@ #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 !Examples= @@ -822,8 +856,8 @@ #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -838,6 +872,9 @@ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -864,9 +901,9 @@ #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -887,6 +924,15 @@ #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 !Italian= @@ -911,9 +957,9 @@ #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1226,9 +1272,9 @@ #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1256,6 +1302,9 @@ #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 !Romanian= @@ -1347,9 +1396,13 @@ #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1367,6 +1420,9 @@ #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1486,6 +1542,10 @@ #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1510,8 +1570,8 @@ #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1519,6 +1579,9 @@ #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1853,6 +1916,11 @@ #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1920,10 +1988,6 @@ #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1932,6 +1996,10 @@ #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_af.po b/arduino-core/src/processing/app/i18n/Resources_af.po index f43486904e0..e695acda527 100644 --- a/arduino-core/src/processing/app/i18n/Resources_af.po +++ b/arduino-core/src/processing/app/i18n/Resources_af.po @@ -16,14 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Dohan Reyneke , 2020 # Edrean Ernst , 2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-22 00:56+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2020-03-15 13:42+0000\n" +"Last-Translator: Dohan Reyneke \n" "Language-Team: Afrikaans (http://www.transifex.com/mbanzi/arduino-ide-15/language/af/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,12 +38,12 @@ msgstr "" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" -msgstr "" +msgstr "(vereis herbegin van Arduino)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format msgid " Not used: {0}" -msgstr "" +msgstr "Nie gebruik nie: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format @@ -49,12 +54,12 @@ msgstr "" msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "" +msgstr "'Sleutelbord' nie gevind nie. Bevat u skets die lyn '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" "'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "" +msgstr "'Muis' nie gevind nie. Bevat u skets die lyn '#include , 2020 # Edrean Ernst , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-22 00\:56+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Afrikaans (http\://www.transifex.com/mbanzi/arduino-ide-15/language/af/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: af\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2020-03-15 13\:42+0000\nLast-Translator\: Dohan Reyneke \nLanguage-Team\: Afrikaans (http\://www.transifex.com/mbanzi/arduino-ide-15/language/af/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: af\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 -!\ \ (requires\ restart\ of\ Arduino)= +\ \ (requires\ restart\ of\ Arduino)=(vereis herbegin van Arduino) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -!\ Not\ used\:\ {0}= +\ Not\ used\:\ {0}=Nie gebruik nie\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format !\ Used\:\ {0}= #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -!'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Sleutelbord' nie gevind nie. Bevat u skets die lyn '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -!'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Muis' nie gevind nie. Bevat u skets die lyn '\#include \ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1368,6 +1422,9 @@ Arduino\:\ =Arduino\: #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1487,6 +1544,10 @@ System\ Default=Stelsel Verstek #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1511,8 +1572,8 @@ System\ Default=Stelsel Verstek #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1520,6 +1581,9 @@ System\ Default=Stelsel Verstek #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1918,11 @@ Yes=Ja #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1921,10 +1990,6 @@ Yes=Ja #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1998,10 @@ Yes=Ja #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_an.po b/arduino-core/src/processing/app/i18n/Resources_an.po index ec8321d5269..ae56e99798a 100644 --- a/arduino-core/src/processing/app/i18n/Resources_an.po +++ b/arduino-core/src/processing/app/i18n/Resources_an.po @@ -16,13 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Daniel Martinez , 2014-2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Aragonese (http://www.transifex.com/mbanzi/arduino-ide-15/language/an/)\n" "MIME-Version: 1.0\n" @@ -210,6 +214,11 @@ msgstr "Archivar programa como:" msgid "Archive sketch canceled." msgstr "Archivación de programa cancelada." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +625,11 @@ msgstr "No se podió eliminar a versión antiga de {0}" msgid "Could not replace {0}" msgstr "No podié reemplazar {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "No se podió archivar o programa" @@ -659,6 +673,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Disminuir sangría" @@ -667,6 +685,10 @@ msgstr "Disminuir sangría" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Borrar" @@ -842,6 +864,11 @@ msgstr "Error obtenendo os datos d'a carpeta d'Arduino." msgid "Error inside Serial.{0}()" msgstr "Error interna d'o serie.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +888,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Error leyendo preferencias" @@ -895,6 +941,10 @@ msgstr "Error mientres se escribía o bootloader" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Error mientres se escribía o bootloader: falta parametro de configuración '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +981,6 @@ msgstr "" msgid "Estonian" msgstr "Estonio" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonio (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Eixemplos" @@ -1138,9 +1184,9 @@ msgstr "" msgid "Ignore Case" msgstr "Ignorar mayusclas" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorando o nombre incorrecto d'a biblioteca." +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1166,6 +1212,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Aumentar sangría" @@ -1199,9 +1249,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1278,17 @@ msgstr "Biblioteca invalida trobada en {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italián" @@ -1260,9 +1321,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1680,9 +1741,9 @@ msgstr "Referencia" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1780,10 @@ msgstr "Reemplazar con:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Rumano" @@ -1842,12 +1907,15 @@ msgid "" " Serial Port menu?" msgstr "Puerto \"{0}\" no trobau. Has seleccionau o correcto d'o menú Ferramientas > Puerto serie?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Puerto {0} no trobau.\nReintentar a puyada con unatro puerto?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1870,6 +1938,10 @@ msgstr "Qüestions d'achustes" msgid "Show Sketch Folder" msgstr "Amostrar Carpeta de programa" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Amostrar salida detallada mientres:" @@ -2041,6 +2113,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "O fichero \"{0}\" ameneste estar dentro d'una\ncarpeta de prochecto clamada \"{1}\".\nCreyar-la, mover o fichero y continar?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,12 +2166,12 @@ msgid "" "but anything besides the code will be lost." msgstr "A carpeta d'o programa ha desapareixiu\nIntentaré salvar-lo de nuevo en a mesma ubicación\npero brenca mas que o codigo se perderá." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "O nombre d'o prochecto debe estar modificau. O nombre d'o prochecto debe consistir solament de caracters ASCII y numeros (pero no puede prencipiar con un numero).\nAdemas debe contener menos de 64 caracters." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2108,6 +2188,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2684,12 @@ msgstr "ignorando grandaria de fuent invalido {0}" msgid "name is null" msgstr "o nombre ye vuedo" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu ye vuedo" @@ -2687,11 +2777,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Nombre de placa invalido, debe estar de la forma \"paquet:arq:placa\" u \"paquet:arq:placa:opcions\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opcion invalida ta la opción \"{1}\" ta la placa \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2787,11 @@ msgstr "{0}: Opcion invalida ara a placa \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opcion invalida, debe estar d'a forma \"nombre=valor\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_an.properties b/arduino-core/src/processing/app/i18n/Resources_an.properties index 7a8c006c341..dcd22dc9e09 100644 --- a/arduino-core/src/processing/app/i18n/Resources_an.properties +++ b/arduino-core/src/processing/app/i18n/Resources_an.properties @@ -16,8 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Daniel Martinez , 2014-2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Aragonese (http\://www.transifex.com/mbanzi/arduino-ide-15/language/an/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: an\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Aragonese (http\://www.transifex.com/mbanzi/arduino-ide-15/language/an/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: an\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(requiere reiniciar Arduino) @@ -142,6 +146,10 @@ Archive\ sketch\ as\:=Archivar programa como\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivaci\u00f3n de programa cancelada. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=O fichero d'o programa s'ha cancelau porque\nno se podi\u00f3 alzar o propio programa. @@ -436,6 +444,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=No se podi\u00f3 eliminar a versi\u00f #, java-format Could\ not\ replace\ {0}=No podi\u00e9 reemplazar {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=No se podi\u00f3 archivar o programa @@ -466,12 +478,18 @@ Cut=Tallar #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Disminuir sangr\u00eda #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Borrar @@ -603,6 +621,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Error obtenendo os datos d'a carpeta #, java-format Error\ inside\ Serial.{0}()=Error interna d'o serie.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +639,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Error ubrindo puerto "{0}" #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Error leyendo preferencias @@ -642,6 +676,9 @@ Error\ while\ burning\ bootloader.=Error mientres se escrib\u00eda o bootloader #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Error mientres se escrib\u00eda o bootloader\: falta parametro de configuraci\u00f3n '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +707,6 @@ Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Error mientr #: Preferences.java:93 Estonian=Estonio -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonio (Estonia) - #: Editor.java:516 Examples=Eixemplos @@ -823,8 +857,8 @@ Hungarian=H\u00fangaro #: FindReplace.java:96 Ignore\ Case=Ignorar mayusclas -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorando o nombre incorrecto d'a biblioteca. +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorando treballo con nombre incorrecto. @@ -839,6 +873,9 @@ In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Aumentar sangr\u00eda @@ -865,9 +902,9 @@ Indonesian=Indonesio #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +925,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Biblioteca invalida trobada en {0}\: {1} #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Itali\u00e1n @@ -912,9 +958,9 @@ Latvian=Let\u00f3n #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1227,9 +1273,9 @@ Reference=Referencia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1303,9 @@ Replace\ with\:=Reemplazar con\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Rumano @@ -1348,9 +1397,13 @@ Serial\ Monitor=Monitor serie #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Puerto "{0}" no trobau. Has seleccionau o correcto d'o men\u00fa Ferramientas > Puerto serie? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Puerto {0} no trobau.\nReintentar a puyada con unatro puerto? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1368,6 +1421,9 @@ Settings\ issues=Q\u00fcestions d'achustes #: Editor.java:641 Show\ Sketch\ Folder=Amostrar Carpeta de programa +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Amostrar salida detallada mientres\: @@ -1487,6 +1543,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=A clase Udp ha estau renombrad #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=O fichero "{0}" ameneste estar dentro d'una\ncarpeta de prochecto clamada "{1}".\nCreyar-la, mover o fichero y continar? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=A biblioteca "{0}" no se puede usar.\nOs nombres de biblioteca han de contener solament numeros y letras.\n(Solament ASCII y sin espacios, y no pueden empecipiar con un numero) @@ -1511,8 +1571,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=A carpeta d'o programa ha desapareixiu\nIntentar\u00e9 salvar-lo de nuevo en a mesma ubicaci\u00f3n\npero brenca mas que o codigo se perder\u00e1. -#: ../../../processing/app/Sketch.java:2028 -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.=O nombre d'o prochecto debe estar modificau. O nombre d'o prochecto debe consistir solament de caracters ASCII y numeros (pero no puede prencipiar con un numero).\nAdemas debe contener menos de 64 caracters. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=A carpeta de sketchbook ya no existe.\nArduino cambiar\u00e1 a ubicaci\u00f3n por defecto de\nsketchbook, y creyar\u00e1 una carpeta de prochecto\nnuevo si ye necesario. Arduino alavez deixar\u00e1\n de charrar d'ell mesmo en tercera persona. @@ -1520,6 +1580,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1917,11 @@ ignoring\ invalid\ font\ size\ {0}=ignorando grandaria de fuent invalido {0} #: Editor.java:936 Editor.java:943 name\ is\ null=o nombre ye vuedo +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu ye vuedo @@ -1921,10 +1989,6 @@ upload=puyar #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nombre de placa invalido, debe estar de la forma "paquet\:arq\:placa" u "paquet\:arq\:placa\:opcions" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Opcion invalida ta la opci\u00f3n "{1}" ta la placa "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Opcion invalida ara a placa "{1}" @@ -1933,6 +1997,10 @@ upload=puyar #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Opcion invalida, debe estar d'a forma "nombre\=valor" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arquitectura desconoixida diff --git a/arduino-core/src/processing/app/i18n/Resources_ar.po b/arduino-core/src/processing/app/i18n/Resources_ar.po index 5734512e72c..65b242b1c76 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ar.po +++ b/arduino-core/src/processing/app/i18n/Resources_ar.po @@ -16,6 +16,11 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Ahmed Moussa , 2020 # alsadi , 2012 # amas89 , 2012 # belal affouri , 2015 @@ -23,14 +28,15 @@ # Federico Fissore , 2015 # JAMAL ELMERABETE , 2014-2015 # Khaled Saleem Baleesh , 2015-2016 +# Mohamed Bloui , 2019 # Mubarak Qahtani , 2015-2016 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:19+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2020-04-14 15:31+0000\n" +"Last-Translator: Ahmed Moussa \n" "Language-Team: Arabic (http://www.transifex.com/mbanzi/arduino-ide-15/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -75,7 +81,7 @@ msgstr "(لا يمكن التحرير والأردوينو تعمل)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "" +msgstr "الشكل القديم" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" @@ -130,7 +136,7 @@ msgstr "عن الاردوينو" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "اشولي" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." @@ -154,7 +160,7 @@ msgstr "لغة جنوب Ø¥ÙØ±ÙŠÙ‚ياâ€" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "الذاكرة المخبأة الأساسية السريعة" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -217,6 +223,11 @@ msgstr "Ø§Ø±Ø´ÙØ© Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية Ùƒ:" msgid "Archive sketch canceled." msgstr "الغاء Ø§Ø±Ø´ÙØ© Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Ø£Ø±Ø´ÙØ© الأساس المبني (الذاكرة المخبأة) ÙÙŠ : {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -348,7 +359,7 @@ msgstr "لوحة" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "معلومات اللوحة" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 @@ -429,7 +440,7 @@ msgstr "يتم تثبيت محمل برنامج الإقلاع على اللوح msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "CRC لا تتطاب٠مع Ø§Ù„Ù…Ù„ÙØŒ المل٠تالÙ. ربما تك،ن مشكلة مؤقتة، حاول لاحقاً." #: ../../../processing/app/Base.java:379 #, java-format @@ -438,7 +449,7 @@ msgstr "يمكن ان تمرر واحدة من : {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "لا يمكن تمكين المحرر الخارجي" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -484,7 +495,7 @@ msgstr "الصينية (تايوان) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "مسح المخرجات" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -496,11 +507,11 @@ msgstr "إغلاق" #: Editor.java:1208 Editor.java:2749 msgid "Comment/Uncomment" -msgstr "ملاحظة \\ الغاء الملاحظة" +msgstr "ملاحظة/ الغاء الملاحظة" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" -msgstr "" +msgstr "الاتصال" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " @@ -542,7 +553,7 @@ msgstr "لا يمكن النسخ لمكان مناسب" #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "لا يمكن إنشاء مجلد \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -623,6 +634,11 @@ msgstr "لا يمكن حذ٠الاصدار السابق من {0}" msgid "Could not replace {0}" msgstr "لا يمكن استبدال {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "لا يمكن كتابة Ù…Ù„Ù Ø§Ù„ØªÙØ¶ÙŠÙ„ات: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "لا يمكن Ø§Ø±Ø´ÙØ© Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية" @@ -666,6 +682,10 @@ msgstr "معالجة البيانات" msgid "Data Storage" msgstr "تخزين البيانات" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "تصغير حجم الخط" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "تقليل البادئة" @@ -674,13 +694,17 @@ msgstr "تقليل البادئة" msgid "Default" msgstr "Ø¥ÙØªØ±Ø§Ø¶ÙŠ" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "القالب Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "حذÙ" #: ../../../../../arduino-core/src/processing/app/I18n.java:33 msgid "Device Control" -msgstr "" +msgstr "التحكم بالجهاز" #: debug/Uploader.java:199 msgid "" @@ -694,7 +718,7 @@ msgstr "تجاهل كل التغييرات واعد تحميل Ø§Ù„Ø´ÙŠÙØ±Ø© ا #: ../../../../../arduino-core/src/processing/app/I18n.java:29 msgid "Display" -msgstr "" +msgstr "عرض" #: ../../../processing/app/Preferences.java:438 msgid "Display line numbers" @@ -781,7 +805,7 @@ msgstr "مساعدة لوحة إديسون" #: Editor.java:1130 msgid "Edit" -msgstr "عدل" +msgstr "تحرير" #: Preferences.java:370 msgid "Editor font size: " @@ -829,7 +853,7 @@ msgstr "مشكلة ÙÙŠ Ø§Ø¶Ø§ÙØ© الملÙ" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format msgid "Error compiling for board {0}." -msgstr "" +msgstr "خطأ ÙÙŠ الترجمة للوحة {0}." #: debug/Compiler.java:369 msgid "Error compiling." @@ -849,6 +873,11 @@ msgstr "مشكلة ÙÙŠ الحصول على مجلد بيانات الاردوي msgid "Error inside Serial.{0}()" msgstr "Serial.{0}() خطأ داخل " +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "خطأ تحميل القالب {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -868,6 +897,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "خطأ ÙÙŠ ÙØªØ­ Ø§Ù„Ù…Ù†ÙØ° التسلسلي \"{0}\". حاول نصائح المستند التالي http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "خطأ تمرير Ùهرس المكتبات: {0}\nحاول ÙØªØ­ مدير المكتبات لتحديث Ùهرس المكتبات." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "خطأ قراءة Ùهرس المكتبات: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "حدث خطأ ÙÙŠ قراءة /معالجة حزمة المجلد المدخل : {0}\n(ربما المشكلة ÙÙŠ التصاريح المطلوبة؟)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "خطأ ÙÙŠ قراءة الخصائص" @@ -883,7 +931,7 @@ msgstr "خطاÙÙŠ قرائة مل٠الخصائص . رجاءا احذ٠(او #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:245 msgid "Error running post install script" -msgstr "" +msgstr "خطأ ÙÙŠ تشغيلسكريبت التركيب عن بعد" #: ../../../cc/arduino/packages/DiscoveryManager.java:25 msgid "Error starting discovery method: " @@ -902,6 +950,10 @@ msgstr "حدث خطأ خلال تثبيت محمل برنامج الإقلاع" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "خطأ عند حرق محمل الإقلاع: '{0}' معامل الإعدادات Ù…Ùقود" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "خطأ ÙÙŠ نسخ البوت-لودر: ÙØ¶Ù„اً، أختار Ù…Ù†ÙØ° تسلسلي" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "خطأ عند الترجمة: '{0}' معامل الإعدادات Ù…Ùقود" @@ -938,23 +990,19 @@ msgstr "خطأ أثناء التحقق أو Ø§Ù„Ø±ÙØ¹" msgid "Estonian" msgstr "Eesti" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "الأستونية (إستونيا)" - #: Editor.java:516 msgid "Examples" msgstr "أمثلة" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "أمثلة على أي لوحة" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "أمثلة على {0}" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" @@ -962,7 +1010,7 @@ msgstr "أمثلة من مكتبات مخصصة" #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" -msgstr "" +msgstr "أمثلة من مكتبات أخرى" #: ../../../../../app/src/processing/app/Editor.java:753 msgid "Export canceled, changes must first be saved." @@ -980,11 +1028,11 @@ msgstr "ÙØ´Ù„ ÙÙŠ ÙØªØ­ ketch : \n\"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "ÙØ´Ù„ ÙÙŠ إعادة التسمية من \"{0}\" إلى \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "ÙØ´Ù„ ÙÙŠ إعادة تسمية مجلد السكتشرز" #: Editor.java:491 msgid "File" @@ -1077,7 +1125,7 @@ msgstr "Deutsch" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "الحصول على معلومات اللوحة" #: Editor.java:1054 msgid "Getting Started" @@ -1139,15 +1187,15 @@ msgstr "Magyar" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" -msgstr "" +msgstr "غير متواÙÙ‚" #: FindReplace.java:96 msgid "Ignore Case" msgstr "تجاهل الحالة" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "تجاهل اسم المكتبة الخاطئ" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "تجاهل المكتبة ذات الأسم الغير صالح" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1173,9 +1221,13 @@ msgstr "إدراج مكتبة" msgid "Incorrect IDE installation folder" msgstr "خطأ مجلد التثبيت لبيئة التطوير" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "زيادة حجم الخط" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" -msgstr "زيادة البادئة" +msgstr "زيادة هامش البداية" #: Preferences.java:101 msgid "Indonesian" @@ -1206,10 +1258,10 @@ msgstr "تم التنصيب" msgid "Installing boards..." msgstr "جاري تثبيت الألواح..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "جاري تثبيت مكتبة:{0}" +msgid "Installing library: {0}:{1}" +msgstr "جاري تثبيت المكتبة: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1235,6 +1287,17 @@ msgstr "العثور على مكتبة غير صالحةÙÙŠ {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "إقتباس غير صحيح: لم يعثر على [{0}] رمز إغلاق" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "الصيغة '{0}' غير صالحة , من اجل مكتبة : {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "نسخة غير صالحة {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italiano" @@ -1245,7 +1308,7 @@ msgstr "Japanese" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "كازاخستان" #: Preferences.java:104 msgid "Korean" @@ -1267,10 +1330,10 @@ msgstr "مكتبة Ø£Ø¶ÙŠÙØª إلى مكتباتك. تحقق من \"إدراج msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "المكتبة لا تستطيع استخدام كلا المجلدين 'src' Ùˆ 'utility'. تحقق جيدا من {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "المكتبة مثبته مسبقا: {0} اصدار {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "تم تثبيت المكتبة : {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1287,7 +1350,7 @@ msgstr "جاري تحميل الإعدادات..." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format msgid "Looking for recipes like {0}*{1}" -msgstr "" +msgstr "جار البحث عن اجراءات مثل {0}*{1}" #: ../../../processing/app/Sketch.java:1684 msgid "Low memory available, stability problems may occur." @@ -1349,7 +1412,7 @@ msgstr "اسم لمل٠جديد:" #: ../../../../../app//src/processing/app/Editor.java:2809 msgid "Native serial port, can't obtain info" -msgstr "" +msgstr "يتعذر الحصول علي معلومات , من Ø§Ù„Ù…Ù†ÙØ° التسلسلي الاصلي" #: ../../../processing/app/Preferences.java:149 msgid "Nepali" @@ -1361,11 +1424,11 @@ msgstr "شبكة" #: ../../../../../app//src/processing/app/Editor.java:2804 msgid "Network port, can't obtain info" -msgstr "" +msgstr "Ù…Ù†ÙØ° الشبكة، لا يمكن الحصول علي معلومات" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Network ports" -msgstr "Ù…Ù†ÙØ° الشبكة" +msgstr "Ù…Ù†Ø§ÙØ° الشبكة" #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 msgid "Network upload using programmer not supported" @@ -1552,7 +1615,7 @@ msgstr "الرجاء إستيراد مكتبة Wire من قائمة Ø§Ù„Ø´ÙŠÙØ± #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" -msgstr "" +msgstr "ÙØ¶Ù„اً، حدد Ø§Ù„Ù…Ù†ÙØ° للحصول على معلومات اللوحة" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 @@ -1561,7 +1624,7 @@ msgstr "الرجاء تحديد مبرمجة من قائمة أدوات->الم #: ../../../../../app/src/processing/app/Editor.java:2613 msgid "Plotter not available while serial monitor is open" -msgstr "" +msgstr "الرسم التخطيطي غير متاح مادام المراقب التسلسلي Ù…ÙØªÙˆØ­." #: Preferences.java:110 msgid "Polish" @@ -1669,7 +1732,7 @@ msgstr "خروج" #: ../../../../../app/src/processing/app/Base.java:1233 msgid "RETIRED" -msgstr "" +msgstr "غير مستخدم" #: ../../../../../arduino-core/src/processing/app/I18n.java:26 msgid "Recommended" @@ -1687,10 +1750,10 @@ msgstr "مرجع" msgid "Remove" msgstr "حذÙ" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "جاري حذ٠المكتبة: {0}" +msgid "Removing library: {0}:{1}" +msgstr "حذ٠المكتبة: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1724,7 +1787,11 @@ msgstr "استبدل بـ:" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" -msgstr "" +msgstr "غير مستخدم" + +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr " لم يتم العثورعلي Ø§Ù„Ù…Ù†ÙØ° التسلسلي، لم لا تحاول Ø§Ù„Ø±ÙØ¹ باستخدام Ù…Ù†ÙØ° تسلسلي آخر ØŸ" #: Preferences.java:113 msgid "Romanian" @@ -1784,7 +1851,7 @@ msgstr "اختيار(او انشاء جديد) لمجلد Ø§Ù„Ø´ÙŠÙØ±Ø© الب #: Editor.java:1198 Editor.java:2739 msgid "Select All" -msgstr "ضلل الكل" +msgstr "تحديد الكل" #: Base.java:2636 msgid "Select a zip file or a folder containing the library you'd like to add" @@ -1829,18 +1896,18 @@ msgstr "مراقب Ø§Ù„Ù…Ù†ÙØ° التسلسلي \"سيريال بورت\"" #: ../../../../../app/src/processing/app/Editor.java:804 msgid "Serial Plotter" -msgstr "" +msgstr "مخطط تسلسلي" #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "جهاز العرض التسلسلي غير مدعوم على Ù…Ù†Ø§ÙØ° الشبكة مثل {0} لـ {1} ÙÙŠ هذا الإصدار" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" -msgstr "" +msgstr "الرسم التخطيطي غير متاح مادام المراقب التسلسلي Ù…ÙØªÙˆØ­." #: Serial.java:194 #, java-format @@ -1849,12 +1916,15 @@ msgid "" " Serial Port menu?" msgstr "Ø§Ù„Ù…Ù†ÙØ° التسلسلي ''{0}'' غير موجود. هل قمت بإختيار Ø§Ù„Ù…Ù†ÙØ° الصحيح من قائمة الادوات > Ø§Ù„Ù…Ù†ÙØ° التسلسلي" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Ø§Ù„Ù…Ù†Ø§ÙØ° التسلسلية غير محددة" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Ø§Ù„Ù…Ù†ÙØ° التسلسلي {0} لم يتم العثور عليه.\nحاول Ø§Ù„Ø±ÙØ¹ باستخدام Ù…Ù†ÙØ° تلسلسي آخر ?" +msgid "Serial port {0} not found." +msgstr "Ø§Ù„Ù…Ù†ÙØ° التسلسلي {0} غير موجود." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1863,7 +1933,7 @@ msgstr "Ø§Ù„Ù…Ù†Ø§ÙØ° التسلسلية" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 #, java-format msgid "Setting build path to {0}" -msgstr "" +msgstr "جار الاعداد الي المسار {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 msgid "Settings" @@ -1877,6 +1947,10 @@ msgstr "ضبط المسائل" msgid "Show Sketch Folder" msgstr "اعرض مجلد Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "أعرض الوقت والتاريخ" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "عرض المخرجات خلال:" @@ -1941,11 +2015,11 @@ msgstr "مسار كتاب Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية غير Ù…Ø¹Ø±ÙˆÙØ©" #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format msgid "Skipping contributed index file {0}, parsing error occured:" -msgstr "" +msgstr "تجاوز المل٠المÙهرس المتشارك {0}, ØªÙØ³ÙŠØ± الخطأ الذي حدث" #: ../../../../../app/src/processing/app/Preferences.java:185 msgid "Slovak" -msgstr "Ø§Ù„Ø³Ù„ÙˆÙØ§ÙƒÙŠØ©" +msgstr "اللغة Ø§Ù„Ø³Ù„ÙˆÙØ§ÙƒÙŠØ©" #: ../../../processing/app/Preferences.java:152 msgid "Slovenian" @@ -1967,7 +2041,7 @@ msgstr "بعض Ø§Ù„Ù…Ù„ÙØ§Øª معلمة بـ \"read-only\" , لذلك سو٠ت #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format msgid "Sorry, the folder \"{0}\" already exists." -msgstr "" +msgstr "عÙواً، هذا المجلد \"{0}\" موجود مسبقاً." #: Preferences.java:115 msgid "Spanish" @@ -2003,7 +2077,7 @@ msgstr "Tamil" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "Ù„ÙØ© التيلجو" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" @@ -2038,7 +2112,7 @@ msgstr "The Udp class أعيد تسميته الى EthernetUdp." #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "" +msgstr "اللوحة المختارة المحددة تحتاج الاساس '{0}' وهو غير Ù…ØªÙˆÙØ±" #: Editor.java:2147 #, java-format @@ -2048,6 +2122,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "المل٠\"{0}\" بحاجة لأن يكون بداخل \n\"{1}\" مجلد Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية المسمى \n أنشاء المجلد ونقل Ø§Ù„Ù…Ù„ÙØ§Øª والمتباعة؟" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "المكتبة \"{0}\" لا يمكن استخدامها.\nاسم المكتبة يجب يبدأ بحر٠، او رقم متبوع بأحرÙ\nاو ارقاما ØŒ او علامة الشرطة - ØŒ او الشرطه السÙلية _ . يجب ألا يزيد الطول عن 63 Ø­Ø±ÙØ§." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2058,7 +2140,7 @@ msgstr "المكتبة \"{0}\" لا يمكن استخدامها.\nاسم الم #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "المل٠الرئيسي لا يمكن أن يستخدم تمدد" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2084,7 +2166,7 @@ msgstr "Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية \"{0}\" لا يمكن استخدامها #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format msgid "The sketch already contains a file named \"{0}\"" -msgstr "" +msgstr "السكتش يحتوي على مل٠مسبقاً باسم \"{0}\"" #: Sketch.java:1755 msgid "" @@ -2093,12 +2175,12 @@ msgid "" "but anything besides the code will be lost." msgstr "مجلد Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية اختÙÙ‰.\nحاول اعادة Ø­ÙØ¸Ù‡ ÙÙŠ Ù†ÙØ³ المكان,\nولكن سيتم Ùقدان الكود." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "اسم Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية توجب تعديله. أسماء Ø§Ù„Ø´ÙŠÙØ±Ø§Øª البرمجية يحتوي على\nحرو٠وأرقام ترميز الآسكي (لكن لايمكن أن يبدأ برقم). ويتوجب أيضا أن\nيكون طوله أقل من 64 رمزا." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "لقد تم تعديل أسم Ø§Ù„Ø´ÙØ±Ø© البرمجية.\nأسم Ø§Ù„Ø´ÙØ±Ø© البرمجية يجب ان يبدأ بحر٠او رقم متبوع بحرÙ.\nاو ارقاما ØŒ او علامة الشرطة - ØŒ او الشرطه السÙلية _ . يجب ألا يزيد الطول عن 63 Ø­Ø±ÙØ§." #: Base.java:259 msgid "" @@ -2115,6 +2197,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "مجلد كتاب Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية المحدد يحتوي على نسختك من منصة التطوير.\nالرجاء إختيار مجلد آخر لكتاب Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "الشكل:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2203,7 +2289,7 @@ msgstr "غير قادر على ÙØªØ­ مراقب Ø§Ù„Ù…Ù†ÙØ° التساسلي" #: ../../../../../app/src/processing/app/Editor.java:2709 msgid "Unable to open serial plotter" -msgstr "" +msgstr "غير قادر على ÙØªØ­ مراقب Ø§Ù„Ù…Ù†ÙØ° التساسلي" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 @@ -2221,11 +2307,11 @@ msgstr "تراجع" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format msgid "Unhandled type {0} in context key {1}" -msgstr "" +msgstr "النوع {0} غير مدعوم من خلال السياق رقم {1}" #: ../../../../../app//src/processing/app/Editor.java:2818 msgid "Unknown board" -msgstr "" +msgstr "لوحة غير Ù…Ø¹Ø±ÙˆÙØ©" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -2281,7 +2367,7 @@ msgstr "Ø±ÙØ¹ بواسطة المبرمجة" #: ../../../../../app//src/processing/app/Editor.java:2814 msgid "Upload any sketch to obtain it" -msgstr "" +msgstr "حمل أي سكتش للحصول عليه" #: Editor.java:2403 Editor.java:2439 msgid "Upload canceled." @@ -2345,7 +2431,7 @@ msgstr "جاري التحقق ÙˆØ§Ù„Ø±ÙØ¹..." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 msgid "Verifying archive integrity..." -msgstr "" +msgstr "جاري التحقق من سلامة الأرشي٠..." #: ../../../../../app/src/processing/app/Base.java:454 msgid "Verifying..." @@ -2403,7 +2489,7 @@ msgstr "تحذير: هذه النواة لاتدعم تصدير Ø§Ù„Ø´ÙŠÙØ±Ø© #: ../../../cc/arduino/utils/ArchiveExtractor.java:197 #, java-format msgid "Warning: file {0} links to an absolute path {1}" -msgstr "" +msgstr "تحذير: المل٠{0} يشير إلى المسار المجرد {1}" #: ../../../cc/arduino/contributions/packages/ContributionsIndexer.java:133 msgid "Warning: forced trusting untrusted contributions" @@ -2424,13 +2510,13 @@ msgstr "تحذير: مساهمات غير موثوقة، جاري تجاوز ت msgid "" "Warning: platform.txt from core '{0}' contains deprecated {1}, automatically" " converted to {2}. Consider upgrading this core." -msgstr "" +msgstr "تحذير: platform.txt من الاساس '{0}' ÙŠÙØªÙ‚د خاصية '{1}', استخدام قيمة Ø§ÙØªØ±Ø§Ø¶ÙŠØ© '{2}'. بأخذ بالاعتبار ترقية هذا الاساس." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 msgid "" "Warning: platform.txt from core '{0}' misses property '{1}', using default " "value '{2}'. Consider upgrading this core." -msgstr "" +msgstr "تحذير: platform.txt من الاساس '{0}' ÙŠÙØªÙ‚د خاصية '{1}', استخدام قيمة Ø§ÙØªØ±Ø§Ø¶ÙŠØ© '{2}'. خذ بالاعتبار ترقية هذا الاساس." #: ../../../../../app/src/processing/app/Preferences.java:190 msgid "Western Frisian" @@ -2476,7 +2562,7 @@ msgstr "لقد نسيت كتاب Ø§Ù„Ø´ÙŠÙØ±Ø© البرمجية (sketchbook)" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "لديك تغيرات غير محÙوظة!يجب عليك Ø­ÙØ¸ السكتشرز لتمكين هذا الخيار." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2607,6 +2693,12 @@ msgstr "تجاهل الخطأ ÙÙŠ حجم الخط {0}" msgid "name is null" msgstr "الاسم ÙØ§Ø±Øº" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "لا Ù…Ù„ÙØ§Øª ترويسة (.h) موجود ÙÙŠ {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "قائمة-Ø§Ù„Ù…Ù†ÙØ¯ التلسلسي ÙØ§Ø±ØºØ©" @@ -2670,7 +2762,7 @@ msgstr "{0} على {1}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format msgid "{0} pattern is missing" -msgstr "" +msgstr "{0} التنسيق Ù…Ùقود" #: debug/Compiler.java:365 #, java-format @@ -2685,19 +2777,14 @@ msgstr "{0} | أردوينو {1}" #: ../../../processing/app/Base.java:519 #, java-format msgid "{0}: Invalid argument to --pref, should be of the form \"pref=value\"" -msgstr "" +msgstr "{0}: معامل Ùير صالح لأجل --ØªÙØ¶ÙŠÙ„, يجب أن يكون بالشكل \"ØªÙØ¶ÙŠÙ„=قيمة\"" #: ../../../processing/app/Base.java:476 #, java-format msgid "" "{0}: Invalid board name, it should be of the form \"package:arch:board\" or " "\"package:arch:board:options\"" -msgstr "{0}: اسم لوحة غير صالح، يتوجب أن يكون صيغة \"package:arch:board\" أو \"package:arch:board:options\"" - -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" +msgstr "{0}: اسم لوحة غير صالح، يتوجب أن يكون صيغة \"الحزمة:معمار:لوحة\" أو \"الحزمة:معمار:لوحة:اختيارات\"" #: ../../../processing/app/Base.java:507 #, java-format @@ -2709,6 +2796,11 @@ msgstr "{0}: خيار غير صحيح للوحة \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: خيار غير صالح، يتوجب أن يكون بصيغة \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: قيمة غير صالحة للاختيار \"{1}\" للوحة \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" @@ -2727,4 +2819,4 @@ msgstr "{0}: حزمة غير Ù…Ø¹Ø±ÙˆÙØ©" #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format msgid "{0}Install this package{1} to use your {2} board" -msgstr "" +msgstr "{0} تركيب هذه الحزمة {1} لتستخدم {2} لوحتك" diff --git a/arduino-core/src/processing/app/i18n/Resources_ar.properties b/arduino-core/src/processing/app/i18n/Resources_ar.properties index b41b35880f7..943e0929237 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ar.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ar.properties @@ -16,6 +16,11 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Ahmed Moussa , 2020 # alsadi , 2012 # amas89 , 2012 # belal affouri , 2015 @@ -23,8 +28,9 @@ # Federico Fissore , 2015 # JAMAL ELMERABETE , 2014-2015 # Khaled Saleem Baleesh , 2015-2016 +# Mohamed Bloui , 2019 # Mubarak Qahtani , 2015-2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:19+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Arabic (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ar/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ar\nPlural-Forms\: nplurals\=6; plural\=n\=\=0 ? 0 \: n\=\=1 ? 1 \: n\=\=2 ? 2 \: n%100>\=3 && n%100<\=10 ? 3 \: n%100>\=11 && n%100<\=99 ? 4 \: 5;\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2020-04-14 15\:31+0000\nLast-Translator\: Ahmed Moussa \nLanguage-Team\: Arabic (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ar/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ar\nPlural-Forms\: nplurals\=6; plural\=n\=\=0 ? 0 \: n\=\=1 ? 1 \: n\=\=2 ? 2 \: n%100>\=3 && n%100<\=10 ? 3 \: n%100>\=11 && n%100<\=99 ? 4 \: 5;\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(\u064a\u062a\u0637\u0644\u0628 \u0627\u0639\u0627\u062f\u0629 \u062a\u0634\u063a\u064a\u0644 \u0644\u0644\u0623\u0631\u062f\u0648\u064a\u0646\u0648) @@ -50,7 +56,7 @@ (edit\ only\ when\ Arduino\ is\ not\ running)=(\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0644\u062a\u062d\u0631\u064a\u0631 \u0648\u0627\u0644\u0623\u0631\u062f\u0648\u064a\u0646\u0648 \u062a\u0639\u0645\u0644) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -!(legacy)= +(legacy)=\u0627\u0644\u0634\u0643\u0644 \u0627\u0644\u0642\u062f\u064a\u0645 #: ../../../processing/app/helpers/CommandlineParser.java:149 --curdir\ no\ longer\ supported=--curdir \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645 \u0628\u0639\u062f \u0627\u0644\u0622\u0646 @@ -86,7 +92,7 @@ A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=\u0627\u0644\u064 About\ Arduino=\u0639\u0646 \u0627\u0644\u0627\u0631\u062f\u0648\u064a\u0646\u0648 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=\u0627\u0634\u0648\u0644\u064a #: ../../../../../app/src/processing/app/Base.java:1177 Add\ .ZIP\ Library...=\u0627\u0636\u0641 \u0645\u0643\u062a\u0628\u0629 .ZIP ... @@ -104,7 +110,7 @@ Additional\ Boards\ Manager\ URLs\:\ =\u062a\u062f\u0628\u064a\u0631 \u0639\u064 Afrikaans=\u0644\u063a\u0629 \u062c\u0646\u0648\u0628 \u0625\u0641\u0631\u064a\u0642\u064a\u0627\u200f #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=\u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062e\u0628\u0623\u0629 \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629 \u0627\u0644\u0633\u0631\u064a\u0639\u0629 #: ../../../processing/app/Preferences.java:96 Albanian=\u0623\u0644\u0628\u0627\u0646\u064a @@ -149,6 +155,10 @@ Archive\ sketch\ as\:=\u0627\u0631\u0634\u0641\u0629 \u0627\u0644\u0634\u064a\u0 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0627\u0644\u063a\u0627\u0621 \u0627\u0631\u0634\u0641\u0629 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=\u0623\u0631\u0634\u0641\u0629 \u0627\u0644\u0623\u0633\u0627\u0633 \u0627\u0644\u0645\u0628\u0646\u064a (\u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u062e\u0628\u0623\u0629) \u0641\u064a \: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0627\u0631\u0634\u0641\u0629 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u063a\u064a\u062a \u0644\u0623\u0646\u0647\n \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0644\u0627 \u064a\u0645\u0643\u0646 \u062d\u0641\u0638\u0647\u0627 \u0628\u0634\u0643\u0644 \u0645\u0646\u0627\u0633\u0628 @@ -242,7 +252,7 @@ Belarusian=\u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a Board=\u0644\u0648\u062d\u0629 #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0644\u0648\u062d\u0629 #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 @@ -301,14 +311,14 @@ Burn\ Bootloader=\u062b\u0628\u062a \u0645\u062d\u0645\u0644 \u0628\u0631\u0646\ Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=\u064a\u062a\u0645 \u062a\u062b\u0628\u064a\u062a \u0645\u062d\u0645\u0644 \u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0625\u0642\u0644\u0627\u0639 \u0639\u0644\u0649 \u0627\u0644\u0644\u0648\u062d\u0629 (\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0633\u062a\u063a\u0631\u0642 \u0630\u0644\u0643 \u062f\u0642\u064a\u0642\u0629).. #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC \u0644\u0627 \u062a\u062a\u0637\u0627\u0628\u0641 \u0645\u0639 \u0627\u0644\u0645\u0644\u0641\u060c \u0627\u0644\u0645\u0644\u0641 \u062a\u0627\u0644\u0641. \u0631\u0628\u0645\u0627 \u062a\u0643\u060c\u0646 \u0645\u0634\u0643\u0644\u0629 \u0645\u0624\u0642\u062a\u0629\u060c \u062d\u0627\u0648\u0644 \u0644\u0627\u062d\u0642\u0627\u064b. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}=\u064a\u0645\u0643\u0646 \u0627\u0646 \u062a\u0645\u0631\u0631 \u0648\u0627\u062d\u062f\u0629 \u0645\u0646 \: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=\u0644\u0627 \u064a\u0645\u0643\u0646 \u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u0645\u062d\u0631\u0631 \u0627\u0644\u062e\u0627\u0631\u062c\u064a #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -343,7 +353,7 @@ Chinese\ (Taiwan)=\u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u062a\u0627\u064a Chinese\ (Taiwan)\ (Big5)=\u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u062a\u0627\u064a\u0648\u0627\u0646) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=\u0645\u0633\u062d \u0627\u0644\u0645\u062e\u0631\u062c\u0627\u062a #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u0627\u0636\u063a\u0637 \u0644\u0644\u0631\u0624\u064a\u0629 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0648\u0627\u0642\u0639 \u0644\u0644\u0623\u0644\u0648\u0627\u062d \u0627\u0644\u063a\u064a\u0631 \u0631\u0633\u0645\u064a\u0629 \u0627\u0644\u0645\u062f\u0639\u0648\u0645\u0629 @@ -352,10 +362,10 @@ Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u0627\u0636\u063a\u0 Close=\u0625\u063a\u0644\u0627\u0642 #: Editor.java:1208 Editor.java:2749 -Comment/Uncomment=\u0645\u0644\u0627\u062d\u0638\u0629 \\ \u0627\u0644\u063a\u0627\u0621 \u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0629 +Comment/Uncomment=\u0645\u0644\u0627\u062d\u0638\u0629/ \u0627\u0644\u063a\u0627\u0621 \u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0629 #: ../../../../../arduino-core/src/processing/app/I18n.java:30 -!Communication= +Communication=\u0627\u0644\u0627\u062a\u0635\u0627\u0644 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 Compiler\ warnings\:\ =\u062a\u062d\u0630\u064a\u0631\u0627\u062a \u0627\u0644\u0645\u062a\u0631\u062c\u0645\: @@ -387,7 +397,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=\u0644\u0627 \u064a\u0645\u0643\u0646 #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=\u0644\u0627 \u064a\u0645\u0643\u0646 \u0625\u0646\u0634\u0627\u0621 \u0645\u062c\u0644\u062f "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=.\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0646\u0634\u0627\u0621 \u0645\u062c\u0644\u062f \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 @@ -443,6 +453,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u0644\u0627 \u064a\u0645\u0643\u0646 #, java-format Could\ not\ replace\ {0}=\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u0628\u062f\u0627\u0644 {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=\u0644\u0627 \u064a\u0645\u0643\u0646 \u0643\u062a\u0627\u0628\u0629 \u0645\u0644\u0641 \u0627\u0644\u062a\u0641\u0636\u064a\u0644\u0627\u062a\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0631\u0634\u0641\u0629 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 @@ -473,17 +487,23 @@ Data\ Processing=\u0645\u0639\u0627\u0644\u062c\u0629 \u0627\u0644\u0628\u064a\u #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u062a\u0635\u063a\u064a\u0631 \u062d\u062c\u0645 \u0627\u0644\u062e\u0637 + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u062a\u0642\u0644\u064a\u0644 \u0627\u0644\u0628\u0627\u062f\u0626\u0629 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u0625\u0641\u062a\u0631\u0627\u0636\u064a +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u0627\u0644\u0642\u0627\u0644\u0628 \u0627\u0644\u0625\u0641\u062a\u0631\u0627\u0636\u064a + #: EditorHeader.java:314 Sketch.java:591 Delete=\u062d\u0630\u0641 #: ../../../../../arduino-core/src/processing/app/I18n.java:33 -!Device\ Control= +Device\ Control=\u0627\u0644\u062a\u062d\u0643\u0645 \u0628\u0627\u0644\u062c\u0647\u0627\u0632 #: debug/Uploader.java:199 Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=\u0627\u0644\u062c\u0647\u0627\u0632 \u0644\u0627 \u064a\u0633\u062a\u062c\u064a\u0628, \u062a\u0623\u0643\u062f \u0645\u0646 \u0627\u0644\u0645\u0646\u0641\u0630 port \u0627\u0648 \u0642\u0645 \u0628\u0627\u0639\u062f\u0627\u062a \u0627\u0644\u062a\u0634\u063a\u064a\u0644 RESET \u0644\u0644\u0628\u0648\u0631\u062f \u0642\u0628\u0644 \u0627\u0644\u0631\u0641\u0639 @@ -492,7 +512,7 @@ Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ Discard\ all\ changes\ and\ reload\ sketch?=\u062a\u062c\u0627\u0647\u0644 \u0643\u0644 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0648\u0627\u0639\u062f \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 #: ../../../../../arduino-core/src/processing/app/I18n.java:29 -!Display= +Display=\u0639\u0631\u0636 #: ../../../processing/app/Preferences.java:438 Display\ line\ numbers=\u0639\u0631\u0636 \u0623\u0631\u0642\u0627\u0645 \u0627\u0644\u0633\u0637\u0648\u0631 @@ -557,7 +577,7 @@ Dutch\ (Netherlands)=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629 (\u0 Edison\ Help=\u0645\u0633\u0627\u0639\u062f\u0629 \u0644\u0648\u062d\u0629 \u0625\u062f\u064a\u0633\u0648\u0646 #: Editor.java:1130 -Edit=\u0639\u062f\u0644 +Edit=\u062a\u062d\u0631\u064a\u0631 #: Preferences.java:370 Editor\ font\ size\:\ =\u062d\u062c\u0645 \u062e\u0637 \u0627\u0644\u0645\u062d\u0631\u0631\: @@ -594,7 +614,7 @@ Error\ adding\ file=\u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0627\u0636\u06 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format -!Error\ compiling\ for\ board\ {0}.= +Error\ compiling\ for\ board\ {0}.=\u062e\u0637\u0623 \u0641\u064a \u0627\u0644\u062a\u0631\u062c\u0645\u0629 \u0644\u0644\u0648\u062d\u0629 {0}. #: debug/Compiler.java:369 Error\ compiling.=\u062e\u0637\u0623 \u0641\u064a \u0627\u0644\u062a\u0631\u062c\u0645\u0629. @@ -610,6 +630,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=\u0645\u0634\u0643\u0644\u0629 \u064 #, java-format Error\ inside\ Serial.{0}()=Serial.{0}() \u062e\u0637\u0623 \u062f\u0627\u062e\u0644 +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=\u062e\u0637\u0623 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0642\u0627\u0644\u0628 {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -624,6 +648,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u062e\u0637\u0623 \u0641\u064a \u0641\u0 #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u062e\u0637\u0623 \u0641\u064a \u0641\u062a\u062d \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a "{0}". \u062d\u0627\u0648\u0644 \u0646\u0635\u0627\u0626\u062d \u0627\u0644\u0645\u0633\u062a\u0646\u062f \u0627\u0644\u062a\u0627\u0644\u064a http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=\u062e\u0637\u0623 \u062a\u0645\u0631\u064a\u0631 \u0641\u0647\u0631\u0633 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a\: {0}\n\u062d\u0627\u0648\u0644 \u0641\u062a\u062d \u0645\u062f\u064a\u0631 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a \u0644\u062a\u062d\u062f\u064a\u062b \u0641\u0647\u0631\u0633 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=\u062e\u0637\u0623 \u0642\u0631\u0627\u0621\u0629 \u0641\u0647\u0631\u0633 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=\u062d\u062f\u062b \u062e\u0637\u0623 \u0641\u064a \u0642\u0631\u0627\u0621\u0629 /\u0645\u0639\u0627\u0644\u062c\u0629 \u062d\u0632\u0645\u0629 \u0627\u0644\u0645\u062c\u0644\u062f \u0627\u0644\u0645\u062f\u062e\u0644 \: {0}\n(\u0631\u0628\u0645\u0627 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0627\u0644\u062a\u0635\u0627\u0631\u064a\u062d \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629\u061f) + #: Preferences.java:277 Error\ reading\ preferences=\u062e\u0637\u0623 \u0641\u064a \u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u062e\u0635\u0627\u0626\u0635 @@ -634,7 +670,7 @@ Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ r #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:245 -!Error\ running\ post\ install\ script= +Error\ running\ post\ install\ script=\u062e\u0637\u0623 \u0641\u064a \u062a\u0634\u063a\u064a\u0644\u0633\u0643\u0631\u064a\u0628\u062a \u0627\u0644\u062a\u0631\u0643\u064a\u0628 \u0639\u0646 \u0628\u0639\u062f #: ../../../cc/arduino/packages/DiscoveryManager.java:25 Error\ starting\ discovery\ method\:\ =\u0627\u0644\u0634\u0631\u0648\u0639 \u0641\u064a \u062e\u0637\u0623 \u0637\u0631\u064a\u0642\u0629 \u0627\u0643\u062a\u0634\u0627\u0641\: @@ -649,6 +685,9 @@ Error\ while\ burning\ bootloader.=\u062d\u062f\u062b \u062e\u0637\u0623 \u062e\ #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u062e\u0637\u0623 \u0639\u0646\u062f \u062d\u0631\u0642 \u0645\u062d\u0645\u0644 \u0627\u0644\u0625\u0642\u0644\u0627\u0639\: '{0}' \u0645\u0639\u0627\u0645\u0644 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0645\u0641\u0642\u0648\u062f +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=\u062e\u0637\u0623 \u0641\u064a \u0646\u0633\u062e \u0627\u0644\u0628\u0648\u062a-\u0644\u0648\u062f\u0631\: \u0641\u0636\u0644\u0627\u064b\u060c \u0623\u062e\u062a\u0627\u0631 \u0645\u0646\u0641\u0630 \u062a\u0633\u0644\u0633\u0644\u064a + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=\u062e\u0637\u0623 \u0639\u0646\u062f \u0627\u0644\u062a\u0631\u062c\u0645\u0629\: '{0}' \u0645\u0639\u0627\u0645\u0644 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0645\u0641\u0642\u0648\u062f @@ -677,25 +716,22 @@ Error\ while\ verifying/uploading=\u062e\u0637\u0623 \u0623\u062b\u0646\u0627\u0 #: Preferences.java:93 Estonian=Eesti -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u0627\u0644\u0623\u0633\u062a\u0648\u0646\u064a\u0629 (\u0625\u0633\u062a\u0648\u0646\u064a\u0627) - #: Editor.java:516 Examples=\u0623\u0645\u062b\u0644\u0629 #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=\u0623\u0645\u062b\u0644\u0629 \u0639\u0644\u0649 \u0623\u064a \u0644\u0648\u062d\u0629 #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}=\u0623\u0645\u062b\u0644\u0629 \u0639\u0644\u0649 {0} #: ../../../../../app/src/processing/app/Base.java:1244 Examples\ from\ Custom\ Libraries=\u0623\u0645\u062b\u0644\u0629 \u0645\u0646 \u0645\u0643\u062a\u0628\u0627\u062a \u0645\u062e\u0635\u0635\u0629 #: ../../../../../app/src/processing/app/Base.java:1329 -!Examples\ from\ Other\ Libraries= +Examples\ from\ Other\ Libraries=\u0623\u0645\u062b\u0644\u0629 \u0645\u0646 \u0645\u0643\u062a\u0628\u0627\u062a \u0623\u062e\u0631\u0649 #: ../../../../../app/src/processing/app/Editor.java:753 Export\ canceled,\ changes\ must\ first\ be\ saved.=\u0623\u0644\u063a\u064a \u0627\u0644\u062a\u0635\u062f\u064a\u0631\u060c \u064a\u062c\u0628 \u062d\u0641\u0638 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0623\u0648\u0644\u0627. @@ -709,10 +745,10 @@ Failed\ to\ open\ sketch\:\ "{0}"=\u0641\u0634\u0644 \u0641\u064a \u0641\u062a\u #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=\u0641\u0634\u0644 \u0641\u064a \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0633\u0645\u064a\u0629 \u0645\u0646 "{0}" \u0625\u0644\u0649 "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=\u0641\u0634\u0644 \u0641\u064a \u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u0645\u064a\u0629 \u0645\u062c\u0644\u062f \u0627\u0644\u0633\u0643\u062a\u0634\u0631\u0632 #: Editor.java:491 File=\u0645\u0644\u0641 @@ -781,7 +817,7 @@ Georgian=\u0627\u0644\u062c\u0648\u0631\u062c\u064a\u0629 German=Deutsch #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=\u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0644\u0648\u062d\u0629 #: Editor.java:1054 Getting\ Started=\u0627\u0644\u0634\u0631\u0648\u0639 \u0641\u064a \u0627\u0644\u0628\u062f\u0621 @@ -825,13 +861,13 @@ How\ very\ Borges\ of\ you=\u0645\u0627 \u0647\u0630\u0647 \u0627\u0644\u0633\u0 Hungarian=Magyar #: ../../../../../app/src/processing/app/Base.java:1319 -!INCOMPATIBLE= +INCOMPATIBLE=\u063a\u064a\u0631 \u0645\u062a\u0648\u0627\u0641\u0642 #: FindReplace.java:96 Ignore\ Case=\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u062d\u0627\u0644\u0629 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u062a\u062c\u0627\u0647\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u0627\u0644\u062e\u0627\u0637\u0626 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u0630\u0627\u062a \u0627\u0644\u0623\u0633\u0645 \u0627\u0644\u063a\u064a\u0631 \u0635\u0627\u0644\u062d #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0630\u0627\u062a \u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u062e\u0627\u0637\u0626 @@ -846,8 +882,11 @@ Include\ Library=\u0625\u062f\u0631\u0627\u062c \u0645\u0643\u062a\u0628\u0629 #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=\u062e\u0637\u0623 \u0645\u062c\u0644\u062f \u0627\u0644\u062a\u062b\u0628\u064a\u062a \u0644\u0628\u064a\u0626\u0629 \u0627\u0644\u062a\u0637\u0648\u064a\u0631 +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u0632\u064a\u0627\u062f\u0629 \u062d\u062c\u0645 \u0627\u0644\u062e\u0637 + #: Editor.java:1216 Editor.java:2757 -Increase\ Indent=\u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629 +Increase\ Indent=\u0632\u064a\u0627\u062f\u0629 \u0647\u0627\u0645\u0634 \u0627\u0644\u0628\u062f\u0627\u064a\u0629 #: Preferences.java:101 Indonesian=Bahasa Indonesia @@ -872,9 +911,9 @@ Installed=\u062a\u0645 \u0627\u0644\u062a\u0646\u0635\u064a\u0628 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=\u062c\u0627\u0631\u064a \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0623\u0644\u0648\u0627\u062d... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=\u062c\u0627\u0631\u064a \u062a\u062b\u0628\u064a\u062a \u0645\u0643\u062a\u0628\u0629\:{0} +Installing\ library\:\ {0}\:{1}=\u062c\u0627\u0631\u064a \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0645\u0643\u062a\u0628\u0629\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -895,6 +934,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u0627\u0644\u0639\u062b\u0648\u0631 \u0 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=\u0625\u0642\u062a\u0628\u0627\u0633 \u063a\u064a\u0631 \u0635\u062d\u064a\u062d\: \u0644\u0645 \u064a\u0639\u062b\u0631 \u0639\u0644\u0649 [{0}] \u0631\u0645\u0632 \u0625\u063a\u0644\u0627\u0642 +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=\u0627\u0644\u0635\u064a\u063a\u0629 '{0}' \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629 , \u0645\u0646 \u0627\u062c\u0644 \u0645\u0643\u062a\u0628\u0629 \: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=\u0646\u0633\u062e\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629 {0} + #: Preferences.java:102 Italian=Italiano @@ -902,7 +950,7 @@ Italian=Italiano Japanese=Japanese #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646 #: Preferences.java:104 Korean=Korean @@ -919,9 +967,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=\u0645\u06 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=\u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u0644\u0627 \u062a\u0633\u062a\u0637\u064a\u0639 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0643\u0644\u0627 \u0627\u0644\u0645\u062c\u0644\u062f\u064a\u0646 'src' \u0648 'utility'. \u062a\u062d\u0642\u0642 \u062c\u064a\u062f\u0627 \u0645\u0646 {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=\u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u0645\u062b\u0628\u062a\u0647 \u0645\u0633\u0628\u0642\u0627\: {0} \u0627\u0635\u062f\u0627\u0631 {1} +Library\ is\ already\ installed\:\ {0}\:{1}=\u062a\u0645 \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u0631\u0642\u0645 \u0627\u0644\u0633\u0637\u0631\: @@ -934,7 +982,7 @@ Loading\ configuration...=\u062c\u0627\u0631\u064a \u062a\u062d\u0645\u064a\u064 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format -!Looking\ for\ recipes\ like\ {0}*{1}= +Looking\ for\ recipes\ like\ {0}*{1}=\u062c\u0627\u0631 \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0627\u062c\u0631\u0627\u0621\u0627\u062a \u0645\u062b\u0644 {0}*{1} #: ../../../processing/app/Sketch.java:1684 Low\ memory\ available,\ stability\ problems\ may\ occur.=\u0630\u0627\u0643\u0631\u0629 \u0645\u0646\u062e\u0641\u0636\u0629 \u0645\u062a\u0628\u0642\u064a\u0629\u060c \u0645\u0634\u0627\u0643\u0644 \u0639\u062f\u0645 \u0625\u0633\u062a\u0642\u0631\u0627\u0631 \u0642\u062f \u062a\u062d\u062f\u062b. @@ -981,7 +1029,7 @@ Must\ specify\ exactly\ one\ sketch\ file=\u064a\u062c\u0628 \u062a\u062d\u062f\ Name\ for\ new\ file\:=\u0627\u0633\u0645 \u0644\u0645\u0644\u0641 \u062c\u062f\u064a\u062f\: #: ../../../../../app//src/processing/app/Editor.java:2809 -!Native\ serial\ port,\ can't\ obtain\ info= +Native\ serial\ port,\ can't\ obtain\ info=\u064a\u062a\u0639\u0630\u0631 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u064a \u0645\u0639\u0644\u0648\u0645\u0627\u062a , \u0645\u0646 \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a \u0627\u0644\u0627\u0635\u0644\u064a #: ../../../processing/app/Preferences.java:149 Nepali=\u0627\u0644\u0646\u064a\u0628\u0627\u0644\u064a\u0629 @@ -990,10 +1038,10 @@ Nepali=\u0627\u0644\u0646\u064a\u0628\u0627\u0644\u064a\u0629 Network=\u0634\u0628\u0643\u0629 #: ../../../../../app//src/processing/app/Editor.java:2804 -!Network\ port,\ can't\ obtain\ info= +Network\ port,\ can't\ obtain\ info=\u0645\u0646\u0641\u0630 \u0627\u0644\u0634\u0628\u0643\u0629\u060c \u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u064a \u0645\u0639\u0644\u0648\u0645\u0627\u062a #: ../../../../../app/src/processing/app/Editor.java:65 -Network\ ports=\u0645\u0646\u0641\u0630 \u0627\u0644\u0634\u0628\u0643\u0629 +Network\ ports=\u0645\u0646\u0627\u0641\u0630 \u0627\u0644\u0634\u0628\u0643\u0629 #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 Network\ upload\ using\ programmer\ not\ supported=\u0627\u0644\u0631\u0641\u0639 \u0644\u0644\u0634\u0628\u0643\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0645\u0628\u0631\u0645\u062c\u0629 \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645 @@ -1133,14 +1181,14 @@ Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.= Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=\u0627\u0644\u0631\u062c\u0627\u0621 \u0625\u0633\u062a\u064a\u0631\u0627\u062f \u0645\u0643\u062a\u0628\u0629 Wire \u0645\u0646 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 > \u0627\u0633\u062a\u064a\u0631\u0627\u062f \u0645\u0643\u062a\u0628\u0629 #: ../../../../../app//src/processing/app/Editor.java:2799 -!Please\ select\ a\ port\ to\ obtain\ board\ info= +Please\ select\ a\ port\ to\ obtain\ board\ info=\u0641\u0636\u0644\u0627\u064b\u060c \u062d\u062f\u062f \u0627\u0644\u0645\u0646\u0641\u0630 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0644\u0648\u062d\u0629 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=\u0627\u0644\u0631\u062c\u0627\u0621 \u062a\u062d\u062f\u064a\u062f \u0645\u0628\u0631\u0645\u062c\u0629 \u0645\u0646 \u0642\u0627\u0626\u0645\u0629 \u0623\u062f\u0648\u0627\u062a->\u0627\u0644\u0645\u0628\u0631\u0645\u062c\u0629 #: ../../../../../app/src/processing/app/Editor.java:2613 -!Plotter\ not\ available\ while\ serial\ monitor\ is\ open= +Plotter\ not\ available\ while\ serial\ monitor\ is\ open=\u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u062a\u062e\u0637\u064a\u0637\u064a \u063a\u064a\u0631 \u0645\u062a\u0627\u062d \u0645\u0627\u062f\u0627\u0645 \u0627\u0644\u0645\u0631\u0627\u0642\u0628 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a \u0645\u0641\u062a\u0648\u062d. #: Preferences.java:110 Polish=Polish @@ -1220,7 +1268,7 @@ Progress\ {0}=\u062a\u0642\u062f\u0645 {0} Quit=\u062e\u0631\u0648\u062c #: ../../../../../app/src/processing/app/Base.java:1233 -!RETIRED= +RETIRED=\u063a\u064a\u0631 \u0645\u0633\u062a\u062e\u062f\u0645 #: ../../../../../arduino-core/src/processing/app/I18n.java:26 Recommended=\u0645\u0633\u062a\u062d\u0633\u0646 @@ -1234,9 +1282,9 @@ Reference=\u0645\u0631\u062c\u0639 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u062d\u0630\u0641 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=\u062c\u0627\u0631\u064a \u062d\u0630\u0641 \u0627\u0644\u0645\u0643\u062a\u0628\u0629\: {0} +Removing\ library\:\ {0}\:{1}=\u062d\u0630\u0641 \u0627\u0644\u0645\u0643\u062a\u0628\u0629\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1262,7 +1310,10 @@ Replace\ the\ existing\ version\ of\ {0}?=\u0627\u0633\u062a\u0628\u062f\u0627\u Replace\ with\:=\u0627\u0633\u062a\u0628\u062f\u0644 \u0628\u0640\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 -!Retired= +Retired=\u063a\u064a\u0631 \u0645\u0633\u062a\u062e\u062f\u0645 + +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=\ \u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631\u0639\u0644\u064a \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a\u060c \u0644\u0645 \u0644\u0627 \u062a\u062d\u0627\u0648\u0644 \u0627\u0644\u0631\u0641\u0639 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u0646\u0641\u0630 \u062a\u0633\u0644\u0633\u0644\u064a \u0622\u062e\u0631 \u061f #: Preferences.java:113 Romanian=Romanian @@ -1308,7 +1359,7 @@ Search\ all\ Sketch\ Tabs=\u0627\u0628\u062d\u062b \u0641\u064a \u0643\u0644 \u0 Select\ (or\ create\ new)\ folder\ for\ sketches...=\u0627\u062e\u062a\u064a\u0627\u0631(\u0627\u0648 \u0627\u0646\u0634\u0627\u0621 \u062c\u062f\u064a\u062f) \u0644\u0645\u062c\u0644\u062f \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 #: Editor.java:1198 Editor.java:2739 -Select\ All=\u0636\u0644\u0644 \u0627\u0644\u0643\u0644 +Select\ All=\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0643\u0644 #: Base.java:2636 Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add=\u0627\u062e\u062a\u0631 \u0645\u0644\u0641 \u0645\u0636\u063a\u0648\u0637 "zip" \u0627\u0648 \u0645\u062c\u0644\u062f \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u0627\u0644\u0630\u064a \u062a\u0631\u063a\u0628 \u0628\u0625\u0636\u0627\u0641\u062a\u0647 @@ -1342,29 +1393,33 @@ Sensors=\u062d\u0633\u0627\u0633\u0627\u062a Serial\ Monitor=\u0645\u0631\u0627\u0642\u0628 \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a "\u0633\u064a\u0631\u064a\u0627\u0644 \u0628\u0648\u0631\u062a" #: ../../../../../app/src/processing/app/Editor.java:804 -!Serial\ Plotter= +Serial\ Plotter=\u0645\u062e\u0637\u0637 \u062a\u0633\u0644\u0633\u0644\u064a #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=\u062c\u0647\u0627\u0632 \u0627\u0644\u0639\u0631\u0636 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645 \u0639\u0644\u0649 \u0645\u0646\u0627\u0641\u0630 \u0627\u0644\u0634\u0628\u0643\u0629 \u0645\u062b\u0644 {0} \u0644\u0640 {1} \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0625\u0635\u062f\u0627\u0631 #: ../../../../../app/src/processing/app/Editor.java:2516 -!Serial\ monitor\ not\ available\ while\ plotter\ is\ open= +Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u0627\u0644\u0631\u0633\u0645 \u0627\u0644\u062a\u062e\u0637\u064a\u0637\u064a \u063a\u064a\u0631 \u0645\u062a\u0627\u062d \u0645\u0627\u062f\u0627\u0645 \u0627\u0644\u0645\u0631\u0627\u0642\u0628 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a \u0645\u0641\u062a\u0648\u062d. #: Serial.java:194 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a ''{0}'' \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f. \u0647\u0644 \u0642\u0645\u062a \u0628\u0625\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u0635\u062d\u064a\u062d \u0645\u0646 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u062f\u0648\u0627\u062a > \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=\u0627\u0644\u0645\u0646\u0627\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a\u0629 \u063a\u064a\u0631 \u0645\u062d\u062f\u062f\u0629 + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a {0} \u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u064a\u0647.\n\u062d\u0627\u0648\u0644 \u0627\u0644\u0631\u0641\u0639 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u0646\u0641\u0630 \u062a\u0644\u0633\u0644\u0633\u064a \u0622\u062e\u0631 ? +Serial\ port\ {0}\ not\ found.=\u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a {0} \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=\u0627\u0644\u0645\u0646\u0627\u0641\u0630 \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a\u0629 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 #, java-format -!Setting\ build\ path\ to\ {0}= +Setting\ build\ path\ to\ {0}=\u062c\u0627\u0631 \u0627\u0644\u0627\u0639\u062f\u0627\u062f \u0627\u0644\u064a \u0627\u0644\u0645\u0633\u0627\u0631 {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 Settings=\u0623\u0639\u062f\u0627\u062f\u0627\u062a @@ -1375,6 +1430,9 @@ Settings\ issues=\u0636\u0628\u0637 \u0627\u0644\u0645\u0633\u0627\u0626\u0644 #: Editor.java:641 Show\ Sketch\ Folder=\u0627\u0639\u0631\u0636 \u0645\u062c\u0644\u062f \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=\u0623\u0639\u0631\u0636 \u0627\u0644\u0648\u0642\u062a \u0648\u0627\u0644\u062a\u0627\u0631\u064a\u062e + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u0639\u0631\u0636 \u0627\u0644\u0645\u062e\u0631\u062c\u0627\u062a \u062e\u0644\u0627\u0644\: @@ -1420,10 +1478,10 @@ Sketchbook\ path\ not\ defined=\u0645\u0633\u0627\u0631 \u0643\u062a\u0627\u0628 #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format -!Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:= +Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=\u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0645\u0641\u0647\u0631\u0633 \u0627\u0644\u0645\u062a\u0634\u0627\u0631\u0643 {0}, \u062a\u0641\u0633\u064a\u0631 \u0627\u0644\u062e\u0637\u0623 \u0627\u0644\u0630\u064a \u062d\u062f\u062b #: ../../../../../app/src/processing/app/Preferences.java:185 -Slovak=\u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629 +Slovak=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629 #: ../../../processing/app/Preferences.java:152 Slovenian=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0633\u0644\u0648\u0641\u064a\u0646\u064a\u0629 @@ -1436,7 +1494,7 @@ Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ ske #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format -!Sorry,\ the\ folder\ "{0}"\ already\ exists.= +Sorry,\ the\ folder\ "{0}"\ already\ exists.=\u0639\u0641\u0648\u0627\u064b\u060c \u0647\u0630\u0627 \u0627\u0644\u0645\u062c\u0644\u062f "{0}" \u0645\u0648\u062c\u0648\u062f \u0645\u0633\u0628\u0642\u0627\u064b. #: Preferences.java:115 Spanish=Spanish @@ -1463,7 +1521,7 @@ Talossan=\u062a\u0627\u0644\u0648\u0633\u0627\u0646 Tamil=Tamil #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=\u0644\u0641\u0629 \u0627\u0644\u062a\u064a\u0644\u062c\u0648 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 Thai=\u0627\u0644\u062a\u0627\u064a\u0644\u0627\u0646\u062f\u064a\u0629 @@ -1488,18 +1546,22 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=\u0627\u0644\u0640 Serve The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=The Udp class \u0623\u0639\u064a\u062f \u062a\u0633\u0645\u064a\u062a\u0647 \u0627\u0644\u0649 EthernetUdp. #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -!The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.= +The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=\u0627\u0644\u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629 \u062a\u062d\u062a\u0627\u062c \u0627\u0644\u0627\u0633\u0627\u0633 '{0}' \u0648\u0647\u0648 \u063a\u064a\u0631 \u0645\u062a\u0648\u0641\u0631 #: Editor.java:2147 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u0627\u0644\u0645\u0644\u0641 "{0}" \u0628\u062d\u0627\u062c\u0629 \u0644\u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u062f\u0627\u062e\u0644 \n"{1}" \u0645\u062c\u0644\u062f \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u0645\u0633\u0645\u0649 \n \u0623\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u062c\u0644\u062f \u0648\u0646\u0642\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u0648\u0627\u0644\u0645\u062a\u0628\u0627\u0639\u0629\u061f +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u0627\u0644\u0645\u0643\u062a\u0628\u0629 "{0}" \u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u0627.\n\u0627\u0633\u0645 \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u064a\u062c\u0628 \u064a\u0628\u062f\u0623 \u0628\u062d\u0631\u0641 \u060c \u0627\u0648 \u0631\u0642\u0645 \u0645\u062a\u0628\u0648\u0639 \u0628\u0623\u062d\u0631\u0641\n\u0627\u0648 \u0627\u0631\u0642\u0627\u0645\u0627 \u060c \u0627\u0648 \u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0634\u0631\u0637\u0629 - \u060c \u0627\u0648 \u0627\u0644\u0634\u0631\u0637\u0647 \u0627\u0644\u0633\u0641\u0644\u064a\u0629 _ . \u064a\u062c\u0628 \u0623\u0644\u0627 \u064a\u0632\u064a\u062f \u0627\u0644\u0637\u0648\u0644 \u0639\u0646 63 \u062d\u0631\u0641\u0627. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0627\u0644\u0645\u0643\u062a\u0628\u0629 "{0}" \u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u0627.\n\u0627\u0633\u0645 \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u064a\u062c\u0628 \u0627\u0646 \u064a\u0643\u0648\u0646 \u062d\u0631\u0648\u0641 \u0648\u0627\u0631\u0642\u0627\u0645 \u0641\u0642\u0637.\n(\u0623\u062d\u0631\u0641 \u0622\u0633\u0643\u064a "ASCII " \u0641\u0642\u0637 \u0648\u0644\u0627 \u064a\u0645\u0643\u0646 \u0648\u0636\u0639 \u0641\u0631\u0627\u063a\u0627\u062a \u0648\u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0644\u0628\u062f\u0621 \u0641\u064a \u0631\u0642\u0645) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0631\u0626\u064a\u0633\u064a \u0644\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0633\u062a\u062e\u062f\u0645 \u062a\u0645\u062f\u062f #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=\u0627\u0644\u0627\u0633\u0645 \u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0646 \u064a\u0628\u062f\u0623 \u0628\u0646\u0642\u0637\u0629. @@ -1513,13 +1575,13 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format -!The\ sketch\ already\ contains\ a\ file\ named\ "{0}"= +The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=\u0627\u0644\u0633\u0643\u062a\u0634 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0645\u0644\u0641 \u0645\u0633\u0628\u0642\u0627\u064b \u0628\u0627\u0633\u0645 "{0}" #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u0645\u062c\u0644\u062f \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u062e\u062a\u0641\u0649.\n\u062d\u0627\u0648\u0644 \u0627\u0639\u0627\u062f\u0629 \u062d\u0641\u0638\u0647 \u0641\u064a \u0646\u0641\u0633 \u0627\u0644\u0645\u0643\u0627\u0646,\n\u0648\u0644\u0643\u0646 \u0633\u064a\u062a\u0645 \u0641\u0642\u062f\u0627\u0646 \u0627\u0644\u0643\u0648\u062f. -#: ../../../processing/app/Sketch.java:2028 -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.=\u0627\u0633\u0645 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u062a\u0648\u062c\u0628 \u062a\u0639\u062f\u064a\u0644\u0647. \u0623\u0633\u0645\u0627\u0621 \u0627\u0644\u0634\u064a\u0641\u0631\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649\n\u062d\u0631\u0648\u0641 \u0648\u0623\u0631\u0642\u0627\u0645 \u062a\u0631\u0645\u064a\u0632 \u0627\u0644\u0622\u0633\u0643\u064a (\u0644\u0643\u0646 \u0644\u0627\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0628\u062f\u0623 \u0628\u0631\u0642\u0645). \u0648\u064a\u062a\u0648\u062c\u0628 \u0623\u064a\u0636\u0627 \u0623\u0646\n\u064a\u0643\u0648\u0646 \u0637\u0648\u0644\u0647 \u0623\u0642\u0644 \u0645\u0646 64 \u0631\u0645\u0632\u0627. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u0644\u0642\u062f \u062a\u0645 \u062a\u0639\u062f\u064a\u0644 \u0623\u0633\u0645 \u0627\u0644\u0634\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629.\n\u0623\u0633\u0645 \u0627\u0644\u0634\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u064a\u062c\u0628 \u0627\u0646 \u064a\u0628\u062f\u0623 \u0628\u062d\u0631\u0641 \u0627\u0648 \u0631\u0642\u0645 \u0645\u062a\u0628\u0648\u0639 \u0628\u062d\u0631\u0641.\n\u0627\u0648 \u0627\u0631\u0642\u0627\u0645\u0627 \u060c \u0627\u0648 \u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0634\u0631\u0637\u0629 - \u060c \u0627\u0648 \u0627\u0644\u0634\u0631\u0637\u0647 \u0627\u0644\u0633\u0641\u0644\u064a\u0629 _ . \u064a\u062c\u0628 \u0623\u0644\u0627 \u064a\u0632\u064a\u062f \u0627\u0644\u0637\u0648\u0644 \u0639\u0646 63 \u062d\u0631\u0641\u0627. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u0645\u062c\u0644\u062f \u0643\u062a\u0627\u0628 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 "\u0627\u0644\u0633\u0643\u062a\u0634" \u0644\u0645 \u064a\u0639\u062f \u0645\u0648\u062c\u0648\u062f\u0627.\n\u0633\u064a\u0646\u062a\u0642\u0644 \u0627\u0644\u0627\u0631\u062f\u0648\u064a\u0646\u0648 \u0627\u0644\u0649 \u0645\u0643\u0627\u0646 \u0643\u062a\u0627\u0628 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a,\n\u0648\u0627\u0646\u0634\u0627\u0621 \u0645\u062c\u0644\u062f \u062c\u062f\u064a\u062f \u0627\u0630\u0627 \u0643\u0627\u0646\n\u0636\u0631\u0648\u0631\u064a\u0627\u064b. \u0627\u0644\u0627\u0631\u062f\u0648\u064a\u0646\u0648 \u0633\u064a\u0648\u0642\u0641 \u0627\u0644\u062d\u062f\u064a\u062b \n\u0639\u0646 \u0646\u0641\u0633\u0647. @@ -1527,6 +1589,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=\u0645\u062c\u0644\u062f \u0643\u062a\u0627\u0628 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u0645\u062d\u062f\u062f \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0646\u0633\u062e\u062a\u0643 \u0645\u0646 \u0645\u0646\u0635\u0629 \u0627\u0644\u062a\u0637\u0648\u064a\u0631.\n\u0627\u0644\u0631\u062c\u0627\u0621 \u0625\u062e\u062a\u064a\u0627\u0631 \u0645\u062c\u0644\u062f \u0622\u062e\u0631 \u0644\u0643\u062a\u0627\u0628 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =\u0627\u0644\u0634\u0643\u0644\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=\u0647\u0630\u0647 \u0627\u0644\u0645\u0643\u062a\u0628\u0629 \u063a\u064a\u0631 \u0645\u062f\u0631\u062c\u0629 \u0641\u064a \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a. \u0644\u0646 \u062a\u0633\u062a\u0637\u064a\u0639 \u0625\u0639\u0627\u062f\u0629 \u062a\u062b\u0628\u064a\u062a\u0647\u0627 \u0645\u0646 \u0647\u0646\u0627.\n\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u062d\u0630\u0641\u0647\u0627\u061f @@ -1590,7 +1655,7 @@ Unable\ to\ find\ {0}\ in\ {1}=\u0644\u0645 \u064a\u0639\u062b\u0631 \u0639\u064 Unable\ to\ open\ serial\ monitor=\u063a\u064a\u0631 \u0642\u0627\u062f\u0631 \u0639\u0644\u0649 \u0641\u062a\u062d \u0645\u0631\u0627\u0642\u0628 \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0627\u0633\u0644\u064a #: ../../../../../app/src/processing/app/Editor.java:2709 -!Unable\ to\ open\ serial\ plotter= +Unable\ to\ open\ serial\ plotter=\u063a\u064a\u0631 \u0642\u0627\u062f\u0631 \u0639\u0644\u0649 \u0641\u062a\u062d \u0645\u0631\u0627\u0642\u0628 \u0627\u0644\u0645\u0646\u0641\u0630 \u0627\u0644\u062a\u0633\u0627\u0633\u0644\u064a #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 @@ -1604,10 +1669,10 @@ Undo=\u062a\u0631\u0627\u062c\u0639 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format -!Unhandled\ type\ {0}\ in\ context\ key\ {1}= +Unhandled\ type\ {0}\ in\ context\ key\ {1}=\u0627\u0644\u0646\u0648\u0639 {0} \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0627\u0644\u0633\u064a\u0627\u0642 \u0631\u0642\u0645 {1} #: ../../../../../app//src/processing/app/Editor.java:2818 -!Unknown\ board= +Unknown\ board=\u0644\u0648\u062d\u0629 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641\u0629 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -1648,7 +1713,7 @@ Upload=\u0631\u0641\u0639 Upload\ Using\ Programmer=\u0631\u0641\u0639 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0645\u0628\u0631\u0645\u062c\u0629 #: ../../../../../app//src/processing/app/Editor.java:2814 -!Upload\ any\ sketch\ to\ obtain\ it= +Upload\ any\ sketch\ to\ obtain\ it=\u062d\u0645\u0644 \u0623\u064a \u0633\u0643\u062a\u0634 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u064a\u0647 #: Editor.java:2403 Editor.java:2439 Upload\ canceled.=\u0627\u0644\u063a\u064a \u0627\u0644\u062a\u062d\u0645\u064a\u0644 @@ -1697,7 +1762,7 @@ Verify/Compile=\u062a\u062d\u0642\u0642/\u062a\u0631\u062c\u0645 Verifying\ and\ uploading...=\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0642\u0642 \u0648\u0627\u0644\u0631\u0641\u0639... #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 -!Verifying\ archive\ integrity...= +Verifying\ archive\ integrity...=\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0633\u0644\u0627\u0645\u0629 \u0627\u0644\u0623\u0631\u0634\u064a\u0641 ... #: ../../../../../app/src/processing/app/Base.java:454 Verifying...=\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0642\u0642... @@ -1739,7 +1804,7 @@ Warning\:\ This\ core\ does\ not\ support\ exporting\ sketches.\ Please\ conside #: ../../../cc/arduino/utils/ArchiveExtractor.java:197 #, java-format -!Warning\:\ file\ {0}\ links\ to\ an\ absolute\ path\ {1}= +Warning\:\ file\ {0}\ links\ to\ an\ absolute\ path\ {1}=\u062a\u062d\u0630\u064a\u0631\: \u0627\u0644\u0645\u0644\u0641 {0} \u064a\u0634\u064a\u0631 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0631 \u0627\u0644\u0645\u062c\u0631\u062f {1} #: ../../../cc/arduino/contributions/packages/ContributionsIndexer.java:133 Warning\:\ forced\ trusting\ untrusted\ contributions=\u062a\u062d\u0630\u064a\u0631\: \u0641\u0631\u0636 \u0627\u0644\u0648\u062b\u0648\u0642 \u0639\u0644\u0649 \u0645\u0633\u0627\u0647\u0645\u0627\u062a \u063a\u064a\u0631 \u0645\u0648\u062b\u0648\u0642\u0629 @@ -1754,10 +1819,10 @@ Warning\:\ non\ trusted\ contribution,\ skipping\ script\ execution\ ({0})=\u062 #: ../../../processing/app/debug/LegacyTargetPlatform.java:158 #, java-format -!Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.= +Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.=\u062a\u062d\u0630\u064a\u0631\: platform.txt \u0645\u0646 \u0627\u0644\u0627\u0633\u0627\u0633 '{0}' \u064a\u0641\u062a\u0642\u062f \u062e\u0627\u0635\u064a\u0629 '{1}', \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0642\u064a\u0645\u0629 \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 '{2}'. \u0628\u0623\u062e\u0630 \u0628\u0627\u0644\u0627\u0639\u062a\u0628\u0627\u0631 \u062a\u0631\u0642\u064a\u0629 \u0647\u0630\u0627 \u0627\u0644\u0627\u0633\u0627\u0633. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 -!Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.= +Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.=\u062a\u062d\u0630\u064a\u0631\: platform.txt \u0645\u0646 \u0627\u0644\u0627\u0633\u0627\u0633 '{0}' \u064a\u0641\u062a\u0642\u062f \u062e\u0627\u0635\u064a\u0629 '{1}', \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0642\u064a\u0645\u0629 \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 '{2}'. \u062e\u0630 \u0628\u0627\u0644\u0627\u0639\u062a\u0628\u0627\u0631 \u062a\u0631\u0642\u064a\u0629 \u0647\u0630\u0627 \u0627\u0644\u0627\u0633\u0627\u0633. #: ../../../../../app/src/processing/app/Preferences.java:190 Western\ Frisian=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629 \u0627\u0644\u063a\u0631\u0628\u064a\u0629 @@ -1787,7 +1852,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=\u0644\u0642\u062f \u0646\u0633\u064a\u062a \u0643\u062a\u0627\u0628 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 (sketchbook) #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=\u0644\u062f\u064a\u0643 \u062a\u063a\u064a\u0631\u0627\u062a \u063a\u064a\u0631 \u0645\u062d\u0641\u0648\u0638\u0629\!\u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u062d\u0641\u0638 \u0627\u0644\u0633\u0643\u062a\u0634\u0631\u0632 \u0644\u062a\u0645\u0643\u064a\u0646 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=\u0644\u0642\u062f \u0636\u063a\u0637\u062a \u0639\u0644\u0649 {0} \u0648\u0644\u0645 \u064a\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0623\u064a \u0634\u064a\u0621. \u0647\u0644 \u062a\u062e\u062a\u0627\u0631 \u062e\u0637 \u0627\u0644\u0646\u0647\u0627\u064a\u0629\u061f @@ -1861,6 +1926,11 @@ ignoring\ invalid\ font\ size\ {0}=\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u #: Editor.java:936 Editor.java:943 name\ is\ null=\u0627\u0644\u0627\u0633\u0645 \u0641\u0627\u0631\u063a +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=\u0644\u0627 \u0645\u0644\u0641\u0627\u062a \u062a\u0631\u0648\u064a\u0633\u0629 (.h) \u0645\u0648\u062c\u0648\u062f \u0641\u064a {0} + #: Editor.java:932 serialMenu\ is\ null=\u0642\u0627\u0626\u0645\u0629-\u0627\u0644\u0645\u0646\u0641\u062f \u0627\u0644\u062a\u0644\u0633\u0644\u0633\u064a \u0641\u0627\u0631\u063a\u0629 @@ -1910,7 +1980,7 @@ version\ {0}=\u0627\u0644\u0646\u0633\u062e\u0629 {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format -!{0}\ pattern\ is\ missing= +{0}\ pattern\ is\ missing={0} \u0627\u0644\u062a\u0646\u0633\u064a\u0642 \u0645\u0641\u0642\u0648\u062f #: debug/Compiler.java:365 #, java-format @@ -1922,15 +1992,11 @@ version\ {0}=\u0627\u0644\u0646\u0633\u062e\u0629 {0} #: ../../../processing/app/Base.java:519 #, java-format -!{0}\:\ Invalid\ argument\ to\ --pref,\ should\ be\ of\ the\ form\ "pref\=value"= +{0}\:\ Invalid\ argument\ to\ --pref,\ should\ be\ of\ the\ form\ "pref\=value"={0}\: \u0645\u0639\u0627\u0645\u0644 \u0641\u064a\u0631 \u0635\u0627\u0644\u062d \u0644\u0623\u062c\u0644 --\u062a\u0641\u0636\u064a\u0644, \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u0627\u0644\u0634\u0643\u0644 "\u062a\u0641\u0636\u064a\u0644\=\u0642\u064a\u0645\u0629" #: ../../../processing/app/Base.java:476 #, java-format -{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u0627\u0633\u0645 \u0644\u0648\u062d\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u060c \u064a\u062a\u0648\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0635\u064a\u063a\u0629 "package\:arch\:board" \u0623\u0648 "package\:arch\:board\:options" - -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= +{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u0627\u0633\u0645 \u0644\u0648\u062d\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u060c \u064a\u062a\u0648\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0635\u064a\u063a\u0629 "\u0627\u0644\u062d\u0632\u0645\u0629\:\u0645\u0639\u0645\u0627\u0631\:\u0644\u0648\u062d\u0629" \u0623\u0648 "\u0627\u0644\u062d\u0632\u0645\u0629\:\u0645\u0639\u0645\u0627\u0631\:\u0644\u0648\u062d\u0629\:\u0627\u062e\u062a\u064a\u0627\u0631\u0627\u062a" #: ../../../processing/app/Base.java:507 #, java-format @@ -1940,6 +2006,10 @@ version\ {0}=\u0627\u0644\u0646\u0633\u062e\u0629 {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: \u062e\u064a\u0627\u0631 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u060c \u064a\u062a\u0648\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u0635\u064a\u063a\u0629 "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: \u0642\u064a\u0645\u0629 \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629 \u0644\u0644\u0627\u062e\u062a\u064a\u0627\u0631 "{1}" \u0644\u0644\u0648\u062d\u0629 "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u0645\u0639\u0645\u0627\u0631\u064a\u0629 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641\u0629 @@ -1954,4 +2024,4 @@ version\ {0}=\u0627\u0644\u0646\u0633\u062e\u0629 {0} #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format -!{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board= +{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0} \u062a\u0631\u0643\u064a\u0628 \u0647\u0630\u0647 \u0627\u0644\u062d\u0632\u0645\u0629 {1} \u0644\u062a\u0633\u062a\u062e\u062f\u0645 {2} \u0644\u0648\u062d\u062a\u0643 diff --git a/arduino-core/src/processing/app/i18n/Resources_ast.po b/arduino-core/src/processing/app/i18n/Resources_ast.po index 35ea0c6ee6a..455c214d496 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ast.po +++ b/arduino-core/src/processing/app/i18n/Resources_ast.po @@ -16,13 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Xuacu Saturio , 2013 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 15:17+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Asturian (http://www.transifex.com/mbanzi/arduino-ide-15/language/ast/)\n" "MIME-Version: 1.0\n" @@ -210,6 +214,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +625,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -659,6 +673,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -667,6 +685,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "" @@ -842,6 +864,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +888,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -895,6 +941,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +981,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "" @@ -1138,9 +1184,9 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Inorando un mal nome de biblioteca" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1166,6 +1212,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1199,9 +1249,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1278,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "" @@ -1260,9 +1321,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1680,9 +1741,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1780,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "" @@ -1842,11 +1907,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1870,6 +1938,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2041,6 +2113,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,11 +2166,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2108,6 +2188,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2684,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2687,11 +2777,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2787,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_ast.properties b/arduino-core/src/processing/app/i18n/Resources_ast.properties index 0da6ac4eea8..6879ce91bd5 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ast.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ast.properties @@ -16,8 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Xuacu Saturio , 2013 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 15\:17+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Asturian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ast/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ast\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Asturian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ast/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ast\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -142,6 +146,10 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -436,6 +444,10 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -466,12 +478,18 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 !Delete= @@ -603,6 +621,10 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +639,18 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -642,6 +676,9 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +707,6 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 !Examples= @@ -823,8 +857,8 @@ An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -Ignoring\ bad\ library\ name=Inorando un mal nome de biblioteca +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -839,6 +873,9 @@ Ignoring\ bad\ library\ name=Inorando un mal nome de biblioteca #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -865,9 +902,9 @@ Ignoring\ bad\ library\ name=Inorando un mal nome de biblioteca #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +925,15 @@ Ignoring\ bad\ library\ name=Inorando un mal nome de biblioteca #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 !Italian= @@ -912,9 +958,9 @@ Ignoring\ bad\ library\ name=Inorando un mal nome de biblioteca #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1227,9 +1273,9 @@ Quit=Colar #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1303,9 @@ Quit=Colar #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 !Romanian= @@ -1348,9 +1397,13 @@ Quit=Colar #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1368,6 +1421,9 @@ Quit=Colar #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1487,6 +1543,10 @@ Sunshine=Soleyero #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La biblioteca "{0}" nun pue utilizase.\nLos nomes de biblioteca tienen de contener nam\u00e1i lletres b\u00e1siques y n\u00famberos.\n(Nam\u00e1i ASCII ensin espacios, y nun pue principiar con un n\u00famberu) @@ -1511,8 +1571,8 @@ The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ bas #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=El direutoriu cartafueyu de bocetos y\u00e1 nun esiste.\nArduino camudar\u00e1 al llugar predetermin\u00e1u del cartafueyu\nde bocetos, y crear\u00e1 un direutoriu cartafueyu de bocetos\nnuevu si ye necesario. Arduino ent\u00f3s dexar\u00e1 de falar de\nsigo mesmu en tercera persona. @@ -1520,6 +1580,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1917,11 @@ You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1921,10 +1989,6 @@ You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1997,10 @@ You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_be.po b/arduino-core/src/processing/app/i18n/Resources_be.po index 5e9fed682cb..20a380ff8ec 100644 --- a/arduino-core/src/processing/app/i18n/Resources_be.po +++ b/arduino-core/src/processing/app/i18n/Resources_be.po @@ -16,14 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # debconf , 2013-2014,2016-2017 +# Viktar Vauchkevich, 2019 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:51+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-07-10 06:49+0000\n" +"Last-Translator: Viktar Vauchkevich\n" "Language-Team: Belarusian (http://www.transifex.com/mbanzi/arduino-ide-15/language/be/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -68,7 +73,7 @@ msgstr "(Ñ€Ñдагаваць толькі калі Arduino не запушча #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "" +msgstr "(заÑтарÑлы)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" @@ -135,11 +140,11 @@ msgstr "Дадаць Файл" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "" +msgstr "Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ URL'Ñ‹ Кіраўніка платамі" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "" +msgstr "Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ URL'Ñ‹ Кіраўніка платамі:" #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" @@ -210,6 +215,11 @@ msgstr "Ðрхіваваць Ñкетч Ñк:" msgid "Archive sketch canceled." msgstr "Ðрхіваванне Ñкетчу адменена." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -218,7 +228,7 @@ msgstr "Ðрхіваванне Ñкетчу было ÑкаÑавана, бо Ñ #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" -msgstr "" +msgstr "Arduino" #: ../../../processing/app/I18n.java:83 msgid "Arduino ARM (32-bits) Boards" @@ -303,7 +313,7 @@ msgstr "Ðўтафармат Ñкончаны" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 msgid "Auto-detect proxy settings" -msgstr "" +msgstr "Ðўтаматычна вызначаць налады прокÑÑ–" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 msgid "Automatic" @@ -311,7 +321,7 @@ msgstr "Ðўтаматычна" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 msgid "Automatic proxy configuration URL:" -msgstr "" +msgstr "URL аўтаматычнай канфігурацыі прокÑÑ–:" #: SerialMonitor.java:110 msgid "Autoscroll" @@ -367,15 +377,15 @@ msgstr "Плата:" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Boards Manager" -msgstr "" +msgstr "Кіраўнік платамі" #: ../../../../../app/src/processing/app/Base.java:1320 msgid "Boards Manager..." -msgstr "" +msgstr "Кіраўнік платамі…" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 msgid "Boards included in this package:" -msgstr "" +msgstr "Дошкі, ÑƒÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ Ñž гÑты пакет:" #: ../../../processing/app/debug/Compiler.java:1273 #, java-format @@ -477,11 +487,11 @@ msgstr "КітайÑÐºÐ°Ñ (Тайвань) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "ÐчыÑціць вывад" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" -msgstr "" +msgstr "ÐаціÑніце, каб атрымаць ÑÐ¿Ñ–Ñ Ð½ÐµÐ°Ñ„Ñ–Ñ†Ñ‹Ð¹Ð½Ñ‹Ñ… URL падтрымкі плат" #: Editor.java:521 Editor.java:2024 msgid "Close" @@ -493,7 +503,7 @@ msgstr "Закаментаваць/РаÑкаментаваць" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" -msgstr "" +msgstr "КамунікацыÑ" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " @@ -616,6 +626,11 @@ msgstr "Ðемагчыма выдаліць Ñтарую веÑÑ–ÑŽ {0}" msgid "Could not replace {0}" msgstr "Ðемагчыма замÑніць {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Ðемагчыма архіваваць Ñкетч" @@ -659,13 +674,21 @@ msgstr "Ðпрацоўка Даных" msgid "Data Storage" msgstr "Сховішча Даных" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Паменьшыць водÑтуп" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 msgid "Default" -msgstr "" +msgstr "ÐгаданыÑ" + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "ÐÐ³Ð°Ð´Ð°Ð½Ð°Ñ Ñ‚Ñма" #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" @@ -842,6 +865,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "Памылка унутры Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -859,7 +887,26 @@ msgstr "Памылка Ð°Ð´Ñ‡Ñ‹Ð½ÐµÐ½Ð½Ñ Ð¿Ð°ÑлÑдоўнага порту '' msgid "" "Error opening serial port ''{0}''. Try consulting the documentation at " "http://playground.arduino.cc/Linux/All#Permission" -msgstr "Памылка Ð°Ð´Ñ‡Ñ‹Ð½ÐµÐ½Ð½Ñ Ð¿Ð°ÑлÑдоўнага порту ''{0}''. ÐзнаёмцеÑÑ Ð· дакументацыÑй наhttp://playground.arduino.cc/Linux/All#Permission" +msgstr "Памылка Ð°Ð´ÐºÑ€Ñ‹Ñ†Ñ†Ñ Ð¿Ð°ÑлÑдоўнага порту ''{0}''. ÐзнаёмцеÑÑ Ð· дакументацыÑй на http://playground.arduino.cc/Linux/All#Permission" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Памылка разбору індÑкÑу бібліÑÑ‚Ñк: {0}\nПаÑпрабуйце адкрыць Кіраўніка бібліÑÑ‚Ñк, каб абнавіць індÑÐºÑ Ð±Ñ–Ð±Ð»Ñ–ÑÑ‚Ñк." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" #: Preferences.java:277 msgid "Error reading preferences" @@ -895,6 +942,10 @@ msgstr "Памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ñ€Ð°ÑˆÑ‹Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ñ‹ÐºÐ°." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Памылка Ð¿Ð°Ð´Ñ‡Ð°Ñ Ð¿Ñ€Ð°ÑˆÑ‹Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·Ñ‡Ñ‹ÐºÐ°: бракуе '{0}' канфігурацыйнага параметра" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Памылка пры кампілÑцыі: адÑутнічае '{0}' канфігурацыйны параметр" @@ -931,10 +982,6 @@ msgstr "Памылка праверкі/выгрузкі" msgid "Estonian" msgstr "ЭÑтонÑкаÑ" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "ЭÑтонÑÐºÐ°Ñ (ЭÑтоніÑ)" - #: Editor.java:516 msgid "Examples" msgstr "Ўзоры" @@ -1070,7 +1117,7 @@ msgstr "ÐÑмецкаÑ" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "Ðтрымаць звеÑткі аб плаце" #: Editor.java:1054 msgid "Getting Started" @@ -1114,7 +1161,7 @@ msgstr "Хіндзі" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 msgid "Host name:" -msgstr "" +msgstr "Ðазва вузла:" #: Sketch.java:295 msgid "" @@ -1138,9 +1185,9 @@ msgstr "ÐЕСУМЯШЧÐЛЬÐÐ" msgid "Ignore Case" msgstr "Ігнараваць Ñ€ÑгіÑтр" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ігнарую бібліÑÑ‚Ñку з кепÑкім імём" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ігнарую бібліÑÑ‚Ñку з кепÑкай назвай" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1166,6 +1213,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "ПавÑліцыць водÑтуп" @@ -1197,11 +1248,11 @@ msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 msgid "Installing boards..." -msgstr "" +msgstr "УÑталёўка плат…" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1279,17 @@ msgstr "КепÑÐºÐ°Ñ Ð±Ñ–Ð±Ð»Ñ–ÑÑ‚Ñка знойдзена Ñž {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "ІтальÑнÑкаÑ" @@ -1250,7 +1312,7 @@ msgstr "ЛатвіÑкаÑ" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "" +msgstr "Кіраўнік бібліÑÑ‚Ñкамі" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" @@ -1260,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1480,7 +1542,7 @@ msgstr "Ðдчыніць" #: ../../../../../app/src/processing/app/Editor.java:625 msgid "Open Recent" -msgstr "" +msgstr "Ðдкрыць нÑдаўнÑе" #: Editor.java:2688 msgid "Open URL" @@ -1554,7 +1616,7 @@ msgstr "Калі лаÑка выберыце праграматар з меню #: ../../../../../app/src/processing/app/Editor.java:2613 msgid "Plotter not available while serial monitor is open" -msgstr "" +msgstr "Плотар недаÑтупны, калі адкрыты serial-манітор" #: Preferences.java:110 msgid "Polish" @@ -1586,7 +1648,7 @@ msgstr "Ðаладкі" #: ../../../../../app/src/processing/app/Base.java:297 msgid "Preparing boards..." -msgstr "" +msgstr "Падрыхтоўка плат…" #: FindReplace.java:123 FindReplace.java:128 msgid "Previous" @@ -1680,9 +1742,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1781,10 @@ msgstr "ЗамÑніць на:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "РумынÑкаÑ" @@ -1833,7 +1899,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" -msgstr "" +msgstr "Serial-манітор недаÑтупны, калі адкрыты плотар" #: Serial.java:194 #, java-format @@ -1842,12 +1908,15 @@ msgid "" " Serial Port menu?" msgstr "ПаÑлÑдоўны порт ''{0}'' не знойдзены. Ці выбралі вы патрÑбны Ñž меню \"ІнÑтрументы\" > Serial Port ?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Serial-порт {0} Ð½Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ñ‹.\nПаÑпрабаваць выгрузку праз іншы порт?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1870,6 +1939,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "Паказаць Каталог Скетчаў" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Паказваць падрабÑзны вывад падчаÑ:" @@ -2041,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Файл\"{0}\" павінен быць унутры каталога\nÑкетчу з імём \"{1}\". Стварыць такі каталог, \nперамÑÑціць файл, и працÑгнуць?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,12 +2167,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Папка Ñкетчу знікла.\nСпрабуем перазахаваць у тым жа меÑцы,\nале ÑžÑÑ‘ Ð°ÐºÑ€Ð°Ð¼Ñ ÐºÐ¾Ð´Ñƒ будзе Ñтрачана." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Ð†Ð¼Ñ Ñкетча муÑіць быць зменена. Ð†Ð¼Ñ Ð¿Ð°Ð²Ñ–Ð½Ð½Ð° змÑшчаць толькі ASCII-Ñімвалы Ñ– лічбы (але не можа пачынацца з лічбы).\nТакÑама не можа быць даўжÑй за 64 Ñімвалы." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2108,11 +2189,15 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" "Are you sure you want to delete it?" -msgstr "" +msgstr "ГÑÑ‚Ð°Ñ Ð±Ñ–Ð±Ð»Ñ–ÑÑ‚Ñка не прыÑутнічае Ñž Кіраўніка бібліÑÑ‚Ñкамі. Ð’Ñ‹ не зможаце пераўÑталÑваць Ñе адÑюль.\nÐ’Ñ‹ ўпÑўнены, што хочаце выдаліць Ñе?" #: ../../../../../app/src/processing/app/EditorStatus.java:349 msgid "" @@ -2196,7 +2281,7 @@ msgstr "Ðемагчыма адчыніць serial-манітор" #: ../../../../../app/src/processing/app/Editor.java:2709 msgid "Unable to open serial plotter" -msgstr "" +msgstr "Ðемагчыма адкрыць serial-плотар" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 @@ -2248,12 +2333,12 @@ msgstr "Ðднавіць пашырÑнні імён Ñкетчаў Ð¿Ð°Ð´Ñ‡Ð°Ñ #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:88 #, java-format msgid "Updates available for some of your {0}boards{1}" -msgstr "" +msgstr "ДаÑÑ‚ÑƒÐ¿Ð½Ñ‹Ñ Ð°Ð±Ð½Ð°ÑžÐ»ÐµÐ½Ð½Ñ– Ð´Ð»Ñ Ð½ÐµÐºÐ°Ñ‚Ð¾Ñ€Ñ‹Ñ… вашых {0}плат{1}" #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 #, java-format msgid "Updates available for some of your {0}boards{1} and {2}libraries{3}" -msgstr "" +msgstr "ДаÑÑ‚ÑƒÐ¿Ð½Ñ‹Ñ Ð°Ð±Ð½Ð°ÑžÐ»ÐµÐ½Ð½Ñ– Ð´Ð»Ñ Ð½ÐµÐºÐ°Ñ‚Ð¾Ñ€Ñ‹Ñ… вашых {0}плат{1} Ñ– {2}бібліÑÑ‚Ñк{3}" #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format @@ -2330,7 +2415,7 @@ msgstr "Спаўдзіць код паÑÐ»Ñ Ð²Ñ‹Ð³Ñ€ÑƒÐ·ÐºÑ–" #: ../../../../../app/src/processing/app/Editor.java:725 msgid "Verify/Compile" -msgstr "Правевыць/КампілÑваць" +msgstr "Праверыць/кампілÑваць" #: ../../../../../app/src/processing/app/Base.java:451 msgid "Verifying and uploading..." @@ -2600,6 +2685,12 @@ msgstr "ігнарую памылковы памер шрыфта {0}" msgid "name is null" msgstr "Ñ–Ð¼Ñ - null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu is null" @@ -2687,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: ÐÑправільнае Ñ–Ð¼Ñ Ð¿Ð»Ð°Ñ‚Ñ‹, мае быць форма \"package:arch:board\" ці \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ Ð´Ð»Ñ \"{1}\" опцыі Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ‹ \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2788,11 @@ msgstr "{0}: ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ‹ \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ñ‹Ñ, мае быць форма \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_be.properties b/arduino-core/src/processing/app/i18n/Resources_be.properties index 8aa1a976a1a..3e00e5d5bb3 100644 --- a/arduino-core/src/processing/app/i18n/Resources_be.properties +++ b/arduino-core/src/processing/app/i18n/Resources_be.properties @@ -16,8 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # debconf , 2013-2014,2016-2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:51+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Belarusian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/be/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: be\nPlural-Forms\: nplurals\=4; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<12 || n%100>14) ? 1 \: n%10\=\=0 || (n%10>\=5 && n%10<\=9) || (n%100>\=11 && n%100<\=14)? 2 \: 3);\n +# Viktar Vauchkevich, 2019 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-07-10 06\:49+0000\nLast-Translator\: Viktar Vauchkevich\nLanguage-Team\: Belarusian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/be/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: be\nPlural-Forms\: nplurals\=4; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<12 || n%100>14) ? 1 \: n%10\=\=0 || (n%10>\=5 && n%10<\=9) || (n%100>\=11 && n%100<\=14)? 2 \: 3);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(\u043f\u0430\u0442\u0440\u0430\u0431\u0443\u0435 \u043f\u0435\u0440\u0430\u0437\u0430\u043f\u0443\u0441\u043a Arduino) @@ -43,7 +48,7 @@ (edit\ only\ when\ Arduino\ is\ not\ running)=(\u0440\u044d\u0434\u0430\u0433\u0430\u0432\u0430\u0446\u044c \u0442\u043e\u043b\u044c\u043a\u0456 \u043a\u0430\u043b\u0456 Arduino \u043d\u0435 \u0437\u0430\u043f\u0443\u0448\u0447\u0430\u043d\u044b) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -!(legacy)= +(legacy)=(\u0437\u0430\u0441\u0442\u0430\u0440\u044d\u043b\u044b) #: ../../../processing/app/helpers/CommandlineParser.java:149 --curdir\ no\ longer\ supported=--curdir \u0431\u043e\u043b\u044c\u0448 \u043d\u0435 \u043f\u0430\u0434\u0442\u0440\u044b\u043c\u043b\u0456\u0432\u0430\u0435\u0446\u0446\u0430 @@ -88,10 +93,10 @@ Add\ .ZIP\ Library...=\u0414\u0430\u0434\u0430\u0446\u044c .ZIP \u0411\u0456\u04 Add\ File...=\u0414\u0430\u0434\u0430\u0446\u044c \u0424\u0430\u0439\u043b #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -!Additional\ Boards\ Manager\ URLs= +Additional\ Boards\ Manager\ URLs=\u0414\u0430\u0434\u0430\u0442\u043a\u043e\u0432\u044b\u044f URL'\u044b \u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a\u0430 \u043f\u043b\u0430\u0442\u0430\u043c\u0456 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -!Additional\ Boards\ Manager\ URLs\:\ = +Additional\ Boards\ Manager\ URLs\:\ =\u0414\u0430\u0434\u0430\u0442\u043a\u043e\u0432\u044b\u044f URL'\u044b \u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a\u0430 \u043f\u043b\u0430\u0442\u0430\u043c\u0456\: #: ../../../../../app/src/processing/app/Preferences.java:161 Afrikaans=\u0410\u0444\u0440\u044b\u043a\u0430\u0430\u043d\u0441 @@ -142,11 +147,15 @@ Archive\ sketch\ as\:=\u0410\u0440\u0445\u0456\u0432\u0430\u0432\u0430\u0446\u04 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0410\u0440\u0445\u0456\u0432\u0430\u0432\u0430\u043d\u043d\u0435 \u0441\u043a\u0435\u0442\u0447\u0443 \u0430\u0434\u043c\u0435\u043d\u0435\u043d\u0430. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0410\u0440\u0445\u0456\u0432\u0430\u0432\u0430\u043d\u043d\u0435 \u0441\u043a\u0435\u0442\u0447\u0443 \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0441\u0430\u0432\u0430\u043d\u0430, \u0431\u043e \u0441\u043a\u0435\u0442\u0447\n\u043d\u0435 \u0431\u044b\u045e \u0430\u0434\u043f\u0430\u0432\u0435\u0434\u043d\u0430 \u0437\u0430\u0445\u0430\u0432\u0430\u043d\u044b. #: ../../../../../arduino-core/src/processing/app/I18n.java:24 -!Arduino= +Arduino=Arduino #: ../../../processing/app/I18n.java:83 Arduino\ ARM\ (32-bits)\ Boards=\u041f\u043b\u0430\u0442\u044b Arduino ARM (32-\u0431\u0456\u0442) @@ -206,13 +215,13 @@ Auto\ Format=\u0410\u045e\u0442\u0430\u0444\u0430\u0440\u043c\u0430\u0442 Auto\ Format\ finished.=\u0410\u045e\u0442\u0430\u0444\u0430\u0440\u043c\u0430\u0442 \u0441\u043a\u043e\u043d\u0447\u0430\u043d\u044b #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 -!Auto-detect\ proxy\ settings= +Auto-detect\ proxy\ settings=\u0410\u045e\u0442\u0430\u043c\u0430\u0442\u044b\u0447\u043d\u0430 \u0432\u044b\u0437\u043d\u0430\u0447\u0430\u0446\u044c \u043d\u0430\u043b\u0430\u0434\u044b \u043f\u0440\u043e\u043a\u0441\u0456 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 Automatic=\u0410\u045e\u0442\u0430\u043c\u0430\u0442\u044b\u0447\u043d\u0430 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 -!Automatic\ proxy\ configuration\ URL\:= +Automatic\ proxy\ configuration\ URL\:=URL \u0430\u045e\u0442\u0430\u043c\u0430\u0442\u044b\u0447\u043d\u0430\u0439 \u043a\u0430\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u044b\u0456 \u043f\u0440\u043e\u043a\u0441\u0456\: #: SerialMonitor.java:110 Autoscroll=\u0410\u045e\u0442\u0430\u043f\u0440\u0430\u043a\u0440\u0443\u0442\u043a\u0430 @@ -254,13 +263,13 @@ Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-se Board\:\ =\u041f\u043b\u0430\u0442\u0430\: #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -!Boards\ Manager= +Boards\ Manager=\u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a \u043f\u043b\u0430\u0442\u0430\u043c\u0456 #: ../../../../../app/src/processing/app/Base.java:1320 -!Boards\ Manager...= +Boards\ Manager...=\u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a \u043f\u043b\u0430\u0442\u0430\u043c\u0456\u2026 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 -!Boards\ included\ in\ this\ package\:= +Boards\ included\ in\ this\ package\:=\u0414\u043e\u0448\u043a\u0456, \u0443\u043a\u043b\u044e\u0447\u0430\u043d\u044b\u044f \u045e \u0433\u044d\u0442\u044b \u043f\u0430\u043a\u0435\u0442\: #: ../../../processing/app/debug/Compiler.java:1273 #, java-format @@ -336,10 +345,10 @@ Chinese\ (Taiwan)=\u041a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f (\u0422 Chinese\ (Taiwan)\ (Big5)=\u041a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f (\u0422\u0430\u0439\u0432\u0430\u043d\u044c) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=\u0410\u0447\u044b\u0441\u0446\u0456\u0446\u044c \u0432\u044b\u0432\u0430\u0434 #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -!Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs= +Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u041d\u0430\u0446\u0456\u0441\u043d\u0456\u0446\u0435, \u043a\u0430\u0431 \u0430\u0442\u0440\u044b\u043c\u0430\u0446\u044c \u0441\u043f\u0456\u0441 \u043d\u0435\u0430\u0444\u0456\u0446\u044b\u0439\u043d\u044b\u0445 URL \u043f\u0430\u0434\u0442\u0440\u044b\u043c\u043a\u0456 \u043f\u043b\u0430\u0442 #: Editor.java:521 Editor.java:2024 Close=\u0417\u0430\u0447\u044b\u043d\u0456\u0446\u044c @@ -348,7 +357,7 @@ Close=\u0417\u0430\u0447\u044b\u043d\u0456\u0446\u044c Comment/Uncomment=\u0417\u0430\u043a\u0430\u043c\u0435\u043d\u0442\u0430\u0432\u0430\u0446\u044c/\u0420\u0430\u0441\u043a\u0430\u043c\u0435\u043d\u0442\u0430\u0432\u0430\u0446\u044c #: ../../../../../arduino-core/src/processing/app/I18n.java:30 -!Communication= +Communication=\u041a\u0430\u043c\u0443\u043d\u0456\u043a\u0430\u0446\u044b\u044f #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 Compiler\ warnings\:\ =\u041f\u0430\u043f\u044f\u0440\u044d\u0434\u0436\u0430\u043d\u043d\u0456 \u043a\u0430\u043c\u043f\u0456\u043b\u044f\u0442\u0430\u0440\u0430\: @@ -436,6 +445,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u041d\u0435\u043c\u0430\u0433\u0447\u #, java-format Could\ not\ replace\ {0}=\u041d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\u0430 \u0437\u0430\u043c\u044f\u043d\u0456\u0446\u044c {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u041d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\u0430 \u0430\u0440\u0445\u0456\u0432\u0430\u0432\u0430\u0446\u044c \u0441\u043a\u0435\u0442\u0447 @@ -466,11 +479,17 @@ Data\ Processing=\u0410\u043f\u0440\u0430\u0446\u043e\u045e\u043a\u0430 \u0414\u #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u0421\u0445\u043e\u0432\u0456\u0448\u0447\u0430 \u0414\u0430\u043d\u044b\u0445 +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u041f\u0430\u043c\u0435\u043d\u044c\u0448\u044b\u0446\u044c \u0432\u043e\u0434\u0441\u0442\u0443\u043f #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 -!Default= +Default=\u0410\u0433\u0430\u0434\u0430\u043d\u044b\u044f + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u0410\u0433\u0430\u0434\u0430\u043d\u0430\u044f \u0442\u044d\u043c\u0430 #: EditorHeader.java:314 Sketch.java:591 Delete=\u0412\u044b\u0434\u0430\u043b\u0456\u0446\u044c @@ -603,6 +622,10 @@ Error\ downloading\ {0}=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0441\u0446\ #, java-format Error\ inside\ Serial.{0}()=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0443\u043d\u0443\u0442\u0440\u044b Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -615,7 +638,19 @@ Error\ opening\ serial\ port\ ''{0}''.=\u041f\u0430\u043c\u044b\u043b\u043a\u043 #: ../../../processing/app/Serial.java:119 #, java-format -Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0430\u0434\u0447\u044b\u043d\u0435\u043d\u043d\u044f \u043f\u0430\u0441\u043b\u044f\u0434\u043e\u045e\u043d\u0430\u0433\u0430 \u043f\u043e\u0440\u0442\u0443 ''{0}''. \u0410\u0437\u043d\u0430\u0451\u043c\u0446\u0435\u0441\u044f \u0437 \u0434\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u044b\u044f\u0439 \u043d\u0430http\://playground.arduino.cc/Linux/All\#Permission +Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0430\u0434\u043a\u0440\u044b\u0446\u0446\u044f \u043f\u0430\u0441\u043b\u044f\u0434\u043e\u045e\u043d\u0430\u0433\u0430 \u043f\u043e\u0440\u0442\u0443 ''{0}''. \u0410\u0437\u043d\u0430\u0451\u043c\u0446\u0435\u0441\u044f \u0437 \u0434\u0430\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u044b\u044f\u0439 \u043d\u0430 http\://playground.arduino.cc/Linux/All\#Permission + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0440\u0430\u0437\u0431\u043e\u0440\u0443 \u0456\u043d\u0434\u044d\u043a\u0441\u0443 \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\: {0}\n\u041f\u0430\u0441\u043f\u0440\u0430\u0431\u0443\u0439\u0446\u0435 \u0430\u0434\u043a\u0440\u044b\u0446\u044c \u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a\u0430 \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a, \u043a\u0430\u0431 \u0430\u0431\u043d\u0430\u0432\u0456\u0446\u044c \u0456\u043d\u0434\u044d\u043a\u0441 \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= #: Preferences.java:277 Error\ reading\ preferences=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0447\u044b\u0442\u0430\u043d\u043d\u044f \u043d\u0430\u043b\u0430\u0434\u0430\u043a @@ -642,6 +677,9 @@ Error\ while\ burning\ bootloader.=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u043f\u0430\u0434\u0447\u0430\u0441 \u043f\u0440\u0430\u0448\u044b\u0432\u0430\u043d\u043d\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u044b\u043a\u0430\: \u0431\u0440\u0430\u043a\u0443\u0435 '{0}' \u043a\u0430\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u044b\u0439\u043d\u0430\u0433\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u043f\u0440\u044b \u043a\u0430\u043c\u043f\u0456\u043b\u044f\u0446\u044b\u0456\: \u0430\u0434\u0441\u0443\u0442\u043d\u0456\u0447\u0430\u0435 '{0}' \u043a\u0430\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u044b\u0439\u043d\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 @@ -670,9 +708,6 @@ Error\ while\ verifying/uploading=\u041f\u0430\u043c\u044b\u043b\u043a\u0430 \u0 #: Preferences.java:93 Estonian=\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0430\u044f -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0430\u044f (\u042d\u0441\u0442\u043e\u043d\u0456\u044f) - #: Editor.java:516 Examples=\u040e\u0437\u043e\u0440\u044b @@ -774,7 +809,7 @@ Georgian=\u0413\u0440\u0443\u0437\u0456\u043d\u0441\u043a\u0430\u044f German=\u041d\u044f\u043c\u0435\u0446\u043a\u0430\u044f #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=\u0410\u0442\u0440\u044b\u043c\u0430\u0446\u044c \u0437\u0432\u0435\u0441\u0442\u043a\u0456 \u0430\u0431 \u043f\u043b\u0430\u0446\u0435 #: Editor.java:1054 Getting\ Started=\u0417 \u0447\u0430\u0433\u043e \u043f\u0430\u0447\u0430\u0446\u044c @@ -806,7 +841,7 @@ Help=\u0414\u0430\u043f\u0430\u043c\u043e\u0433\u0430 Hindi=\u0425\u0456\u043d\u0434\u0437\u0456 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 -!Host\ name\:= +Host\ name\:=\u041d\u0430\u0437\u0432\u0430 \u0432\u0443\u0437\u043b\u0430\: #: Sketch.java:295 How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=\u042f\u043a \u043d\u0430\u043a\u043e\u043d\u0442 \u0441\u043f\u0430\u0447\u0430\u0442\u043a\u0443 \u0437\u0430\u0445\u0430\u0432\u0430\u0446\u044c \u0441\u043a\u0435\u0442\u0447\n\u043f\u0435\u0440\u0430\u0434 \u0442\u044b\u043c \u044f\u043a \u0441\u043f\u0440\u0430\u0431\u0430\u0432\u0430\u0446\u044c \u043f\u0435\u0440\u0430\u0439\u043c\u0435\u043d\u0430\u0432\u0430\u0446\u044c \u044f\u0433\u043e? @@ -823,8 +858,8 @@ INCOMPATIBLE=\u041d\u0415\u0421\u0423\u041c\u042f\u0428\u0427\u0410\u041b\u042c\ #: FindReplace.java:96 Ignore\ Case=\u0406\u0433\u043d\u0430\u0440\u0430\u0432\u0430\u0446\u044c \u0440\u044d\u0433\u0456\u0441\u0442\u0440 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u0406\u0433\u043d\u0430\u0440\u0443\u044e \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0443 \u0437 \u043a\u0435\u043f\u0441\u043a\u0456\u043c \u0456\u043c\u0451\u043c +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=\u0406\u0433\u043d\u0430\u0440\u0443\u044e \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0443 \u0437 \u043a\u0435\u043f\u0441\u043a\u0430\u0439 \u043d\u0430\u0437\u0432\u0430\u0439 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u0406\u0433\u043d\u0430\u0440\u0443\u0435\u0446\u0446\u0430 \u0441\u043a\u0435\u0442\u0447 \u0437 \u043a\u0435\u043f\u0441\u043a\u0456\u043c \u0456\u043c\u0451\u043c @@ -839,6 +874,9 @@ In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u041f\u0430\u0432\u044f\u043b\u0456\u0446\u044b\u0446\u044c \u0432\u043e\u0434\u0441\u0442\u0443\u043f @@ -863,11 +901,11 @@ Indonesian=\u0406\u043d\u0434\u0430\u043d\u044d\u0437\u0456\u0439\u0441\u043a\u0 !Installed= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 -!Installing\ boards...= +Installing\ boards...=\u0423\u0441\u0442\u0430\u043b\u0451\u045e\u043a\u0430 \u043f\u043b\u0430\u0442\u2026 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +926,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u041a\u0435\u043f\u0441\u043a\u0430\u04 #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=\u0406\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f @@ -904,7 +951,7 @@ Korean=\u041a\u0430\u0440\u044d\u0439\u0441\u043a\u0430\u044f Latvian=\u041b\u0430\u0442\u0432\u0456\u0441\u043a\u0430\u044f #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -!Library\ Manager= +Library\ Manager=\u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0430\u043c\u0456 #: ../../../../../app/src/processing/app/Base.java:2349 !Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu= @@ -912,9 +959,9 @@ Latvian=\u041b\u0430\u0442\u0432\u0456\u0441\u043a\u0430\u044f #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u041d\u0443\u043c\u0430\u0440 \u0440\u0430\u0434\u043a\u0443\: @@ -1077,7 +1124,7 @@ Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported=\u041f\u0430\u0434\u04 Open=\u0410\u0434\u0447\u044b\u043d\u0456\u0446\u044c #: ../../../../../app/src/processing/app/Editor.java:625 -!Open\ Recent= +Open\ Recent=\u0410\u0434\u043a\u0440\u044b\u0446\u044c \u043d\u044f\u0434\u0430\u045e\u043d\u044f\u0435 #: Editor.java:2688 Open\ URL=\u0410\u0434\u0447\u044b\u043d\u0456\u0446\u044c URL @@ -1133,7 +1180,7 @@ Please\ select\ a\ port\ to\ obtain\ board\ info=\u041a\u0430\u043b\u0456 \u043b Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=\u041a\u0430\u043b\u0456 \u043b\u0430\u0441\u043a\u0430 \u0432\u044b\u0431\u0435\u0440\u044b\u0446\u0435 \u043f\u0440\u0430\u0433\u0440\u0430\u043c\u0430\u0442\u0430\u0440 \u0437 \u043c\u0435\u043d\u044e \u0406\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b->\u041f\u0440\u0430\u0433\u0440\u0430\u043c\u0430\u0442\u0430\u0440 #: ../../../../../app/src/processing/app/Editor.java:2613 -!Plotter\ not\ available\ while\ serial\ monitor\ is\ open= +Plotter\ not\ available\ while\ serial\ monitor\ is\ open=\u041f\u043b\u043e\u0442\u0430\u0440 \u043d\u0435\u0434\u0430\u0441\u0442\u0443\u043f\u043d\u044b, \u043a\u0430\u043b\u0456 \u0430\u0434\u043a\u0440\u044b\u0442\u044b serial-\u043c\u0430\u043d\u0456\u0442\u043e\u0440 #: Preferences.java:110 Polish=\u041f\u043e\u043b\u044c\u0441\u043a\u0430\u044f @@ -1157,7 +1204,7 @@ Portuguese\ (Portugal)=\u041f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0 Preferences=\u041d\u0430\u043b\u0430\u0434\u043a\u0456 #: ../../../../../app/src/processing/app/Base.java:297 -!Preparing\ boards...= +Preparing\ boards...=\u041f\u0430\u0434\u0440\u044b\u0445\u0442\u043e\u045e\u043a\u0430 \u043f\u043b\u0430\u0442\u2026 #: FindReplace.java:123 FindReplace.java:128 Previous=\u041f\u0430\u043f\u044f\u0440\u044d\u0434\u043d\u0456 @@ -1227,9 +1274,9 @@ Redo=\u041f\u0435\u0440\u0430\u0440\u0430\u0431\u0456\u0446\u044c #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1304,9 @@ Replace\ with\:=\u0417\u0430\u043c\u044f\u043d\u0456\u0446\u044c \u043d\u0430\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=\u0420\u0443\u043c\u044b\u043d\u0441\u043a\u0430\u044f @@ -1342,15 +1392,19 @@ Serial\ Monitor=Serial-\u043c\u0430\u043d\u0456\u0442\u043e\u0440 !Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= #: ../../../../../app/src/processing/app/Editor.java:2516 -!Serial\ monitor\ not\ available\ while\ plotter\ is\ open= +Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Serial-\u043c\u0430\u043d\u0456\u0442\u043e\u0440 \u043d\u0435\u0434\u0430\u0441\u0442\u0443\u043f\u043d\u044b, \u043a\u0430\u043b\u0456 \u0430\u0434\u043a\u0440\u044b\u0442\u044b \u043f\u043b\u043e\u0442\u0430\u0440 #: Serial.java:194 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u041f\u0430\u0441\u043b\u044f\u0434\u043e\u045e\u043d\u044b \u043f\u043e\u0440\u0442 ''{0}'' \u043d\u0435 \u0437\u043d\u043e\u0439\u0434\u0437\u0435\u043d\u044b. \u0426\u0456 \u0432\u044b\u0431\u0440\u0430\u043b\u0456 \u0432\u044b \u043f\u0430\u0442\u0440\u044d\u0431\u043d\u044b \u045e \u043c\u0435\u043d\u044e "\u0406\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b" > Serial Port ? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Serial-\u043f\u043e\u0440\u0442 {0} \u043d\u044f \u0437\u043d\u043e\u0439\u0434\u0437\u0435\u043d\u044b.\n\u041f\u0430\u0441\u043f\u0440\u0430\u0431\u0430\u0432\u0430\u0446\u044c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0440\u0430\u0437 \u0456\u043d\u0448\u044b \u043f\u043e\u0440\u0442? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=\u041f\u0430\u0441\u043b\u044f\u0434\u043e\u045e\u043d\u044b\u044f \u043f\u0430\u0440\u0442\u044b @@ -1368,6 +1422,9 @@ Settings=\u041d\u0430\u043b\u0430\u0434\u043a\u0456 #: Editor.java:641 Show\ Sketch\ Folder=\u041f\u0430\u043a\u0430\u0437\u0430\u0446\u044c \u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0421\u043a\u0435\u0442\u0447\u0430\u045e +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u041f\u0430\u043a\u0430\u0437\u0432\u0430\u0446\u044c \u043f\u0430\u0434\u0440\u0430\u0431\u044f\u0437\u043d\u044b \u0432\u044b\u0432\u0430\u0434 \u043f\u0430\u0434\u0447\u0430\u0441\: @@ -1487,6 +1544,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u0424\u0430\u0439\u043b"{0}" \u043f\u0430\u0432\u0456\u043d\u0435\u043d \u0431\u044b\u0446\u044c \u0443\u043d\u0443\u0442\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\n\u0441\u043a\u0435\u0442\u0447\u0443 \u0437 \u0456\u043c\u0451\u043c "{1}". \u0421\u0442\u0432\u0430\u0440\u044b\u0446\u044c \u0442\u0430\u043a\u0456 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \n\u043f\u0435\u0440\u0430\u043c\u044f\u0441\u0446\u0456\u0446\u044c \u0444\u0430\u0439\u043b, \u0438 \u043f\u0440\u0430\u0446\u044f\u0433\u043d\u0443\u0446\u044c? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0411\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0443 "{0}" \u043d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\u0430 \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u0446\u044c.\n\u0406\u043c\u044f \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0456 \u043f\u0430\u0432\u0456\u043d\u043d\u0430 \u0437\u043a\u043b\u0430\u0434\u0430\u0446\u0446\u0430 \u0442\u043e\u043b\u044c\u043a\u0456 \u0437 \u043b\u0456\u0442\u0430\u0440 \u0456 \u043b\u0456\u0447\u0431\u0430\u045e.\n(\u0442\u043e\u043b\u044c\u043a\u0456 ASCII \u0456 \u0431\u0435\u0437 \u043f\u0440\u0430\u0431\u0435\u043b\u0430\u045e, \u043d\u0435\u043b\u044c\u0433\u0430 \u043f\u0430\u0447\u044b\u043d\u0430\u0446\u044c \u0437 \u043b\u0456\u0447\u0431\u044b) @@ -1511,8 +1572,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=\u0421\u043a\u0435\u0442\u #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u041f\u0430\u043f\u043a\u0430 \u0441\u043a\u0435\u0442\u0447\u0443 \u0437\u043d\u0456\u043a\u043b\u0430.\n\u0421\u043f\u0440\u0430\u0431\u0443\u0435\u043c \u043f\u0435\u0440\u0430\u0437\u0430\u0445\u0430\u0432\u0430\u0446\u044c \u0443 \u0442\u044b\u043c \u0436\u0430 \u043c\u0435\u0441\u0446\u044b,\n\u0430\u043b\u0435 \u045e\u0441\u0451 \u0430\u043a\u0440\u0430\u043c\u044f \u043a\u043e\u0434\u0443 \u0431\u0443\u0434\u0437\u0435 \u0441\u0442\u0440\u0430\u0447\u0430\u043d\u0430. -#: ../../../processing/app/Sketch.java:2028 -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.=\u0406\u043c\u044f \u0441\u043a\u0435\u0442\u0447\u0430 \u043c\u0443\u0441\u0456\u0446\u044c \u0431\u044b\u0446\u044c \u0437\u043c\u0435\u043d\u0435\u043d\u0430. \u0406\u043c\u044f \u043f\u0430\u0432\u0456\u043d\u043d\u0430 \u0437\u043c\u044f\u0448\u0447\u0430\u0446\u044c \u0442\u043e\u043b\u044c\u043a\u0456 ASCII-\u0441\u0456\u043c\u0432\u0430\u043b\u044b \u0456 \u043b\u0456\u0447\u0431\u044b (\u0430\u043b\u0435 \u043d\u0435 \u043c\u043e\u0436\u0430 \u043f\u0430\u0447\u044b\u043d\u0430\u0446\u0446\u0430 \u0437 \u043b\u0456\u0447\u0431\u044b).\n\u0422\u0430\u043a\u0441\u0430\u043c\u0430 \u043d\u0435 \u043c\u043e\u0436\u0430 \u0431\u044b\u0446\u044c \u0434\u0430\u045e\u0436\u044d\u0439 \u0437\u0430 64 \u0441\u0456\u043c\u0432\u0430\u043b\u044b. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u043a\u0435\u0442\u0447\u0443 \u0431\u043e\u043b\u044c\u0448 \u043d\u0435 \u0456\u0441\u043d\u0443\u0435.\nArduino \u043f\u0435\u0440\u0430\u043a\u043b\u044e\u0447\u044b\u0446\u0446\u0430 \u043d\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u0430-\u0437\u043c\u043e\u045e\u0447\u0432\u0430\u043d\u043d\u044e\n\u0446\u0456 \u0441\u0442\u0432\u043e\u0440\u044b\u0446\u044c \u043d\u043e\u0432\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043a\u0430\u043b\u0456 \u043f\u0430\u0442\u0440\u044d\u0431\u043d\u0430.\nArduino \u0441\u043f\u044b\u043d\u0456\u0446\u044c \u043a\u0430\u0437\u0430\u0446\u044c \u0430\u0431 \u0441\u0430\u0431\u0435 \u0443 \u0442\u0440\u044d\u0446\u044f\u0439 \u0430\u0441\u043e\u0431\u0435. @@ -1520,8 +1581,11 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -!This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= +This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=\u0413\u044d\u0442\u0430\u044f \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0430 \u043d\u0435 \u043f\u0440\u044b\u0441\u0443\u0442\u043d\u0456\u0447\u0430\u0435 \u045e \u041a\u0456\u0440\u0430\u045e\u043d\u0456\u043a\u0430 \u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a\u0430\u043c\u0456. \u0412\u044b \u043d\u0435 \u0437\u043c\u043e\u0436\u0430\u0446\u0435 \u043f\u0435\u0440\u0430\u045e\u0441\u0442\u0430\u043b\u044f\u0432\u0430\u0446\u044c \u044f\u0435 \u0430\u0434\u0441\u044e\u043b\u044c.\n\u0412\u044b \u045e\u043f\u044d\u045e\u043d\u0435\u043d\u044b, \u0448\u0442\u043e \u0445\u043e\u0447\u0430\u0446\u0435 \u0432\u044b\u0434\u0430\u043b\u0456\u0446\u044c \u044f\u0435? #: ../../../../../app/src/processing/app/EditorStatus.java:349 !This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n= @@ -1583,7 +1647,7 @@ Unable\ to\ find\ {0}\ in\ {1}=\u041d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\ Unable\ to\ open\ serial\ monitor=\u041d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\u0430 \u0430\u0434\u0447\u044b\u043d\u0456\u0446\u044c serial-\u043c\u0430\u043d\u0456\u0442\u043e\u0440 #: ../../../../../app/src/processing/app/Editor.java:2709 -!Unable\ to\ open\ serial\ plotter= +Unable\ to\ open\ serial\ plotter=\u041d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\u0430 \u0430\u0434\u043a\u0440\u044b\u0446\u044c serial-\u043f\u043b\u043e\u0442\u0430\u0440 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 @@ -1621,11 +1685,11 @@ Update\ sketch\ files\ to\ new\ extension\ on\ save\ (.pde\ ->\ .ino)=\u0410\u04 #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:88 #, java-format -!Updates\ available\ for\ some\ of\ your\ {0}boards{1}= +Updates\ available\ for\ some\ of\ your\ {0}boards{1}=\u0414\u0430\u0441\u0442\u0443\u043f\u043d\u044b\u044f \u0430\u0431\u043d\u0430\u045e\u043b\u0435\u043d\u043d\u0456 \u0434\u043b\u044f \u043d\u0435\u043a\u0430\u0442\u043e\u0440\u044b\u0445 \u0432\u0430\u0448\u044b\u0445 {0}\u043f\u043b\u0430\u0442{1} #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 #, java-format -!Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}= +Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}=\u0414\u0430\u0441\u0442\u0443\u043f\u043d\u044b\u044f \u0430\u0431\u043d\u0430\u045e\u043b\u0435\u043d\u043d\u0456 \u0434\u043b\u044f \u043d\u0435\u043a\u0430\u0442\u043e\u0440\u044b\u0445 \u0432\u0430\u0448\u044b\u0445 {0}\u043f\u043b\u0430\u0442{1} \u0456 {2}\u0431\u0456\u0431\u043b\u0456\u044f\u0442\u044d\u043a{3} #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format @@ -1684,7 +1748,7 @@ Verify=\u0421\u043f\u0440\u0430\u045e\u0434\u0437\u0456\u0446\u044c Verify\ code\ after\ upload=\u0421\u043f\u0430\u045e\u0434\u0437\u0456\u0446\u044c \u043a\u043e\u0434 \u043f\u0430\u0441\u043b\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0456 #: ../../../../../app/src/processing/app/Editor.java:725 -Verify/Compile=\u041f\u0440\u0430\u0432\u0435\u0432\u044b\u0446\u044c/\u041a\u0430\u043c\u043f\u0456\u043b\u044f\u0432\u0430\u0446\u044c +Verify/Compile=\u041f\u0440\u0430\u0432\u0435\u0440\u044b\u0446\u044c/\u043a\u0430\u043c\u043f\u0456\u043b\u044f\u0432\u0430\u0446\u044c #: ../../../../../app/src/processing/app/Base.java:451 Verifying\ and\ uploading...=\u041f\u0440\u0430\u0432\u0435\u0440\u043a\u0430 \u0456 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430... @@ -1854,6 +1918,11 @@ ignoring\ invalid\ font\ size\ {0}=\u0456\u0433\u043d\u0430\u0440\u0443\u044e \u #: Editor.java:936 Editor.java:943 name\ is\ null=\u0456\u043c\u044f - null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu is null @@ -1921,10 +1990,6 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u041d\u044f\u043f\u0440\u0430\u0432\u0456\u043b\u044c\u043d\u0430\u0435 \u0456\u043c\u044f \u043f\u043b\u0430\u0442\u044b, \u043c\u0430\u0435 \u0431\u044b\u0446\u044c \u0444\u043e\u0440\u043c\u0430 "package\:arch\:board" \u0446\u0456 "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: \u041d\u044f\u043f\u0440\u0430\u0432\u0456\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u044b\u044f \u0434\u043b\u044f "{1}" \u043e\u043f\u0446\u044b\u0456 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: \u041d\u044f\u043f\u0440\u0430\u0432\u0456\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u044b\u044f \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b "{1}" @@ -1933,6 +1998,10 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: \u041d\u044f\u043f\u0440\u0430\u0432\u0456\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u044b\u044f, \u043c\u0430\u0435 \u0431\u044b\u0446\u044c \u0444\u043e\u0440\u043c\u0430 "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u041d\u0435\u0432\u044f\u0434\u043e\u043c\u0430\u044f \u0430\u0440\u0445\u0456\u0442\u044d\u043a\u0442\u0443\u0440\u0430 diff --git a/arduino-core/src/processing/app/i18n/Resources_bg.po b/arduino-core/src/processing/app/i18n/Resources_bg.po index 0df4d4ddcb8..5d37f7f1501 100644 --- a/arduino-core/src/processing/app/i18n/Resources_bg.po +++ b/arduino-core/src/processing/app/i18n/Resources_bg.po @@ -16,18 +16,22 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anton Stoychev , 2013 # Cristian Maglie , 2016 # Gabriel Radev , 2017 # Ivaylo Malinov , 2015 -# Valentin Laskov , 2012-2016 -# Любомир ВаÑилев, 2017 +# Valentin Laskov , 2012-2016 +# Любомир ВаÑилев, 2017-2018 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:41+0000\n" +"PO-Revision-Date: 2018-11-23 17:39+0000\n" "Last-Translator: Любомир ВаÑилев\n" "Language-Team: Bulgarian (http://www.transifex.com/mbanzi/arduino-ide-15/language/bg/)\n" "MIME-Version: 1.0\n" @@ -215,6 +219,11 @@ msgstr "Ðрхивиране на Ñкицата като:" msgid "Archive sketch canceled." msgstr "Ðрхивирането на Ñкицата е прекратено." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Ðрхивиране на изграденото Ñдро (кеширане) Ñлед: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -621,6 +630,11 @@ msgstr "Старата верÑÐ¸Ñ Ð½Ð° „{0}“ не може да бъде msgid "Could not replace {0}" msgstr "„{0}“ не може да Ñе замени" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Файлът Ñ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñта не може да бъде запиÑан: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Скицата не може да бъде архивирана" @@ -664,6 +678,10 @@ msgstr "Обработване на данни" msgid "Data Storage" msgstr "Хранилище за данни" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "ÐамалÑване на размера на шрифта" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "ÐамалÑване на отÑтъпа" @@ -672,6 +690,10 @@ msgstr "ÐамалÑване на отÑтъпа" msgid "Default" msgstr "По подразбиране" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Тема по подразбиране" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Изтриване" @@ -847,6 +869,11 @@ msgstr "Грешка при получаването на папката за д msgid "Error inside Serial.{0}()" msgstr "Грешка в Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Грешка при зареждането на темата „{0}“: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -866,6 +893,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Грешка при отварÑне на Ñериен порт „{0}“. Прегледайте документациÑта на http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Грешка при прочитането на индекÑа на библиотеките: {0}\nОпитайте да отворите прозореца за управление на библиотеките, за да обновите индекÑа." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Грешка при четенето на индекÑа на библиотеките: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Грешка при прочитането на папката Ñ Ð¸Ð½Ð´ÐµÐºÑи на пакетите: {0}\n(Може би има проблем Ñ Ð¿Ñ€Ð°Ð²Ð°Ñ‚Ð° за доÑтъп?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Грешка при четенето на предпочитаниÑта" @@ -900,6 +946,10 @@ msgstr "Грешка при запиÑа на зареждащата прогр msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Грешка при запиÑа на зареждащата програма: липÑва конфигурациониÑÑ‚ параметър „{0}“" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Грешка при запиÑа на зареждащата програма. МолÑ, изберете Ñериен порт." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Грешка при компилиране: липÑва конфигурационниÑÑ‚ параметър „{0}“" @@ -936,10 +986,6 @@ msgstr "Грешка при проверката/качването" msgid "Estonian" msgstr "ЕÑтонÑки" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "ЕÑтонÑки (ЕÑтониÑ)" - #: Editor.java:516 msgid "Examples" msgstr "Примери" @@ -1143,8 +1189,8 @@ msgstr "ÐЕСЪВМЕСТИМ" msgid "Ignore Case" msgstr "Без оглед на региÑтъра" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "Пренебрегване на библиотека Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¾ име" #: Base.java:1436 @@ -1171,6 +1217,10 @@ msgstr "Включване на библиотека" msgid "Incorrect IDE installation folder" msgstr "Ðеправилна инÑталационна папка на Ñредата за разработка" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Увеличаване на размера на шрифта" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Увеличаване на отÑтъпа" @@ -1204,10 +1254,10 @@ msgstr "ИнÑталирани" msgid "Installing boards..." msgstr "ИнÑталиране на платките…" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "ИнÑталиране на библиотека: {0}" +msgid "Installing library: {0}:{1}" +msgstr "ИнÑталиране на библиотека: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1233,6 +1283,17 @@ msgstr "Ðамерена е неправилна библиотека в {0}: {1 msgid "Invalid quoting: no closing [{0}] char found." msgstr "Ðеправилни кавички: липÑва затварÑщ знак [{0}]." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Ðеправилна верÑÐ¸Ñ â€ž{0}“ за библиотека в: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Ðеправилна верÑÐ¸Ñ {0}" + #: Preferences.java:102 msgid "Italian" msgstr "ИталианÑки" @@ -1265,10 +1326,10 @@ msgstr "Библиотеката е добавена към Вашите биб msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Библиотеката не може да ползва едновременно папките „src“ и „utility“. Проверете отново {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Библиотеката е вече инÑталирана: {0} верÑÐ¸Ñ {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Библиотеката е вече инÑталирана: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1685,10 +1746,10 @@ msgstr "Справочник" msgid "Remove" msgstr "Премахване" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Премахване на библиотека: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Премахване на библиотека: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1724,6 +1785,10 @@ msgstr "ЗамÑна Ñ:" msgid "Retired" msgstr "Изтеглени от употреба" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "ИÑкате ли да опитате качване чрез друг Ñериен порт?" + #: Preferences.java:113 msgid "Romanian" msgstr "РумънÑки" @@ -1847,12 +1912,15 @@ msgid "" " Serial Port menu?" msgstr "СерийниÑÑ‚ порт „{0}“ не е намерен. Избран ли е правилниÑÑ‚ в менюто „ИнÑтрументи > Сериен порт“?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Ðе е избран Ñериен порт." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "СерийниÑÑ‚ порт {0} не е намерен.\nИÑкате ли да опитате качване чрез друг Ñериен порт?" +msgid "Serial port {0} not found." +msgstr "СерийниÑÑ‚ порт {0} не е намерен." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1875,6 +1943,10 @@ msgstr "ВъпроÑи, Ñвързани Ñ Ð½Ð°Ñтройките" msgid "Show Sketch Folder" msgstr "Показване на папката на Ñкицата" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Показване на времеви код" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Показване на подробна Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸:" @@ -2046,6 +2118,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Файлът „{0}“ трÑбва да е в\nпапката Ñ Ð¸Ð¼Ðµ „{1}“ на Ñкицата.\nСъздаване на папката, премеÑтване на файла и продължаване?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Библиотеката „{0}“ не може да Ñе използва.\nИмената на папките на библиотеките трÑбва да започват Ñ Ð±ÑƒÐºÐ²Ð° или цифра, Ñлед което\nможе да има букви, цифри, тирета, точки и долни черти. МакÑималната дължина е 63 знака." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2091,12 +2171,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Папката на Ñкицата изчезна.\nЩе бъде направен опит за повторно запазване на\nÑъщото мÑÑто, но вÑичко, оÑвен кода, ще бъде загубено." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Името на Ñкицата трÑбваше да бъде променено. Имената на Ñкиците\nможе да Ñъдържат Ñамо знаци от „ASCII“ (но не може да започват Ñ\nцифра). Те трÑбва Ñъщо да Ñа по-къÑи от 64 знака." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Ðаложи Ñе името на Ñкицата да бъде променено.\nИмената на Ñкиците трÑбва да започват Ñ Ð±ÑƒÐºÐ²Ð° или цифра, Ñлед което\nможе да има букви, цифри, тирета, точки и долни черти. МакÑималната дължина е 63 знака." #: Base.java:259 msgid "" @@ -2113,6 +2193,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Зададената папка за Ñкицника Ñъдържа файловете на Ñредата за разработка.\nМолÑ, изберете друга папка за Ñкицника." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Тема:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2605,6 +2689,12 @@ msgstr "пренебрегване на неправилен размер на msgid "name is null" msgstr "„name“ е празно" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "нÑма намерени заглавни файлове (.h) в „{0}“" + #: Editor.java:932 msgid "serialMenu is null" msgstr "„serialMenu“ е празно" @@ -2692,11 +2782,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: неправилно име на платка. То трÑбва да е във вида: „пакет:архитектура:платка“ или „пакет:архитектура:платка:опции“" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° опциÑта „{1}“ за платката „{2}“" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2707,6 +2792,11 @@ msgstr "{0}: неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð° платката „{1}“" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: неправилна опциÑ. Ð¢Ñ Ñ‚Ñ€Ñбва да е във вида: „име=ÑтойноÑт“" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Ðеправилна ÑтойноÑÑ‚ за опциÑта „{1}“ за платката „{2}“" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_bg.properties b/arduino-core/src/processing/app/i18n/Resources_bg.properties index 8b28f76c2be..43b11b9843f 100644 --- a/arduino-core/src/processing/app/i18n/Resources_bg.properties +++ b/arduino-core/src/processing/app/i18n/Resources_bg.properties @@ -16,13 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anton Stoychev , 2013 # Cristian Maglie , 2016 # Gabriel Radev , 2017 # Ivaylo Malinov , 2015 -# Valentin Laskov , 2012-2016 -# \u041b\u044e\u0431\u043e\u043c\u0438\u0440 \u0412\u0430\u0441\u0438\u043b\u0435\u0432, 2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:41+0000\nLast-Translator\: \u041b\u044e\u0431\u043e\u043c\u0438\u0440 \u0412\u0430\u0441\u0438\u043b\u0435\u0432\nLanguage-Team\: Bulgarian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/bg/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: bg\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +# Valentin Laskov , 2012-2016 +# \u041b\u044e\u0431\u043e\u043c\u0438\u0440 \u0412\u0430\u0441\u0438\u043b\u0435\u0432, 2017-2018 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 17\:39+0000\nLast-Translator\: \u041b\u044e\u0431\u043e\u043c\u0438\u0440 \u0412\u0430\u0441\u0438\u043b\u0435\u0432\nLanguage-Team\: Bulgarian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/bg/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: bg\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (\u0438\u0437\u0438\u0441\u043a\u0432\u0430 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0410\u0440\u0434\u0443\u0438\u043d\u043e) @@ -147,6 +151,10 @@ Archive\ sketch\ as\:=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u04 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430 \u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0435\u043d\u043e. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0433\u0440\u0430\u0434\u0435\u043d\u043e\u0442\u043e \u044f\u0434\u0440\u043e (\u043a\u0435\u0448\u0438\u0440\u0430\u043d\u0435) \u0441\u043b\u0435\u0434\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430 \u0431\u0435\u0448\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0435\u043d\u043e, \u0442\u044a\u0439 \u043a\u0430\u0442\u043e\n\u0441\u043a\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e. @@ -441,6 +449,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u0421\u0442\u0430\u0440\u0430\u0442\u #, java-format Could\ not\ replace\ {0}=\u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0437\u0430\u043c\u0435\u043d\u0438 +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=\u0424\u0430\u0439\u043b\u044a\u0442 \u0441 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u043d\u0438\u044f\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u0421\u043a\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043d\u0430 @@ -471,12 +483,18 @@ Data\ Processing=\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0432\u0430\u043d\u0 #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0437\u0430 \u0434\u0430\u043d\u043d\u0438 +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430 + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u0422\u0435\u043c\u0430 \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 + #: EditorHeader.java:314 Sketch.java:591 Delete=\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 @@ -608,6 +626,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=\u0413\u0440\u0435\u0448\u043a\u0430 #, java-format Error\ inside\ Serial.{0}()=\u0413\u0440\u0435\u0448\u043a\u0430 \u0432 Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0442\u0435\u043c\u0430\u0442\u0430 \u201e{0}\u201c\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -622,6 +644,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u0413\u0440\u0435\u0448\u043a\u0430 \u04 #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0441\u0435\u0440\u0438\u0435\u043d \u043f\u043e\u0440\u0442 \u201e{0}\u201c. \u041f\u0440\u0435\u0433\u043b\u0435\u0434\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0442\u0430 \u043d\u0430 http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u0442\u0435\: {0}\n\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u043e\u0442\u0432\u043e\u0440\u0438\u0442\u0435 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446\u0430 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u0442\u0435, \u0437\u0430 \u0434\u0430 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0447\u0435\u0442\u0435\u043d\u0435\u0442\u043e \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u0442\u0435\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0430\u043f\u043a\u0430\u0442\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0438 \u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u0438\u0442\u0435\: {0}\n(\u041c\u043e\u0436\u0435 \u0431\u0438 \u0438\u043c\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u0440\u0430\u0432\u0430\u0442\u0430 \u0437\u0430 \u0434\u043e\u0441\u0442\u044a\u043f?) + #: Preferences.java:277 Error\ reading\ preferences=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0447\u0435\u0442\u0435\u043d\u0435\u0442\u043e \u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u043d\u0438\u044f\u0442\u0430 @@ -647,6 +681,9 @@ Error\ while\ burning\ bootloader.=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0430 \u043d\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u0449\u0430\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430\: \u043b\u0438\u043f\u0441\u0432\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u0438\u044f\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u201e{0}\u201c +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0430 \u043d\u0430 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u0449\u0430\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0430. \u041c\u043e\u043b\u044f, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u0435\u0440\u0438\u0435\u043d \u043f\u043e\u0440\u0442. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0430\u043d\u0435\: \u043b\u0438\u043f\u0441\u0432\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0438\u044f\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u044a\u0440 \u201e{0}\u201c @@ -675,9 +712,6 @@ Error\ while\ verifying/uploading=\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0 #: Preferences.java:93 Estonian=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0438 -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0438 (\u0415\u0441\u0442\u043e\u043d\u0438\u044f) - #: Editor.java:516 Examples=\u041f\u0440\u0438\u043c\u0435\u0440\u0438 @@ -828,8 +862,8 @@ INCOMPATIBLE=\u041d\u0415\u0421\u042a\u0412\u041c\u0415\u0421\u0422\u0418\u041c #: FindReplace.java:96 Ignore\ Case=\u0411\u0435\u0437 \u043e\u0433\u043b\u0435\u0434 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044a\u0440\u0430 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0438\u043c\u0435 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0438\u043c\u0435 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043a\u0438\u0446\u0430 \u0441 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0438\u043c\u0435 @@ -844,6 +878,9 @@ Include\ Library=\u0412\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043d\u #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u043e\u043d\u043d\u0430 \u043f\u0430\u043f\u043a\u0430 \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430 + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430 @@ -870,9 +907,9 @@ Installed=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043b\u0430\u0442\u043a\u0438\u0442\u0435\u2026 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\: {0} +Installing\ library\:\ {0}\:{1}=\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -893,6 +930,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u041d\u0430\u043c\u0435\u0440\u0435\u04 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438 \u043a\u0430\u0432\u0438\u0447\u043a\u0438\: \u043b\u0438\u043f\u0441\u0432\u0430 \u0437\u0430\u0442\u0432\u0430\u0440\u044f\u0449 \u0437\u043d\u0430\u043a [{0}]. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u201e{0}\u201c \u0437\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f {0} + #: Preferences.java:102 Italian=\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438 @@ -917,9 +963,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=\u0411\u04 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u043f\u043e\u043b\u0437\u0432\u0430 \u0435\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0430\u043f\u043a\u0438\u0442\u0435 \u201esrc\u201c \u0438 \u201eutility\u201c. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u0435 \u0432\u0435\u0447\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0430\: {0} \u0432\u0435\u0440\u0441\u0438\u044f {1} +Library\ is\ already\ installed\:\ {0}\:{1}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u0435 \u0432\u0435\u0447\u0435 \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0430\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u041d\u043e\u043c\u0435\u0440 \u043d\u0430 \u0440\u0435\u0434\: @@ -1232,9 +1278,9 @@ Reference=\u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\: {0} +Removing\ library\:\ {0}\:{1}=\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1262,6 +1308,9 @@ Replace\ with\:=\u0417\u0430\u043c\u044f\u043d\u0430 \u0441\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=\u0418\u0437\u0442\u0435\u0433\u043b\u0435\u043d\u0438 \u043e\u0442 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u0430 +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u043e\u043f\u0438\u0442\u0430\u0442\u0435 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0447\u0440\u0435\u0437 \u0434\u0440\u0443\u0433 \u0441\u0435\u0440\u0438\u0435\u043d \u043f\u043e\u0440\u0442? + #: Preferences.java:113 Romanian=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0438 @@ -1353,9 +1402,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u0421\u0435\u0440\u04 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u0421\u0435\u0440\u0438\u0439\u043d\u0438\u044f\u0442 \u043f\u043e\u0440\u0442 \u201e{0}\u201c \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d. \u0418\u0437\u0431\u0440\u0430\u043d \u043b\u0438 \u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0438\u044f\u0442 \u0432 \u043c\u0435\u043d\u044e\u0442\u043e \u201e\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438 > \u0421\u0435\u0440\u0438\u0435\u043d \u043f\u043e\u0440\u0442\u201c? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=\u041d\u0435 \u0435 \u0438\u0437\u0431\u0440\u0430\u043d \u0441\u0435\u0440\u0438\u0435\u043d \u043f\u043e\u0440\u0442. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u0421\u0435\u0440\u0438\u0439\u043d\u0438\u044f\u0442 \u043f\u043e\u0440\u0442 {0} \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.\n\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u043e\u043f\u0438\u0442\u0430\u0442\u0435 \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u0447\u0440\u0435\u0437 \u0434\u0440\u0443\u0433 \u0441\u0435\u0440\u0438\u0435\u043d \u043f\u043e\u0440\u0442? +Serial\ port\ {0}\ not\ found.=\u0421\u0435\u0440\u0438\u0439\u043d\u0438\u044f\u0442 \u043f\u043e\u0440\u0442 {0} \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=\u0421\u0435\u0440\u0438\u0439\u043d\u0438 \u043f\u043e\u0440\u0442\u043e\u0432\u0435 @@ -1373,6 +1426,9 @@ Settings\ issues=\u0412\u044a\u043f\u0440\u043e\u0441\u0438, \u0441\u0432\u044a\ #: Editor.java:641 Show\ Sketch\ Folder=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u043f\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430 +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u0432\u0438 \u043a\u043e\u0434 + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u0440\u0438\: @@ -1492,6 +1548,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u0424\u0430\u0439\u043b\u044a\u0442 \u201e{0}\u201c \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432\n\u043f\u0430\u043f\u043a\u0430\u0442\u0430 \u0441 \u0438\u043c\u0435 \u201e{1}\u201c \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430.\n\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0430\u043f\u043a\u0430\u0442\u0430, \u043f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0430\u0432\u0430\u043d\u0435? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430.\n\u0418\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u043f\u0430\u043f\u043a\u0438\u0442\u0435 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0441 \u0431\u0443\u043a\u0432\u0430 \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u0430, \u0441\u043b\u0435\u0434 \u043a\u043e\u0435\u0442\u043e\n\u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043c\u0430 \u0431\u0443\u043a\u0432\u0438, \u0446\u0438\u0444\u0440\u0438, \u0442\u0438\u0440\u0435\u0442\u0430, \u0442\u043e\u0447\u043a\u0438 \u0438 \u0434\u043e\u043b\u043d\u0438 \u0447\u0435\u0440\u0442\u0438. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430\u0442\u0430 \u0434\u044a\u043b\u0436\u0438\u043d\u0430 \u0435 63 \u0437\u043d\u0430\u043a\u0430. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0442\u0430 \u201e{0}\u201c \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043b\u0437\u0432\u0430.\n\u0418\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u0430 \u0441\u044a\u0441\u0442\u0430\u0432\u0435\u043d\u0438 \u0441\u0430\u043c\u043e \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0438 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438 \u0431\u0443\u043a\u0432\u0438 \u0438 \u0446\u0438\u0444\u0440\u0438.\n(\u0421\u0430\u043c\u043e \u0431\u0443\u043a\u0432\u0438 \u043e\u0442 \u201eASCII\u201c, \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0438, \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0441 \u0446\u0438\u0444\u0440\u0430) @@ -1516,8 +1576,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=\u0421\u043a\u0438\u0446\u #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u041f\u0430\u043f\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430 \u0438\u0437\u0447\u0435\u0437\u043d\u0430.\n\u0429\u0435 \u0431\u044a\u0434\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u0435\u043d \u043e\u043f\u0438\u0442 \u0437\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0437\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430\n\u0441\u044a\u0449\u043e\u0442\u043e \u043c\u044f\u0441\u0442\u043e, \u043d\u043e \u0432\u0441\u0438\u0447\u043a\u043e, \u043e\u0441\u0432\u0435\u043d \u043a\u043e\u0434\u0430, \u0449\u0435 \u0431\u044a\u0434\u0435 \u0437\u0430\u0433\u0443\u0431\u0435\u043d\u043e. -#: ../../../processing/app/Sketch.java:2028 -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.=\u0418\u043c\u0435\u0442\u043e \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430\u0448\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u0435\u043d\u043e. \u0418\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u0441\u043a\u0438\u0446\u0438\u0442\u0435\n\u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0442 \u0441\u0430\u043c\u043e \u0437\u043d\u0430\u0446\u0438 \u043e\u0442 \u201eASCII\u201c (\u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0441\n\u0446\u0438\u0444\u0440\u0430). \u0422\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0441\u044a\u0449\u043e \u0434\u0430 \u0441\u0430 \u043f\u043e-\u043a\u044a\u0441\u0438 \u043e\u0442 64 \u0437\u043d\u0430\u043a\u0430. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u041d\u0430\u043b\u043e\u0436\u0438 \u0441\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0441\u043a\u0438\u0446\u0430\u0442\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u043e\u043c\u0435\u043d\u0435\u043d\u043e.\n\u0418\u043c\u0435\u043d\u0430\u0442\u0430 \u043d\u0430 \u0441\u043a\u0438\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430\u0442 \u0441 \u0431\u0443\u043a\u0432\u0430 \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u0430, \u0441\u043b\u0435\u0434 \u043a\u043e\u0435\u0442\u043e\n\u043c\u043e\u0436\u0435 \u0434\u0430 \u0438\u043c\u0430 \u0431\u0443\u043a\u0432\u0438, \u0446\u0438\u0444\u0440\u0438, \u0442\u0438\u0440\u0435\u0442\u0430, \u0442\u043e\u0447\u043a\u0438 \u0438 \u0434\u043e\u043b\u043d\u0438 \u0447\u0435\u0440\u0442\u0438. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u043d\u0430\u0442\u0430 \u0434\u044a\u043b\u0436\u0438\u043d\u0430 \u0435 63 \u0437\u043d\u0430\u043a\u0430. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u041f\u0430\u043f\u043a\u0430\u0442\u0430 \u043d\u0430 \u0441\u043a\u0438\u0446\u043d\u0438\u043a\u0430 \u0432\u0435\u0447\u0435 \u043d\u0435 \u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430. \u0410\u0440\u0434\u0443\u0438\u043d\u043e\n\u0449\u0435 \u043f\u0440\u0435\u043c\u0438\u043d\u0435 \u043a\u044a\u043c \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u0442\u043e\n\u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u0437\u0430 \u0441\u043a\u0438\u0446\u043d\u0438\u043a\u0430, \u0438\u043b\u0438 \u0449\u0435 \u0441\u044a\u0437\u0434\u0430\u0434\u0435 \u043d\u043e\u0432\u0430\n\u043f\u0430\u043f\u043a\u0430, \u0430\u043a\u043e \u0442\u043e\u0432\u0430 \u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e. \u0421\u043b\u0435\u0434 \u0442\u043e\u0432\u0430 \u0410\u0440\u0434\u0443\u0438\u043d\u043e\n\u0449\u0435 \u0441\u043f\u0440\u0435 \u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438 \u0437\u0430 \u0441\u0435\u0431\u0435 \u0441\u0438 \u0432 \u0442\u0440\u0435\u0442\u043e \u043b\u0438\u0446\u0435. @@ -1525,6 +1585,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=\u0417\u0430\u0434\u0430\u0434\u0435\u043d\u0430\u0442\u0430 \u043f\u0430\u043f\u043a\u0430 \u0437\u0430 \u0441\u043a\u0438\u0446\u043d\u0438\u043a\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0435\u0442\u0435 \u043d\u0430 \u0441\u0440\u0435\u0434\u0430\u0442\u0430 \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430.\n\u041c\u043e\u043b\u044f, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u0430 \u043f\u0430\u043f\u043a\u0430 \u0437\u0430 \u0441\u043a\u0438\u0446\u043d\u0438\u043a\u0430. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =\u0422\u0435\u043c\u0430\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=\u0422\u0430\u0437\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043b\u0438\u043f\u0441\u0432\u0430 \u0432 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0432 \u201e\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u201c. \u041d\u044f\u043c\u0430 \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0434\u0430 \u044f \u0438\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u0442\u0435 \u043e\u0442 \u0442\u0443\u043a.\n\u041d\u0430\u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u044f \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435? @@ -1859,6 +1922,11 @@ ignoring\ invalid\ font\ size\ {0}=\u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0 #: Editor.java:936 Editor.java:943 name\ is\ null=\u201ename\u201c \u0435 \u043f\u0440\u0430\u0437\u043d\u043e +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=\u043d\u044f\u043c\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435 (.h) \u0432 \u201e{0}\u201c + #: Editor.java:932 serialMenu\ is\ null=\u201eserialMenu\u201c \u0435 \u043f\u0440\u0430\u0437\u043d\u043e @@ -1926,10 +1994,6 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0438\u044f {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u043e \u0438\u043c\u0435 \u043d\u0430 \u043f\u043b\u0430\u0442\u043a\u0430. \u0422\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432\u044a\u0432 \u0432\u0438\u0434\u0430\: \u201e\u043f\u0430\u043a\u0435\u0442\:\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\:\u043f\u043b\u0430\u0442\u043a\u0430\u201c \u0438\u043b\u0438 \u201e\u043f\u0430\u043a\u0435\u0442\:\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\:\u043f\u043b\u0430\u0442\u043a\u0430\:\u043e\u043f\u0446\u0438\u0438\u201c -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u0437\u0430 \u043e\u043f\u0446\u0438\u044f\u0442\u0430 \u201e{1}\u201c \u0437\u0430 \u043f\u043b\u0430\u0442\u043a\u0430\u0442\u0430 \u201e{2}\u201c - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u0437\u0430 \u043f\u043b\u0430\u0442\u043a\u0430\u0442\u0430 \u201e{1}\u201c @@ -1938,6 +2002,10 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0438\u044f {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u043e\u043f\u0446\u0438\u044f. \u0422\u044f \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0435 \u0432\u044a\u0432 \u0432\u0438\u0434\u0430\: \u201e\u0438\u043c\u0435\=\u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u201c +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u043d\u0430 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442 \u0437\u0430 \u043e\u043f\u0446\u0438\u044f\u0442\u0430 \u201e{1}\u201c \u0437\u0430 \u043f\u043b\u0430\u0442\u043a\u0430\u0442\u0430 \u201e{2}\u201c + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 diff --git a/arduino-core/src/processing/app/i18n/Resources_bs.po b/arduino-core/src/processing/app/i18n/Resources_bs.po index d123e8e9015..e390e187106 100644 --- a/arduino-core/src/processing/app/i18n/Resources_bs.po +++ b/arduino-core/src/processing/app/i18n/Resources_bs.po @@ -16,13 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Kenan DerviÅ¡ević, 2013-2014 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 17:25+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Bosnian (http://www.transifex.com/mbanzi/arduino-ide-15/language/bs/)\n" "MIME-Version: 1.0\n" @@ -210,6 +214,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +625,11 @@ msgstr "Nije moguće ukloniti staru verziju {0}." msgid "Could not replace {0}" msgstr "Nije moguće zamijeniti {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -659,6 +673,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Smanji uvlaku" @@ -667,6 +685,10 @@ msgstr "Smanji uvlaku" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "ObriÅ¡i" @@ -842,6 +864,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +888,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -895,6 +941,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +981,6 @@ msgstr "" msgid "Estonian" msgstr "estonski" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Primjeri" @@ -1138,8 +1184,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1166,6 +1212,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Povećaj uvlaku" @@ -1199,9 +1249,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1278,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "italijanski" @@ -1260,9 +1321,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1680,9 +1741,9 @@ msgstr "Reference" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1780,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "rumunski" @@ -1842,11 +1907,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1870,6 +1938,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "Prikaži folder skice" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2041,6 +2113,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,11 +2166,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2108,6 +2188,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2684,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2687,11 +2777,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2787,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_bs.properties b/arduino-core/src/processing/app/i18n/Resources_bs.properties index 4f8c662a654..dd3979f9c89 100644 --- a/arduino-core/src/processing/app/i18n/Resources_bs.properties +++ b/arduino-core/src/processing/app/i18n/Resources_bs.properties @@ -16,8 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Kenan Dervi\u0161evi\u0107, 2013-2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 17\:25+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Bosnian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/bs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: bs\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Bosnian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/bs/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: bs\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(zahtjeva ponovno pokretanje Arduina) @@ -142,6 +146,10 @@ Aragonese=aragonski #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -436,6 +444,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Nije mogu\u0107e ukloniti staru verzij #, java-format Could\ not\ replace\ {0}=Nije mogu\u0107e zamijeniti {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -466,12 +478,18 @@ Cut=Izre\u017ei #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Smanji uvlaku #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Obri\u0161i @@ -603,6 +621,10 @@ Error=Gre\u0161ka #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +639,18 @@ Error=Gre\u0161ka #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -642,6 +676,9 @@ Error=Gre\u0161ka #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +707,6 @@ Error\ while\ printing.=Gre\u0161ka prilikom \u0161tampanja. #: Preferences.java:93 Estonian=estonski -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Primjeri @@ -823,8 +857,8 @@ Hungarian=ma\u0111arski #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -839,6 +873,9 @@ Hungarian=ma\u0111arski #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Pove\u0107aj uvlaku @@ -865,9 +902,9 @@ Indonesian=indonezijski #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +925,15 @@ Indonesian=indonezijski #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=italijanski @@ -912,9 +958,9 @@ Latvian=latvijski #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1227,9 +1273,9 @@ Reference=Reference #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1303,9 @@ Rename=Preimenuj #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=rumunski @@ -1348,9 +1397,13 @@ Select\ All=Ozna\u010di sve #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1368,6 +1421,9 @@ Select\ All=Ozna\u010di sve #: Editor.java:641 Show\ Sketch\ Folder=Prika\u017ei folder skice +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1487,6 +1543,10 @@ Tamil=tamilski #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1511,8 +1571,8 @@ Tamil=tamilski #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1520,6 +1580,9 @@ Tamil=tamilski #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1917,11 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1921,10 +1989,6 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1997,10 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_ca.po b/arduino-core/src/processing/app/i18n/Resources_ca.po index 8ee3ce8d55e..9d9d3a31e61 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ca.po +++ b/arduino-core/src/processing/app/i18n/Resources_ca.po @@ -16,9 +16,15 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# dplanella , 2017 # Enric Verdaguer , 2016 -# Francesc Famadas , 2015 -# Marc GB , 2016 +# Francesc Famadas, 2015 +# jmontane, 2018 +# 17275f6663c0806cb14df3aaa64f5dcc_36b1070 <63b2d9bf279ebdb5b732343823eaa154_408083>, 2016 # Marc Palacín , 2016 # Moritz Werner Casero , 2015 # Sergi Pérez Labernia , 2014 @@ -30,7 +36,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:21+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Catalan (http://www.transifex.com/mbanzi/arduino-ide-15/language/ca/)\n" "MIME-Version: 1.0\n" @@ -41,17 +47,17 @@ msgstr "" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" -msgstr "(és necessari reiniciar l'Arduino)" +msgstr "(cal reiniciar l'Arduino)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format msgid " Not used: {0}" -msgstr "No fet servir:{0}" +msgstr "No utilitzat: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format msgid " Used: {0}" -msgstr "fet servir:{0}" +msgstr "Utilitzat: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 msgid "" @@ -76,7 +82,7 @@ msgstr "(només editar quan l'Arduino no estigui funcionant)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "(llegat)" +msgstr "(antic)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" @@ -86,7 +92,7 @@ msgstr "--curdir ja no es suporta." msgid "" "--verbose, --verbose-upload and --verbose-build can only be used together " "with --verify or --upload" -msgstr "--verbós, --verbós-pujar i -verbós-build només es poden emprar juntes amb --verificar o --pujar" +msgstr "--verbose, --verbose-upload i -verbose-build només es poden emprar juntes amb --verify o --upload" #: Sketch.java:746 msgid ".pde -> .ino" @@ -108,7 +114,7 @@ msgstr "La carpeta anomenada \"{0}\" ja existeix. No es pot obrir el programari. #: Base.java:2690 #, java-format msgid "A library named {0} already exists" -msgstr "La llibreria anomenada {0} ja existeix" +msgstr "La biblioteca anomenada {0} ja existeix" #: UpdateCheck.java:103 msgid "" @@ -123,7 +129,7 @@ msgstr "Un paquet {0} nou esta disponible." #: ../../../../../app/src/processing/app/Base.java:2307 msgid "A subfolder of your sketchbook is not a valid library" -msgstr "Una sub-carpeta del teu bloc de programaris no és una llibreria vàlida." +msgstr "Una subcarpeta del vostre bloc de programaris no és una biblioteca vàlida." #: Editor.java:1116 msgid "About Arduino" @@ -131,27 +137,27 @@ msgstr "Quant a Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "Afegir llibreria .ZIP ..." +msgstr "Afegeix una biblioteca .ZIP ..." #: Editor.java:650 msgid "Add File..." -msgstr "Afegeix Arxiu..." +msgstr "Afegeix un fitxer..." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "URLs addicionals de Gestor de plaques" +msgstr "URL addicionals de gestor de plaques" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "URLs addicionals de Gestor de plaques:" +msgstr "URL addicionals de gestor de plaques:" #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" -msgstr "Afrikaans" +msgstr "afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" @@ -159,7 +165,7 @@ msgstr "" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" -msgstr "Albanès" +msgstr "albanès" #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 @@ -172,39 +178,39 @@ msgid "" "An error occurred while trying to fix the file encoding.\n" "Do not attempt to save this sketch as it may overwrite\n" "the old version. Use Open to re-open the sketch and try again.\n" -msgstr "Un error ha succeït provant d'arreglar la codificació del fitxer.\nNo provi de desar aquest programàri, podria sobreescriure\nla versió antiga. Utilitzi \"Obrir\" per re-obrir el programari tornar-ho a provar.\n" +msgstr "S'ha produït un error en intentar arreglar la codificació del fitxer.\nNo intenteu de desar aquest programari, podríeu sobreescriure\nla versió antiga. Utilitzeu «Obre» per a tornar a obrir el programari i torneu-ho a provar.\n" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "S´ha produït un error mentre s'actualitzava l'index de les llibreries!" +msgstr "S´ha produït un error mentre s'actualitzava l'index de les biblioteques!" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" -msgstr "Ha ocorregut un error mentre s'enviava el programari." +msgstr "S'ha produït un error mentre s'enviava el programari." #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "An error occurred while verifying the sketch" -msgstr "Ha ocorregut un error mentre es verificava el programari." +msgstr "S'ha produït un error mentre es verificava el programari." #: ../../../processing/app/BaseNoGui.java:521 msgid "An error occurred while verifying/uploading the sketch" -msgstr "Ha ocorregut un error mentre es verificava/enviava el programari." +msgstr "S'ha produït un error mentre es verificava o enviava el programari." #: Base.java:228 msgid "" "An unknown error occurred while trying to load\n" "platform-specific code for your machine." -msgstr "Un error desconegut ha succeït mentre es provava de carregar\ncodi especific de la plataforma per la seva maquina." +msgstr "S'ha produït un error desconegut mentre es provava de carregar\ncodi especific de la plataforma per la seva màquina." #: Preferences.java:85 msgid "Arabic" -msgstr "Àrab" +msgstr "àrab" #: Preferences.java:86 msgid "Aragonese" -msgstr "Aragonès" +msgstr "aragonès" #: tools/Archiver.java:48 msgid "Archive Sketch" @@ -216,13 +222,18 @@ msgstr "Arxiva programari com:" #: tools/Archiver.java:139 msgid "Archive sketch canceled." -msgstr "Arxivat del programari cancel·lat." +msgstr "L'arxivament del programari s'ha cancel·lat." + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" "the sketch couldn't save properly." -msgstr "L'arxivament del programari ha estat cancel·lat per què\nel programari no s´ha pogut desar adequadament." +msgstr "L'arxivament del programari s'ha cancel·lat perquè\nel programari no s´ha pogut desar adequadament." #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" @@ -265,41 +276,41 @@ msgstr "Esteu segur que voleu suprimir \"{0}\"?" #: Sketch.java:587 msgid "Are you sure you want to delete this sketch?" -msgstr "Segur que voleu suprimir aquest programàri?" +msgstr "Esteu segur que voleu suprimir aquest programari?" #: ../../../processing/app/Base.java:356 msgid "Argument required for --board" -msgstr "Es requereix un argument per --board" +msgstr "Es requereix un argument per a --board" #: ../../../processing/app/Base.java:363 msgid "Argument required for --port" -msgstr "Es requereix un argument per --port" +msgstr "Es requereix un argument per a --port" #: ../../../processing/app/Base.java:377 msgid "Argument required for --pref" -msgstr "Es requereix un argument per --pref" +msgstr "Es requereix un argument per a --pref" #: ../../../processing/app/Base.java:384 msgid "Argument required for --preferences-file" -msgstr "Es requereix un argument per --preferences-file" +msgstr "Es requereix un argument per a --preferences-file" #: ../../../processing/app/helpers/CommandlineParser.java:76 #: ../../../processing/app/helpers/CommandlineParser.java:83 #, java-format msgid "Argument required for {0}" -msgstr "Es requereix un argument per {0}" +msgstr "Es requereix un argument per a {0}" #: ../../../processing/app/Preferences.java:137 msgid "Armenian" -msgstr "Armeni" +msgstr "armeni" #: ../../../processing/app/Preferences.java:138 msgid "Asturian" -msgstr "Asturià" +msgstr "asturià" #: ../../../processing/app/debug/Compiler.java:145 msgid "Authorization required" -msgstr "Autorització requirida" +msgstr "Autorització requerida" #: tools/AutoFormat.java:91 msgid "Auto Format" @@ -336,16 +347,16 @@ msgstr "Fitxer seleccionat incorrecte" #: ../../../processing/app/Preferences.java:149 msgid "Basque" -msgstr "Basc" +msgstr "basc" #: ../../../processing/app/Preferences.java:139 msgid "Belarusian" -msgstr "Bielorús" +msgstr "bielorús" #: ../../../processing/app/Base.java:1433 #: ../../../processing/app/Editor.java:707 msgid "Board" -msgstr "Tarja" +msgstr "Placa" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" @@ -355,7 +366,7 @@ msgstr "Informació de la placa" #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "Tarja al {0} no es troba disponible" +msgstr "La placa al {0} no es troba disponible" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -367,19 +378,19 @@ msgstr "Placa {0} (plataforma {1}, paquet {2}) desconeguda" msgid "" "Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to:" " {3}" -msgstr "Tarja {0}:{1}:{2} no defineix la preferència del ''build.board''. Auto-seleccionat per: {3}" +msgstr "Placa {0}:{1}:{2} no defineix la preferència del ''build.board''. Auto-seleccionat per: {3}" #: ../../../processing/app/EditorStatus.java:472 msgid "Board: " -msgstr "Tarja: " +msgstr "Placa: " #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Boards Manager" -msgstr "Gestor targes" +msgstr "Gestor plaques" #: ../../../../../app/src/processing/app/Base.java:1320 msgid "Boards Manager..." -msgstr "Gestor targes" +msgstr "Gestor de plaques..." #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 msgid "Boards included in this package:" @@ -392,7 +403,7 @@ msgstr "Fitxer de bootloader especificat però no trobat: {0}" #: ../../../processing/app/Preferences.java:140 msgid "Bosnian" -msgstr "Bosni" +msgstr "bosnià" #: SerialMonitor.java:112 msgid "Both NL & CR" @@ -400,11 +411,11 @@ msgstr "Ambdós NL & CR" #: Preferences.java:81 msgid "Browse" -msgstr "Navegar" +msgstr "Navega" #: ../../../processing/app/Sketch.java:1530 msgid "Build options changed, rebuilding all" -msgstr "Opcions de compilat canviades, re-compilant tot" +msgstr "Opcions de compilat canviades, s'està tornant a compilar-ho tot" #: ../../../../../app/src/processing/app/Base.java:1210 msgid "Built-in Examples" @@ -412,19 +423,19 @@ msgstr "Exemples inclosos" #: ../../../processing/app/Preferences.java:80 msgid "Bulgarian" -msgstr "Búlgar" +msgstr "búlgar" #: ../../../processing/app/Preferences.java:141 msgid "Burmese (Myanmar)" -msgstr "Birmà (Birmània)" +msgstr "birmà (Birmània)" #: Editor.java:708 msgid "Burn Bootloader" -msgstr "Carrega Bootloader" +msgstr "Enregistra el bootloader" #: Editor.java:2504 msgid "Burning bootloader to I/O Board (this may take a minute)..." -msgstr "La carrega del bootloader a la I/O placa (pot durar uns minuts)..." +msgstr "L'enregistrament del bootloader a la I/O placa (pot durar uns minuts)..." #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 msgid "" @@ -448,7 +459,7 @@ msgstr "No es troba programari en el directòri especificat" #: ../../../processing/app/Preferences.java:92 msgid "Canadian French" -msgstr "Francès Canadenc" +msgstr "francès canadenc" #: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2064 Editor.java:2145 Editor.java:2465 @@ -457,7 +468,7 @@ msgstr "Cancel·la" #: ../../../processing/app/Base.java:465 msgid "Cannot specify any sketch files" -msgstr "No es poden especificar cap arxiu de programari" +msgstr "No es poden especificar cap fitxer de programari" #: SerialMonitor.java:112 msgid "Carriage return" @@ -465,31 +476,31 @@ msgstr "Retorn de carro" #: Preferences.java:87 msgid "Catalan" -msgstr "Català" +msgstr "català" #: Preferences.java:419 msgid "Check for updates on startup" -msgstr "Comprova actualitzacions al iniciar" +msgstr "Comprova si hi ha actualitzacions en iniciar" #: ../../../processing/app/Preferences.java:142 msgid "Chinese (China)" -msgstr "Xinès (Xina)" +msgstr "xinès (Xina)" #: ../../../processing/app/Preferences.java:144 msgid "Chinese (Taiwan)" -msgstr "Xinès (Taiwan)" +msgstr "xinès (Taiwan)" #: ../../../processing/app/Preferences.java:143 msgid "Chinese (Taiwan) (Big5)" -msgstr "Xinès (Taiwan) (Big5)" +msgstr "xinès (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Neteja la sortida" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" -msgstr "Clica per llista les targes no oficials que suporten URLs" +msgstr "Feu clic per a llistar les plaques no oficials que suporten URL" #: Editor.java:521 Editor.java:2024 msgid "Close" @@ -497,7 +508,7 @@ msgstr "Tanca" #: Editor.java:1208 Editor.java:2749 msgid "Comment/Uncomment" -msgstr "Comenta/Descomenta" +msgstr "Comenta o descomenta" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" @@ -505,11 +516,11 @@ msgstr "Comunicació" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " -msgstr "Alertes compilador:" +msgstr "Alertes del compilador:" #: Sketch.java:1608 Editor.java:1890 msgid "Compiling sketch..." -msgstr "Compilant el programàri..." +msgstr "S'està compilant el programari..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" @@ -521,15 +532,15 @@ msgstr "Copia" #: Editor.java:1177 Editor.java:2723 msgid "Copy as HTML" -msgstr "Copia com HTML" +msgstr "Copia com a HTML" #: ../../../processing/app/EditorStatus.java:455 msgid "Copy error messages" -msgstr "Copia missatges d'error" +msgstr "Copia els missatges d'error" #: Editor.java:1165 Editor.java:2715 msgid "Copy for Forum" -msgstr "Copia pel Forum" +msgstr "Copia per al fòrum" #: Sketch.java:1089 #, java-format @@ -543,7 +554,7 @@ msgstr "No s'ha pogut copiar en una ubicació adequada." #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "No s'ha pogut crear el directori \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -612,7 +623,7 @@ msgstr "No es pot llegir l'ajustament del tema de colors.\nNecessitaràs reinsta msgid "" "Could not read default settings.\n" "You'll need to reinstall Arduino." -msgstr "No es poden llegir les preferències inicials.\nNecessites tornar a instal·lar Arduino." +msgstr "No es poden llegir les preferències inicials.\nCal que torneu a instal·lar Arduino." #: Base.java:2482 #, java-format @@ -624,6 +635,11 @@ msgstr "No es pot esborrar l'anterior versió de {0}" msgid "Could not replace {0}" msgstr "No es pot substituir {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "No s´ha pogut arxivar el sketch" @@ -641,11 +657,11 @@ msgid "" "Couldn't find a Board on the selected port. Check that you have the correct " "port selected. If it is correct, try pressing the board's reset button " "after initiating the upload." -msgstr "No es pot trobar la Tarja en el port seleccionat. Verifica que tens el port correctament seleccionat. Si es correcte, intenta pressionar el polsador de reset de la Tarja després d'inicialitzar la pujada." +msgstr "No es pot trobar la placa en el port seleccionat. Verifica que tens el port correctament seleccionat. Si es correcte, intenta pressionar el polsador de reset de la placa després d'inicialitzar la pujada." #: ../../../processing/app/Preferences.java:82 msgid "Croatian" -msgstr "Croat" +msgstr "croat" #: Editor.java:1149 Editor.java:2699 msgid "Cut" @@ -653,11 +669,11 @@ msgstr "Retalla" #: ../../../../../app/src/processing/app/Preferences.java:119 msgid "Czech (Czech Republic)" -msgstr "Txèqui (República Txeca)" +msgstr "txec (República Txeca)" #: ../../../../../app/src/processing/app/Preferences.java:120 msgid "Danish (Denmark)" -msgstr "Danès (Dinamàrca)" +msgstr "danès (Dinamarca)" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" @@ -667,14 +683,22 @@ msgstr "Processament de dades" msgid "Data Storage" msgstr "Emmagatzematge de dades" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Redueix la mida del tipus de lletra" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" -msgstr "Disminuir el sagnat" +msgstr "Disminueix el sagnat" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 msgid "Default" msgstr "Predeterminat" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Suprimeix" @@ -706,19 +730,19 @@ msgstr "Mostra números de línia." msgid "" "Do you want to remove {0}?\n" "If you do so you won't be able to use {0} any more." -msgstr "Vols eliminar {0}?\nSi ho fas no podràs tornar a fer servir més {0}" +msgstr "Voleu eliminar {0}?\nSi ho feu no podreu tornar a fer servir més {0}" #: Editor.java:2064 msgid "Don't Save" -msgstr "No deseu" +msgstr "No desis" #: Editor.java:2275 Editor.java:2311 msgid "Done Saving." -msgstr "Guardat enllestit." +msgstr "Desament enllestit." #: Editor.java:2510 msgid "Done burning bootloader." -msgstr "Carrega del bootloader llesta." +msgstr "Enregistrament del bootloader finalitzat." #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 @@ -752,12 +776,12 @@ msgstr "Descarregant definició de plaques." #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 msgid "Downloading libraries index..." -msgstr "Descarregant índex de llibreries..." +msgstr "Descarregant índex de biblioteques..." #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 #, java-format msgid "Downloading library: {0}" -msgstr "Descarregant llibreria: {0}" +msgstr "S'està descarregant la biblioteca: {0}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 msgid "Downloading platforms index..." @@ -770,11 +794,11 @@ msgstr "Descarregant eines ({0}/{1})." #: Preferences.java:91 msgid "Dutch" -msgstr "Holandès" +msgstr "neerlandès" #: ../../../processing/app/Preferences.java:144 msgid "Dutch (Netherlands)" -msgstr "Holandès (Països Baixos)" +msgstr "neerlandès (Països Baixos)" #: ../../../../../app/src/processing/app/Editor.java:1309 msgid "Edison Help" @@ -790,7 +814,7 @@ msgstr "Mides del fonts del editor:" #: Preferences.java:353 msgid "Editor language: " -msgstr "Editor d'idioma:" +msgstr "Editor de llengua:" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 msgid "Enable Code Folding" @@ -798,20 +822,20 @@ msgstr "Activa el plegat de codi" #: Preferences.java:92 msgid "English" -msgstr "Anglès" +msgstr "anglès" #: ../../../processing/app/Preferences.java:145 msgid "English (United Kingdom)" -msgstr "Anglès (Regne Unit)" +msgstr "anglès (Regne Unit)" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 msgid "Enter a comma separated list of urls" -msgstr "Introdueix una llista d'urls separades per comes" +msgstr "Introdueix una llista d'URL separades per comes" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 msgid "Enter additional URLs, one for each row" -msgstr "Introdueix URLs addicionals, una per a cada fila" +msgstr "Introduïu URL addicionals, una per a cada fila" #: Editor.java:1062 msgid "Environment" @@ -850,6 +874,11 @@ msgstr "Error obtenint la carpeta data d'Arduino." msgid "Error inside Serial.{0}()" msgstr "Error a dins del Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -869,6 +898,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Error a l'obrir el port sèrie \"{0}\". Prova a consultar la documentació a http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Error en llegir les preferències" @@ -903,6 +951,10 @@ msgstr "Error al carrega el bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Error durant l’enregistrament del bootloader: no es troba el paràmetre de configuració {0}" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Error durant la pujada: no es troba el paràmetre de configuració {0}" @@ -937,11 +989,7 @@ msgstr "Error mentre verificava/pujava" #: Preferences.java:93 msgid "Estonian" -msgstr "Estonià" - -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estònia (Estònia)" +msgstr "estonià" #: Editor.java:516 msgid "Examples" @@ -949,17 +997,17 @@ msgstr "Exemples" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "Exemples per a qualsevol placa" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "Exemples per a {0}" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" -msgstr "Exemples de les Llibreries Personalitzades" +msgstr "Exemples de les biblioteques personalitzades" #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" @@ -971,7 +1019,7 @@ msgstr "Exportació cancel·lada, els canvis han de ser desats previament." #: ../../../../../app/src/processing/app/Editor.java:750 msgid "Export compiled Binary" -msgstr "Exporta el Binari compilat" +msgstr "Exporta el binari compilat" #: ../../../processing/app/Base.java:416 #, java-format @@ -981,7 +1029,7 @@ msgstr "No s´ha pogut obrir el sketch: \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "No s'ha pogut canviar el nom de \"{0}\" a \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" @@ -998,7 +1046,7 @@ msgstr "El nom de fitxer {0} és invàlid: s'ha ignorat" #: Preferences.java:94 msgid "Filipino" -msgstr "Filipí" +msgstr "filipí" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 msgid "Filter your search..." @@ -1030,18 +1078,18 @@ msgstr "Cerca:" #: ../../../processing/app/Preferences.java:147 msgid "Finnish" -msgstr "Finès" +msgstr "finès" #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 msgid "Fix Encoding & Reload" -msgstr "Arregla la codificació i recarrega" +msgstr "Arregla la codificació i torna a carregar" #: ../../../processing/app/BaseNoGui.java:318 msgid "" "For information on installing libraries, see: " "http://www.arduino.cc/en/Guide/Libraries\n" -msgstr "Per obtenir informació de com instal·lar llibreries, ves a: http://arduino.cc/en/Guide/Libraries\n" +msgstr "Per obtenir informació de com instal·lar biblioteques, ves a: http://arduino.cc/en/Guide/Libraries\n" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:118 #, java-format @@ -1050,19 +1098,19 @@ msgstr "Forçant el reinici obrint/tancat el port {0} a 1200bps" #: Preferences.java:95 msgid "French" -msgstr "Francès" +msgstr "francès" #: Editor.java:1097 msgid "Frequently Asked Questions" -msgstr "Preguntes Més Freqüents" +msgstr "Preguntes més freqüents" #: Preferences.java:96 msgid "Galician" -msgstr "Gallec" +msgstr "gallec" #: ../../../../../app/src/processing/app/Preferences.java:176 msgid "Galician (Spain)" -msgstr "Gallèc (Espanya)" +msgstr "gallec (Espanya)" #: ../../../../../app/src/processing/app/Editor.java:1288 msgid "Galileo Help" @@ -1070,11 +1118,11 @@ msgstr "Ajuda de Galileo" #: ../../../processing/app/Preferences.java:94 msgid "Georgian" -msgstr "Georgià" +msgstr "georgià" #: Preferences.java:97 msgid "German" -msgstr "Alemany" +msgstr "alemany" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" @@ -1106,11 +1154,11 @@ msgstr "Ves a la línia..." #: Preferences.java:98 msgid "Greek" -msgstr "Grec" +msgstr "grec" #: ../../../processing/app/Preferences.java:95 msgid "Hebrew" -msgstr "Hebreu" +msgstr "hebreu" #: Editor.java:1015 msgid "Help" @@ -1118,17 +1166,17 @@ msgstr "Ajuda" #: Preferences.java:99 msgid "Hindi" -msgstr "Hindi" +msgstr "hindi" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 msgid "Host name:" -msgstr "Nom de host:" +msgstr "Nom del servidor:" #: Sketch.java:295 msgid "" "How about saving the sketch first \n" "before trying to rename it?" -msgstr "Per què no prova de desar el sketch primer \nabans de provar de renombrar-lo?" +msgstr "Per què no proveu de desar el sketch primer \nabans d'intentar canviar-ne el nom?" #: Sketch.java:882 msgid "How very Borges of you" @@ -1136,19 +1184,19 @@ msgstr "Que tant Borges de part teva" #: Preferences.java:100 msgid "Hungarian" -msgstr "Hongarès" +msgstr "hongarès" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" -msgstr "" +msgstr "NO COMPATIBLE" #: FindReplace.java:96 msgid "Ignore Case" msgstr "Ignora diferències entre majúscules i minúscules" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorant el nom incorrecte de la Llibreria." +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1167,24 +1215,28 @@ msgstr "En Arduino 1.0, l'extensió per defecte del fitxer ha canviat\nde .pde a #: ../../../../../app/src/processing/app/Editor.java:778 msgid "Include Library" -msgstr "Inclou Llibreria" +msgstr "Inclou la biblioteca" #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 msgid "Incorrect IDE installation folder" msgstr "Carpeta d'instal·lació de l'IDE incorrecta" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Incrementa la mida del tipus de lletra" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Augmenta el sagnat" #: Preferences.java:101 msgid "Indonesian" -msgstr "Indonesi" +msgstr "indonesi" #: ../../../../../app/src/processing/app/Base.java:295 msgid "Initializing packages..." -msgstr "Inicialitzant paquets..." +msgstr "S'estan inicialitzant els paquets..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 @@ -1205,12 +1257,12 @@ msgstr "Instal·lat" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 msgid "Installing boards..." -msgstr "Instal·lant plaques..." +msgstr "S'estan instal·lant les plaques..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Instal·lant llibreria: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1220,7 +1272,7 @@ msgstr "Instal·lant eines: ({0}/{1})..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:239 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:172 msgid "Installing..." -msgstr "Instal·lant..." +msgstr "S'està instal·lant..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 msgid "Interface scale:" @@ -1229,49 +1281,60 @@ msgstr "Escalat d'interfície:" #: ../../../processing/app/Base.java:1204 #, java-format msgid "Invalid library found in {0}: {1}" -msgstr "Llibreria invalida trobada en {0}: {1}" +msgstr "Biblioteca invàlida trobada en {0}: {1}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:66 #, java-format msgid "Invalid quoting: no closing [{0}] char found." msgstr "Cita invàlida: no s'ha trobat el caràcter [{0}] de tancament." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" -msgstr "Italià" +msgstr "italià" #: Preferences.java:103 msgid "Japanese" -msgstr "Japonès" +msgstr "japonès" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "kazakh" #: Preferences.java:104 msgid "Korean" -msgstr "Coreà" +msgstr "coreà" #: Preferences.java:105 msgid "Latvian" -msgstr "Letó" +msgstr "letó" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "Gestor de la llibreria" +msgstr "Gestor de biblioteques" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" -msgstr "Llibreria afegida a les teves llibreries. Comprova el menú \"Inclou llibreria\"" +msgstr "Biblioteca afegida a les vostres biblioteques. Comproveu el menú \"Inclou biblioteca\"" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" -msgstr "La llibreria no pot fer servir ambdós directoris 'src' i 'utility'. Torna a comprovar {0}" +msgstr "La biblioteca no pot fer servir ambdós directoris 'src' i 'utility'. Torneu a comprovar {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "La llibreria ja està instal·lada: {0} versió {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1279,16 +1342,16 @@ msgstr "Número de línia:" #: Preferences.java:106 msgid "Lithuaninan" -msgstr "Lituà" +msgstr "lituà" #: ../../../../../app/src/processing/app/Base.java:132 msgid "Loading configuration..." -msgstr "Carregant configuració..." +msgstr "S'està carregant la configuració..." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format msgid "Looking for recipes like {0}*{1}" -msgstr "Cercant receptes tals com {0}*{1}" +msgstr "S'estan cercant receptes tals com {0}*{1}" #: ../../../processing/app/Sketch.java:1684 msgid "Low memory available, stability problems may occur." @@ -1296,7 +1359,7 @@ msgstr "Es disposa de poca memòria, es poden produir problemes d'estabilitat" #: ../../../../../app/src/processing/app/Base.java:1168 msgid "Manage Libraries..." -msgstr "Gestiona les llibreries..." +msgstr "Gestiona les biblioteques..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 msgid "Manual proxy configuration" @@ -1304,7 +1367,7 @@ msgstr "Configuració manual del proxy" #: Preferences.java:107 msgid "Marathi" -msgstr "Marathi" +msgstr "marathi" #: Base.java:2112 msgid "Message" @@ -1313,7 +1376,7 @@ msgstr "Missatge" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format msgid "Missing '{0}' from library in {1}" -msgstr "No es troba '{0}' de la llibreria a {1}" +msgstr "No es troba '{0}' de la biblioteca a {1}" #: ../../../processing/app/BaseNoGui.java:455 msgid "Mode not supported" @@ -1338,7 +1401,7 @@ msgstr "Múltiples arxius no suportat" #: ../../../processing/app/debug/Compiler.java:520 #, java-format msgid "Multiple libraries were found for \"{0}\"" -msgstr "S'han trobat múltiples llibreries per a \"{0}\"" +msgstr "S'han trobat múltiples biblioteques per a \"{0}\"" #: ../../../processing/app/Base.java:395 msgid "Must specify exactly one sketch file" @@ -1354,7 +1417,7 @@ msgstr "No es pot obtenir informació del port sèrie natiu" #: ../../../processing/app/Preferences.java:149 msgid "Nepali" -msgstr "Nepali" +msgstr "nepalès" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 msgid "Network" @@ -1366,7 +1429,7 @@ msgstr "No es pot obtenir informació del port de xarxa" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Network ports" -msgstr "Entrades Network" +msgstr "Ports de xarxa" #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 msgid "Network upload using programmer not supported" @@ -1461,7 +1524,7 @@ msgstr "Cap" #: ../../../processing/app/Preferences.java:108 msgid "Norwegian BokmÃ¥l" -msgstr "Noruec Bokmâl" +msgstr "noruec bokmâl" #: ../../../processing/app/Sketch.java:1656 msgid "" @@ -1484,7 +1547,7 @@ msgstr "Només --verify. --upload o --get-pref estan suportats" #: EditorToolbar.java:41 msgid "Open" -msgstr "Obrir" +msgstr "Obre" #: ../../../../../app/src/processing/app/Editor.java:625 msgid "Open Recent" @@ -1500,7 +1563,7 @@ msgstr "Obre un sketch d'Arduino..." #: Base.java:903 Editor.java:501 msgid "Open..." -msgstr "Obrir..." +msgstr "Obre..." #: ../../../../../arduino-core/src/processing/app/I18n.java:37 msgid "Other" @@ -1524,11 +1587,11 @@ msgstr "Enganxa" #: Preferences.java:109 msgid "Persian" -msgstr "Persa" +msgstr "persa" #: ../../../processing/app/Preferences.java:161 msgid "Persian (Iran)" -msgstr "Persa (Iran)" +msgstr "persa (Iran)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 #, java-format @@ -1537,19 +1600,19 @@ msgstr "Plataforma {0} (paquet {1}) desconeguda" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 msgid "Please confirm boards deletion" -msgstr "Sisplau confirma la supressió de les plaques" +msgstr "Confirmeu la supressió de les plaques" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "Please confirm library deletion" -msgstr "Sisplau confirma la supressió de la llibreria" +msgstr "Confirmeu la supressió de la biblioteca" #: debug/Compiler.java:408 msgid "Please import the SPI library from the Sketch > Import Library menu." -msgstr "Si us plau importeu la llibreria SPI del menú Sketch > Importa biblioteca." +msgstr "Importeu la biblioteca SPI del menú Sketch > Importa biblioteca." #: ../../../processing/app/debug/Compiler.java:529 msgid "Please import the Wire library from the Sketch > Import Library menu." -msgstr "Si us plau importa la llibreria Wire de Sketch > Menú Importació Llibreria" +msgstr "Importeu la llibreria Wire de Sketch > Menú Importació biblioteca" #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" @@ -1566,7 +1629,7 @@ msgstr "El plotter no es troba disponible mentre el monitor sèrie està obert" #: Preferences.java:110 msgid "Polish" -msgstr "Polonès" +msgstr "polonès" #: ../../../processing/app/Editor.java:718 msgid "Port" @@ -1578,15 +1641,15 @@ msgstr "Número de port:" #: ../../../processing/app/Preferences.java:151 msgid "Portugese" -msgstr "Portuguès" +msgstr "portuguès" #: ../../../processing/app/Preferences.java:127 msgid "Portuguese (Brazil)" -msgstr "Portuguès (Brasil)" +msgstr "portuguès (Brasil)" #: ../../../processing/app/Preferences.java:128 msgid "Portuguese (Portugal)" -msgstr "Portuguès (Portugal)" +msgstr "portuguès (Portugal)" #: Preferences.java:295 Editor.java:583 msgid "Preferences" @@ -1594,7 +1657,7 @@ msgstr "Preferències" #: ../../../../../app/src/processing/app/Base.java:297 msgid "Preparing boards..." -msgstr "Preparant plaques..." +msgstr "S'estan preparant les plaques..." #: FindReplace.java:123 FindReplace.java:128 msgid "Previous" @@ -1606,7 +1669,7 @@ msgstr "Pestanya anterior" #: Editor.java:571 msgid "Print" -msgstr "Sortir" +msgstr "Imprimeix" #: Editor.java:2571 msgid "Printing canceled." @@ -1630,7 +1693,7 @@ msgstr "Problema adjustant la plataforma." #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:136 msgid "Problem accessing board folder /www/sd" -msgstr "Problema accedint a la carpeta de la tarja /www/sd" +msgstr "Problema accedint a la carpeta de la placa /www/sd" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format @@ -1666,7 +1729,7 @@ msgstr "Progrés {0}" #: Base.java:783 Editor.java:593 msgid "Quit" -msgstr "Tancar" +msgstr "Surt" #: ../../../../../app/src/processing/app/Base.java:1233 msgid "RETIRED" @@ -1678,7 +1741,7 @@ msgstr "Recomanat" #: Editor.java:1138 Editor.java:1140 Editor.java:1390 msgid "Redo" -msgstr "Refér" +msgstr "Refés" #: Editor.java:1078 msgid "Reference" @@ -1686,12 +1749,12 @@ msgstr "Referència" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 msgid "Remove" -msgstr "Suprimir" +msgstr "Suprimeix" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Suprimint llibreria: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1727,9 +1790,13 @@ msgstr "Substituir amb:" msgid "Retired" msgstr "Retirat" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" -msgstr "Romanès" +msgstr "romanès" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 #, java-format @@ -1743,7 +1810,7 @@ msgstr "Executant: {0}" #: Preferences.java:114 msgid "Russian" -msgstr "Rus" +msgstr "rus" #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 #: Editor.java:2064 Editor.java:2468 @@ -1756,12 +1823,12 @@ msgstr "Anomena i desa..." #: Editor.java:2317 msgid "Save Canceled." -msgstr "Guardat cancel·lat." +msgstr "S'ha cancel·lat el desament." #: Editor.java:2020 #, java-format msgid "Save changes to \"{0}\"? " -msgstr "Desar els canvis a \"{0}\"? " +msgstr "Voleu desa els canvis a \"{0}\"? " #: Sketch.java:825 msgid "Save sketch folder as..." @@ -1769,11 +1836,11 @@ msgstr "Anomena i desa la carpeta de sketch..." #: ../../../../../app/src/processing/app/Preferences.java:425 msgid "Save when verifying or uploading" -msgstr "Guardar mentre verifica o puja" +msgstr "Desa mentre verifica o puja" #: Editor.java:2270 Editor.java:2308 msgid "Saving..." -msgstr "Desant..." +msgstr "S'està desant..." #: ../../../processing/app/FindReplace.java:131 msgid "Search all Sketch Tabs" @@ -1781,19 +1848,19 @@ msgstr "Cerca tots els Tabs del programari" #: Base.java:1909 msgid "Select (or create new) folder for sketches..." -msgstr "Seleccioni (o creï) una carpeta pels sketches..." +msgstr "Seleccioneu (o creeu) una carpeta pels sketches..." #: Editor.java:1198 Editor.java:2739 msgid "Select All" -msgstr "Selecciona-ho Tot" +msgstr "Selecciona-ho tot" #: Base.java:2636 msgid "Select a zip file or a folder containing the library you'd like to add" -msgstr "Selecciona el l fitxer zip o el directori que conté la llibreria que vols afegir" +msgstr "Seleccioneu el l fitxer zip o el directori que conté la biblioteca que voleu afegir" #: Sketch.java:975 msgid "Select an image or other data file to copy to your sketch" -msgstr "Seleccioni una imatge o un altre fitxer da dades per copiar el seu sketch" +msgstr "Seleccioneu una imatge o un altre fitxer da dades per copiar el vostre sketch" #: Preferences.java:330 msgid "Select new sketchbook location" @@ -1802,11 +1869,11 @@ msgstr "Seleccioneu una ubicació pel nou sketchbook" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 msgid "Select version" -msgstr "Selecciona versió" +msgstr "Seleccioneu una versió" #: ../../../processing/app/debug/Compiler.java:146 msgid "Selected board depends on '{0}' core (not installed)." -msgstr "Tarja seleccionada depenent del nucli '{0}' (no instal·lat)." +msgstr "Placa seleccionada depenent del nucli '{0}' (no instal·lat)." #: ../../../../../app/src/processing/app/Base.java:374 msgid "Selected board is not available" @@ -1814,7 +1881,7 @@ msgstr "La placa seleccionada no es troba disponible" #: ../../../../../app/src/processing/app/Base.java:423 msgid "Selected library is not available" -msgstr "La llibreria seleccionada no es troba disponible" +msgstr "La biblioteca seleccionada no es troba disponible" #: SerialMonitor.java:93 msgid "Send" @@ -1850,16 +1917,19 @@ msgid "" " Serial Port menu?" msgstr "Port sèrie \"{0}\" no trobat. Ha seleccionat el port corresponent al menú Eines > Port sèrie?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Port sèrie {0} no trobat.\nRe-intentar la pujada amb un altre port sèrie?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" -msgstr "Port Serial" +msgstr "Ports de sèrie" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 #, java-format @@ -1868,7 +1938,7 @@ msgstr "La ubicació per als builds s'ha definit a {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 msgid "Settings" -msgstr "Ajustaments" +msgstr "Configuració" #: Base.java:1681 msgid "Settings issues" @@ -1878,6 +1948,10 @@ msgstr "Errors en les preferències" msgid "Show Sketch Folder" msgstr "Mostra la carpeta del Sketch" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Mostra la sortida detallada durant: " @@ -1946,11 +2020,11 @@ msgstr "Saltant l'índex de l'arxiu aportat {0}, ha ocorregut un error:" #: ../../../../../app/src/processing/app/Preferences.java:185 msgid "Slovak" -msgstr "Eslovac" +msgstr "eslovac" #: ../../../processing/app/Preferences.java:152 msgid "Slovenian" -msgstr "Eslovè" +msgstr "eslovè" #: Sketch.java:275 Sketch.java:304 Sketch.java:578 Sketch.java:967 msgid "" @@ -1968,19 +2042,19 @@ msgstr "Alguns arxius estan marcats \"read-only\", haurà de\ndesar el sketch a #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format msgid "Sorry, the folder \"{0}\" already exists." -msgstr "" +msgstr "La carpeta \"{0}\" ja existeix" #: Preferences.java:115 msgid "Spanish" -msgstr "Espanyol" +msgstr "espanyol" #: ../../../../../app/src/processing/app/Base.java:2333 msgid "Specified folder/zip file does not contain a valid library" -msgstr "La carpeta o fitxer zip especificat no conté una llibreria vàlida" +msgstr "La carpeta o fitxer zip especificat no conté una biblioteca vàlida" #: ../../../../../app/src/processing/app/Base.java:466 msgid "Starting..." -msgstr "Iniciant..." +msgstr "S'està iniciant..." #: Base.java:540 msgid "Sunshine" @@ -1988,7 +2062,7 @@ msgstr "Sol." #: ../../../processing/app/Preferences.java:153 msgid "Swedish" -msgstr "Suec" +msgstr "suec" #: Preferences.java:84 msgid "System Default" @@ -1996,19 +2070,19 @@ msgstr "Per defecte del sistema" #: ../../../../../app/src/processing/app/Preferences.java:188 msgid "Talossan" -msgstr "Tolanés" +msgstr "talossà" #: Preferences.java:116 msgid "Tamil" -msgstr "Tàmil" +msgstr "tàmil" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "telugu" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" -msgstr "Thai" +msgstr "thai" #: debug/Compiler.java:414 msgid "The 'BYTE' keyword is no longer supported." @@ -2027,7 +2101,7 @@ msgstr "La classe Client ha estat reanomenat a EthernetClient." msgid "" "The IDE includes an updated {0} package, but you're using an older one.\n" "Do you want to upgrade {0}?" -msgstr "L'IDE inclou un paquet {0} actualitzat, però n'estàs utilitzant un de més antic.\nVols actualitzat {0}?" +msgstr "L'IDE inclou un paquet {0} actualitzat, però n'esteu utilitzant un de més antic.\nVoleu actualitzar {0}?" #: debug/Compiler.java:420 msgid "The Server class has been renamed EthernetServer." @@ -2047,7 +2121,15 @@ msgid "" "The file \"{0}\" needs to be inside\n" "a sketch folder named \"{1}\".\n" "Create this folder, move the file, and continue?" -msgstr "L'arxiu \"{0}\" ha de trobar-se dins\nla carpeta de l'sketch anomenat \"{1}\".\nCrear aquesta carpeta, moure l'arxiu, i continua?" +msgstr "El fitxer \"{0}\" ha de trobar-se dins\nla carpeta de l'sketch anomenat \"{1}\".\nCrear aquesta carpeta, moure l'arxiu, i continua?" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:1054 Base.java:2674 #, java-format @@ -2055,11 +2137,11 @@ msgid "" "The library \"{0}\" 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)" -msgstr "La Llibreria \"{0}\" no pot ser utilitzada.\nNoms de Llibreries només poden contenir nombres i lletres senzilles.\n(només ASCII i sense espais, tampoc pot començar amb un nombre)." +msgstr "La biblioteca \"{0}\" no es pot utilitzar.\nEls noms de biblioteca només poden contenir nombres i lletres senzilles.\n(només ASCII i sense espais, tampoc pot començar amb un nombre)." #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "El fitxer principal no pot usar un extensió" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2094,12 +2176,12 @@ msgid "" "but anything besides the code will be lost." msgstr "La carpeta del sketch ha desaparegut.\n Es provarà de tornar a desar en la mateixa localització,\nperò tot excepte el codi serà perdut." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "El nom del sketch ha de ser modificat. Els noms dels Sketch només poden constar\nde caràcters ASCII i nombres (però no començar amb nombres).\nTambé haurien de ser menys de 64 caràcters." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2116,11 +2198,15 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "La carpeta del bloc d'esbossos especificada conté la teva còpia de l'IDE.\nSisplau escull una carpeta diferent per al teu bloc d'esbossos." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" "Are you sure you want to delete it?" -msgstr "Aquesta llibreria no està inclosa al Gestor de llibreries. No podràs reinstal·lar-la des d'aquí.\nEstàs segur/a de voler desisntalar-la?" +msgstr "Aquesta biblioteca no està inclosa al Gestor de biblioteques. No podreu reinstal·lar-la des d'aquí.\nEsteu segur de voler desinstal·lar-la?" #: ../../../../../app/src/processing/app/EditorStatus.java:349 msgid "" @@ -2156,7 +2242,7 @@ msgstr "Solució de problemes" #: ../../../processing/app/Preferences.java:117 msgid "Turkish" -msgstr "Turc" +msgstr "turc" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 @@ -2165,15 +2251,15 @@ msgstr "Tipus" #: ../../../processing/app/Editor.java:2507 msgid "Type board password to access its console" -msgstr "Introduïu la contrasenya de la tarja per accedir a la seva consola" +msgstr "Introduïu la contrasenya de la placa per accedir a la seva consola" #: ../../../processing/app/Sketch.java:1673 msgid "Type board password to upload a new sketch" -msgstr "Introduïu la contrasenya de la tarja per pujar el nou sketch" +msgstr "Introduïu la contrasenya de la placa per pujar el nou sketch" #: ../../../processing/app/Preferences.java:118 msgid "Ukrainian" -msgstr "Ucraïnès" +msgstr "ucraïnès" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format @@ -2217,7 +2303,7 @@ msgstr "No categoritzat" #: Editor.java:1133 Editor.java:1355 msgid "Undo" -msgstr "Desfér" +msgstr "Desfés" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format @@ -2261,16 +2347,16 @@ msgstr "Hi ha actualitzacions disponibles per a algunes de les teves plaques {0} #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 #, java-format msgid "Updates available for some of your {0}boards{1} and {2}libraries{3}" -msgstr "Hi ha actualitzacions disponibles per a algunes de les teves plaques {0} {1} i llibreries {2} {3}" +msgstr "Hi ha actualitzacions disponibles per a algunes de les teves plaques {0} {1} i biblioteques {2} {3}" #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format msgid "Updates available for some of your {0}libraries{1}" -msgstr "Hi ha actualitzacions disponibles per a algunes de les teves llibreries {0} {1}" +msgstr "Hi ha actualitzacions disponibles per a algunes de les teves biblioteques {0} {1}" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 msgid "Updating list of installed libraries" -msgstr "Actualitzant llistat de llibreries instal·lades" +msgstr "Actualitzant llistat de biblioteques instal·lades" #: EditorToolbar.java:41 Editor.java:545 msgid "Upload" @@ -2286,7 +2372,7 @@ msgstr "Pujar qualsevol esbós per a obtindre'l" #: Editor.java:2403 Editor.java:2439 msgid "Upload canceled." -msgstr "Pujada cancel·lada." +msgstr "S'ha cancel·lat la pujada." #: ../../../processing/app/Sketch.java:1678 msgid "Upload cancelled" @@ -2316,12 +2402,12 @@ msgstr "Nom d'usuari:" #: ../../../processing/app/debug/Compiler.java:410 #, java-format msgid "Using library {0} at version {1} in folder: {2} {3}" -msgstr "Utilitzant llibreria {0} a la seva versió {1} en la carpeta: {2} {3}" +msgstr "Utilitzant biblioteca {0} a la seva versió {1} en la carpeta: {2} {3}" #: ../../../processing/app/debug/Compiler.java:94 #, java-format msgid "Using library {0} in folder: {1} {2}" -msgstr "Utilitzant llibreria {0} en carpeta: {1}{2}" +msgstr "Utilitzant biblioteca {0} en carpeta: {1}{2}" #: ../../../processing/app/debug/Compiler.java:320 #, java-format @@ -2330,7 +2416,7 @@ msgstr "Usant l'arxiu prèviament compilat: {0}" #: EditorToolbar.java:41 EditorToolbar.java:46 msgid "Verify" -msgstr "Verifiqueu" +msgstr "Verifica" #: Preferences.java:400 msgid "Verify code after upload" @@ -2338,19 +2424,19 @@ msgstr "Comproveu el codi després de pujar-lo" #: ../../../../../app/src/processing/app/Editor.java:725 msgid "Verify/Compile" -msgstr "Verifica/Compila" +msgstr "Verifica i compila" #: ../../../../../app/src/processing/app/Base.java:451 msgid "Verifying and uploading..." -msgstr "Verificant i pujant..." +msgstr "S'està verificant i pujant..." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 msgid "Verifying archive integrity..." -msgstr "Verificant la integritat del fitxer..." +msgstr "S'està verificant la integritat del fitxer..." #: ../../../../../app/src/processing/app/Base.java:454 msgid "Verifying..." -msgstr "Verificant..." +msgstr "S'està verificant..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 #, java-format @@ -2368,7 +2454,7 @@ msgstr "Versió {0}" #: ../../../processing/app/Preferences.java:154 msgid "Vietnamese" -msgstr "Vietnamita" +msgstr "vietnamita" #: Editor.java:1105 msgid "Visit Arduino.cc" @@ -2377,19 +2463,19 @@ msgstr "Visita Arduino.cc" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format msgid "WARNING: Category '{0}' in library {1} is not valid. Setting to '{2}'" -msgstr "AVÃS: La categoria '{0}' a la llibreria {1} no és vàlida. Ajustant a '{2}'" +msgstr "AVÃS: La categoria '{0}' a la biblioteca {1} no és vàlida. Ajustant a '{2}'" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format msgid "WARNING: Spurious {0} folder in '{1}' library" -msgstr "AVÃS: Carpeta {0} espúria a la llibreria '{1}'" +msgstr "AVÃS: Carpeta {0} espúria a la biblioteca '{1}'" #: ../../../processing/app/debug/Compiler.java:115 #, java-format msgid "" "WARNING: library {0} claims to run on {1} architecture(s) and may be " "incompatible with your current board which runs on {2} architecture(s)." -msgstr "ALERTA: libray {0} vol correr a {1} arquitectura(es) i podria ser incompatible amb la seva placa, que corre a {2} arquitectura(es)." +msgstr "ALERTA: biblioteca {0} vol córrer a {1} arquitectura(es) i podria ser incompatible amb la seva placa, que corre a {2} arquitectura(es)." #: Base.java:2128 msgid "Warning" @@ -2435,7 +2521,7 @@ msgstr "Avís: al platform.txt del nucli '{0}' li falta la propietat '{1}', s'ha #: ../../../../../app/src/processing/app/Preferences.java:190 msgid "Western Frisian" -msgstr "Frisó de l'Oest" +msgstr "frisó occidental" #: debug/Compiler.java:444 msgid "Wire.receive() has been renamed Wire.read()." @@ -2508,7 +2594,7 @@ msgstr "Fitxers ZIP o directoris" #: Base.java:2661 msgid "Zip doesn't contain a library" -msgstr "ZIP no conté cap llibreria" +msgstr "ZIP no conté cap biblioteca" #: Sketch.java:364 #, java-format @@ -2530,7 +2616,7 @@ msgid "" "As of Arduino 0019, the Ethernet library depends on the SPI library.\n" "You appear to be using it or another library that depends on the SPI library.\n" "\n" -msgstr "\nA partir de Arduino 0019, la llibreria Ethernet depèn de la llibreria SPI.\nSembla que l'esta utilitzant o ho fa una altre llibreria que depèn de la llibreria SPI.\n\n" +msgstr "\nA partir de Arduino 0019, la llibreria Ethernet depèn de la biblioteca SPI.\nSembla que l'esta utilitzant o ho fa una altre biblioteca que depèn de la biblioteca SPI.\n\n" #: debug/Compiler.java:415 msgid "" @@ -2545,35 +2631,35 @@ msgid "" "\n" "As of Arduino 1.0, the Client class in the Ethernet library has been renamed to EthernetClient.\n" "\n" -msgstr "\nA partir de Arduino 1.0, la classe Client de la llibreria Ethernet ha estat reanomenada a EthernetClient.\n\n" +msgstr "\nA partir de Arduino 1.0, la classe Client de la biblioteca Ethernet ha estat reanomenada a EthernetClient.\n\n" #: debug/Compiler.java:421 msgid "" "\n" "As of Arduino 1.0, the Server class in the Ethernet library has been renamed to EthernetServer.\n" "\n" -msgstr "\nA partir de Arduino 1.0, la classe Server de la llibreria Ethernet ha estat reanomenada a EthernetServer.\n\n" +msgstr "\nA partir de Arduino 1.0, la classe Server de la biblioteca Ethernet ha estat reanomenada a EthernetServer.\n\n" #: debug/Compiler.java:433 msgid "" "\n" "As of Arduino 1.0, the Udp class in the Ethernet library has been renamed to EthernetUdp.\n" "\n" -msgstr "\nA partir del l'Arduino 1.0, la classe Udp en la llibreria Ethernet ha estat reanomenada a EthernetUdp\n\n" +msgstr "\nA partir del l'Arduino 1.0, la classe Udp en la biblioteca Ethernet ha estat reanomenada a EthernetUdp\n\n" #: debug/Compiler.java:445 msgid "" "\n" "As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.\n" "\n" -msgstr "\nA partir del l'Arduino 1.0, la funció Wire.receive() ha estat reanomenada a Wire.read() per coherència amb altres llibreries.\n" +msgstr "\nA partir del l'Arduino 1.0, la funció Wire.receive() ha estat reanomenada a Wire.read() per coherència amb altres biblioteques.\n" #: debug/Compiler.java:439 msgid "" "\n" "As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.\n" "\n" -msgstr "\nA partir del l'Arduino 1.0, la funció Wire.send() ha estat reanomenada a Wire.write() per coherència amb altres llibreries.\n\n" +msgstr "\nA partir del l'Arduino 1.0, la funció Wire.send() ha estat reanomenada a Wire.write() per coherència amb altres biblioteques.\n\n" #: SerialMonitor.java:130 SerialMonitor.java:133 msgid "baud" @@ -2581,11 +2667,11 @@ msgstr "baud" #: Preferences.java:389 msgid "compilation " -msgstr "Compliació " +msgstr "compiliació " #: ../../../processing/app/NetworkMonitor.java:111 msgid "connected!" -msgstr "Connectat!" +msgstr "connectat!" #: ../../../../../app/src/processing/app/Editor.java:1352 msgid "http://www.arduino.cc/" @@ -2608,6 +2694,12 @@ msgstr "Ignorant mida de font invàlida {0}" msgid "name is null" msgstr "El nom es null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu es null" @@ -2656,7 +2748,7 @@ msgstr "{0} fitxers afegits al sketch." #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format msgid "{0} libraries" -msgstr "{0} llibreries" +msgstr "{0} biblioteques" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format @@ -2693,12 +2785,7 @@ msgstr "{0}: Argument no vàlid per --pref, s'espera la forma \"pref=value\"" msgid "" "{0}: Invalid board name, it should be of the form \"package:arch:board\" or " "\"package:arch:board:options\"" -msgstr "{0}: Nom de tarja desconeguda, ha de tenir el format \"package:arch:board\" o \"package:arch:board:options\"" - -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opció no vàlida per \"{1}\" opció per tarja \"{2}\"" +msgstr "{0}: Nom de placa desconeguda, ha de tenir el format \"package:arch:board\" o \"package:arch:board:options\"" #: ../../../processing/app/Base.java:507 #, java-format @@ -2710,6 +2797,11 @@ msgstr "{0}: Opció no vàlida per la tarja \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opció no vàlida, s'espera la forma \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" @@ -2718,7 +2810,7 @@ msgstr "{0}: Arquitectura desconeguda" #: ../../../processing/app/Base.java:491 #, java-format msgid "{0}: Unknown board" -msgstr "{0}: Tarja desconeguda" +msgstr "{0}: Placa desconeguda" #: ../../../processing/app/Base.java:481 #, java-format diff --git a/arduino-core/src/processing/app/i18n/Resources_ca.properties b/arduino-core/src/processing/app/i18n/Resources_ca.properties index 6401e29fad2..371130a0b3b 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ca.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ca.properties @@ -16,27 +16,33 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# dplanella , 2017 # Enric Verdaguer , 2016 -# Francesc Famadas , 2015 -# Marc GB , 2016 +# Francesc Famadas, 2015 +# jmontane, 2018 +# 17275f6663c0806cb14df3aaa64f5dcc_36b1070 <63b2d9bf279ebdb5b732343823eaa154_408083>, 2016 # Marc Palac\u00edn , 2016 # Moritz Werner Casero , 2015 # Sergi P\u00e9rez Labernia , 2014 # shacawine , 2012 # Xavier Romero Aguad\u00e9 , 2016 # Xavier Romero Aguad\u00e9 , 2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:21+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Catalan (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ca/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ca\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Catalan (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ca/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ca\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 -\ \ (requires\ restart\ of\ Arduino)=(\u00e9s necessari reiniciar l'Arduino) +\ \ (requires\ restart\ of\ Arduino)=(cal reiniciar l'Arduino) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -\ Not\ used\:\ {0}=No fet servir\:{0} +\ Not\ used\:\ {0}=No utilitzat\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format -\ Used\:\ {0}=fet servir\:{0} +\ Used\:\ {0}=Utilitzat\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Teclat' no trobat. El vostre sketch inclou la l\u00ednia '\#include '? @@ -51,13 +57,13 @@ (edit\ only\ when\ Arduino\ is\ not\ running)=(nom\u00e9s editar quan l'Arduino no estigui funcionant) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -(legacy)=(llegat) +(legacy)=(antic) #: ../../../processing/app/helpers/CommandlineParser.java:149 --curdir\ no\ longer\ supported=--curdir ja no es suporta. #: ../../../processing/app/Base.java:468 ---verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verb\u00f3s, --verb\u00f3s-pujar i -verb\u00f3s-build nom\u00e9s es poden emprar juntes amb --verificar o --pujar +--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload i -verbose-build nom\u00e9s es poden emprar juntes amb --verify o --upload #: Sketch.java:746 .pde\ ->\ .ino=.pde -> .ino @@ -71,7 +77,7 @@ A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=La carpeta anome #: Base.java:2690 #, java-format -A\ library\ named\ {0}\ already\ exists=La llibreria anomenada {0} ja existeix +A\ library\ named\ {0}\ already\ exists=La biblioteca anomenada {0} ja existeix #: UpdateCheck.java:103 A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Una nova versi\u00f3 del software d'Arduino es troba disponible,\nvols visitar la p\u00e0gina de baixades de l'Arduino? @@ -81,34 +87,34 @@ A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ A\ newer\ {0}\ package\ is\ available=Un paquet {0} nou esta disponible. #: ../../../../../app/src/processing/app/Base.java:2307 -A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Una sub-carpeta del teu bloc de programaris no \u00e9s una llibreria v\u00e0lida. +A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Una subcarpeta del vostre bloc de programaris no \u00e9s una biblioteca v\u00e0lida. #: Editor.java:1116 About\ Arduino=Quant a Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=acoli #: ../../../../../app/src/processing/app/Base.java:1177 -Add\ .ZIP\ Library...=Afegir llibreria .ZIP ... +Add\ .ZIP\ Library...=Afegeix una biblioteca .ZIP ... #: Editor.java:650 -Add\ File...=Afegeix Arxiu... +Add\ File...=Afegeix un fitxer... #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -Additional\ Boards\ Manager\ URLs=URLs addicionals de Gestor de plaques +Additional\ Boards\ Manager\ URLs=URL addicionals de gestor de plaques #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -Additional\ Boards\ Manager\ URLs\:\ =URLs addicionals de Gestor de plaques\: +Additional\ Boards\ Manager\ URLs\:\ =URL addicionals de gestor de plaques\: #: ../../../../../app/src/processing/app/Preferences.java:161 -Afrikaans=Afrikaans +Afrikaans=afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 !Aggressively\ cache\ compiled\ core= #: ../../../processing/app/Preferences.java:96 -Albanian=Alban\u00e8s +Albanian=alban\u00e8s #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 @@ -116,30 +122,30 @@ Albanian=Alban\u00e8s All=Tot #: tools/FixEncoding.java:77 -An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Un error ha succe\u00eft provant d'arreglar la codificaci\u00f3 del fitxer.\nNo provi de desar aquest program\u00e0ri, podria sobreescriure\nla versi\u00f3 antiga. Utilitzi "Obrir" per re-obrir el programari tornar-ho a provar.\n +An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=S'ha produ\u00eft un error en intentar arreglar la codificaci\u00f3 del fitxer.\nNo intenteu de desar aquest programari, podr\u00edeu sobreescriure\nla versi\u00f3 antiga. Utilitzeu \u00abObre\u00bb per a tornar a obrir el programari i torneu-ho a provar.\n #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -An\ error\ occurred\ while\ updating\ libraries\ index\!=S\u00b4ha produ\u00eft un error mentre s'actualitzava l'index de les llibreries\! +An\ error\ occurred\ while\ updating\ libraries\ index\!=S\u00b4ha produ\u00eft un error mentre s'actualitzava l'index de les biblioteques\! #: ../../../processing/app/BaseNoGui.java:528 -An\ error\ occurred\ while\ uploading\ the\ sketch=Ha ocorregut un error mentre s'enviava el programari. +An\ error\ occurred\ while\ uploading\ the\ sketch=S'ha produ\u00eft un error mentre s'enviava el programari. #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -An\ error\ occurred\ while\ verifying\ the\ sketch=Ha ocorregut un error mentre es verificava el programari. +An\ error\ occurred\ while\ verifying\ the\ sketch=S'ha produ\u00eft un error mentre es verificava el programari. #: ../../../processing/app/BaseNoGui.java:521 -An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=Ha ocorregut un error mentre es verificava/enviava el programari. +An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=S'ha produ\u00eft un error mentre es verificava o enviava el programari. #: Base.java:228 -An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=Un error desconegut ha succe\u00eft mentre es provava de carregar\ncodi especific de la plataforma per la seva maquina. +An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=S'ha produ\u00eft un error desconegut mentre es provava de carregar\ncodi especific de la plataforma per la seva m\u00e0quina. #: Preferences.java:85 -Arabic=\u00c0rab +Arabic=\u00e0rab #: Preferences.java:86 -Aragonese=Aragon\u00e8s +Aragonese=aragon\u00e8s #: tools/Archiver.java:48 Archive\ Sketch=Arxiva el programari @@ -148,10 +154,14 @@ Archive\ Sketch=Arxiva el programari Archive\ sketch\ as\:=Arxiva programari com\: #: tools/Archiver.java:139 -Archive\ sketch\ canceled.=Arxivat del programari cancel\u00b7lat. +Archive\ sketch\ canceled.=L'arxivament del programari s'ha cancel\u00b7lat. + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= #: tools/Archiver.java:75 -Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=L'arxivament del programari ha estat cancel\u00b7lat per qu\u00e8\nel programari no s\u00b4ha pogut desar adequadament. +Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=L'arxivament del programari s'ha cancel\u00b7lat perqu\u00e8\nel programari no s\u00b4ha pogut desar adequadament. #: ../../../../../arduino-core/src/processing/app/I18n.java:24 Arduino=Arduino\: @@ -179,33 +189,33 @@ Arduino\:\ =Arduino\: Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?=Esteu segur que voleu suprimir "{0}"? #: Sketch.java:587 -Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Segur que voleu suprimir aquest program\u00e0ri? +Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Esteu segur que voleu suprimir aquest programari? #: ../../../processing/app/Base.java:356 -Argument\ required\ for\ --board=Es requereix un argument per --board +Argument\ required\ for\ --board=Es requereix un argument per a --board #: ../../../processing/app/Base.java:363 -Argument\ required\ for\ --port=Es requereix un argument per --port +Argument\ required\ for\ --port=Es requereix un argument per a --port #: ../../../processing/app/Base.java:377 -Argument\ required\ for\ --pref=Es requereix un argument per --pref +Argument\ required\ for\ --pref=Es requereix un argument per a --pref #: ../../../processing/app/Base.java:384 -Argument\ required\ for\ --preferences-file=Es requereix un argument per --preferences-file +Argument\ required\ for\ --preferences-file=Es requereix un argument per a --preferences-file #: ../../../processing/app/helpers/CommandlineParser.java:76 #: ../../../processing/app/helpers/CommandlineParser.java:83 #, java-format -Argument\ required\ for\ {0}=Es requereix un argument per {0} +Argument\ required\ for\ {0}=Es requereix un argument per a {0} #: ../../../processing/app/Preferences.java:137 -Armenian=Armeni +Armenian=armeni #: ../../../processing/app/Preferences.java:138 -Asturian=Asturi\u00e0 +Asturian=asturi\u00e0 #: ../../../processing/app/debug/Compiler.java:145 -Authorization\ required=Autoritzaci\u00f3 requirida +Authorization\ required=Autoritzaci\u00f3 requerida #: tools/AutoFormat.java:91 Auto\ Format=Format autom\u00e0tic @@ -233,14 +243,14 @@ Bad\ error\ line\:\ {0}=Error en la l\u00ednia\: {0} Bad\ file\ selected=Fitxer seleccionat incorrecte #: ../../../processing/app/Preferences.java:149 -Basque=Basc +Basque=basc #: ../../../processing/app/Preferences.java:139 -Belarusian=Bielor\u00fas +Belarusian=bielor\u00fas #: ../../../processing/app/Base.java:1433 #: ../../../processing/app/Editor.java:707 -Board=Tarja +Board=Placa #: ../../../../../app//src/processing/app/Editor.java:2824 Board\ Info=Informaci\u00f3 de la placa @@ -248,7 +258,7 @@ Board\ Info=Informaci\u00f3 de la placa #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -Board\ at\ {0}\ is\ not\ available=Tarja al {0} no es troba disponible +Board\ at\ {0}\ is\ not\ available=La placa al {0} no es troba disponible #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -256,16 +266,16 @@ Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown=Placa {0} (plataforma {1 #: ../../../processing/app/debug/TargetBoard.java:42 #, java-format -Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}=Tarja {0}\:{1}\:{2} no defineix la prefer\u00e8ncia del ''build.board''. Auto-seleccionat per\: {3} +Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}=Placa {0}\:{1}\:{2} no defineix la prefer\u00e8ncia del ''build.board''. Auto-seleccionat per\: {3} #: ../../../processing/app/EditorStatus.java:472 -Board\:\ =Tarja\: +Board\:\ =Placa\: #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -Boards\ Manager=Gestor targes +Boards\ Manager=Gestor plaques #: ../../../../../app/src/processing/app/Base.java:1320 -Boards\ Manager...=Gestor targes +Boards\ Manager...=Gestor de plaques... #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 Boards\ included\ in\ this\ package\:=Plaques incloses en aquest paquet\: @@ -275,31 +285,31 @@ Boards\ included\ in\ this\ package\:=Plaques incloses en aquest paquet\: Bootloader\ file\ specified\ but\ missing\:\ {0}=Fitxer de bootloader especificat per\u00f2 no trobat\: {0} #: ../../../processing/app/Preferences.java:140 -Bosnian=Bosni +Bosnian=bosni\u00e0 #: SerialMonitor.java:112 Both\ NL\ &\ CR=Ambd\u00f3s NL & CR #: Preferences.java:81 -Browse=Navegar +Browse=Navega #: ../../../processing/app/Sketch.java:1530 -Build\ options\ changed,\ rebuilding\ all=Opcions de compilat canviades, re-compilant tot +Build\ options\ changed,\ rebuilding\ all=Opcions de compilat canviades, s'est\u00e0 tornant a compilar-ho tot #: ../../../../../app/src/processing/app/Base.java:1210 Built-in\ Examples=Exemples inclosos #: ../../../processing/app/Preferences.java:80 -Bulgarian=B\u00falgar +Bulgarian=b\u00falgar #: ../../../processing/app/Preferences.java:141 -Burmese\ (Myanmar)=Birm\u00e0 (Birm\u00e0nia) +Burmese\ (Myanmar)=birm\u00e0 (Birm\u00e0nia) #: Editor.java:708 -Burn\ Bootloader=Carrega Bootloader +Burn\ Bootloader=Enregistra el bootloader #: Editor.java:2504 -Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=La carrega del bootloader a la I/O placa (pot durar uns minuts)... +Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=L'enregistrament del bootloader a la I/O placa (pot durar uns minuts)... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 !CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= @@ -316,53 +326,53 @@ Can\ only\ pass\ one\ of\:\ {0}=Nom\u00e9s es pot passar un de\: {0} Can't\ find\ the\ sketch\ in\ the\ specified\ path=No es troba programari en el direct\u00f2ri especificat #: ../../../processing/app/Preferences.java:92 -Canadian\ French=Franc\u00e8s Canadenc +Canadian\ French=franc\u00e8s canadenc #: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2064 Editor.java:2145 Editor.java:2465 Cancel=Cancel\u00b7la #: ../../../processing/app/Base.java:465 -Cannot\ specify\ any\ sketch\ files=No es poden especificar cap arxiu de programari +Cannot\ specify\ any\ sketch\ files=No es poden especificar cap fitxer de programari #: SerialMonitor.java:112 Carriage\ return=Retorn de carro #: Preferences.java:87 -Catalan=Catal\u00e0 +Catalan=catal\u00e0 #: Preferences.java:419 -Check\ for\ updates\ on\ startup=Comprova actualitzacions al iniciar +Check\ for\ updates\ on\ startup=Comprova si hi ha actualitzacions en iniciar #: ../../../processing/app/Preferences.java:142 -Chinese\ (China)=Xin\u00e8s (Xina) +Chinese\ (China)=xin\u00e8s (Xina) #: ../../../processing/app/Preferences.java:144 -Chinese\ (Taiwan)=Xin\u00e8s (Taiwan) +Chinese\ (Taiwan)=xin\u00e8s (Taiwan) #: ../../../processing/app/Preferences.java:143 -Chinese\ (Taiwan)\ (Big5)=Xin\u00e8s (Taiwan) (Big5) +Chinese\ (Taiwan)\ (Big5)=xin\u00e8s (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Neteja la sortida #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Clica per llista les targes no oficials que suporten URLs +Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Feu clic per a llistar les plaques no oficials que suporten URL #: Editor.java:521 Editor.java:2024 Close=Tanca #: Editor.java:1208 Editor.java:2749 -Comment/Uncomment=Comenta/Descomenta +Comment/Uncomment=Comenta o descomenta #: ../../../../../arduino-core/src/processing/app/I18n.java:30 Communication=Comunicaci\u00f3 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -Compiler\ warnings\:\ =Alertes compilador\: +Compiler\ warnings\:\ =Alertes del compilador\: #: Sketch.java:1608 Editor.java:1890 -Compiling\ sketch...=Compilant el program\u00e0ri... +Compiling\ sketch...=S'est\u00e0 compilant el programari... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 Contributed=Contribu\u00eft @@ -371,13 +381,13 @@ Contributed=Contribu\u00eft Copy=Copia #: Editor.java:1177 Editor.java:2723 -Copy\ as\ HTML=Copia com HTML +Copy\ as\ HTML=Copia com a HTML #: ../../../processing/app/EditorStatus.java:455 -Copy\ error\ messages=Copia missatges d'error +Copy\ error\ messages=Copia els missatges d'error #: Editor.java:1165 Editor.java:2715 -Copy\ for\ Forum=Copia pel Forum +Copy\ for\ Forum=Copia per al f\u00f2rum #: Sketch.java:1089 #, java-format @@ -388,7 +398,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=No s'ha pogut copiar en una ubicaci\u #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=No s'ha pogut crear el directori "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=No s'ha pogut crear el directori del sketch. @@ -434,7 +444,7 @@ Could\ not\ re-save\ sketch=No es pot tornar a desar l'sketch Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=No es pot llegir l'ajustament del tema de colors.\nNecessitar\u00e0s reinstalar Arduino. #: Preferences.java:219 -Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=No es poden llegir les prefer\u00e8ncies inicials.\nNecessites tornar a instal\u00b7lar Arduino. +Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=No es poden llegir les prefer\u00e8ncies inicials.\nCal que torneu a instal\u00b7lar Arduino. #: Base.java:2482 #, java-format @@ -444,6 +454,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=No es pot esborrar l'anterior versi\u0 #, java-format Could\ not\ replace\ {0}=No es pot substituir {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=No s\u00b4ha pogut arxivar el sketch @@ -454,19 +468,19 @@ Couldn't\ determine\ program\ size\:\ {0}=No es va poder determinar la mida del Couldn't\ do\ it=No podria fer-ho #: debug/BasicUploader.java:209 -Couldn't\ find\ a\ Board\ on\ the\ selected\ port.\ Check\ that\ you\ have\ the\ correct\ port\ selected.\ \ If\ it\ is\ correct,\ try\ pressing\ the\ board's\ reset\ button\ after\ initiating\ the\ upload.=No es pot trobar la Tarja en el port seleccionat. Verifica que tens el port correctament seleccionat. Si es correcte, intenta pressionar el polsador de reset de la Tarja despr\u00e9s d'inicialitzar la pujada. +Couldn't\ find\ a\ Board\ on\ the\ selected\ port.\ Check\ that\ you\ have\ the\ correct\ port\ selected.\ \ If\ it\ is\ correct,\ try\ pressing\ the\ board's\ reset\ button\ after\ initiating\ the\ upload.=No es pot trobar la placa en el port seleccionat. Verifica que tens el port correctament seleccionat. Si es correcte, intenta pressionar el polsador de reset de la placa despr\u00e9s d'inicialitzar la pujada. #: ../../../processing/app/Preferences.java:82 -Croatian=Croat +Croatian=croat #: Editor.java:1149 Editor.java:2699 Cut=Retalla #: ../../../../../app/src/processing/app/Preferences.java:119 -Czech\ (Czech\ Republic)=Tx\u00e8qui (Rep\u00fablica Txeca) +Czech\ (Czech\ Republic)=txec (Rep\u00fablica Txeca) #: ../../../../../app/src/processing/app/Preferences.java:120 -Danish\ (Denmark)=Dan\u00e8s (Dinam\u00e0rca) +Danish\ (Denmark)=dan\u00e8s (Dinamarca) #: ../../../../../arduino-core/src/processing/app/I18n.java:36 Data\ Processing=Processament de dades @@ -474,12 +488,18 @@ Data\ Processing=Processament de dades #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Emmagatzematge de dades +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Redueix la mida del tipus de lletra + #: Editor.java:1224 Editor.java:2765 -Decrease\ Indent=Disminuir el sagnat +Decrease\ Indent=Disminueix el sagnat #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Predeterminat +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Suprimeix @@ -500,16 +520,16 @@ Display\ line\ numbers=Mostra n\u00fameros de l\u00ednia. #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format -Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.=Vols eliminar {0}?\nSi ho fas no podr\u00e0s tornar a fer servir m\u00e9s {0} +Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.=Voleu eliminar {0}?\nSi ho feu no podreu tornar a fer servir m\u00e9s {0} #: Editor.java:2064 -Don't\ Save=No deseu +Don't\ Save=No desis #: Editor.java:2275 Editor.java:2311 -Done\ Saving.=Guardat enllestit. +Done\ Saving.=Desament enllestit. #: Editor.java:2510 -Done\ burning\ bootloader.=Carrega del bootloader llesta. +Done\ burning\ bootloader.=Enregistrament del bootloader finalitzat. #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 @@ -535,11 +555,11 @@ Downloaded\ {0}kb\ of\ {1}kb.=Descarregats {0}kb de {1}kb. Downloading\ boards\ definitions.=Descarregant definici\u00f3 de plaques. #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 -Downloading\ libraries\ index...=Descarregant \u00edndex de llibreries... +Downloading\ libraries\ index...=Descarregant \u00edndex de biblioteques... #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 #, java-format -Downloading\ library\:\ {0}=Descarregant llibreria\: {0} +Downloading\ library\:\ {0}=S'est\u00e0 descarregant la biblioteca\: {0} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 Downloading\ platforms\ index...=Descarregant \u00edndex de plataformes... @@ -549,10 +569,10 @@ Downloading\ platforms\ index...=Descarregant \u00edndex de plataformes... Downloading\ tools\ ({0}/{1}).=Descarregant eines ({0}/{1}). #: Preferences.java:91 -Dutch=Holand\u00e8s +Dutch=neerland\u00e8s #: ../../../processing/app/Preferences.java:144 -Dutch\ (Netherlands)=Holand\u00e8s (Pa\u00efsos Baixos) +Dutch\ (Netherlands)=neerland\u00e8s (Pa\u00efsos Baixos) #: ../../../../../app/src/processing/app/Editor.java:1309 Edison\ Help=Ajuda d'Edison @@ -564,23 +584,23 @@ Edit=Edita Editor\ font\ size\:\ =Mides del fonts del editor\: #: Preferences.java:353 -Editor\ language\:\ =Editor d'idioma\: +Editor\ language\:\ =Editor de llengua\: #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 Enable\ Code\ Folding=Activa el plegat de codi #: Preferences.java:92 -English=Angl\u00e8s +English=angl\u00e8s #: ../../../processing/app/Preferences.java:145 -English\ (United\ Kingdom)=Angl\u00e8s (Regne Unit) +English\ (United\ Kingdom)=angl\u00e8s (Regne Unit) #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 -Enter\ a\ comma\ separated\ list\ of\ urls=Introdueix una llista d'urls separades per comes +Enter\ a\ comma\ separated\ list\ of\ urls=Introdueix una llista d'URL separades per comes #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -Enter\ additional\ URLs,\ one\ for\ each\ row=Introdueix URLs addicionals, una per a cada fila +Enter\ additional\ URLs,\ one\ for\ each\ row=Introdu\u00efu URL addicionals, una per a cada fila #: Editor.java:1062 Environment=Entorn @@ -611,6 +631,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Error obtenint la carpeta data d'Ard #, java-format Error\ inside\ Serial.{0}()=Error a dins del Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -625,6 +649,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Error al obrir el port s\u00e8rie "{0}". #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Error a l'obrir el port s\u00e8rie "{0}". Prova a consultar la documentaci\u00f3 a http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Error en llegir les prefer\u00e8ncies @@ -650,6 +686,9 @@ Error\ while\ burning\ bootloader.=Error al carrega el bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Error durant l\u2019enregistrament del bootloader\: no es troba el par\u00e0metre de configuraci\u00f3 {0} +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Error durant la pujada\: no es troba el par\u00e0metre de configuraci\u00f3 {0} @@ -676,24 +715,21 @@ Error\ while\ verifying=Error mentre verificava. Error\ while\ verifying/uploading=Error mentre verificava/pujava #: Preferences.java:93 -Estonian=Estoni\u00e0 - -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Est\u00f2nia (Est\u00f2nia) +Estonian=estoni\u00e0 #: Editor.java:516 Examples=Exemples #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=Exemples per a qualsevol placa #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}=Exemples per a {0} #: ../../../../../app/src/processing/app/Base.java:1244 -Examples\ from\ Custom\ Libraries=Exemples de les Llibreries Personalitzades +Examples\ from\ Custom\ Libraries=Exemples de les biblioteques personalitzades #: ../../../../../app/src/processing/app/Base.java:1329 Examples\ from\ Other\ Libraries=Exemples d'altres biblioteques @@ -702,7 +738,7 @@ Examples\ from\ Other\ Libraries=Exemples d'altres biblioteques Export\ canceled,\ changes\ must\ first\ be\ saved.=Exportaci\u00f3 cancel\u00b7lada, els canvis han de ser desats previament. #: ../../../../../app/src/processing/app/Editor.java:750 -Export\ compiled\ Binary=Exporta el Binari compilat +Export\ compiled\ Binary=Exporta el binari compilat #: ../../../processing/app/Base.java:416 #, java-format @@ -710,7 +746,7 @@ Failed\ to\ open\ sketch\:\ "{0}"=No s\u00b4ha pogut obrir el sketch\: "{0}" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=No s'ha pogut canviar el nom de "{0}" a "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 !Failed\ to\ rename\ sketch\ folder= @@ -723,7 +759,7 @@ File=Fitxer File\ name\ {0}\ is\ invalid\:\ ignored=El nom de fitxer {0} \u00e9s inv\u00e0lid\: s'ha ignorat #: Preferences.java:94 -Filipino=Filip\u00ed +Filipino=filip\u00ed #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 Filter\ your\ search...=Filtra la cerca... @@ -747,39 +783,39 @@ Find...=Cerca... Find\:=Cerca\: #: ../../../processing/app/Preferences.java:147 -Finnish=Fin\u00e8s +Finnish=fin\u00e8s #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 -Fix\ Encoding\ &\ Reload=Arregla la codificaci\u00f3 i recarrega +Fix\ Encoding\ &\ Reload=Arregla la codificaci\u00f3 i torna a carregar #: ../../../processing/app/BaseNoGui.java:318 -For\ information\ on\ installing\ libraries,\ see\:\ http\://www.arduino.cc/en/Guide/Libraries\n=Per obtenir informaci\u00f3 de com instal\u00b7lar llibreries, ves a\: http\://arduino.cc/en/Guide/Libraries\n +For\ information\ on\ installing\ libraries,\ see\:\ http\://www.arduino.cc/en/Guide/Libraries\n=Per obtenir informaci\u00f3 de com instal\u00b7lar biblioteques, ves a\: http\://arduino.cc/en/Guide/Libraries\n #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:118 #, java-format Forcing\ reset\ using\ 1200bps\ open/close\ on\ port\ {0}=For\u00e7ant el reinici obrint/tancat el port {0} a 1200bps #: Preferences.java:95 -French=Franc\u00e8s +French=franc\u00e8s #: Editor.java:1097 -Frequently\ Asked\ Questions=Preguntes M\u00e9s Freq\u00fcents +Frequently\ Asked\ Questions=Preguntes m\u00e9s freq\u00fcents #: Preferences.java:96 -Galician=Gallec +Galician=gallec #: ../../../../../app/src/processing/app/Preferences.java:176 -Galician\ (Spain)=Gall\u00e8c (Espanya) +Galician\ (Spain)=gallec (Espanya) #: ../../../../../app/src/processing/app/Editor.java:1288 Galileo\ Help=Ajuda de Galileo #: ../../../processing/app/Preferences.java:94 -Georgian=Georgi\u00e0 +Georgian=georgi\u00e0 #: Preferences.java:97 -German=Alemany +German=alemany #: ../../../../../app//src/processing/app/Editor.java:817 Get\ Board\ Info=Informaci\u00f3 de la placa @@ -802,37 +838,37 @@ Go\ to\ line=Ves a la l\u00ednia Go\ to\ line...=Ves a la l\u00ednia... #: Preferences.java:98 -Greek=Grec +Greek=grec #: ../../../processing/app/Preferences.java:95 -Hebrew=Hebreu +Hebrew=hebreu #: Editor.java:1015 Help=Ajuda #: Preferences.java:99 -Hindi=Hindi +Hindi=hindi #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 -Host\ name\:=Nom de host\: +Host\ name\:=Nom del servidor\: #: Sketch.java:295 -How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Per qu\u00e8 no prova de desar el sketch primer \nabans de provar de renombrar-lo? +How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Per qu\u00e8 no proveu de desar el sketch primer \nabans d'intentar canviar-ne el nom? #: Sketch.java:882 How\ very\ Borges\ of\ you=Que tant Borges de part teva #: Preferences.java:100 -Hungarian=Hongar\u00e8s +Hungarian=hongar\u00e8s #: ../../../../../app/src/processing/app/Base.java:1319 -!INCOMPATIBLE= +INCOMPATIBLE=NO COMPATIBLE #: FindReplace.java:96 Ignore\ Case=Ignora difer\u00e8ncies entre maj\u00fascules i min\u00fascules -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorant el nom incorrecte de la Llibreria. +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorant el sketch amb un nom incorrecte @@ -841,20 +877,23 @@ Ignoring\ sketch\ with\ bad\ name=Ignorant el sketch amb un nom incorrecte In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=En Arduino 1.0, l'extensi\u00f3 per defecte del fitxer ha canviat\nde .pde a .ino. Els nous sketchs (incloent tots els creats amb\nla opci\u00f3 "Desar com") faran servir la nova extensi\u00f3. L'extensi\u00f3\ndels sketch existents s\u2019actualitzaran quan es dessin, per\u00f2 pots\ndesactivar-ho en el di\u00e0leg de Prefer\u00e8ncies.\n\nDesa sketch i actualitza l'extensi\u00f3? #: ../../../../../app/src/processing/app/Editor.java:778 -Include\ Library=Inclou Llibreria +Include\ Library=Inclou la biblioteca #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Carpeta d'instal\u00b7laci\u00f3 de l'IDE incorrecta +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Incrementa la mida del tipus de lletra + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Augmenta el sagnat #: Preferences.java:101 -Indonesian=Indonesi +Indonesian=indonesi #: ../../../../../app/src/processing/app/Base.java:295 -Initializing\ packages...=Inicialitzant paquets... +Initializing\ packages...=S'estan inicialitzant els paquets... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 @@ -871,11 +910,11 @@ Installation\ completed\!=Instal\u00b7laci\u00f3 completada\! Installed=Instal\u00b7lat #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 -Installing\ boards...=Instal\u00b7lant plaques... +Installing\ boards...=S'estan instal\u00b7lant les plaques... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Instal\u00b7lant llibreria\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -883,78 +922,87 @@ Installing\ tools\ ({0}/{1})...=Instal\u00b7lant eines\: ({0}/{1})... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:239 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:172 -Installing...=Instal\u00b7lant... +Installing...=S'est\u00e0 instal\u00b7lant... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 Interface\ scale\:=Escalat d'interf\u00edcie\: #: ../../../processing/app/Base.java:1204 #, java-format -Invalid\ library\ found\ in\ {0}\:\ {1}=Llibreria invalida trobada en {0}\: {1} +Invalid\ library\ found\ in\ {0}\:\ {1}=Biblioteca inv\u00e0lida trobada en {0}\: {1} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:66 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Cita inv\u00e0lida\: no s'ha trobat el car\u00e0cter [{0}] de tancament. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 -Italian=Itali\u00e0 +Italian=itali\u00e0 #: Preferences.java:103 -Japanese=Japon\u00e8s +Japanese=japon\u00e8s #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=kazakh #: Preferences.java:104 -Korean=Core\u00e0 +Korean=core\u00e0 #: Preferences.java:105 -Latvian=Let\u00f3 +Latvian=let\u00f3 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -Library\ Manager=Gestor de la llibreria +Library\ Manager=Gestor de biblioteques #: ../../../../../app/src/processing/app/Base.java:2349 -Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Llibreria afegida a les teves llibreries. Comprova el men\u00fa "Inclou llibreria" +Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Biblioteca afegida a les vostres biblioteques. Comproveu el men\u00fa "Inclou biblioteca" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=La llibreria no pot fer servir ambd\u00f3s directoris 'src' i 'utility'. Torna a comprovar {0} +Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=La biblioteca no pot fer servir ambd\u00f3s directoris 'src' i 'utility'. Torneu a comprovar {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=La llibreria ja est\u00e0 instal\u00b7lada\: {0} versi\u00f3 {1} +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=N\u00famero de l\u00ednia\: #: Preferences.java:106 -Lithuaninan=Litu\u00e0 +Lithuaninan=litu\u00e0 #: ../../../../../app/src/processing/app/Base.java:132 -Loading\ configuration...=Carregant configuraci\u00f3... +Loading\ configuration...=S'est\u00e0 carregant la configuraci\u00f3... #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format -Looking\ for\ recipes\ like\ {0}*{1}=Cercant receptes tals com {0}*{1} +Looking\ for\ recipes\ like\ {0}*{1}=S'estan cercant receptes tals com {0}*{1} #: ../../../processing/app/Sketch.java:1684 Low\ memory\ available,\ stability\ problems\ may\ occur.=Es disposa de poca mem\u00f2ria, es poden produir problemes d'estabilitat #: ../../../../../app/src/processing/app/Base.java:1168 -Manage\ Libraries...=Gestiona les llibreries... +Manage\ Libraries...=Gestiona les biblioteques... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 Manual\ proxy\ configuration=Configuraci\u00f3 manual del proxy #: Preferences.java:107 -Marathi=Marathi +Marathi=marathi #: Base.java:2112 Message=Missatge #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format -Missing\ '{0}'\ from\ library\ in\ {1}=No es troba '{0}' de la llibreria a {1} +Missing\ '{0}'\ from\ library\ in\ {1}=No es troba '{0}' de la biblioteca a {1} #: ../../../processing/app/BaseNoGui.java:455 Mode\ not\ supported=M\u00f2dus no suportat. @@ -973,7 +1021,7 @@ Multiple\ files\ not\ supported=M\u00faltiples arxius no suportat #: ../../../processing/app/debug/Compiler.java:520 #, java-format -Multiple\ libraries\ were\ found\ for\ "{0}"=S'han trobat m\u00faltiples llibreries per a "{0}" +Multiple\ libraries\ were\ found\ for\ "{0}"=S'han trobat m\u00faltiples biblioteques per a "{0}" #: ../../../processing/app/Base.java:395 Must\ specify\ exactly\ one\ sketch\ file=Heu d'especificar exactament un arxiu sketch @@ -985,7 +1033,7 @@ Name\ for\ new\ file\:=Escolliu un nom per un nou fitxer\: Native\ serial\ port,\ can't\ obtain\ info=No es pot obtenir informaci\u00f3 del port s\u00e8rie natiu #: ../../../processing/app/Preferences.java:149 -Nepali=Nepali +Nepali=nepal\u00e8s #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 Network=Xarxa @@ -994,7 +1042,7 @@ Network=Xarxa Network\ port,\ can't\ obtain\ info=No es pot obtenir informaci\u00f3 del port de xarxa #: ../../../../../app/src/processing/app/Editor.java:65 -Network\ ports=Entrades Network +Network\ ports=Ports de xarxa #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 Network\ upload\ using\ programmer\ not\ supported=Xarxa pujada fent servir programador no soportat @@ -1066,7 +1114,7 @@ No\ valid\ hardware\ definitions\ found\ in\ folder\ {0}.=La definici\u00f3 de h None=Cap #: ../../../processing/app/Preferences.java:108 -Norwegian\ Bokm\u00e5l=Noruec Bokm\u00e2l +Norwegian\ Bokm\u00e5l=noruec bokm\u00e2l #: ../../../processing/app/Sketch.java:1656 Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=Mem\u00f2ria insuficient; ves a http\://www.arduino.cc/en/Guide/Troubleshooting\#size pels consells de com reduir-ne la mida. @@ -1082,7 +1130,7 @@ One\ file\ added\ to\ the\ sketch.=Un fitxer afegit al sketch. Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported=Nom\u00e9s --verify. --upload o --get-pref estan suportats #: EditorToolbar.java:41 -Open=Obrir +Open=Obre #: ../../../../../app/src/processing/app/Editor.java:625 Open\ Recent=Obre recent @@ -1094,7 +1142,7 @@ Open\ URL=Obre l'URL Open\ an\ Arduino\ sketch...=Obre un sketch d'Arduino... #: Base.java:903 Editor.java:501 -Open...=Obrir... +Open...=Obre... #: ../../../../../arduino-core/src/processing/app/I18n.java:37 Other=Un altre @@ -1112,26 +1160,26 @@ Password\:=Contrasenya\: Paste=Enganxa #: Preferences.java:109 -Persian=Persa +Persian=persa #: ../../../processing/app/Preferences.java:161 -Persian\ (Iran)=Persa (Iran) +Persian\ (Iran)=persa (Iran) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 #, java-format Platform\ {0}\ (package\ {1})\ is\ unknown=Plataforma {0} (paquet {1}) desconeguda #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 -Please\ confirm\ boards\ deletion=Sisplau confirma la supressi\u00f3 de les plaques +Please\ confirm\ boards\ deletion=Confirmeu la supressi\u00f3 de les plaques #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -Please\ confirm\ library\ deletion=Sisplau confirma la supressi\u00f3 de la llibreria +Please\ confirm\ library\ deletion=Confirmeu la supressi\u00f3 de la biblioteca #: debug/Compiler.java:408 -Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Si us plau importeu la llibreria SPI del men\u00fa Sketch > Importa biblioteca. +Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Importeu la biblioteca SPI del men\u00fa Sketch > Importa biblioteca. #: ../../../processing/app/debug/Compiler.java:529 -Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Si us plau importa la llibreria Wire de Sketch > Men\u00fa Importaci\u00f3 Llibreria +Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Importeu la llibreria Wire de Sketch > Men\u00fa Importaci\u00f3 biblioteca #: ../../../../../app//src/processing/app/Editor.java:2799 Please\ select\ a\ port\ to\ obtain\ board\ info=Seleccioneu un port per obtenir la informaci\u00f3 de la placa @@ -1144,7 +1192,7 @@ Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=Per favor, seleccio Plotter\ not\ available\ while\ serial\ monitor\ is\ open=El plotter no es troba disponible mentre el monitor s\u00e8rie est\u00e0 obert #: Preferences.java:110 -Polish=Polon\u00e8s +Polish=polon\u00e8s #: ../../../processing/app/Editor.java:718 Port=Port @@ -1153,19 +1201,19 @@ Port=Port Port\ number\:=N\u00famero de port\: #: ../../../processing/app/Preferences.java:151 -Portugese=Portugu\u00e8s +Portugese=portugu\u00e8s #: ../../../processing/app/Preferences.java:127 -Portuguese\ (Brazil)=Portugu\u00e8s (Brasil) +Portuguese\ (Brazil)=portugu\u00e8s (Brasil) #: ../../../processing/app/Preferences.java:128 -Portuguese\ (Portugal)=Portugu\u00e8s (Portugal) +Portuguese\ (Portugal)=portugu\u00e8s (Portugal) #: Preferences.java:295 Editor.java:583 Preferences=Prefer\u00e8ncies #: ../../../../../app/src/processing/app/Base.java:297 -Preparing\ boards...=Preparant plaques... +Preparing\ boards...=S'estan preparant les plaques... #: FindReplace.java:123 FindReplace.java:128 Previous=Anterior @@ -1174,7 +1222,7 @@ Previous=Anterior Previous\ Tab=Pestanya anterior #: Editor.java:571 -Print=Sortir +Print=Imprimeix #: Editor.java:2571 Printing\ canceled.=Impressi\u00f3 cancel\u00b7lada. @@ -1192,7 +1240,7 @@ Problem\ Opening\ URL=Problema obrint la URL Problem\ Setting\ the\ Platform=Problema adjustant la plataforma. #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:136 -Problem\ accessing\ board\ folder\ /www/sd=Problema accedint a la carpeta de la tarja /www/sd +Problem\ accessing\ board\ folder\ /www/sd=Problema accedint a la carpeta de la placa /www/sd #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format @@ -1218,7 +1266,7 @@ Programmer=Programador Progress\ {0}=Progr\u00e9s {0} #: Base.java:783 Editor.java:593 -Quit=Tancar +Quit=Surt #: ../../../../../app/src/processing/app/Base.java:1233 RETIRED=RETIRAT @@ -1227,17 +1275,17 @@ RETIRED=RETIRAT Recommended=Recomanat #: Editor.java:1138 Editor.java:1140 Editor.java:1390 -Redo=Ref\u00e9r +Redo=Ref\u00e9s #: Editor.java:1078 Reference=Refer\u00e8ncia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -Remove=Suprimir +Remove=Suprimeix -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Suprimint llibreria\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1265,8 +1313,11 @@ Replace\ with\:=Substituir amb\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Retirat +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 -Romanian=Roman\u00e8s +Romanian=roman\u00e8s #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 #, java-format @@ -1277,7 +1328,7 @@ Running\ recipe\:\ {0}=Executant recepta\: {0} Running\:\ {0}=Executant\: {0} #: Preferences.java:114 -Russian=Rus +Russian=rus #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 Editor.java:2064 #: Editor.java:2468 @@ -1287,51 +1338,51 @@ Save=Desa Save\ As...=Anomena i desa... #: Editor.java:2317 -Save\ Canceled.=Guardat cancel\u00b7lat. +Save\ Canceled.=S'ha cancel\u00b7lat el desament. #: Editor.java:2020 #, java-format -Save\ changes\ to\ "{0}"?\ \ =Desar els canvis a "{0}"? +Save\ changes\ to\ "{0}"?\ \ =Voleu desa els canvis a "{0}"? #: Sketch.java:825 Save\ sketch\ folder\ as...=Anomena i desa la carpeta de sketch... #: ../../../../../app/src/processing/app/Preferences.java:425 -Save\ when\ verifying\ or\ uploading=Guardar mentre verifica o puja +Save\ when\ verifying\ or\ uploading=Desa mentre verifica o puja #: Editor.java:2270 Editor.java:2308 -Saving...=Desant... +Saving...=S'est\u00e0 desant... #: ../../../processing/app/FindReplace.java:131 Search\ all\ Sketch\ Tabs=Cerca tots els Tabs del programari #: Base.java:1909 -Select\ (or\ create\ new)\ folder\ for\ sketches...=Seleccioni (o cre\u00ef) una carpeta pels sketches... +Select\ (or\ create\ new)\ folder\ for\ sketches...=Seleccioneu (o creeu) una carpeta pels sketches... #: Editor.java:1198 Editor.java:2739 -Select\ All=Selecciona-ho Tot +Select\ All=Selecciona-ho tot #: Base.java:2636 -Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add=Selecciona el l fitxer zip o el directori que cont\u00e9 la llibreria que vols afegir +Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add=Seleccioneu el l fitxer zip o el directori que cont\u00e9 la biblioteca que voleu afegir #: Sketch.java:975 -Select\ an\ image\ or\ other\ data\ file\ to\ copy\ to\ your\ sketch=Seleccioni una imatge o un altre fitxer da dades per copiar el seu sketch +Select\ an\ image\ or\ other\ data\ file\ to\ copy\ to\ your\ sketch=Seleccioneu una imatge o un altre fitxer da dades per copiar el vostre sketch #: Preferences.java:330 Select\ new\ sketchbook\ location=Seleccioneu una ubicaci\u00f3 pel nou sketchbook #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 -Select\ version=Selecciona versi\u00f3 +Select\ version=Seleccioneu una versi\u00f3 #: ../../../processing/app/debug/Compiler.java:146 -Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=Tarja seleccionada depenent del nucli '{0}' (no instal\u00b7lat). +Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=Placa seleccionada depenent del nucli '{0}' (no instal\u00b7lat). #: ../../../../../app/src/processing/app/Base.java:374 Selected\ board\ is\ not\ available=La placa seleccionada no es troba disponible #: ../../../../../app/src/processing/app/Base.java:423 -Selected\ library\ is\ not\ available=La llibreria seleccionada no es troba disponible +Selected\ library\ is\ not\ available=La biblioteca seleccionada no es troba disponible #: SerialMonitor.java:93 Send=Envia @@ -1356,19 +1407,23 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=El monitor s\u00e8rie #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Port s\u00e8rie "{0}" no trobat. Ha seleccionat el port corresponent al men\u00fa Eines > Port s\u00e8rie? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Port s\u00e8rie {0} no trobat.\nRe-intentar la pujada amb un altre port s\u00e8rie? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 -Serial\ ports=Port Serial +Serial\ ports=Ports de s\u00e8rie #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 #, java-format Setting\ build\ path\ to\ {0}=La ubicaci\u00f3 per als builds s'ha definit a {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -Settings=Ajustaments +Settings=Configuraci\u00f3 #: Base.java:1681 Settings\ issues=Errors en les prefer\u00e8ncies @@ -1376,6 +1431,9 @@ Settings\ issues=Errors en les prefer\u00e8ncies #: Editor.java:641 Show\ Sketch\ Folder=Mostra la carpeta del Sketch +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Mostra la sortida detallada durant\: @@ -1424,10 +1482,10 @@ Sketchbook\ path\ not\ defined=Ubicaci\u00f3 del llibre de programari no definid Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=Saltant l'\u00edndex de l'arxiu aportat {0}, ha ocorregut un error\: #: ../../../../../app/src/processing/app/Preferences.java:185 -Slovak=Eslovac +Slovak=eslovac #: ../../../processing/app/Preferences.java:152 -Slovenian=Eslov\u00e8 +Slovenian=eslov\u00e8 #: Sketch.java:275 Sketch.java:304 Sketch.java:578 Sketch.java:967 Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=Alguns fitxers estan marcats com a "read-only", per tant haur\u00e0\nde desar de nou el sketch en una altre localitzaci\u00f3,\ni tornar-ho a provar. @@ -1437,37 +1495,37 @@ Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ ske #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format -!Sorry,\ the\ folder\ "{0}"\ already\ exists.= +Sorry,\ the\ folder\ "{0}"\ already\ exists.=La carpeta "{0}" ja existeix #: Preferences.java:115 -Spanish=Espanyol +Spanish=espanyol #: ../../../../../app/src/processing/app/Base.java:2333 -Specified\ folder/zip\ file\ does\ not\ contain\ a\ valid\ library=La carpeta o fitxer zip especificat no cont\u00e9 una llibreria v\u00e0lida +Specified\ folder/zip\ file\ does\ not\ contain\ a\ valid\ library=La carpeta o fitxer zip especificat no cont\u00e9 una biblioteca v\u00e0lida #: ../../../../../app/src/processing/app/Base.java:466 -Starting...=Iniciant... +Starting...=S'est\u00e0 iniciant... #: Base.java:540 Sunshine=Sol. #: ../../../processing/app/Preferences.java:153 -Swedish=Suec +Swedish=suec #: Preferences.java:84 System\ Default=Per defecte del sistema #: ../../../../../app/src/processing/app/Preferences.java:188 -Talossan=Tolan\u00e9s +Talossan=taloss\u00e0 #: Preferences.java:116 -Tamil=T\u00e0mil +Tamil=t\u00e0mil #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=telugu #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 -Thai=Thai +Thai=thai #: debug/Compiler.java:414 The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.=La descripci\u00f3 'BYTE' ha deixat d'estar suportada. @@ -1480,7 +1538,7 @@ The\ Client\ class\ has\ been\ renamed\ EthernetClient.=La classe Client ha esta #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=L'IDE inclou un paquet {0} actualitzat, per\u00f2 n'est\u00e0s utilitzant un de m\u00e9s antic.\nVols actualitzat {0}? +The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=L'IDE inclou un paquet {0} actualitzat, per\u00f2 n'esteu utilitzant un de m\u00e9s antic.\nVoleu actualitzar {0}? #: debug/Compiler.java:420 The\ Server\ class\ has\ been\ renamed\ EthernetServer.=La classe Server ha estat reanomenada EthernetServer. @@ -1493,14 +1551,18 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=La classe Udp ha estat reanome #: Editor.java:2147 #, java-format -The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=L'arxiu "{0}" ha de trobar-se dins\nla carpeta de l'sketch anomenat "{1}".\nCrear aquesta carpeta, moure l'arxiu, i continua? +The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=El fitxer "{0}" ha de trobar-se dins\nla carpeta de l'sketch anomenat "{1}".\nCrear aquesta carpeta, moure l'arxiu, i continua? + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:1054 Base.java:2674 #, java-format -The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La Llibreria "{0}" no pot ser utilitzada.\nNoms de Llibreries nom\u00e9s poden contenir nombres i lletres senzilles.\n(nom\u00e9s ASCII i sense espais, tampoc pot comen\u00e7ar amb un nombre). +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La biblioteca "{0}" no es pot utilitzar.\nEls noms de biblioteca nom\u00e9s poden contenir nombres i lletres senzilles.\n(nom\u00e9s ASCII i sense espais, tampoc pot comen\u00e7ar amb un nombre). #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=El fitxer principal no pot usar un extensi\u00f3 #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=El nom no pot comen\u00e7ar amb un punt. @@ -1519,8 +1581,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=La carpeta del sketch ha desaparegut.\n Es provar\u00e0 de tornar a desar en la mateixa localitzaci\u00f3,\nper\u00f2 tot excepte el codi ser\u00e0 perdut. -#: ../../../processing/app/Sketch.java:2028 -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.=El nom del sketch ha de ser modificat. Els noms dels Sketch nom\u00e9s poden constar\nde car\u00e0cters ASCII i nombres (per\u00f2 no comen\u00e7ar amb nombres).\nTamb\u00e9 haurien de ser menys de 64 car\u00e0cters. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=La carpeta sketchbook no existeix.\nArduino canviar\u00e0 a la localitzaci\u00f3 per defecte\nde sketchbook, i crear\u00e0 una nova carpeta sketchbook\nsi fos necessari. Arduino parar\u00e0 de parlar\nd'ell mateix en tercera persona. @@ -1528,8 +1590,11 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=La carpeta del bloc d'esbossos especificada cont\u00e9 la teva c\u00f2pia de l'IDE.\nSisplau escull una carpeta diferent per al teu bloc d'esbossos. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Aquesta llibreria no est\u00e0 inclosa al Gestor de llibreries. No podr\u00e0s reinstal\u00b7lar-la des d'aqu\u00ed.\nEst\u00e0s segur/a de voler desisntalar-la? +This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Aquesta biblioteca no est\u00e0 inclosa al Gestor de biblioteques. No podreu reinstal\u00b7lar-la des d'aqu\u00ed.\nEsteu segur de voler desinstal\u00b7lar-la? #: ../../../../../app/src/processing/app/EditorStatus.java:349 This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Aquest informe tindria m\u00e9s informaci\u00f3 amb\nla opci\u00f3 "Mostra la sortida detallada durant la compilaci\u00f3"\nactivada a Fitxer -> Prefer\u00e8ncies.\n @@ -1554,20 +1619,20 @@ Topic=T\u00f2pic Troubleshooting=Soluci\u00f3 de problemes #: ../../../processing/app/Preferences.java:117 -Turkish=Turc +Turkish=turc #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 Type=Tipus #: ../../../processing/app/Editor.java:2507 -Type\ board\ password\ to\ access\ its\ console=Introdu\u00efu la contrasenya de la tarja per accedir a la seva consola +Type\ board\ password\ to\ access\ its\ console=Introdu\u00efu la contrasenya de la placa per accedir a la seva consola #: ../../../processing/app/Sketch.java:1673 -Type\ board\ password\ to\ upload\ a\ new\ sketch=Introdu\u00efu la contrasenya de la tarja per pujar el nou sketch +Type\ board\ password\ to\ upload\ a\ new\ sketch=Introdu\u00efu la contrasenya de la placa per pujar el nou sketch #: ../../../processing/app/Preferences.java:118 -Ukrainian=Ucra\u00efn\u00e8s +Ukrainian=ucra\u00efn\u00e8s #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format @@ -1601,7 +1666,7 @@ Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=No es pot acc Uncategorized=No categoritzat #: Editor.java:1133 Editor.java:1355 -Undo=Desf\u00e9r +Undo=Desf\u00e9s #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format @@ -1633,14 +1698,14 @@ Updates\ available\ for\ some\ of\ your\ {0}boards{1}=Hi ha actualitzacions disp #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 #, java-format -Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}=Hi ha actualitzacions disponibles per a algunes de les teves plaques {0} {1} i llibreries {2} {3} +Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}=Hi ha actualitzacions disponibles per a algunes de les teves plaques {0} {1} i biblioteques {2} {3} #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format -Updates\ available\ for\ some\ of\ your\ {0}libraries{1}=Hi ha actualitzacions disponibles per a algunes de les teves llibreries {0} {1} +Updates\ available\ for\ some\ of\ your\ {0}libraries{1}=Hi ha actualitzacions disponibles per a algunes de les teves biblioteques {0} {1} #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 -Updating\ list\ of\ installed\ libraries=Actualitzant llistat de llibreries instal\u00b7lades +Updating\ list\ of\ installed\ libraries=Actualitzant llistat de biblioteques instal\u00b7lades #: EditorToolbar.java:41 Editor.java:545 Upload=Puja @@ -1652,7 +1717,7 @@ Upload\ Using\ Programmer=Carregar utilitzant un Programador Upload\ any\ sketch\ to\ obtain\ it=Pujar qualsevol esb\u00f3s per a obtindre'l #: Editor.java:2403 Editor.java:2439 -Upload\ canceled.=Pujada cancel\u00b7lada. +Upload\ canceled.=S'ha cancel\u00b7lat la pujada. #: ../../../processing/app/Sketch.java:1678 Upload\ cancelled=Pujada cancel\u2022lada @@ -1675,33 +1740,33 @@ Username\:=Nom d'usuari\: #: ../../../processing/app/debug/Compiler.java:410 #, java-format -Using\ library\ {0}\ at\ version\ {1}\ in\ folder\:\ {2}\ {3}=Utilitzant llibreria {0} a la seva versi\u00f3 {1} en la carpeta\: {2} {3} +Using\ library\ {0}\ at\ version\ {1}\ in\ folder\:\ {2}\ {3}=Utilitzant biblioteca {0} a la seva versi\u00f3 {1} en la carpeta\: {2} {3} #: ../../../processing/app/debug/Compiler.java:94 #, java-format -Using\ library\ {0}\ in\ folder\:\ {1}\ {2}=Utilitzant llibreria {0} en carpeta\: {1}{2} +Using\ library\ {0}\ in\ folder\:\ {1}\ {2}=Utilitzant biblioteca {0} en carpeta\: {1}{2} #: ../../../processing/app/debug/Compiler.java:320 #, java-format Using\ previously\ compiled\ file\:\ {0}=Usant l'arxiu pr\u00e8viament compilat\: {0} #: EditorToolbar.java:41 EditorToolbar.java:46 -Verify=Verifiqueu +Verify=Verifica #: Preferences.java:400 Verify\ code\ after\ upload=Comproveu el codi despr\u00e9s de pujar-lo #: ../../../../../app/src/processing/app/Editor.java:725 -Verify/Compile=Verifica/Compila +Verify/Compile=Verifica i compila #: ../../../../../app/src/processing/app/Base.java:451 -Verifying\ and\ uploading...=Verificant i pujant... +Verifying\ and\ uploading...=S'est\u00e0 verificant i pujant... #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 -Verifying\ archive\ integrity...=Verificant la integritat del fitxer... +Verifying\ archive\ integrity...=S'est\u00e0 verificant la integritat del fitxer... #: ../../../../../app/src/processing/app/Base.java:454 -Verifying...=Verificant... +Verifying...=S'est\u00e0 verificant... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 #, java-format @@ -1715,22 +1780,22 @@ Version\ unknown=Versi\u00f3 desconeguda Version\ {0}=Versi\u00f3 {0} #: ../../../processing/app/Preferences.java:154 -Vietnamese=Vietnamita +Vietnamese=vietnamita #: Editor.java:1105 Visit\ Arduino.cc=Visita Arduino.cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format -WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'=AV\u00cdS\: La categoria '{0}' a la llibreria {1} no \u00e9s v\u00e0lida. Ajustant a '{2}' +WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'=AV\u00cdS\: La categoria '{0}' a la biblioteca {1} no \u00e9s v\u00e0lida. Ajustant a '{2}' #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format -WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library=AV\u00cdS\: Carpeta {0} esp\u00faria a la llibreria '{1}' +WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library=AV\u00cdS\: Carpeta {0} esp\u00faria a la biblioteca '{1}' #: ../../../processing/app/debug/Compiler.java:115 #, java-format -WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=ALERTA\: libray {0} vol correr a {1} arquitectura(es) i podria ser incompatible amb la seva placa, que corre a {2} arquitectura(es). +WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=ALERTA\: biblioteca {0} vol c\u00f3rrer a {1} arquitectura(es) i podria ser incompatible amb la seva placa, que corre a {2} arquitectura(es). #: Base.java:2128 Warning=Advert\u00e8ncia @@ -1761,7 +1826,7 @@ Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automati Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.=Av\u00eds\: al platform.txt del nucli '{0}' li falta la propietat '{1}', s'ha fet servir el valor predeterminat '{2}'\: Considera actualitzar aquest nucli. #: ../../../../../app/src/processing/app/Preferences.java:190 -Western\ Frisian=Fris\u00f3 de l'Oest +Western\ Frisian=fris\u00f3 occidental #: debug/Compiler.java:444 Wire.receive()\ has\ been\ renamed\ Wire.read().=Wire.receive() ha estat reanomenada a Wire.read(). @@ -1806,7 +1871,7 @@ Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ sketchbook. ZIP\ files\ or\ folders=Fitxers ZIP o directoris #: Base.java:2661 -Zip\ doesn't\ contain\ a\ library=ZIP no cont\u00e9 cap llibreria +Zip\ doesn't\ contain\ a\ library=ZIP no cont\u00e9 cap biblioteca #: Sketch.java:364 #, java-format @@ -1817,34 +1882,34 @@ Zip\ doesn't\ contain\ a\ library=ZIP no cont\u00e9 cap llibreria "{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.="{0}" cont\u00e9 car\u00e0cters desconeguts. Si aquest codi ha estat creat amb una versi\u00f3 anterior d'Arduino hauries de fer servir la opci\u00f3 Eines -> Arregla la codificaci\u00f3 i recarrega per a actualitzar l'esb\u00f3s per tal d'usar la codificaci\u00f3 UTF-8. De no fer-ho, hauries de suprimir els car\u00e0cters incorrectes per a desfer-te d'aquest av\u00eds. #: debug/Compiler.java:409 -\nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nA partir de Arduino 0019, la llibreria Ethernet dep\u00e8n de la llibreria SPI.\nSembla que l'esta utilitzant o ho fa una altre llibreria que dep\u00e8n de la llibreria SPI.\n\n +\nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nA partir de Arduino 0019, la llibreria Ethernet dep\u00e8n de la biblioteca SPI.\nSembla que l'esta utilitzant o ho fa una altre biblioteca que dep\u00e8n de la biblioteca SPI.\n\n #: debug/Compiler.java:415 \nAs\ of\ Arduino\ 1.0,\ the\ 'BYTE'\ keyword\ is\ no\ longer\ supported.\nPlease\ use\ Serial.write()\ instead.\n\n=\nA partir de Arduino 1.0, la descripci\u00f3 'BYTE' ja no est\u00e0 suportada.\nSi us plau en el seu lloc feu servir Serial.write()\n\n #: debug/Compiler.java:427 -\nAs\ of\ Arduino\ 1.0,\ the\ Client\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\nA partir de Arduino 1.0, la classe Client de la llibreria Ethernet ha estat reanomenada a EthernetClient.\n\n +\nAs\ of\ Arduino\ 1.0,\ the\ Client\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\nA partir de Arduino 1.0, la classe Client de la biblioteca Ethernet ha estat reanomenada a EthernetClient.\n\n #: debug/Compiler.java:421 -\nAs\ of\ Arduino\ 1.0,\ the\ Server\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetServer.\n\n=\nA partir de Arduino 1.0, la classe Server de la llibreria Ethernet ha estat reanomenada a EthernetServer.\n\n +\nAs\ of\ Arduino\ 1.0,\ the\ Server\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetServer.\n\n=\nA partir de Arduino 1.0, la classe Server de la biblioteca Ethernet ha estat reanomenada a EthernetServer.\n\n #: debug/Compiler.java:433 -\nAs\ of\ Arduino\ 1.0,\ the\ Udp\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetUdp.\n\n=\nA partir del l'Arduino 1.0, la classe Udp en la llibreria Ethernet ha estat reanomenada a EthernetUdp\n\n +\nAs\ of\ Arduino\ 1.0,\ the\ Udp\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetUdp.\n\n=\nA partir del l'Arduino 1.0, la classe Udp en la biblioteca Ethernet ha estat reanomenada a EthernetUdp\n\n #: debug/Compiler.java:445 -\nAs\ of\ Arduino\ 1.0,\ the\ Wire.receive()\ function\ was\ renamed\ to\ Wire.read()\ for\ consistency\ with\ other\ libraries.\n\n=\nA partir del l'Arduino 1.0, la funci\u00f3 Wire.receive() ha estat reanomenada a Wire.read() per coher\u00e8ncia amb altres llibreries.\n +\nAs\ of\ Arduino\ 1.0,\ the\ Wire.receive()\ function\ was\ renamed\ to\ Wire.read()\ for\ consistency\ with\ other\ libraries.\n\n=\nA partir del l'Arduino 1.0, la funci\u00f3 Wire.receive() ha estat reanomenada a Wire.read() per coher\u00e8ncia amb altres biblioteques.\n #: debug/Compiler.java:439 -\nAs\ of\ Arduino\ 1.0,\ the\ Wire.send()\ function\ was\ renamed\ to\ Wire.write()\ for\ consistency\ with\ other\ libraries.\n\n=\nA partir del l'Arduino 1.0, la funci\u00f3 Wire.send() ha estat reanomenada a Wire.write() per coher\u00e8ncia amb altres llibreries.\n\n +\nAs\ of\ Arduino\ 1.0,\ the\ Wire.send()\ function\ was\ renamed\ to\ Wire.write()\ for\ consistency\ with\ other\ libraries.\n\n=\nA partir del l'Arduino 1.0, la funci\u00f3 Wire.send() ha estat reanomenada a Wire.write() per coher\u00e8ncia amb altres biblioteques.\n\n #: SerialMonitor.java:130 SerialMonitor.java:133 baud=baud #: Preferences.java:389 -compilation\ =Compliaci\u00f3 +compilation\ =compiliaci\u00f3 #: ../../../processing/app/NetworkMonitor.java:111 -connected\!=Connectat\! +connected\!=connectat\! #: ../../../../../app/src/processing/app/Editor.java:1352 http\://www.arduino.cc/=http\://www.arduino.cc/ @@ -1862,6 +1927,11 @@ ignoring\ invalid\ font\ size\ {0}=Ignorant mida de font inv\u00e0lida {0} #: Editor.java:936 Editor.java:943 name\ is\ null=El nom es null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu es null @@ -1899,7 +1969,7 @@ version\ {0}=versi\u00f3 {0} #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format -{0}\ libraries={0} llibreries +{0}\ libraries={0} biblioteques #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format @@ -1927,11 +1997,7 @@ version\ {0}=versi\u00f3 {0} #: ../../../processing/app/Base.java:476 #, java-format -{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nom de tarja desconeguda, ha de tenir el format "package\:arch\:board" o "package\:arch\:board\:options" - -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Opci\u00f3 no v\u00e0lida per "{1}" opci\u00f3 per tarja "{2}" +{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nom de placa desconeguda, ha de tenir el format "package\:arch\:board" o "package\:arch\:board\:options" #: ../../../processing/app/Base.java:507 #, java-format @@ -1941,13 +2007,17 @@ version\ {0}=versi\u00f3 {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Opci\u00f3 no v\u00e0lida, s'espera la forma "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arquitectura desconeguda #: ../../../processing/app/Base.java:491 #, java-format -{0}\:\ Unknown\ board={0}\: Tarja desconeguda +{0}\:\ Unknown\ board={0}\: Placa desconeguda #: ../../../processing/app/Base.java:481 #, java-format diff --git a/arduino-core/src/processing/app/i18n/Resources_cs_CZ.po b/arduino-core/src/processing/app/i18n/Resources_cs_CZ.po index 0ad321b8a06..1ada5ea9c18 100644 --- a/arduino-core/src/processing/app/i18n/Resources_cs_CZ.po +++ b/arduino-core/src/processing/app/i18n/Resources_cs_CZ.po @@ -16,27 +16,31 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # horcicaa , 2012 # Cristian Maglie , 2016 -# fatalwir , 2014 +# fatalwir , 2014,2018 # Michal KoÄer , 2012 # Michal KoÄer , 2012 # Michal KoÄer , 2013-2014 -# Ondrej Novy , 2015 -# Zdeno Sekerák , 2015-2017 +# OndÅ™ej Nový , 2015 +# Zdeno Sekerák , 2015-2017,2019 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" +"PO-Revision-Date: 2019-02-13 13:34+0000\n" "Last-Translator: Zdeno Sekerák \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/mbanzi/arduino-ide-15/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs_CZ\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" @@ -217,6 +221,11 @@ msgstr "Archivuj projekt jako:" msgid "Archive sketch canceled." msgstr "Archivování projektu bylo pÅ™eruÅ¡eno." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Archivace pÅ™eloženého jádra (doÄasne uloženého) v: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -623,6 +632,11 @@ msgstr "Nemohu smazat starou verzi {0}" msgid "Could not replace {0}" msgstr "Nemohu zmÄ›nit {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Nemůžu zapsat nastavení do souboru: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Projekt nebylo možné archivovat" @@ -666,6 +680,10 @@ msgstr "Zpracování dát" msgid "Data Storage" msgstr "Uložení dát" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "ZmenÅ¡ení fontu písma" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "ZmenÅ¡it odsazení" @@ -674,6 +692,10 @@ msgstr "ZmenÅ¡it odsazení" msgid "Default" msgstr "Default" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Výchozí motiv" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Smazat" @@ -849,6 +871,11 @@ msgstr "Chyba v pÅ™istupu do datového adresáře Arduina." msgid "Error inside Serial.{0}()" msgstr "Chyba v Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Chyba pÅ™i naÄítání motivu {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -868,6 +895,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Chyba pri otevÅ™ení sériového portu ''{0}''. Zkus se podívat na dokumentaci která je na http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Chyba pri parsování indexu knihoven: {0}\nPokuste se otevřít správce knihoven a aktualizujte její index." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Nastala chyba pri Ätení indexu knihoven: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Chyba pÅ™i Ätení indexu ve složce balíků: {0}\n(možná problém s přístupovými právami?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Chyba pÅ™i Ätení nastavení" @@ -902,6 +948,10 @@ msgstr "Chyba pÅ™i vypalování zavadÄ›Äe." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Chyba pÅ™i vypalování bootloaderu: chybí konfiguraÄní parametr '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Chyba pri vypalování bootloader: prosím vyberte sériový port." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Nastala chyba pÅ™i kompilaci: chybejíci '{0}' konfiguraÄní parametr" @@ -938,10 +988,6 @@ msgstr "Nastala chyby pÅ™i verifykaci/nahrávání." msgid "Estonian" msgstr "EstonÅ¡tina" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "EstónÅ¡tina (Estónsko)" - #: Editor.java:516 msgid "Examples" msgstr "Příklady" @@ -1145,9 +1191,9 @@ msgstr "NEKOMPAKTIBILNÃ" msgid "Ignore Case" msgstr "Ignoruj velikost písmen" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignoruji chybný název knihovny" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignoruji knihovnu s nesprávným názvem" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1173,6 +1219,10 @@ msgstr "PÅ™idat knihovnu" msgid "Incorrect IDE installation folder" msgstr "Nesprávný adresář pro instalaci IDE" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "ZvÄ›tÅ¡ení fontu písma" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "ZvÄ›tÅ¡it odsazení" @@ -1206,10 +1256,10 @@ msgstr "Instalováno" msgid "Installing boards..." msgstr "Instalace desek..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Instaluji knihovnu: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Instalace knihovny: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1235,6 +1285,17 @@ msgstr "Nalezena neplatná knihovna v {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Neplatný znak úvodzovek: chýbÄ›jicí uzavírací znak [{0}]." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Neplatná verze knihovny '{0}' v: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Neplatná verze {0}" + #: Preferences.java:102 msgid "Italian" msgstr "ItalÅ¡tina" @@ -1267,10 +1328,10 @@ msgstr "Knihovna pÅ™idána do tvých knihoven. Zkontroluj menu \"Zahrnuté kniho msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Knihovna nemůže být použitá souÄastne v adresářích 'src' a 'utility'. Zdvojená kontrola {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Knihovna je již instalovaná: {0} verze {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Knihovna je již nainstalována: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1687,10 +1748,10 @@ msgstr "Reference" msgid "Remove" msgstr "Vymazat" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Mažu knihovnu: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Odstraňování knihovny: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1726,6 +1787,10 @@ msgstr "NahraÄ za:" msgid "Retired" msgstr "Nepodporovaný" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Chcete opakovat nahrávání s jiným sériovým portem?" + #: Preferences.java:113 msgid "Romanian" msgstr "RumunÅ¡tina" @@ -1849,12 +1914,15 @@ msgid "" " Serial Port menu?" msgstr "Seriový port ''{0}'' nebyl nalezen. Vybrali jste správný port v menu Nástroje > Seriový port?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Nebyl vybrán sériový port." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Seriový port {0} nenalezen\nMám zkusit nahrávat na jiný seriový port?" +msgid "Serial port {0} not found." +msgstr "Sériový port {0} se nenaÅ¡el." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1877,6 +1945,10 @@ msgstr "Problém s Nastavením" msgid "Show Sketch Folder" msgstr "Zobraz adresář s projekty" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Zobrazit Äasové razítko" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Zobrazit více informací výstupu bÄ›hem: " @@ -2048,6 +2120,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Soubor \"{0}\" musí být uložen \nv adresáři pro projekty pojmenovaném \"{1}\".\nMám vytvoÅ™it adresář, pÅ™esunout tam soubor a pokraÄovat?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Knihovnu \"{0}\" nelze použít.\nNázev složky knihovny musí zaÄínat písmenem nebo Äíslem a může obsahovat pouze písmena, Äíslice, pomlÄky, teÄky a podtržítka. Maximální délka názvu je 63 znaků." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2093,12 +2173,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Projekt zmizel.\nPokusím se znovu uložit na stejné místo,\nale krom kódu bude vÅ¡echno ostatní ztraceno!" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Název projektu je potÅ™eba zmÄ›nit. Název projektu je možné složit pouze z ASCII znaků a Äísel (Äíslem vÅ¡ak nemůže zaÄínat). Název musí mít délku ménÄ› jak 64 znaků." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Neplatný název projektu.\nNázev projektu musí zaÄínat písmenem nebo Äíslem a může obsahovat pouze písmena, Äíslice, pomlÄky, teÄky a podtržítka. Maximální délka názvu je 63 znaků." #: Base.java:259 msgid "" @@ -2115,6 +2195,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Specifikovaný projektový adresář obsahuje kopii tvého IDE.\nProsím vyber pro svůj projekt jiný adresář." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Motiv:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2607,6 +2691,12 @@ msgstr "ignoruji nepovolenou velikost fontu {0}" msgid "name is null" msgstr "jméno je null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "nenalezeny hlaviÄkové soubory (.h) v {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu je null" @@ -2694,11 +2784,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: ChybnÄ› zvolený název vývojové desky; mÄ›l by mít formu \"package:arch:board\" Äi \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Chybná volba pro \"{1}\" volbu pro vývojovou desku \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2709,6 +2794,11 @@ msgstr "{0}: Chybná volba pro vývojovou desku \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Chybná volba, mÄ›la by být ve formÄ› \"nazev=hodnota\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Neplatná hodnota parametru \"{1}\" desky \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_cs_CZ.properties b/arduino-core/src/processing/app/i18n/Resources_cs_CZ.properties index 4ba17d96e07..f3a559b417e 100644 --- a/arduino-core/src/processing/app/i18n/Resources_cs_CZ.properties +++ b/arduino-core/src/processing/app/i18n/Resources_cs_CZ.properties @@ -16,15 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # horcicaa , 2012 # Cristian Maglie , 2016 -# fatalwir , 2014 +# fatalwir , 2014,2018 # Michal Ko\u010der , 2012 # Michal Ko\u010der , 2012 # Michal Ko\u010der , 2013-2014 -# Ondrej Novy , 2015 -# Zdeno Seker\u00e1k , 2015-2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: Zdeno Seker\u00e1k \nLanguage-Team\: Czech (Czech Republic) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/cs_CZ/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs_CZ\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n +# Ond\u0159ej Nov\u00fd , 2015 +# Zdeno Seker\u00e1k , 2015-2017,2019 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-02-13 13\:34+0000\nLast-Translator\: Zdeno Seker\u00e1k \nLanguage-Team\: Czech (Czech Republic) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/cs_CZ/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: cs_CZ\nPlural-Forms\: nplurals\=4; plural\=(n \=\= 1 && n % 1 \=\= 0) ? 0 \: (n >\= 2 && n <\= 4 && n % 1 \=\= 0) ? 1\: (n % 1 \!\= 0 ) ? 2 \: 3;\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (vy\u017eaduje restart programu Arduino) @@ -149,6 +153,10 @@ Archive\ sketch\ as\:=Archivuj projekt jako\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivov\u00e1n\u00ed projektu bylo p\u0159eru\u0161eno. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Archivace p\u0159elo\u017een\u00e9ho j\u00e1dra (do\u010dasne ulo\u017een\u00e9ho) v\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Archivov\u00e1n\u00ed projektu bylo ukon\u010deno, proto\u017ee\nprojekt ne\u0161lo ulo\u017eit. @@ -443,6 +451,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Nemohu smazat starou verzi {0} #, java-format Could\ not\ replace\ {0}=Nemohu zm\u011bnit {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Nem\u016f\u017eu zapsat nastaven\u00ed do souboru\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Projekt nebylo mo\u017en\u00e9 archivovat @@ -473,12 +485,18 @@ Data\ Processing=Zpracov\u00e1n\u00ed d\u00e1t #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Ulo\u017een\u00ed d\u00e1t +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Zmen\u0161en\u00ed fontu p\u00edsma + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Zmen\u0161it odsazen\u00ed #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Default +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=V\u00fdchoz\u00ed motiv + #: EditorHeader.java:314 Sketch.java:591 Delete=Smazat @@ -610,6 +628,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Chyba v p\u0159istupu do datov\u00e9 #, java-format Error\ inside\ Serial.{0}()=Chyba v Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Chyba p\u0159i na\u010d\u00edt\u00e1n\u00ed motivu {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -624,6 +646,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Chyba p\u0159i otev\u00edr\u00e1n\u00ed s #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Chyba pri otev\u0159en\u00ed s\u00e9riov\u00e9ho portu ''{0}''. Zkus se pod\u00edvat na dokumentaci kter\u00e1 je na http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Chyba pri parsov\u00e1n\u00ed indexu knihoven\: {0}\nPokuste se otev\u0159\u00edt spr\u00e1vce knihoven a aktualizujte jej\u00ed index. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Nastala chyba pri \u010dten\u00ed indexu knihoven\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Chyba p\u0159i \u010dten\u00ed indexu ve slo\u017ece bal\u00edk\u016f\: {0}\n(mo\u017en\u00e1 probl\u00e9m s p\u0159\u00edstupov\u00fdmi pr\u00e1vami?) + #: Preferences.java:277 Error\ reading\ preferences=Chyba p\u0159i \u010dten\u00ed nastaven\u00ed @@ -649,6 +683,9 @@ Error\ while\ burning\ bootloader.=Chyba p\u0159i vypalov\u00e1n\u00ed zavad\u01 #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Chyba p\u0159i vypalov\u00e1n\u00ed bootloaderu\: chyb\u00ed konfigura\u010dn\u00ed parametr '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Chyba pri vypalov\u00e1n\u00ed bootloader\: pros\u00edm vyberte s\u00e9riov\u00fd port. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Nastala chyba p\u0159i kompilaci\: chybej\u00edci '{0}' konfigura\u010dn\u00ed parametr @@ -677,9 +714,6 @@ Error\ while\ verifying/uploading=Nastala chyby p\u0159i verifykaci/nahr\u00e1v\ #: Preferences.java:93 Estonian=Eston\u0161tina -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Est\u00f3n\u0161tina (Est\u00f3nsko) - #: Editor.java:516 Examples=P\u0159\u00edklady @@ -830,8 +864,8 @@ INCOMPATIBLE=NEKOMPAKTIBILN\u00cd #: FindReplace.java:96 Ignore\ Case=Ignoruj velikost p\u00edsmen -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignoruji chybn\u00fd n\u00e1zev knihovny +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignoruji knihovnu s nespr\u00e1vn\u00fdm n\u00e1zvem #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignoruji skicu chybn\u00e9ho jm\u00e9na @@ -846,6 +880,9 @@ Include\ Library=P\u0159idat knihovnu #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Nespr\u00e1vn\u00fd adres\u00e1\u0159 pro instalaci IDE +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Zv\u011bt\u0161en\u00ed fontu p\u00edsma + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Zv\u011bt\u0161it odsazen\u00ed @@ -872,9 +909,9 @@ Installed=Instalov\u00e1no #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Instalace desek... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Instaluji knihovnu\: {0} +Installing\ library\:\ {0}\:{1}=Instalace knihovny\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -895,6 +932,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Nalezena neplatn\u00e1 knihovna v {0}\: #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Neplatn\u00fd znak \u00favodzovek\: ch\u00fdb\u011bjic\u00ed uzav\u00edrac\u00ed znak [{0}]. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Neplatn\u00e1 verze knihovny '{0}' v\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Neplatn\u00e1 verze {0} + #: Preferences.java:102 Italian=Ital\u0161tina @@ -919,9 +965,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Knihovna p #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Knihovna nem\u016f\u017ee b\u00fdt pou\u017eit\u00e1 sou\u010dastne v adres\u00e1\u0159\u00edch 'src' a 'utility'. Zdvojen\u00e1 kontrola {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Knihovna je ji\u017e instalovan\u00e1\: {0} verze {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Knihovna je ji\u017e nainstalov\u00e1na\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u010c\u00edslo \u0159\u00e1dku\: @@ -1234,9 +1280,9 @@ Reference=Reference #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Vymazat -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Ma\u017eu knihovnu\: {0} +Removing\ library\:\ {0}\:{1}=Odstra\u0148ov\u00e1n\u00ed knihovny\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1264,6 +1310,9 @@ Replace\ with\:=Nahra\u010f za\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Nepodporovan\u00fd +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Chcete opakovat nahr\u00e1v\u00e1n\u00ed s jin\u00fdm s\u00e9riov\u00fdm portem? + #: Preferences.java:113 Romanian=Rumun\u0161tina @@ -1355,9 +1404,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=S\u00e9riov\u00fd moni #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Seriov\u00fd port ''{0}'' nebyl nalezen. Vybrali jste spr\u00e1vn\u00fd port v menu N\u00e1stroje > Seriov\u00fd port? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Nebyl vybr\u00e1n s\u00e9riov\u00fd port. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Seriov\u00fd port {0} nenalezen\nM\u00e1m zkusit nahr\u00e1vat na jin\u00fd seriov\u00fd port? +Serial\ port\ {0}\ not\ found.=S\u00e9riov\u00fd port {0} se nena\u0161el. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=S\u00e9riov\u00fd port @@ -1375,6 +1428,9 @@ Settings\ issues=Probl\u00e9m s Nastaven\u00edm #: Editor.java:641 Show\ Sketch\ Folder=Zobraz adres\u00e1\u0159 s projekty +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Zobrazit \u010dasov\u00e9 raz\u00edtko + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Zobrazit v\u00edce informac\u00ed v\u00fdstupu b\u011bhem\: @@ -1494,6 +1550,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Soubor "{0}" mus\u00ed b\u00fdt ulo\u017een \nv adres\u00e1\u0159i pro projekty pojmenovan\u00e9m "{1}".\nM\u00e1m vytvo\u0159it adres\u00e1\u0159, p\u0159esunout tam soubor a pokra\u010dovat? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Knihovnu "{0}" nelze pou\u017e\u00edt.\nN\u00e1zev slo\u017eky knihovny mus\u00ed za\u010d\u00ednat p\u00edsmenem nebo \u010d\u00edslem a m\u016f\u017ee obsahovat pouze p\u00edsmena, \u010d\u00edslice, poml\u010dky, te\u010dky a podtr\u017e\u00edtka. Maxim\u00e1ln\u00ed d\u00e9lka n\u00e1zvu je 63 znak\u016f. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Knihovnu "{0}" nelze pou\u017e\u00edt.\nN\u00e1zev knihovny sm\u00ed obsahovat pouze z\u00e1kladn\u00ed p\u00edsmena a \u010d\u00edsla\n(tedy pouze ASCII znaky, bez mezer, n\u00e1zev nesm\u00ed za\u010d\u00ednat \u010d\u00edslem). @@ -1518,8 +1578,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Projekt ji\u017e obsahuje #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Projekt zmizel.\nPokus\u00edm se znovu ulo\u017eit na stejn\u00e9 m\u00edsto,\nale krom k\u00f3du bude v\u0161echno ostatn\u00ed ztraceno\! -#: ../../../processing/app/Sketch.java:2028 -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.=N\u00e1zev projektu je pot\u0159eba zm\u011bnit. N\u00e1zev projektu je mo\u017en\u00e9 slo\u017eit pouze z ASCII znak\u016f a \u010d\u00edsel (\u010d\u00edslem v\u0161ak nem\u016f\u017ee za\u010d\u00ednat). N\u00e1zev mus\u00ed m\u00edt d\u00e9lku m\u00e9n\u011b jak 64 znak\u016f. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Neplatn\u00fd n\u00e1zev projektu.\nN\u00e1zev projektu mus\u00ed za\u010d\u00ednat p\u00edsmenem nebo \u010d\u00edslem a m\u016f\u017ee obsahovat pouze p\u00edsmena, \u010d\u00edslice, poml\u010dky, te\u010dky a podtr\u017e\u00edtka. Maxim\u00e1ln\u00ed d\u00e9lka n\u00e1zvu je 63 znak\u016f. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Adres\u00e1\u0159 projekt\u016f (Sketchbook folder) ji\u017e neexistuje.\nArduino se pokus\u00ed p\u0159epnout do defaultn\u00edho um\u00edst\u011bn\u00ed projektov\u00e9ho adres\u00e1\u0159e\na adres\u00e1\u0159 pro projekty (Sketchbook) vytvo\u0159\u00ed na tomto m\u00edst\u011b.\nArduino pak o sob\u011b p\u0159estane mluvit \nve t\u0159et\u00ed osob\u011b. @@ -1527,6 +1587,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Specifikovan\u00fd projektov\u00fd adres\u00e1\u0159 obsahuje kopii tv\u00e9ho IDE.\nPros\u00edm vyber pro sv\u016fj projekt jin\u00fd adres\u00e1\u0159. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Motiv\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=T\u00e1to knihovna nen\u00ed v seznamu Knihoven. Nebude\u0161 ji moci znova sem instalovat.\nJste si jisti, \u017ee ji chcete odstranit? @@ -1861,6 +1924,11 @@ ignoring\ invalid\ font\ size\ {0}=ignoruji nepovolenou velikost fontu {0} #: Editor.java:936 Editor.java:943 name\ is\ null=jm\u00e9no je null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=nenalezeny hlavi\u010dkov\u00e9 soubory (.h) v {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu je null @@ -1928,10 +1996,6 @@ version\ {0}=verze {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Chybn\u011b zvolen\u00fd n\u00e1zev v\u00fdvojov\u00e9 desky; m\u011bl by m\u00edt formu "package\:arch\:board" \u010di "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Chybn\u00e1 volba pro "{1}" volbu pro v\u00fdvojovou desku "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Chybn\u00e1 volba pro v\u00fdvojovou desku "{1}" @@ -1940,6 +2004,10 @@ version\ {0}=verze {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Chybn\u00e1 volba, m\u011bla by b\u00fdt ve form\u011b "nazev\=hodnota" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Neplatn\u00e1 hodnota parametru "{1}" desky "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Nezn\u00e1m\u00e1 architektura diff --git a/arduino-core/src/processing/app/i18n/Resources_da_DK.po b/arduino-core/src/processing/app/i18n/Resources_da_DK.po index f66dd52dde7..b44619f8c52 100644 --- a/arduino-core/src/processing/app/i18n/Resources_da_DK.po +++ b/arduino-core/src/processing/app/i18n/Resources_da_DK.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Jakob Enevoldsen , 2014 # Torben Løkke Leth , 2012 # Torben Løkke Leth , 2012 @@ -25,7 +29,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Danish (Denmark) (http://www.transifex.com/mbanzi/arduino-ide-15/language/da_DK/)\n" "MIME-Version: 1.0\n" @@ -213,6 +217,11 @@ msgstr "Arkivér skitse som:" msgid "Archive sketch canceled." msgstr "Arkivering af skitsen annulleret." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -619,6 +628,11 @@ msgstr "Kunne ikke fjerne den gamle version af {0}" msgid "Could not replace {0}" msgstr "Kunne ikke erstatte {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -662,6 +676,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -670,6 +688,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Slet" @@ -845,6 +867,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -864,6 +891,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -898,6 +944,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -934,10 +984,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Eksempler" @@ -1141,8 +1187,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1169,6 +1215,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1202,9 +1252,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1231,6 +1281,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italiensk" @@ -1263,9 +1324,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1683,9 +1744,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1722,6 +1783,10 @@ msgstr "Erstat med:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romænsk" @@ -1845,11 +1910,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1873,6 +1941,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2044,6 +2116,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2089,11 +2169,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2111,6 +2191,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2603,6 +2687,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2690,11 +2780,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2705,6 +2790,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_da_DK.properties b/arduino-core/src/processing/app/i18n/Resources_da_DK.properties index 98db532751b..3e364c7a41c 100644 --- a/arduino-core/src/processing/app/i18n/Resources_da_DK.properties +++ b/arduino-core/src/processing/app/i18n/Resources_da_DK.properties @@ -16,11 +16,15 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Jakob Enevoldsen , 2014 # Torben L\u00f8kke Leth , 2012 # Torben L\u00f8kke Leth , 2012 # Torben L\u00f8kke Leth , 2013 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Danish (Denmark) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/da_DK/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: da_DK\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Danish (Denmark) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/da_DK/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: da_DK\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -145,6 +149,10 @@ Archive\ sketch\ as\:=Arkiv\u00e9r skitse som\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arkivering af skitsen annulleret. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -439,6 +447,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Kunne ikke fjerne den gamle version af #, java-format Could\ not\ replace\ {0}=Kunne ikke erstatte {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -469,12 +481,18 @@ Cut=Klip #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Slet @@ -606,6 +624,10 @@ Error\ compiling.=Fejl i kompilering. #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -620,6 +642,18 @@ Error\ compiling.=Fejl i kompilering. #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -645,6 +679,9 @@ Error\ compiling.=Fejl i kompilering. #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -673,9 +710,6 @@ Error\ compiling.=Fejl i kompilering. #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Eksempler @@ -826,8 +860,8 @@ Help=Hj\u00e6lp #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -842,6 +876,9 @@ Help=Hj\u00e6lp #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -868,9 +905,9 @@ Indonesian=Indonesisk #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -891,6 +928,15 @@ Indonesian=Indonesisk #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italiensk @@ -915,9 +961,9 @@ Latvian=Lettisk #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1230,9 +1276,9 @@ Redo=Annuller fortryd #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1260,6 +1306,9 @@ Replace\ with\:=Erstat med\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Rom\u00e6nsk @@ -1351,9 +1400,13 @@ Send=Send #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1371,6 +1424,9 @@ Send=Send #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1490,6 +1546,10 @@ Tamil=Tamilsk #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1514,8 +1574,8 @@ The\ name\ cannot\ start\ with\ a\ period.=Navnet kan ikke starte med et punktum #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1523,6 +1583,9 @@ The\ name\ cannot\ start\ with\ a\ period.=Navnet kan ikke starte med et punktum #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1857,6 +1920,11 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1924,10 +1992,6 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1936,6 +2000,10 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_de_DE.po b/arduino-core/src/processing/app/i18n/Resources_de_DE.po index 8165a48c251..5ec90442064 100644 --- a/arduino-core/src/processing/app/i18n/Resources_de_DE.po +++ b/arduino-core/src/processing/app/i18n/Resources_de_DE.po @@ -16,7 +16,13 @@ # Translators: # Translators: # Translators: -# Ettore Atalan , 2014-2017 +# Translators: +# Translators: +# Translators: +# Translators: +# Ettore Atalan , 2014-2018 +# Freddy Koschinsky , 2018 +# Luca Gronmaier , 2017 # Lukas Bestle, 2016 # Lukas Bestle, 2013,2015-2016 # Dr. Mathias Wilhelm , 2012 @@ -25,7 +31,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:37+0000\n" +"PO-Revision-Date: 2018-11-24 12:42+0000\n" "Last-Translator: Ettore Atalan \n" "Language-Team: German (Germany) (http://www.transifex.com/mbanzi/arduino-ide-15/language/de_DE/)\n" "MIME-Version: 1.0\n" @@ -150,7 +156,7 @@ msgstr "Afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Kompilierten Kern aggressiv zwischenspeichern" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -213,6 +219,11 @@ msgstr "Archiviere den Sketch unter:" msgid "Archive sketch canceled." msgstr "Archivierung des Sketches abgebrochen." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Gebauter Kern wird archiviert (zwischengespeichert) in: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -619,6 +630,11 @@ msgstr "Alte Version von {0} konnte nicht entfernt werden" msgid "Could not replace {0}" msgstr "{0} konnte nicht ersetzt werden" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Voreinstellungsdatei konnte nicht geschrieben werden: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Sketch konnte nicht archiviert werden" @@ -662,6 +678,10 @@ msgstr "Datenverarbeitung" msgid "Data Storage" msgstr "Datenspeicher" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Schriftgröße verringern" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Ausrücken" @@ -670,6 +690,10 @@ msgstr "Ausrücken" msgid "Default" msgstr "Standard" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Standardthema" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Löschen" @@ -845,6 +869,11 @@ msgstr "Fehler beim Zugriff auf den Arduino-Datenordner." msgid "Error inside Serial.{0}()" msgstr "Fehler innerhalb von Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Fehler beim Laden des Themas {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -864,6 +893,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Fehler beim Öffnen des seriellen Ports ''{0}''. Schauen Sie in die Dokumentation unter http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Fehler beim Parsen des Bibliotheksindexes: {0}\nVersuchen Sie die Bibliotheksverwaltung zu öffnen, um den Bibliotheksindex zu aktualisieren." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Fehler beim Lesen des Bibliotheksindexes: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Fehler beim Lesen des Paketindizes-Ordners: {0}\n(vielleicht ein Berechtigungsproblem?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Fehler beim Lesen der Voreinstellungen" @@ -898,6 +946,10 @@ msgstr "Fehler beim Brennen des Bootloaders." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Fehler beim Brennen des Bootloaders: Konfigurationsparameter '{0}' fehlt" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Fehler beim Brennen des Bootloaders: Bitte wählen Sie einen seriellen Port aus." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Fehler beim Kompilieren: Konfigurationsparameter '{0}' fehlt" @@ -934,10 +986,6 @@ msgstr "Fehler beim Überprüfen/Hochladen" msgid "Estonian" msgstr "Estländisch" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estländisch (Estland)" - #: Editor.java:516 msgid "Examples" msgstr "Beispiele" @@ -1141,9 +1189,9 @@ msgstr "INKOMPATIBEL" msgid "Ignore Case" msgstr "Groß-/Kleinschreibung ignorieren" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Unzulässiger Bibliotheksname wird ignoriert" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Bibliothek mit unzulässigem Namen wird ignoriert" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1169,6 +1217,10 @@ msgstr "Bibliothek einbinden" msgid "Incorrect IDE installation folder" msgstr "Falscher IDE-Installationsordner" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Schriftgröße erhöhen" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Einrücken" @@ -1202,10 +1254,10 @@ msgstr "Installiert" msgid "Installing boards..." msgstr "Boards werden installiert..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Bibliothek wird installiert: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Bibliothek wird installiert: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1231,6 +1283,17 @@ msgstr "Ungültige Bibliothek {0} in {1} gefunden" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Ungültige Quotierung: Es konnte kein schließender [{0}]-Charakter gefunden werden." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Ungültige Version '{0}' für Bibliothek in: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Ungültige Version {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italienisch" @@ -1263,10 +1326,10 @@ msgstr "Bibliothek wurde zu Ihren Bibliotheken hinzugefügt. Bitte im Menü \"Bi msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Eine Bibliothek kann nicht sowohl 'src'- als auch 'utility'-Ordner verwenden. Bitte überprüfen Sie {0} nochmals" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Bibliothek ist bereits installiert: {0} Version {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Bibliothek ist bereits installiert: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1683,10 +1746,10 @@ msgstr "Referenz" msgid "Remove" msgstr "Entfernen" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Bibliothek wird entfernt: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Bibliothek wird entfernt: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1722,6 +1785,10 @@ msgstr "Ersetzen durch:" msgid "Retired" msgstr "Abgeschaltet" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Das Hochladen mit einem anderen seriellen Port erneut versuchen?" + #: Preferences.java:113 msgid "Romanian" msgstr "Rumänisch" @@ -1845,12 +1912,15 @@ msgid "" " Serial Port menu?" msgstr "Serieller Port \"{0}\" nicht gefunden. Wurde der richtige Port im Menü Werkzeuge > Serieller Port ausgewählt?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Serieller Port nicht ausgewählt." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Serieller Port {0} nicht gefunden.\nMit einem anderen seriellen Port versuchen?" +msgid "Serial port {0} not found." +msgstr "Serieller Port {0} nicht gefunden." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1873,6 +1943,10 @@ msgstr "Problem mit den Einstellungen" msgid "Show Sketch Folder" msgstr "Sketch-Ordner anzeigen" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Zeitstempel anzeigen" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Ausführliche Ausgabe während:" @@ -2044,6 +2118,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Die Datei \"{0}\" muss sich in einem\nSketch-Ordner \"{1}\" befinden.\nSoll der Ordner angelegt, die Datei\nverschoben und danach fortgefahren werden?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Die Bibliothek \"{0}\" kann nicht verwendet werden.\nBibliotheksordnernamen müssen mit einem Buchstaben oder einer Zahl beginnen,\ngefolgt von Buchstaben, Zahlen, Bindestrichen, Punkten und Unterstrichen.\nDie maximale Länge beträgt 63 Zeichen." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2089,12 +2171,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Der Sketch-Ordner ist verschwunden.\nEs wird versucht, den Sketch am selben Ort zu speichern,\naber außer dem Quelltext ist alles Andere verloren." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Der Sketch-Name musste geändert werden. Sketch-Namen können nur aus\nASCII-Zeichen und Zahlen bestehen (aber nicht mit einer Zahl beginnen).\nSie sollten auch weniger als 64 Zeichen lang sein." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Der Name des Sketches musste geändert werden.\nSketch-Namen müssen mit einem Buchstaben oder einer Zahl beginnen,\ngefolgt von Buchstaben, Zahlen, Bindestrichen, Punkten und Unterstrichen.\nDie maximale Länge beträgt 63 Zeichen." #: Base.java:259 msgid "" @@ -2111,6 +2193,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Der angegebene Sketchbook-Ordner enthält Ihre Kopie der IDE.\nBitte wählen Sie einen anderen Ordner für Ihr Sketchbook aus." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Thema: " + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2603,6 +2689,12 @@ msgstr "Unzulässige Textgröße {0} wird ignoriert" msgid "name is null" msgstr "name ist null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "keine Header-Dateien (.h) in {0} gefunden" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu ist null" @@ -2690,11 +2782,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Ungültiger Boardname, er sollte in der Form \"package:arch:board\" oder \"package:arch:board:options\" sein" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Ungültiger Wert für die \"{1}\"-Option des Boards \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2705,6 +2792,11 @@ msgstr "{0}: Ungültige Option für Board \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Ungültige Option, sie sollte in der Form \"name=value\" sein" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Ungültiger Wert für Option \"{1}\" des Boards \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_de_DE.properties b/arduino-core/src/processing/app/i18n/Resources_de_DE.properties index 233d7ec7e57..fcba70a2c82 100644 --- a/arduino-core/src/processing/app/i18n/Resources_de_DE.properties +++ b/arduino-core/src/processing/app/i18n/Resources_de_DE.properties @@ -16,11 +16,17 @@ # Translators: # Translators: # Translators: -# Ettore Atalan , 2014-2017 +# Translators: +# Translators: +# Translators: +# Translators: +# Ettore Atalan , 2014-2018 +# Freddy Koschinsky , 2018 +# Luca Gronmaier , 2017 # Lukas Bestle, 2016 # Lukas Bestle, 2013,2015-2016 # Dr. Mathias Wilhelm , 2012 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:37+0000\nLast-Translator\: Ettore Atalan \nLanguage-Team\: German (Germany) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/de_DE/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: de_DE\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-24 12\:42+0000\nLast-Translator\: Ettore Atalan \nLanguage-Team\: German (Germany) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/de_DE/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: de_DE\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (erfordert Neustart von Arduino) @@ -100,7 +106,7 @@ Additional\ Boards\ Manager\ URLs\:\ =Zus\u00e4tzliche Boardverwalter-URLs\: Afrikaans=Afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Kompilierten Kern aggressiv zwischenspeichern #: ../../../processing/app/Preferences.java:96 Albanian=Albanisch @@ -145,6 +151,10 @@ Archive\ sketch\ as\:=Archiviere den Sketch unter\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivierung des Sketches abgebrochen. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Gebauter Kern wird archiviert (zwischengespeichert) in\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Die Archivierung des Sketches wurde abgebrochen, da der\nSketch nicht korrekt gespeichert werden konnte. @@ -439,6 +449,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Alte Version von {0} konnte nicht entf #, java-format Could\ not\ replace\ {0}={0} konnte nicht ersetzt werden +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Voreinstellungsdatei konnte nicht geschrieben werden\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Sketch konnte nicht archiviert werden @@ -469,12 +483,18 @@ Data\ Processing=Datenverarbeitung #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Datenspeicher +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Schriftgr\u00f6\u00dfe verringern + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Ausr\u00fccken #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Standard +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Standardthema + #: EditorHeader.java:314 Sketch.java:591 Delete=L\u00f6schen @@ -606,6 +626,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Fehler beim Zugriff auf den Arduino- #, java-format Error\ inside\ Serial.{0}()=Fehler innerhalb von Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Fehler beim Laden des Themas {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -620,6 +644,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Fehler beim \u00d6ffnen des seriellen Por #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Fehler beim \u00d6ffnen des seriellen Ports ''{0}''. Schauen Sie in die Dokumentation unter http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Fehler beim Parsen des Bibliotheksindexes\: {0}\nVersuchen Sie die Bibliotheksverwaltung zu \u00f6ffnen, um den Bibliotheksindex zu aktualisieren. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Fehler beim Lesen des Bibliotheksindexes\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Fehler beim Lesen des Paketindizes-Ordners\: {0}\n(vielleicht ein Berechtigungsproblem?) + #: Preferences.java:277 Error\ reading\ preferences=Fehler beim Lesen der Voreinstellungen @@ -645,6 +681,9 @@ Error\ while\ burning\ bootloader.=Fehler beim Brennen des Bootloaders. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Fehler beim Brennen des Bootloaders\: Konfigurationsparameter '{0}' fehlt +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Fehler beim Brennen des Bootloaders\: Bitte w\u00e4hlen Sie einen seriellen Port aus. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Fehler beim Kompilieren\: Konfigurationsparameter '{0}' fehlt @@ -673,9 +712,6 @@ Error\ while\ verifying/uploading=Fehler beim \u00dcberpr\u00fcfen/Hochladen #: Preferences.java:93 Estonian=Estl\u00e4ndisch -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estl\u00e4ndisch (Estland) - #: Editor.java:516 Examples=Beispiele @@ -826,8 +862,8 @@ INCOMPATIBLE=INKOMPATIBEL #: FindReplace.java:96 Ignore\ Case=Gro\u00df-/Kleinschreibung ignorieren -#: Base.java:1058 -Ignoring\ bad\ library\ name=Unzul\u00e4ssiger Bibliotheksname wird ignoriert +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Bibliothek mit unzul\u00e4ssigem Namen wird ignoriert #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Sketch mit unzul\u00e4ssigem Namen wurde ignoriert @@ -842,6 +878,9 @@ Include\ Library=Bibliothek einbinden #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Falscher IDE-Installationsordner +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Schriftgr\u00f6\u00dfe erh\u00f6hen + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Einr\u00fccken @@ -868,9 +907,9 @@ Installed=Installiert #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Boards werden installiert... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Bibliothek wird installiert\: {0} +Installing\ library\:\ {0}\:{1}=Bibliothek wird installiert\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -891,6 +930,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Ung\u00fcltige Bibliothek {0} in {1} gef #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Ung\u00fcltige Quotierung\: Es konnte kein schlie\u00dfender [{0}]-Charakter gefunden werden. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Ung\u00fcltige Version '{0}' f\u00fcr Bibliothek in\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Ung\u00fcltige Version {0} + #: Preferences.java:102 Italian=Italienisch @@ -915,9 +963,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Bibliothek #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Eine Bibliothek kann nicht sowohl 'src'- als auch 'utility'-Ordner verwenden. Bitte \u00fcberpr\u00fcfen Sie {0} nochmals -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Bibliothek ist bereits installiert\: {0} Version {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Bibliothek ist bereits installiert\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Zeilennummer\: @@ -1230,9 +1278,9 @@ Reference=Referenz #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Entfernen -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Bibliothek wird entfernt\: {0} +Removing\ library\:\ {0}\:{1}=Bibliothek wird entfernt\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1260,6 +1308,9 @@ Replace\ with\:=Ersetzen durch\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Abgeschaltet +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Das Hochladen mit einem anderen seriellen Port erneut versuchen? + #: Preferences.java:113 Romanian=Rum\u00e4nisch @@ -1351,9 +1402,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Serieller Monitor nich #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Serieller Port "{0}" nicht gefunden. Wurde der richtige Port im Men\u00fc Werkzeuge > Serieller Port ausgew\u00e4hlt? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Serieller Port nicht ausgew\u00e4hlt. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Serieller Port {0} nicht gefunden.\nMit einem anderen seriellen Port versuchen? +Serial\ port\ {0}\ not\ found.=Serieller Port {0} nicht gefunden. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Serielle Ports @@ -1371,6 +1426,9 @@ Settings\ issues=Problem mit den Einstellungen #: Editor.java:641 Show\ Sketch\ Folder=Sketch-Ordner anzeigen +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Zeitstempel anzeigen + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Ausf\u00fchrliche Ausgabe w\u00e4hrend\: @@ -1490,6 +1548,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Die Datei "{0}" muss sich in einem\nSketch-Ordner "{1}" befinden.\nSoll der Ordner angelegt, die Datei\nverschoben und danach fortgefahren werden? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Die Bibliothek "{0}" kann nicht verwendet werden.\nBibliotheksordnernamen m\u00fcssen mit einem Buchstaben oder einer Zahl beginnen,\ngefolgt von Buchstaben, Zahlen, Bindestrichen, Punkten und Unterstrichen.\nDie maximale L\u00e4nge betr\u00e4gt 63 Zeichen. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Die Bibliothek "{0}" kann nicht verwendet werden.\nBibliotheksnamen d\u00fcrfen nur Buchstaben und Zahlen enthalten.\n(nur ASCII-Zeichen, keine Leerzeichen und keine Zahl am Anfang) @@ -1514,8 +1576,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Der Sketch enth\u00e4lt be #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Der Sketch-Ordner ist verschwunden.\nEs wird versucht, den Sketch am selben Ort zu speichern,\naber au\u00dfer dem Quelltext ist alles Andere verloren. -#: ../../../processing/app/Sketch.java:2028 -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.=Der Sketch-Name musste ge\u00e4ndert werden. Sketch-Namen k\u00f6nnen nur aus\nASCII-Zeichen und Zahlen bestehen (aber nicht mit einer Zahl beginnen).\nSie sollten auch weniger als 64 Zeichen lang sein. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Der Name des Sketches musste ge\u00e4ndert werden.\nSketch-Namen m\u00fcssen mit einem Buchstaben oder einer Zahl beginnen,\ngefolgt von Buchstaben, Zahlen, Bindestrichen, Punkten und Unterstrichen.\nDie maximale L\u00e4nge betr\u00e4gt 63 Zeichen. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Der Sketchbook-Ordner ist nicht mehr vorhanden.\nArduino wird auf den Standardordner f\u00fcr das\nSketchbook umschalten und bei Bedarf einen\nneuen Sketchbook-Ordner anlegen.\nDanach wird Arduino aufh\u00f6ren, von sich\nin der dritten Person zu sprechen. @@ -1523,6 +1585,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Der angegebene Sketchbook-Ordner enth\u00e4lt Ihre Kopie der IDE.\nBitte w\u00e4hlen Sie einen anderen Ordner f\u00fcr Ihr Sketchbook aus. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Thema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Diese Bibliothek ist in der Bibliotheksverwaltung nicht aufgelistet. Sie k\u00f6nnen sie nicht mehr von hier neu installieren.\nSind Sie sicher, dass Sie sie l\u00f6schen m\u00f6chten? @@ -1857,6 +1922,11 @@ ignoring\ invalid\ font\ size\ {0}=Unzul\u00e4ssige Textgr\u00f6\u00dfe {0} wird #: Editor.java:936 Editor.java:943 name\ is\ null=name ist null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=keine Header-Dateien (.h) in {0} gefunden + #: Editor.java:932 serialMenu\ is\ null=serialMenu ist null @@ -1924,10 +1994,6 @@ version\ {0}=Version {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Ung\u00fcltiger Boardname, er sollte in der Form "package\:arch\:board" oder "package\:arch\:board\:options" sein -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Ung\u00fcltiger Wert f\u00fcr die "{1}"-Option des Boards "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Ung\u00fcltige Option f\u00fcr Board "{1}" @@ -1936,6 +2002,10 @@ version\ {0}=Version {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Ung\u00fcltige Option, sie sollte in der Form "name\=value" sein +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Ung\u00fcltiger Wert f\u00fcr Option "{1}" des Boards "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Unbekannte Architektur diff --git a/arduino-core/src/processing/app/i18n/Resources_el_GR.po b/arduino-core/src/processing/app/i18n/Resources_el_GR.po index 22c5e708f05..5dab27535dc 100644 --- a/arduino-core/src/processing/app/i18n/Resources_el_GR.po +++ b/arduino-core/src/processing/app/i18n/Resources_el_GR.po @@ -16,10 +16,16 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Dimitris Zervas <01ttouch@gmail.com>, 2012 # Cristian Maglie , 2016 +# doki suse , 2019 +# doki suse , 2019 # firewalker , 2015-2016 -# Spyros Papanastasiou , 2015 +# Spyros Papanastasiou , 2015 # Vangelis Skarmoutsos , 2016 # Γιάννης Σφακιανάκης , 2013,2016 msgid "" @@ -27,8 +33,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:19+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-04-24 18:48+0000\n" +"Last-Translator: doki suse \n" "Language-Team: Greek (Greece) (http://www.transifex.com/mbanzi/arduino-ide-15/language/el_GR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -128,7 +134,7 @@ msgstr "ΠεÏί του Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Αντσόλι" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." @@ -152,7 +158,7 @@ msgstr "ΑφÏικάανς" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Επιθετική αποθήκευση του μεταγλωττισμένου πυÏήνα" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -215,6 +221,11 @@ msgstr "ΑÏχειοθέτηση σχεδίου ως:" msgid "Archive sketch canceled." msgstr "ΑκυÏώθηκε η αÏχειοθέτηση σχεδίου." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "ΑÏχειοθέτηση δημιουÏγημένου πυÏήνα (caching) σε: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -346,7 +357,7 @@ msgstr "Πλακέτα" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "ΠληÏοφοÏίες πλακέτας" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 @@ -427,7 +438,7 @@ msgstr "ΕγγÏαφή του Bootloader στην πλακέτα Ι/Ο (ίσως msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "CRC δεν ταιÏιάζει, το αÏχείο είναι κατεστÏαμμένο. ΜποÏεί να είναι Ï€ÏοσωÏινό Ï€Ïόβλημα, παÏακαλώ δοκιμάστε ξανά αÏγότεÏα." #: ../../../processing/app/Base.java:379 #, java-format @@ -436,7 +447,7 @@ msgstr "ΜποÏεί να πεÏάσει μόνο ένα από: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Δεν μποÏεί να ενεÏγοποιηθεί ο εξωτεÏικός επεξεÏγαστής κειμένου" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -482,7 +493,7 @@ msgstr "Κινέζικα (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "ΕκκαθάÏιση εξόδου" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -540,7 +551,7 @@ msgstr "Δεν μπόÏεσε να αντιγÏαφεί σε μία κατάλλ #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "Δεν μπόÏεσε να δημιουÏγηθεί ο φάκελος \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -621,6 +632,11 @@ msgstr "Δεν μποÏεί να διαγÏαφεί η παλιά εκδοση msgid "Could not replace {0}" msgstr "Δεν μποÏεί να αντικατασταθεί το {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Δεν μπόÏεσε να γίνει εγγÏαφή του αÏχείου Ï€Ïοτιμήσεων: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Δεν μπόÏεσε να γίνει αÏχειοθέτηση του σχεδίου" @@ -664,6 +680,10 @@ msgstr "ΕπεξεÏγασία δεδομένων" msgid "Data Storage" msgstr "Αποθήκευση δεδομένων" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Μείωση μεγέθους φόντου" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Μείωση εσοχής" @@ -672,6 +692,10 @@ msgstr "Μείωση εσοχής" msgid "Default" msgstr "ΠÏοεπιλογή" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "ΠÏοεπιλεγμένο θέμα" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "ΔιαγÏαφή" @@ -847,6 +871,11 @@ msgstr "Λάθος κατα την λήψη του φακέλου δεδομέν msgid "Error inside Serial.{0}()" msgstr "Σφάλμα μέσα στο Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Σφάλμα κατα την φόÏτωση του θέματος {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -866,6 +895,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Σφάλμα ανοίγματος της σειÏιακής θÏÏας \"{0}\". Συμβουλευτείτε την τεκμηÏίωση στο http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Σφάλμα ανάλυσης ευÏετηÏίου βιβλιοθηκών: {0}\nΔοκιμάστε να ανοίξετε τον ΔιαχειÏιστή βιβλιοθήκης για να ενημεÏώσετε το ευÏετήÏιο των βιβλιοθηκών. " + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Σφάλμα ανάγνωσης ευÏετηÏίου βιβλιοθηκών: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Σφάλμα ανάγνωσης πακέτου indexes folder: {0}\n(ίσως να υπάÏχει Ï€Ïόβλημα άδειας;) " + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Σφάλμα ανάγνωσης Ï€Ïοτιμήσεων" @@ -900,6 +948,10 @@ msgstr "Σφάλμα κατά την εγγÏαφή bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Σφάλμα κατά την εγγÏαφή bootloader: Απουσία '{0}' παÏαμέτÏου διαμόÏφωσης " +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Σφάλμα κατα την εγγÏαφή του bootloader: παÏακαλώ επιλέξτε μια σειÏιακή θÏÏα." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Σφάλμα κατά την μεταγλώττιση: Απουσία '{0}' παÏαμέτÏου διαμόÏφωσης " @@ -936,23 +988,19 @@ msgstr "Σφάλμα κατά την επικÏÏωση/ανέβασμα" msgid "Estonian" msgstr "Εσθονικά" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Εσθονικά (Εσθονία)" - #: Editor.java:516 msgid "Examples" msgstr "ΠαÏαδείγματα" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "ΠαÏαδείγματα για οποιαδήποτε πλακέτα" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "ΠαÏάδειγμα για {0}" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" @@ -960,7 +1008,7 @@ msgstr "ΠαÏαδείγματα από Ï€ÏοσαÏμοσμένες βιβλι #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" -msgstr "" +msgstr "ΠαÏαδείγματα από άλλες βιβλιοθήκες " #: ../../../../../app/src/processing/app/Editor.java:753 msgid "Export canceled, changes must first be saved." @@ -978,11 +1026,11 @@ msgstr "Αποτυχία ανοίγματος του σχεδίου: \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "Αποτυχία στην μετονομασία \"{0}\" σε \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "Αποτυχία στην μετονομασία του φακέλου σχεδίου" #: Editor.java:491 msgid "File" @@ -1075,7 +1123,7 @@ msgstr "ΓεÏμανικά" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "Ανάκτηση πληÏοφοÏιών πλακέτας" #: Editor.java:1054 msgid "Getting Started" @@ -1137,15 +1185,15 @@ msgstr "ΟυγγαÏέζικα" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" -msgstr "" +msgstr "ΑσÏμβατο " #: FindReplace.java:96 msgid "Ignore Case" msgstr "Αγνόησε την κεφαλαιοποίηση" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Το λάθος όνομα της βιβλιοθήκης αγνοήθηκε" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Αγνόηση βιβλιοθήκης με λάθος όνομα" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1171,6 +1219,10 @@ msgstr "ΣυμπεÏίληψη βιβλιοθήκης" msgid "Incorrect IDE installation folder" msgstr "Εσφαλμένος φάκελος εγκατάστασης IDE" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "ΑÏξηση μεγέθους φόντου" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "ΑÏξηση εσοχής" @@ -1204,10 +1256,10 @@ msgstr "Εγκατεστημένο" msgid "Installing boards..." msgstr "Εγκατάσταση πλακετών..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Εγκατάσταση βιβλιοθήκης:{0}" +msgid "Installing library: {0}:{1}" +msgstr "Εγκατάσταση βιβλιοθήκης: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1233,6 +1285,17 @@ msgstr "Î’Ïέθηκε μη έγγυÏη βιβλιοθήκη στο {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Μη έγγυÏη παÏάθεση: δεν βÏέθηκε χαÏακτήÏας [{0}] κλεισίματος." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Λάθος έκδοση '{0}' για την βιβλιοθήκη στο: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Μη έγκυÏη έκδοση {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Ιταλικά" @@ -1243,7 +1306,7 @@ msgstr "Γιαπωνέζικα" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "Καζακικά" #: Preferences.java:104 msgid "Korean" @@ -1265,10 +1328,10 @@ msgstr "Η βιβλιοθήκη Ï€Ïοστέθηκε στις βιβλιοθήκ msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Η βιβλιοθήκη δεν μποÏεί να χÏησιμοποιεί και τον φάκελο 'src' και τον 'utility'. Ελέγξτε το {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Η βιβλιοθήκη είναι ήδη εγκατεστημένη: {0} έκδοση {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Η βιβλιοθήκη είναι ήδη εγκατεστημένη: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1276,7 +1339,7 @@ msgstr "ΑÏιθμός σειÏάς:" #: Preferences.java:106 msgid "Lithuaninan" -msgstr "Λιθουανίας" +msgstr "Λιθουανικά" #: ../../../../../app/src/processing/app/Base.java:132 msgid "Loading configuration..." @@ -1347,7 +1410,7 @@ msgstr "Όνομα για νέο αÏχείο:" #: ../../../../../app//src/processing/app/Editor.java:2809 msgid "Native serial port, can't obtain info" -msgstr "" +msgstr "Η φυσική σειÏιακή θÏÏα, δεν μποÏεί να ανακτήσει τις πληÏοφοÏίες" #: ../../../processing/app/Preferences.java:149 msgid "Nepali" @@ -1359,7 +1422,7 @@ msgstr "Δίκτυο" #: ../../../../../app//src/processing/app/Editor.java:2804 msgid "Network port, can't obtain info" -msgstr "" +msgstr "Η θÏÏα του δικτÏου, δεν μποÏεί να ανακτήσει τις πληÏοφοÏίες" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Network ports" @@ -1469,7 +1532,7 @@ msgstr "Μη επαÏκής μνήμη, δείτε στο http://www.arduino.cc/ #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 msgid "OK" -msgstr "Εντάξει" +msgstr "ΟΚ" #: Sketch.java:992 Editor.java:376 msgid "One file added to the sketch." @@ -1550,7 +1613,7 @@ msgstr "ΠαÏακαλώ συμπεÏιλάβετε την βιβλιοθήκη #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" -msgstr "" +msgstr "ΠαÏακαλώ διαλέξτε μια θÏÏα για να ανακτηθοÏν οι πληÏοφοÏίες της πλακέτας" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 @@ -1685,10 +1748,10 @@ msgstr "ΑναφοÏά" msgid "Remove" msgstr "ΑφαίÏεση" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "ΑφαίÏεση βιβλιοθήκης: {0}" +msgid "Removing library: {0}:{1}" +msgstr "ΑφαίÏεση βιβλιοθήκης: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1724,6 +1787,10 @@ msgstr "Αλλαγή με:" msgid "Retired" msgstr "ΑποσÏÏθηκε" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Επανάληψη ανεβάσματος σε άλλη σειÏιακή θÏÏα;" + #: Preferences.java:113 msgid "Romanian" msgstr "Ρουμανικά" @@ -1834,7 +1901,7 @@ msgstr "ΣχεδιογÏάφος σειÏιακής" msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "Η παÏακολοÏθηση της σειÏιακής δεν υποστηÏίζεται σε θÏÏες δικτÏου όπως {0} για το {1} σε αυτήν την έκδοση." #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" @@ -1847,12 +1914,15 @@ msgid "" " Serial Port menu?" msgstr "Η σειÏιακή θÏÏα \"{0}\" δεν βÏέθηκε. Επιλέξατε την σωστή από το Î¼ÎµÎ½Î¿Ï Î•Ïγαλεία > ΣειÏιακή ΘÏÏα; " -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Δεν επιλέχθηκε σειÏιακή θÏÏα." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Η σειÏιακή θÏÏα \"{0}\" δεν βÏέθηκε.\nΕπανάληψη ανεβάσματος με άλλη σειÏιακή θÏÏα;" +msgid "Serial port {0} not found." +msgstr "ΣειÏιακή θÏÏα {0} ,δεν βÏέθηκε." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1875,6 +1945,10 @@ msgstr "ΠÏοβλήματα επιλογών" msgid "Show Sketch Folder" msgstr "Εμφάνιση φακέλου του σχεδίου" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Επίδειξη χÏονοσήμανσης " + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Εμφάνιση διεξοδικής εξόδου κατά την:" @@ -1939,7 +2013,7 @@ msgstr "Η διαδÏομή του Sketchbook δεν είναι καθοÏισμ #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format msgid "Skipping contributed index file {0}, parsing error occured:" -msgstr "" +msgstr "ΠαÏάκαμψη συμβολής αÏχείου ευÏετηÏίου {0}, Ï€Ïοέκυψε σφάλμα ανάλυσης : " #: ../../../../../app/src/processing/app/Preferences.java:185 msgid "Slovak" @@ -1965,7 +2039,7 @@ msgstr "ΜεÏικά αÏχεία είναι επισημασμένα \"μόνο #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format msgid "Sorry, the folder \"{0}\" already exists." -msgstr "" +msgstr "Συγνώμη, ο φάκελος \"{0}\" υπάÏχει ήδη" #: Preferences.java:115 msgid "Spanish" @@ -2001,7 +2075,7 @@ msgstr "Ταμίλ" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "ΤελοÏγκου" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" @@ -2036,7 +2110,7 @@ msgstr "Η κλάση Udp έχει μετονομαστεί σε EthernetUdp." #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "" +msgstr "Η επιλεγμένη πλακέτα χÏειάζεται τον πυÏήνα '{0}' που δεν είναι εγκατεστημένος." #: Editor.java:2147 #, java-format @@ -2046,6 +2120,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Το αÏχείο \"{0}\" χÏειάζεται να είναι μέσα σε έναν\nφάκελο σχεδίου με ονομασία \"{1}\". ΔημιουÏγία αυτοÏ\nτου φακέλου, μετακίνηση του αÏχείου και συνέχεια; " +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Η βιβλιοθήκη \"{0}\" δεν μποÏεί να χÏησιμοποιηθεί.\nΟι φάκελοι των βιβλιοθηκών Ï€Ïέπει να ξεκινοÏν με γÏάμματα ή αÏιθμοÏÏ‚ και συνεχίζουν με γÏάμματα, αÏιθμοÏÏ‚, παÏλες, τελείες και κάτω παÏλες. Το μέγιστο μήκος είναι 63 χαÏακτήÏες. " + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2056,7 +2138,7 @@ msgstr "Η βιβλιοθήκη \"{0}\" δεν μποÏεί να χÏησιμο #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "Το βασικό αÏχείο δεν μποÏεί να χÏησιμοποιήσει μια επέκταση" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2082,7 +2164,7 @@ msgstr "Το σχέδιο \"{0}\" δεν μποÏεί να χÏησιμοπει #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format msgid "The sketch already contains a file named \"{0}\"" -msgstr "" +msgstr "Το σχέδιο ήδη πεÏιλαμβάνει ένα αÏχείο με όνομα \"{0}\"" #: Sketch.java:1755 msgid "" @@ -2091,12 +2173,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Ο φάκελος του σχεδίου έχει εξαφανιστεί.\nΘα γίνει Ï€Ïοσπάθεια αποθήκευσης στην ίδια τοποθεσία,\nαλλά οτιδήποτε εκτός του κώδικα θα χαθεί." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Το όνομα του σχεδίου Ï€Ïέπει να Ï„Ïοποποιηθεί. Τα ονόματα των Σχεδίων\nμποÏεί να πεÏιέχουν ASCII χαÏακτήÏες και αÏιθμοÏÏ‚ (αλλά δεν μποÏοÏν\nνα αÏχίζουν με αÏιθμό). ΠÏέπει να είναι και μικÏότεÏα από 64 χαÏακτήÏες." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Το όνομα του σχεδίου έπÏεπε να Ï„Ïοποποιηθεί.\n Τα ονόματα των σχεδίων Ï€Ïέπει να ξεκινοÏν με γÏάμματα ή αÏιθμοÏÏ‚ και συνεχίζουν με γÏάμματα, αÏιθμοÏÏ‚, παÏλες, τελείες και κάτω παÏλες. Το μέγιστο μήκος είναι 63 χαÏακτήÏες. " #: Base.java:259 msgid "" @@ -2113,6 +2195,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Ο καθοÏισμένος φάκελος του sketchbook πεÏιέχει αντίγÏαφο του IDE.\nΠαÏακαλώ επιλέξτε έναν διαφοÏετικό φάκελο για το sketchbook σας." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Θέμα:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2223,7 +2309,7 @@ msgstr "Ανεπίλυτος Ï„Ïπος {0} στο βασικό πλαίσιο { #: ../../../../../app//src/processing/app/Editor.java:2818 msgid "Unknown board" -msgstr "" +msgstr "Άγνωστη πλακέτα" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -2279,7 +2365,7 @@ msgstr "Ανέβασμα μέσω Ï€ÏογÏαμματιστή" #: ../../../../../app//src/processing/app/Editor.java:2814 msgid "Upload any sketch to obtain it" -msgstr "" +msgstr "Ανέβασε ένα οποιοδήποτε σχέδιο για να το βÏεις" #: Editor.java:2403 Editor.java:2439 msgid "Upload canceled." @@ -2474,7 +2560,7 @@ msgstr "Ξέχασες το Sketchbook σου" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "Έχετε μη αποθηκευμένες αλλαγές! ΠÏέπει να αποθηκεÏσετε όλα τα σχέδια για να ενεÏγοποιήσετε αυτή την επιλογή. " #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2605,6 +2691,12 @@ msgstr "αγνόηση μη έγκυÏου μεγέθους γÏαμματοσε msgid "name is null" msgstr "το όνομα είναι κενό" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "Δεν βÏέθηκαν αÏχεία κεφαλίδας (.h) στο {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "το σειÏÎ¹Î±ÎºÏŒÎœÎµÎ½Î¿Ï ÎµÎ¯Î½Î±Î¹ κενό" @@ -2692,11 +2784,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Μη έγκυÏο όνομα πλακέτας, Ï€Ïέπει να έχει την μοÏφή \"package:arch:board\" ή \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Μη έγκυÏη επιλογή \"{1}\" για την πλακέτα \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2707,6 +2794,11 @@ msgstr "{0}: Μη έγκυÏη επιλογή για την πλακέτα \"{1} msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Μη έγκυÏη επιλογή, Ï€Ïέπει να είναι της μοÏφής \"όνομα=τιμή\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Μη έγκυÏη τιμή για την επιλογή \"{1}\"για την πλακέτα \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" @@ -2725,4 +2817,4 @@ msgstr "{0}: Άγνωστο πακέτο" #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format msgid "{0}Install this package{1} to use your {2} board" -msgstr "" +msgstr "{0} Εγκατέστησε το πακέτο {1} για να χÏησιμοποιήσεις την {2} πλακέτα σου" diff --git a/arduino-core/src/processing/app/i18n/Resources_el_GR.properties b/arduino-core/src/processing/app/i18n/Resources_el_GR.properties index 0ba538c8cff..82d098b8eda 100644 --- a/arduino-core/src/processing/app/i18n/Resources_el_GR.properties +++ b/arduino-core/src/processing/app/i18n/Resources_el_GR.properties @@ -16,13 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Dimitris Zervas <01ttouch@gmail.com>, 2012 # Cristian Maglie , 2016 +# doki suse , 2019 +# doki suse , 2019 # firewalker , 2015-2016 -# Spyros Papanastasiou , 2015 +# Spyros Papanastasiou , 2015 # Vangelis Skarmoutsos , 2016 # \u0393\u03b9\u03ac\u03bd\u03bd\u03b7\u03c2 \u03a3\u03c6\u03b1\u03ba\u03b9\u03b1\u03bd\u03ac\u03ba\u03b7\u03c2 , 2013,2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:19+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Greek (Greece) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/el_GR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: el_GR\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-04-24 18\:48+0000\nLast-Translator\: doki suse \nLanguage-Team\: Greek (Greece) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/el_GR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: el_GR\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(\u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af \u03b5\u03c0\u03b1\u03bd\u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 Arduino) @@ -84,7 +90,7 @@ A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=\u0388\u03bd\u03b About\ Arduino=\u03a0\u03b5\u03c1\u03af \u03c4\u03bf\u03c5 Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=\u0391\u03bd\u03c4\u03c3\u03cc\u03bb\u03b9 #: ../../../../../app/src/processing/app/Base.java:1177 Add\ .ZIP\ Library...=\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2 ZIP... @@ -102,7 +108,7 @@ Additional\ Boards\ Manager\ URLs\:\ =\u0395\u03c0\u03b9\u03c0\u03bb\u03ad\u03bf Afrikaans=\u0391\u03c6\u03c1\u03b9\u03ba\u03ac\u03b1\u03bd\u03c2 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=\u0395\u03c0\u03b9\u03b8\u03b5\u03c4\u03b9\u03ba\u03ae \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03bc\u03b5\u03c4\u03b1\u03b3\u03bb\u03c9\u03c4\u03c4\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c0\u03c5\u03c1\u03ae\u03bd\u03b1 #: ../../../processing/app/Preferences.java:96 Albanian=\u0391\u03bb\u03b2\u03b1\u03bd\u03b9\u03ba\u03ac @@ -147,6 +153,10 @@ Archive\ sketch\ as\:=\u0391\u03c1\u03c7\u03b5\u03b9\u03bf\u03b8\u03ad\u03c4\u03 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0391\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5 \u03b7 \u03b1\u03c1\u03c7\u03b5\u03b9\u03bf\u03b8\u03ad\u03c4\u03b7\u03c3\u03b7 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=\u0391\u03c1\u03c7\u03b5\u03b9\u03bf\u03b8\u03ad\u03c4\u03b7\u03c3\u03b7 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03b7\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c0\u03c5\u03c1\u03ae\u03bd\u03b1 (caching) \u03c3\u03b5\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0397 \u03b1\u03c1\u03c7\u03b5\u03b9\u03bf\u03b8\u03ad\u03c4\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03b1\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5 \u03b5\u03c0\u03b5\u03b9\u03b4\u03ae\n\u03c4\u03bf \u03c3\u03c7\u03ad\u03b4\u03b9\u03bf \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03c3\u03b5 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af \u03c3\u03c9\u03c3\u03c4\u03ac. @@ -240,7 +250,7 @@ Belarusian=\u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03b9\u03ba\u03ac Board=\u03a0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1\u03c2 #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 @@ -299,14 +309,14 @@ Burn\ Bootloader=\u0393\u03c1\u03ac\u03c8\u03b9\u03bc\u03bf Bootloader Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 Bootloader \u03c3\u03c4\u03b7\u03bd \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 \u0399/\u039f (\u03af\u03c3\u03c9\u03c2 \u03c7\u03c1\u03b5\u03b9\u03b1\u03c3\u03c4\u03b5\u03af \u03bb\u03af\u03b3\u03bf \u03c7\u03c1\u03cc\u03bd\u03bf)... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC \u03b4\u03b5\u03bd \u03c4\u03b1\u03b9\u03c1\u03b9\u03ac\u03b6\u03b5\u03b9, \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b1\u03c4\u03b5\u03c3\u03c4\u03c1\u03b1\u03bc\u03bc\u03ad\u03bd\u03bf. \u039c\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c9\u03c1\u03b9\u03bd\u03cc \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}=\u039c\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c0\u03b5\u03c1\u03ac\u03c3\u03b5\u03b9 \u03bc\u03cc\u03bd\u03bf \u03ad\u03bd\u03b1 \u03b1\u03c0\u03cc\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=\u0394\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03bf \u03b5\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc\u03c2 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03ae\u03c2 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -341,7 +351,7 @@ Chinese\ (Taiwan)=\u039a\u03b9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1 (Taiwan) Chinese\ (Taiwan)\ (Big5)=\u039a\u03b9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1 (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=\u0395\u03ba\u03ba\u03b1\u03b8\u03ac\u03c1\u03b9\u03c3\u03b7 \u03b5\u03be\u03cc\u03b4\u03bf\u03c5 #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u039a\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03bb\u03af\u03c3\u03c4\u03b1 URLs \u03c5\u03c0\u03bf\u03c3\u03c4\u03ae\u03c1\u03b9\u03be\u03b7\u03c2 \u03b1\u03bd\u03b5\u03c0\u03af\u03c3\u03b7\u03bc\u03c9\u03bd \u03c0\u03bb\u03b1\u03ba\u03b5\u03c4\u03ce\u03bd @@ -385,7 +395,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=\u0394\u03b5\u03bd \u03bc\u03c0\u03cc #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=\u0394\u03b5\u03bd \u03bc\u03c0\u03cc\u03c1\u03b5\u03c3\u03b5 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03b7\u03b8\u03b5\u03af \u03bf \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=\u0394\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03b7\u03b8\u03b5\u03af \u03bf \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5. @@ -441,6 +451,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u0394\u03b5\u03bd \u03bc\u03c0\u03bf\ #, java-format Could\ not\ replace\ {0}=\u0394\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03b1\u03b8\u03b5\u03af \u03c4\u03bf {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=\u0394\u03b5\u03bd \u03bc\u03c0\u03cc\u03c1\u03b5\u03c3\u03b5 \u03bd\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03c0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ae\u03c3\u03b5\u03c9\u03bd\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u0394\u03b5\u03bd \u03bc\u03c0\u03cc\u03c1\u03b5\u03c3\u03b5 \u03bd\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03b1\u03c1\u03c7\u03b5\u03b9\u03bf\u03b8\u03ad\u03c4\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 @@ -471,12 +485,18 @@ Data\ Processing=\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u0 #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u039c\u03b5\u03af\u03c9\u03c3\u03b7 \u03bc\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2 \u03c6\u03cc\u03bd\u03c4\u03bf\u03c5 + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u039c\u03b5\u03af\u03c9\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf \u03b8\u03ad\u03bc\u03b1 + #: EditorHeader.java:314 Sketch.java:591 Delete=\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae @@ -608,6 +628,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=\u039b\u03ac\u03b8\u03bf\u03c2 \u03b #, java-format Error\ inside\ Serial.{0}()=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03bc\u03ad\u03c3\u03b1 \u03c3\u03c4\u03bf Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03b1 \u03c4\u03b7\u03bd \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b8\u03ad\u03bc\u03b1\u03c4\u03bf\u03c2 {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -622,6 +646,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03 #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03bd\u03bf\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c4\u03b7\u03c2 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae\u03c2 \u03b8\u03cd\u03c1\u03b1\u03c2 "{0}". \u03a3\u03c5\u03bc\u03b2\u03bf\u03c5\u03bb\u03b5\u03c5\u03c4\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c4\u03b5\u03ba\u03bc\u03b7\u03c1\u03af\u03c9\u03c3\u03b7 \u03c3\u03c4\u03bf http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7\u03c2 \u03b5\u03c5\u03c1\u03b5\u03c4\u03b7\u03c1\u03af\u03bf\u03c5 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03b7\u03ba\u03ce\u03bd\: {0}\n\u0394\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03bd\u03bf\u03af\u03be\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u0394\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b5\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf \u03c4\u03c9\u03bd \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03b7\u03ba\u03ce\u03bd. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7\u03c2 \u03b5\u03c5\u03c1\u03b5\u03c4\u03b7\u03c1\u03af\u03bf\u03c5 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03b7\u03ba\u03ce\u03bd\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7\u03c2 \u03c0\u03b1\u03ba\u03ad\u03c4\u03bf\u03c5 indexes folder\: {0}\n(\u03af\u03c3\u03c9\u03c2 \u03bd\u03b1 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03ac\u03b4\u03b5\u03b9\u03b1\u03c2;) + #: Preferences.java:277 Error\ reading\ preferences=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03bd\u03ac\u03b3\u03bd\u03c9\u03c3\u03b7\u03c2 \u03c0\u03c1\u03bf\u03c4\u03b9\u03bc\u03ae\u03c3\u03b5\u03c9\u03bd @@ -647,6 +683,9 @@ Error\ while\ burning\ bootloader.=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae bootloader\: \u0391\u03c0\u03bf\u03c5\u03c3\u03af\u03b1 '{0}' \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2 +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03b1 \u03c4\u03b7\u03bd \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 bootloader\: \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03bc\u03b5\u03c4\u03b1\u03b3\u03bb\u03ce\u03c4\u03c4\u03b9\u03c3\u03b7\: \u0391\u03c0\u03bf\u03c5\u03c3\u03af\u03b1 '{0}' \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03c4\u03c1\u03bf\u03c5 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2 @@ -675,25 +714,22 @@ Error\ while\ verifying/uploading=\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u0 #: Preferences.java:93 Estonian=\u0395\u03c3\u03b8\u03bf\u03bd\u03b9\u03ba\u03ac -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u0395\u03c3\u03b8\u03bf\u03bd\u03b9\u03ba\u03ac (\u0395\u03c3\u03b8\u03bf\u03bd\u03af\u03b1) - #: Editor.java:516 Examples=\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1 #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03bf\u03c0\u03bf\u03b9\u03b1\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}=\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1 \u03b3\u03b9\u03b1 {0} #: ../../../../../app/src/processing/app/Base.java:1244 Examples\ from\ Custom\ Libraries=\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1 \u03b1\u03c0\u03cc \u03c0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b5\u03c2 #: ../../../../../app/src/processing/app/Base.java:1329 -!Examples\ from\ Other\ Libraries= +Examples\ from\ Other\ Libraries=\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1 \u03b1\u03c0\u03cc \u03ac\u03bb\u03bb\u03b5\u03c2 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b5\u03c2 #: ../../../../../app/src/processing/app/Editor.java:753 Export\ canceled,\ changes\ must\ first\ be\ saved.=\u0397 \u03b5\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5, \u03bf\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03c0\u03c1\u03ce\u03c4\u03b1 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03bf\u03cd\u03bd. @@ -707,10 +743,10 @@ Failed\ to\ open\ sketch\:\ "{0}"=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03 #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03c4\u03b7\u03bd \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 "{0}" \u03c3\u03b5 "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=\u0391\u03c0\u03bf\u03c4\u03c5\u03c7\u03af\u03b1 \u03c3\u03c4\u03b7\u03bd \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03c4\u03bf\u03c5 \u03c6\u03b1\u03ba\u03ad\u03bb\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 #: Editor.java:491 File=\u0391\u03c1\u03c7\u03b5\u03af\u03bf @@ -779,7 +815,7 @@ Georgian=\u0393\u03b5\u03c9\u03c1\u03b3\u03b9\u03b1\u03bd\u03ac German=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=\u0391\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03b9\u03ce\u03bd \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1\u03c2 #: Editor.java:1054 Getting\ Started=\u039e\u03b5\u03ba\u03b9\u03bd\u03ce\u03bd\u03c4\u03b1\u03c2 @@ -823,13 +859,13 @@ How\ very\ Borges\ of\ you=\u03a0\u03bf\u03bb\u03cd "Borges" \u03b1\u03c0\u03cc Hungarian=\u039f\u03c5\u03b3\u03b3\u03b1\u03c1\u03ad\u03b6\u03b9\u03ba\u03b1 #: ../../../../../app/src/processing/app/Base.java:1319 -!INCOMPATIBLE= +INCOMPATIBLE=\u0391\u03c3\u03cd\u03bc\u03b2\u03b1\u03c4\u03bf #: FindReplace.java:96 Ignore\ Case=\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b5 \u03c4\u03b7\u03bd \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03b9\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u03a4\u03bf \u03bb\u03ac\u03b8\u03bf\u03c2 \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2 \u03b1\u03b3\u03bd\u03bf\u03ae\u03b8\u03b7\u03ba\u03b5 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2 \u03bc\u03b5 \u03bb\u03ac\u03b8\u03bf\u03c2 \u03cc\u03bd\u03bf\u03bc\u03b1 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u03a0\u03b1\u03c1\u03ac\u03b2\u03bb\u03b5\u03c8\u03b7 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03bc\u03b5 \u03bb\u03b1\u03bd\u03b8\u03b1\u03c3\u03bc\u03ad\u03bd\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 @@ -844,6 +880,9 @@ Include\ Library=\u03a3\u03c5\u03bc\u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u0 #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=\u0395\u03c3\u03c6\u03b1\u03bb\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7\u03c2 IDE +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u0391\u03cd\u03be\u03b7\u03c3\u03b7 \u03bc\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2 \u03c6\u03cc\u03bd\u03c4\u03bf\u03c5 + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u0391\u03cd\u03be\u03b7\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2 @@ -870,9 +909,9 @@ Installed=\u0395\u03b3\u03ba\u03b1\u03c4\u03b5\u03c3\u03c4\u03b7\u03bc\u03ad\u03 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03c0\u03bb\u03b1\u03ba\u03b5\u03c4\u03ce\u03bd... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2\:{0} +Installing\ library\:\ {0}\:{1}=\u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -893,6 +932,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u0392\u03c1\u03ad\u03b8\u03b7\u03ba\u03 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=\u039c\u03b7 \u03ad\u03b3\u03b3\u03c5\u03c1\u03b7 \u03c0\u03b1\u03c1\u03ac\u03b8\u03b5\u03c3\u03b7\: \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b1\u03c2 [{0}] \u03ba\u03bb\u03b5\u03b9\u03c3\u03af\u03bc\u03b1\u03c4\u03bf\u03c2. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=\u039b\u03ac\u03b8\u03bf\u03c2 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 '{0}' \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03c3\u03c4\u03bf\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=\u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 {0} + #: Preferences.java:102 Italian=\u0399\u03c4\u03b1\u03bb\u03b9\u03ba\u03ac @@ -900,7 +948,7 @@ Italian=\u0399\u03c4\u03b1\u03bb\u03b9\u03ba\u03ac Japanese=\u0393\u03b9\u03b1\u03c0\u03c9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=\u039a\u03b1\u03b6\u03b1\u03ba\u03b9\u03ba\u03ac #: Preferences.java:104 Korean=\u039a\u03bf\u03c1\u03b5\u03ac\u03c4\u03b9\u03ba\u03b1 @@ -917,15 +965,15 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=\u0397 \u0 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=\u0397 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf 'src' \u03ba\u03b1\u03b9 \u03c4\u03bf\u03bd 'utility'. \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=\u0397 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b5\u03c3\u03c4\u03b7\u03bc\u03ad\u03bd\u03b7\: {0} \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 {1} +Library\ is\ already\ installed\:\ {0}\:{1}=\u0397 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ae\u03b4\u03b7 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b5\u03c3\u03c4\u03b7\u03bc\u03ad\u03bd\u03b7\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c3\u03b5\u03b9\u03c1\u03ac\u03c2\: #: Preferences.java:106 -Lithuaninan=\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1\u03c2 +Lithuaninan=\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03b9\u03ba\u03ac #: ../../../../../app/src/processing/app/Base.java:132 Loading\ configuration...=\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2... @@ -979,7 +1027,7 @@ Must\ specify\ exactly\ one\ sketch\ file=\u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \ Name\ for\ new\ file\:=\u038c\u03bd\u03bf\u03bc\u03b1 \u03b3\u03b9\u03b1 \u03bd\u03ad\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\: #: ../../../../../app//src/processing/app/Editor.java:2809 -!Native\ serial\ port,\ can't\ obtain\ info= +Native\ serial\ port,\ can't\ obtain\ info=\u0397 \u03c6\u03c5\u03c3\u03b9\u03ba\u03ae \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1, \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03bd\u03b1\u03ba\u03c4\u03ae\u03c3\u03b5\u03b9 \u03c4\u03b9\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 #: ../../../processing/app/Preferences.java:149 Nepali=Nepali @@ -988,7 +1036,7 @@ Nepali=Nepali Network=\u0394\u03af\u03ba\u03c4\u03c5\u03bf #: ../../../../../app//src/processing/app/Editor.java:2804 -!Network\ port,\ can't\ obtain\ info= +Network\ port,\ can't\ obtain\ info=\u0397 \u03b8\u03cd\u03c1\u03b1 \u03c4\u03bf\u03c5 \u03b4\u03b9\u03ba\u03c4\u03cd\u03bf\u03c5, \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03bd\u03b1\u03ba\u03c4\u03ae\u03c3\u03b5\u03b9 \u03c4\u03b9\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 #: ../../../../../app/src/processing/app/Editor.java:65 Network\ ports=\u0398\u03cd\u03c1\u03b5\u03c2 \u03b4\u03b9\u03ba\u03c4\u03cd\u03bf\u03c5 @@ -1070,7 +1118,7 @@ Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 -OK=\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9 +OK=\u039f\u039a #: Sketch.java:992 Editor.java:376 One\ file\ added\ to\ the\ sketch.=\u0388\u03bd\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c0\u03c1\u03bf\u03c3\u03c4\u03ad\u03b8\u03b7\u03ba\u03b5 \u03c3\u03c4\u03bf \u03c3\u03c7\u03ad\u03b4\u03b9\u03bf. @@ -1131,7 +1179,7 @@ Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.= Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03b9\u03bb\u03ac\u03b2\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 Wire \u03b1\u03c0\u03cc \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd \u03a3\u03c7\u03ad\u03b4\u03b9\u03bf > \u03a3\u03c5\u03bc\u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u0392\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2. #: ../../../../../app//src/processing/app/Editor.java:2799 -!Please\ select\ a\ port\ to\ obtain\ board\ info= +Please\ select\ a\ port\ to\ obtain\ board\ info=\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03b9\u03b1\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03b8\u03cd\u03c1\u03b1 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03bd\u03b1\u03ba\u03c4\u03b7\u03b8\u03bf\u03cd\u03bd \u03bf\u03b9 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c4\u03b7\u03c2 \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1\u03c2 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 @@ -1232,9 +1280,9 @@ Reference=\u0391\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2\: {0} +Removing\ library\:\ {0}\:{1}=\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1262,6 +1310,9 @@ Replace\ with\:=\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03bc\u03b5\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=\u0391\u03c0\u03bf\u03c3\u03cd\u03c1\u03b8\u03b7\u03ba\u03b5 +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 \u03b1\u03bd\u03b5\u03b2\u03ac\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03c3\u03b5 \u03ac\u03bb\u03bb\u03b7 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1; + #: Preferences.java:113 Romanian=\u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac @@ -1344,7 +1395,7 @@ Serial\ Plotter=\u03a3\u03c7\u03b5\u03b4\u03b9\u03bf\u03b3\u03c1\u03ac\u03c6\u03 #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=\u0397 \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03cd\u03b8\u03b7\u03c3\u03b7 \u03c4\u03b7\u03c2 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae\u03c2 \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03b8\u03cd\u03c1\u03b5\u03c2 \u03b4\u03b9\u03ba\u03c4\u03cd\u03bf\u03c5 \u03cc\u03c0\u03c9\u03c2 {0} \u03b3\u03b9\u03b1 \u03c4\u03bf {1} \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7. #: ../../../../../app/src/processing/app/Editor.java:2516 Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u0397 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03bf\u03b8\u03cc\u03bd\u03b7 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b7 \u03cc\u03c4\u03b1\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc\u03c2 \u03bf \u03c3\u03c7\u03b5\u03b4\u03b9\u03bf\u03b3\u03c1\u03ac\u03c6\u03bf\u03c2 @@ -1353,9 +1404,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u0397 \u03c3\u03b5\u0 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u0397 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1 "{0}" \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5. \u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03b1\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c3\u03c9\u03c3\u03c4\u03ae \u03b1\u03c0\u03cc \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd \u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1 > \u03a3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u0398\u03cd\u03c1\u03b1; -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03bb\u03ad\u03c7\u03b8\u03b7\u03ba\u03b5 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u0397 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1 "{0}" \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5.\n\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 \u03b1\u03bd\u03b5\u03b2\u03ac\u03c3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03bc\u03b5 \u03ac\u03bb\u03bb\u03b7 \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1; +Serial\ port\ {0}\ not\ found.=\u03a3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ae \u03b8\u03cd\u03c1\u03b1 {0} ,\u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=\u03a3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03ad\u03c2 \u03b8\u03cd\u03c1\u03b5\u03c2 @@ -1373,6 +1428,9 @@ Settings\ issues=\u03a0\u03c1\u03bf\u03b2\u03bb\u03ae\u03bc\u03b1\u03c4\u03b1 \u #: Editor.java:641 Show\ Sketch\ Folder=\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c6\u03b1\u03ba\u03ad\u03bb\u03bf\u03c5 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=\u0395\u03c0\u03af\u03b4\u03b5\u03b9\u03be\u03b7 \u03c7\u03c1\u03bf\u03bd\u03bf\u03c3\u03ae\u03bc\u03b1\u03bd\u03c3\u03b7\u03c2 + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03b4\u03b9\u03b5\u03be\u03bf\u03b4\u03b9\u03ba\u03ae\u03c2 \u03b5\u03be\u03cc\u03b4\u03bf\u03c5 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd\: @@ -1418,7 +1476,7 @@ Sketchbook\ path\ not\ defined=\u0397 \u03b4\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format -!Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:= +Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=\u03a0\u03b1\u03c1\u03ac\u03ba\u03b1\u03bc\u03c8\u03b7 \u03c3\u03c5\u03bc\u03b2\u03bf\u03bb\u03ae\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b5\u03c5\u03c1\u03b5\u03c4\u03b7\u03c1\u03af\u03bf\u03c5 {0}, \u03c0\u03c1\u03bf\u03ad\u03ba\u03c5\u03c8\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7\u03c2 \: #: ../../../../../app/src/processing/app/Preferences.java:185 Slovak=\u03a3\u03bb\u03bf\u03b2\u03b1\u03ba\u03b9\u03ba\u03ac @@ -1434,7 +1492,7 @@ Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ ske #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format -!Sorry,\ the\ folder\ "{0}"\ already\ exists.= +Sorry,\ the\ folder\ "{0}"\ already\ exists.=\u03a3\u03c5\u03b3\u03bd\u03ce\u03bc\u03b7, \u03bf \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 "{0}" \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 #: Preferences.java:115 Spanish=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac @@ -1461,7 +1519,7 @@ Talossan=Talossan Tamil=\u03a4\u03b1\u03bc\u03af\u03bb #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=\u03a4\u03b5\u03bb\u03bf\u03cd\u03b3\u03ba\u03bf\u03c5 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 Thai=\u03a4\u03b1\u03cb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac @@ -1486,18 +1544,22 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=\u0397 \u03ba\u03bb\u03a The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=\u0397 \u03ba\u03bb\u03ac\u03c3\u03b7 Udp \u03ad\u03c7\u03b5\u03b9 \u03bc\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03c4\u03b5\u03af \u03c3\u03b5 EthernetUdp. #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -!The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.= +The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=\u0397 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c4\u03bf\u03bd \u03c0\u03c5\u03c1\u03ae\u03bd\u03b1 '{0}' \u03c0\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b5\u03c3\u03c4\u03b7\u03bc\u03ad\u03bd\u03bf\u03c2. #: Editor.java:2147 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf "{0}" \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03ad\u03c3\u03b1 \u03c3\u03b5 \u03ad\u03bd\u03b1\u03bd\n\u03c6\u03ac\u03ba\u03b5\u03bb\u03bf \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03bc\u03b5 \u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 "{1}". \u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c5\u03c4\u03bf\u03cd\n\u03c4\u03bf\u03c5 \u03c6\u03b1\u03ba\u03ad\u03bb\u03bf\u03c5, \u03bc\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1; +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u0397 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 "{0}" \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af.\n\u039f\u03b9 \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03b9 \u03c4\u03c9\u03bd \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03b7\u03ba\u03ce\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03be\u03b5\u03ba\u03b9\u03bd\u03bf\u03cd\u03bd \u03bc\u03b5 \u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1 \u03ae \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd\u03c2 \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03b6\u03bf\u03c5\u03bd \u03bc\u03b5 \u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1, \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd\u03c2, \u03c0\u03b1\u03cd\u03bb\u03b5\u03c2, \u03c4\u03b5\u03bb\u03b5\u03af\u03b5\u03c2 \u03ba\u03b1\u03b9 \u03ba\u03ac\u03c4\u03c9 \u03c0\u03b1\u03cd\u03bb\u03b5\u03c2. \u03a4\u03bf \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 63 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2.\u00a0 + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0397 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 "{0}" \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af.\n\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03b7\u03c2 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03bc\u03cc\u03bd\u03bf \u03b2\u03b1\u03c3\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2 \u03ba\u03b1\u03b9 \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03c5\u03c2.\n(\u03bc\u03cc\u03bd\u03bf ASCII \u03c7\u03c9\u03c1\u03af\u03c2 \u03ba\u03b5\u03bd\u03ac, \u03ba\u03b1\u03b9 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b1\u03c1\u03c7\u03af\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=\u03a4\u03bf \u03b2\u03b1\u03c3\u03b9\u03ba\u03cc \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9 \u03bc\u03b9\u03b1 \u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7 #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03be\u03b5\u03ba\u03b9\u03bd\u03ac \u03bc\u03b5 \u03c4\u03b5\u03bb\u03b5\u03af\u03b1. @@ -1511,13 +1573,13 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format -!The\ sketch\ already\ contains\ a\ file\ named\ "{0}"= +The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=\u03a4\u03bf \u03c3\u03c7\u03ad\u03b4\u03b9\u03bf \u03ae\u03b4\u03b7 \u03c0\u03b5\u03c1\u03b9\u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03b5\u03b9 \u03ad\u03bd\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03bc\u03b5 \u03cc\u03bd\u03bf\u03bc\u03b1 "{0}" #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u039f \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03be\u03b1\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03b5\u03af.\n\u0398\u03b1 \u03b3\u03af\u03bd\u03b5\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b5\u03b9\u03b1 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7\u03c2 \u03c3\u03c4\u03b7\u03bd \u03af\u03b4\u03b9\u03b1 \u03c4\u03bf\u03c0\u03bf\u03b8\u03b5\u03c3\u03af\u03b1,\n\u03b1\u03bb\u03bb\u03ac \u03bf\u03c4\u03b9\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03b5\u03ba\u03c4\u03cc\u03c2 \u03c4\u03bf\u03c5 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1 \u03b8\u03b1 \u03c7\u03b1\u03b8\u03b5\u03af. -#: ../../../processing/app/Sketch.java:2028 -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.=\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af. \u03a4\u03b1 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03b1 \u03c4\u03c9\u03bd \u03a3\u03c7\u03b5\u03b4\u03af\u03c9\u03bd\n\u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03bf\u03c5\u03bd ASCII \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2 \u03ba\u03b1\u03b9 \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd\u03c2 (\u03b1\u03bb\u03bb\u03ac \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bd\n\u03bd\u03b1 \u03b1\u03c1\u03c7\u03af\u03b6\u03bf\u03c5\u03bd \u03bc\u03b5 \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc). \u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b1\u03b9 \u03bc\u03b9\u03ba\u03c1\u03cc\u03c4\u03b5\u03c1\u03b1 \u03b1\u03c0\u03cc 64 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u03a4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c4\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5 \u03ad\u03c0\u03c1\u03b5\u03c0\u03b5 \u03bd\u03b1 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af.\n \u03a4\u03b1 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03b1 \u03c4\u03c9\u03bd \u03c3\u03c7\u03b5\u03b4\u03af\u03c9\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03be\u03b5\u03ba\u03b9\u03bd\u03bf\u03cd\u03bd \u03bc\u03b5 \u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1 \u03ae \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd\u03c2 \u03ba\u03b1\u03b9 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03b6\u03bf\u03c5\u03bd \u03bc\u03b5 \u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1, \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd\u03c2, \u03c0\u03b1\u03cd\u03bb\u03b5\u03c2, \u03c4\u03b5\u03bb\u03b5\u03af\u03b5\u03c2 \u03ba\u03b1\u03b9 \u03ba\u03ac\u03c4\u03c9 \u03c0\u03b1\u03cd\u03bb\u03b5\u03c2. \u03a4\u03bf \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03bc\u03ae\u03ba\u03bf\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 63 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u039f \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 Sketchbook \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03c0\u03bb\u03ad\u03bf\u03bd.\n\u03a4\u03bf Arduino \u03b8\u03b1 \u03b5\u03c0\u03b1\u03bd\u03ad\u03bb\u03b8\u03b5\u03b9 \u03c3\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03b7 \u03b8\u03ad\u03c3\u03b7 \u03c4\u03bf\u03c5 Sketchbook, \n\u03ba\u03b1\u03b9 \u03b8\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03b9 \u03bd\u03ad\u03bf \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf Sketchbook \u03b1\u03bd \u03b1\u03c0\u03b1\u03b9\u03c4\u03b5\u03af\u03c4\u03b1\u03b9.\n\u03a4\u03cc\u03c4\u03b5 \u03c4\u03bf Arduino \u03b8\u03b1 \u03c3\u03c4\u03b1\u03bc\u03b1\u03c4\u03ae\u03c3\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf\u03bd \u03b5\u03b1\u03c5\u03c4\u03cc \u03c4\u03bf\u03c5 \u03c3\u03b5 \u03c4\u03c1\u03af\u03c4\u03bf \u03c0\u03c1\u03cc\u03c3\u03c9\u03c0\u03bf. @@ -1525,6 +1587,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=\u039f \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf\u03c2 \u03c4\u03bf\u03c5 sketchbook \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03b1\u03bd\u03c4\u03af\u03b3\u03c1\u03b1\u03c6\u03bf \u03c4\u03bf\u03c5 IDE.\n\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1\u03bd \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc \u03c6\u03ac\u03ba\u03b5\u03bb\u03bf \u03b3\u03b9\u03b1 \u03c4\u03bf sketchbook \u03c3\u03b1\u03c2. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =\u0398\u03ad\u03bc\u03b1\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=\u0391\u03c5\u03c4\u03ae \u03b7 \u03b2\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7 \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03c3\u03c4\u03bf\u03bd \u0394\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u0392\u03b9\u03b2\u03bb\u03b9\u03bf\u03b8\u03ae\u03ba\u03b7\u03c2. \u0394\u03b5\u03bd \u03b8\u03b1 \u03bc\u03c0\u03bf\u03c1\u03ad\u03c3\u03b5\u03c4\u03b5\n\u03bd\u03b1 \u03c4\u03bf \u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c0\u03cc \u03b5\u03b4\u03ce. \u0395\u03af\u03c3\u03c4\u03b5 \u03c3\u03af\u03b3\u03bf\u03c5\u03c1\u03bf\u03b9 \u03c0\u03c9\u03c2 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c4\u03bf \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5; @@ -1605,7 +1670,7 @@ Undo=\u0391\u03bd\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 Unhandled\ type\ {0}\ in\ context\ key\ {1}=\u0391\u03bd\u03b5\u03c0\u03af\u03bb\u03c5\u03c4\u03bf\u03c2 \u03c4\u03cd\u03c0\u03bf\u03c2 {0} \u03c3\u03c4\u03bf \u03b2\u03b1\u03c3\u03b9\u03ba\u03cc \u03c0\u03bb\u03b1\u03af\u03c3\u03b9\u03bf {1} #: ../../../../../app//src/processing/app/Editor.java:2818 -!Unknown\ board= +Unknown\ board=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -1646,7 +1711,7 @@ Upload=\u0391\u03bd\u03ad\u03b2\u03b1\u03c3\u03bc\u03b1 Upload\ Using\ Programmer=\u0391\u03bd\u03ad\u03b2\u03b1\u03c3\u03bc\u03b1 \u03bc\u03ad\u03c3\u03c9 \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03b9\u03c3\u03c4\u03ae #: ../../../../../app//src/processing/app/Editor.java:2814 -!Upload\ any\ sketch\ to\ obtain\ it= +Upload\ any\ sketch\ to\ obtain\ it=\u0391\u03bd\u03ad\u03b2\u03b1\u03c3\u03b5 \u03ad\u03bd\u03b1 \u03bf\u03c0\u03bf\u03b9\u03bf\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03c3\u03c7\u03ad\u03b4\u03b9\u03bf \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03bf \u03b2\u03c1\u03b5\u03b9\u03c2 #: Editor.java:2403 Editor.java:2439 Upload\ canceled.=\u03a4\u03bf \u03b1\u03bd\u03ad\u03b2\u03b1\u03c3\u03bc\u03b1 \u03b1\u03ba\u03c5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5. @@ -1785,7 +1850,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=\u039e\u03ad\u03c7\u03b1\u03c3\u03b5\u03c2 \u03c4\u03bf Sketchbook \u03c3\u03bf\u03c5 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=\u0388\u03c7\u03b5\u03c4\u03b5 \u03bc\u03b7 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2\! \u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c3\u03b5\u03c4\u03b5 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03c3\u03c7\u03ad\u03b4\u03b9\u03b1 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=\u03a0\u03b9\u03ad\u03c3\u03b1\u03c4\u03b5 {0} \u03b1\u03bb\u03bb\u03ac \u03b4\u03b5\u03bd \u03c3\u03c4\u03ac\u03bb\u03b8\u03b7\u03ba\u03b5 \u03c4\u03af\u03c0\u03bf\u03c4\u03b5. \u039c\u03ae\u03c0\u03c9\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03b5\u03c4\u03b5 \u03c4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2; @@ -1859,6 +1924,11 @@ ignoring\ invalid\ font\ size\ {0}=\u03b1\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7 \u #: Editor.java:936 Editor.java:943 name\ is\ null=\u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03cc +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b1\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1\u03c2 (.h) \u03c3\u03c4\u03bf {0} + #: Editor.java:932 serialMenu\ is\ null=\u03c4\u03bf \u03c3\u03b5\u03b9\u03c1\u03b9\u03b1\u03ba\u03cc\u039c\u03b5\u03bd\u03bf\u03cd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03cc @@ -1926,10 +1996,6 @@ version\ {0}=\u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1\u03c2, \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03c4\u03b7\u03bd \u03bc\u03bf\u03c1\u03c6\u03ae "package\:arch\:board" \u03ae "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae "{1}" \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 "{1}" @@ -1938,6 +2004,10 @@ version\ {0}=\u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae, \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03b7\u03c2 \u03bc\u03bf\u03c1\u03c6\u03ae\u03c2 "\u03cc\u03bd\u03bf\u03bc\u03b1\=\u03c4\u03b9\u03bc\u03ae" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: \u039c\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b7 \u03c4\u03b9\u03bc\u03ae \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae "{1}"\u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u03b1\u03c1\u03c7\u03b9\u03c4\u03b5\u03ba\u03c4\u03bf\u03bd\u03b9\u03ba\u03ae @@ -1952,4 +2022,4 @@ version\ {0}=\u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 {0} #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format -!{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board= +{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0} \u0395\u03b3\u03ba\u03b1\u03c4\u03ad\u03c3\u03c4\u03b7\u03c3\u03b5 \u03c4\u03bf \u03c0\u03b1\u03ba\u03ad\u03c4\u03bf {1} \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03b5\u03b9\u03c2 \u03c4\u03b7\u03bd {2} \u03c0\u03bb\u03b1\u03ba\u03ad\u03c4\u03b1 \u03c3\u03bf\u03c5 diff --git a/arduino-core/src/processing/app/i18n/Resources_en.po b/arduino-core/src/processing/app/i18n/Resources_en.po index f7eb924f640..eed14f14c82 100644 --- a/arduino-core/src/processing/app/i18n/Resources_en.po +++ b/arduino-core/src/processing/app/i18n/Resources_en.po @@ -16,12 +16,16 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:19+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: English (http://www.transifex.com/mbanzi/arduino-ide-15/language/en/)\n" "MIME-Version: 1.0\n" @@ -212,7 +216,7 @@ msgstr "Archive sketch canceled." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 #, java-format msgid "Archiving built core (caching) in: {0}" -msgstr "" +msgstr "Archiving built core (caching) in: {0}" #: tools/Archiver.java:75 msgid "" @@ -620,6 +624,11 @@ msgstr "Could not remove old version of {0}" msgid "Could not replace {0}" msgstr "Could not replace {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Could not write preferences file: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Couldn't archive sketch" @@ -665,7 +674,7 @@ msgstr "Data Storage" #: ../../../../../app/src/processing/app/Editor.java:1386 msgid "Decrease Font Size" -msgstr "" +msgstr "Decrease Font Size" #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" @@ -675,6 +684,10 @@ msgstr "Decrease Indent" msgid "Default" msgstr "Default" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Default theme" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Delete" @@ -850,6 +863,11 @@ msgstr "Error getting the Arduino data folder." msgid "Error inside Serial.{0}()" msgstr "Error inside Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Error loading theme {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -869,6 +887,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Error opening serial port ''{0}''. Try consulting the documentation at http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Error parsing libraries index: {0}\nTry to open the Library Manager to update the libraries index." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Error reading libraries index: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Error reading package indexes folder: {0}\n(maybe a permission problem?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Error reading preferences" @@ -903,6 +940,10 @@ msgstr "Error while burning bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Error while burning bootloader: missing '{0}' configuration parameter" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Error while burning bootloader: please select a serial port." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Error while compiling: missing '{0}' configuration parameter" @@ -939,10 +980,6 @@ msgstr "Error while verifying/uploading" msgid "Estonian" msgstr "Estonian" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonian (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Examples" @@ -1146,9 +1183,9 @@ msgstr "INCOMPATIBLE" msgid "Ignore Case" msgstr "Ignore Case" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignoring library with bad name" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1176,7 +1213,7 @@ msgstr "Incorrect IDE installation folder" #: ../../../../../app/src/processing/app/Editor.java:1378 msgid "Increase Font Size" -msgstr "" +msgstr "Increase Font Size" #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" @@ -1211,10 +1248,10 @@ msgstr "Installed" msgid "Installing boards..." msgstr "Installing boards..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Installing library: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Installing library: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1240,6 +1277,17 @@ msgstr "Invalid library found in {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Invalid quoting: no closing [{0}] char found." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Invalid version '{0}' for library in: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Invalid version {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italian" @@ -1272,10 +1320,10 @@ msgstr "Library added to your libraries. Check \"Include library\" menu" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Library can't use both 'src' and 'utility' folders. Double check {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Library is already installed: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1692,10 +1740,10 @@ msgstr "Reference" msgid "Remove" msgstr "Remove" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Removing library: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Removing library: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1731,6 +1779,10 @@ msgstr "Replace with:" msgid "Retired" msgstr "Retired" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Retry the upload with another serial port?" + #: Preferences.java:113 msgid "Romanian" msgstr "Romanian" @@ -1854,12 +1906,15 @@ msgid "" " Serial Port menu?" msgstr "Serial port ''{0}'' not found. Did you select the right one from the Tools > Serial Port menu?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Serial port not selected." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Serial port {0} not found.\nRetry the upload with another serial port?" +msgid "Serial port {0} not found." +msgstr "Serial port {0} not found." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1882,6 +1937,10 @@ msgstr "Settings issues" msgid "Show Sketch Folder" msgstr "Show Sketch Folder" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Show timestamp" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Show verbose output during: " @@ -2053,6 +2112,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "The file \"{0}\" needs to be inside\na sketch folder named \"{1}\".\nCreate this folder, move the file, and continue?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "The library \"{0}\" cannot be used.\nLibrary folder names must start with a letter or number, followed by letters,\nnumbers, dashes, dots and underscores. Maximum length is 63 characters." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2098,11 +2165,12 @@ msgid "" "but anything besides the code will be lost." msgstr "The sketch folder has disappeared.\n Will attempt to re-save in the same location,\nbut anything besides the code will be lost." -#: ../../../../../app/src/processing/app/SketchController.java:828 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers and be less than 64 characters long." -msgstr "" +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "The sketch name had to be modified.\nSketch names must start with a letter or number, followed by letters,\nnumbers, dashes, dots and underscores. Maximum length is 63 characters." #: Base.java:259 msgid "" @@ -2119,6 +2187,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "The specified sketchbook folder contains your copy of the IDE.\nPlease choose a different folder for your sketchbook." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Theme: " + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2611,6 +2683,12 @@ msgstr "ignoring invalid font size {0}" msgid "name is null" msgstr "name is null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "no headers files (.h) found in {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu is null" @@ -2698,11 +2776,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Invalid board name, it should be of the form \"package:arch:board\" or \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Invalid option for \"{1}\" option for board \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2713,6 +2786,11 @@ msgstr "{0}: Invalid option for board \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Invalid option, should be of the form \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Invalid value for option \"{1}\" for board \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_en.properties b/arduino-core/src/processing/app/i18n/Resources_en.properties index 2ace9ce1eb3..69e276282d1 100644 --- a/arduino-core/src/processing/app/i18n/Resources_en.properties +++ b/arduino-core/src/processing/app/i18n/Resources_en.properties @@ -16,7 +16,11 @@ # Translators: # Translators: # Translators: -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:19+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: English (http\://www.transifex.com/mbanzi/arduino-ide-15/language/en/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: en\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +# Translators: +# Translators: +# Translators: +# Translators: +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: English (http\://www.transifex.com/mbanzi/arduino-ide-15/language/en/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: en\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (requires restart of Arduino) @@ -143,7 +147,7 @@ Archive\ sketch\ canceled.=Archive sketch canceled. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 #, java-format -!Archiving\ built\ core\ (caching)\ in\:\ {0}= +Archiving\ built\ core\ (caching)\ in\:\ {0}=Archiving built core (caching) in\: {0} #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Archiving the sketch has been canceled because\nthe sketch couldn't save properly. @@ -439,6 +443,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Could not remove old version of {0} #, java-format Could\ not\ replace\ {0}=Could not replace {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Could not write preferences file\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Couldn't archive sketch @@ -470,7 +478,7 @@ Data\ Processing=Data Processing Data\ Storage=Data Storage #: ../../../../../app/src/processing/app/Editor.java:1386 -!Decrease\ Font\ Size= +Decrease\ Font\ Size=Decrease Font Size #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Decrease Indent @@ -478,6 +486,9 @@ Decrease\ Indent=Decrease Indent #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Default +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Default theme + #: EditorHeader.java:314 Sketch.java:591 Delete=Delete @@ -609,6 +620,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Error getting the Arduino data folde #, java-format Error\ inside\ Serial.{0}()=Error inside Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Error loading theme {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -623,6 +638,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Error opening serial port ''{0}''. #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Error opening serial port ''{0}''. Try consulting the documentation at http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Error parsing libraries index\: {0}\nTry to open the Library Manager to update the libraries index. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Error reading libraries index\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Error reading package indexes folder\: {0}\n(maybe a permission problem?) + #: Preferences.java:277 Error\ reading\ preferences=Error reading preferences @@ -648,6 +675,9 @@ Error\ while\ burning\ bootloader.=Error while burning bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Error while burning bootloader\: missing '{0}' configuration parameter +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Error while burning bootloader\: please select a serial port. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Error while compiling\: missing '{0}' configuration parameter @@ -676,9 +706,6 @@ Error\ while\ verifying/uploading=Error while verifying/uploading #: Preferences.java:93 Estonian=Estonian -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonian (Estonia) - #: Editor.java:516 Examples=Examples @@ -829,8 +856,8 @@ INCOMPATIBLE=INCOMPATIBLE #: FindReplace.java:96 Ignore\ Case=Ignore Case -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignoring bad library name +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignoring library with bad name #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignoring sketch with bad name @@ -846,7 +873,7 @@ Include\ Library=Include Library Incorrect\ IDE\ installation\ folder=Incorrect IDE installation folder #: ../../../../../app/src/processing/app/Editor.java:1378 -!Increase\ Font\ Size= +Increase\ Font\ Size=Increase Font Size #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Increase Indent @@ -874,9 +901,9 @@ Installed=Installed #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Installing boards... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Installing library\: {0} +Installing\ library\:\ {0}\:{1}=Installing library\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -897,6 +924,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Invalid library found in {0}\: {1} #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Invalid quoting\: no closing [{0}] char found. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Invalid version '{0}' for library in\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Invalid version {0} + #: Preferences.java:102 Italian=Italian @@ -921,9 +957,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Library ad #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Library can't use both 'src' and 'utility' folders. Double check {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Library is already installed\: {0} version {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Library is already installed\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Line number\: @@ -1236,9 +1272,9 @@ Reference=Reference #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Remove -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Removing library\: {0} +Removing\ library\:\ {0}\:{1}=Removing library\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1266,6 +1302,9 @@ Replace\ with\:=Replace with\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Retired +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Retry the upload with another serial port? + #: Preferences.java:113 Romanian=Romanian @@ -1357,9 +1396,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Serial monitor not ava #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Serial port ''{0}'' not found. Did you select the right one from the Tools > Serial Port menu? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Serial port not selected. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Serial port {0} not found.\nRetry the upload with another serial port? +Serial\ port\ {0}\ not\ found.=Serial port {0} not found. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Serial ports @@ -1377,6 +1420,9 @@ Settings\ issues=Settings issues #: Editor.java:641 Show\ Sketch\ Folder=Show Sketch Folder +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Show timestamp + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Show verbose output during\: @@ -1496,6 +1542,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=The file "{0}" needs to be inside\na sketch folder named "{1}".\nCreate this folder, move the file, and continue? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=The library "{0}" cannot be used.\nLibrary folder names must start with a letter or number, followed by letters,\nnumbers, dashes, dots and underscores. Maximum length is 63 characters. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=The library "{0}" cannot be used.\nLibrary names must contain only basic letters and numbers.\n(ASCII only and no spaces, and it cannot start with a number) @@ -1520,8 +1570,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=The sketch already contain #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=The sketch folder has disappeared.\n Will attempt to re-save in the same location,\nbut anything besides the code will be lost. -#: ../../../../../app/src/processing/app/SketchController.java:828 -!The\ sketch\ name\ had\ to\ be\ modified.\ Sketch\ names\ can\ only\ consist\nof\ ASCII\ characters\ and\ numbers\ and\ be\ less\ than\ 64\ characters\ long.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=The sketch name had to be modified.\nSketch names must start with a letter or number, followed by letters,\nnumbers, dashes, dots and underscores. Maximum length is 63 characters. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=The sketchbook folder no longer exists.\nArduino will switch to the default sketchbook\nlocation, and create a new sketchbook folder if\nnecessary. Arduino will then stop talking about\nhimself in the third person. @@ -1529,6 +1579,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=The specified sketchbook folder contains your copy of the IDE.\nPlease choose a different folder for your sketchbook. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Theme\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=This library is not listed on Library Manager. You won't be able to reinstall it from here.\nAre you sure you want to delete it? @@ -1863,6 +1916,11 @@ ignoring\ invalid\ font\ size\ {0}=ignoring invalid font size {0} #: Editor.java:936 Editor.java:943 name\ is\ null=name is null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=no headers files (.h) found in {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu is null @@ -1930,10 +1988,6 @@ version\ {0}=version {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Invalid board name, it should be of the form "package\:arch\:board" or "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Invalid option for "{1}" option for board "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Invalid option for board "{1}" @@ -1942,6 +1996,10 @@ version\ {0}=version {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Invalid option, should be of the form "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Invalid value for option "{1}" for board "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Unknown architecture diff --git a/arduino-core/src/processing/app/i18n/Resources_en_GB.po b/arduino-core/src/processing/app/i18n/Resources_en_GB.po index dd62c84328a..063f220314f 100644 --- a/arduino-core/src/processing/app/i18n/Resources_en_GB.po +++ b/arduino-core/src/processing/app/i18n/Resources_en_GB.po @@ -16,7 +16,11 @@ # Translators: # Translators: # Translators: -# Andi Chandler , 2013-2016 +# Translators: +# Translators: +# Translators: +# Translators: +# Andi Chandler , 2013-2017 # Cristian Maglie , 2016 # dani987452 , 2017 msgid "" @@ -24,7 +28,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 19:35+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/mbanzi/arduino-ide-15/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -125,7 +129,7 @@ msgstr "About Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." @@ -149,7 +153,7 @@ msgstr "Afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Aggressively cache compiled core" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -212,6 +216,11 @@ msgstr "Archive sketch as:" msgid "Archive sketch canceled." msgstr "Archive sketch canceled." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -433,7 +442,7 @@ msgstr "Can only pass one of: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Can't enable external editor" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -479,7 +488,7 @@ msgstr "Chinese (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Clear output" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -618,6 +627,11 @@ msgstr "Could not remove old version of {0}" msgid "Could not replace {0}" msgstr "Could not replace {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Couldn't archive sketch" @@ -661,6 +675,10 @@ msgstr "Data Processing" msgid "Data Storage" msgstr "Data Storage" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Decrease Indent" @@ -669,6 +687,10 @@ msgstr "Decrease Indent" msgid "Default" msgstr "Default" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Delete" @@ -844,6 +866,11 @@ msgstr "Error getting the Arduino data folder." msgid "Error inside Serial.{0}()" msgstr "Error inside Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -863,6 +890,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Error opening serial port ''{0}''. Try consulting the documentation at http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Error reading preferences" @@ -897,6 +943,10 @@ msgstr "Error while burning bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Error while burning bootloader: missing '{0}' configuration parameter" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Error while compiling: missing '{0}' configuration parameter" @@ -933,10 +983,6 @@ msgstr "Error while verifying/uploading" msgid "Estonian" msgstr "Estonian" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonian (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Examples" @@ -1140,9 +1186,9 @@ msgstr "INCOMPATIBLE" msgid "Ignore Case" msgstr "Ignore Case" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1168,6 +1214,10 @@ msgstr "Include Library" msgid "Incorrect IDE installation folder" msgstr "Incorrect IDE installation folder" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Increase Indent" @@ -1201,10 +1251,10 @@ msgstr "Installed" msgid "Installing boards..." msgstr "Installing boards..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Installing library: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1230,6 +1280,17 @@ msgstr "Invalid library found in {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Invalid quoting: no closing [{0}] char found." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italian" @@ -1240,7 +1301,7 @@ msgstr "Japanese" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "Kazakh" #: Preferences.java:104 msgid "Korean" @@ -1262,10 +1323,10 @@ msgstr "Library added to your libraries. Check \"Include library\" menu" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Library can't use both 'src' and 'utility' folders. Double check {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1682,10 +1743,10 @@ msgstr "Reference" msgid "Remove" msgstr "Remove" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Removing library: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1721,6 +1782,10 @@ msgstr "Replace with:" msgid "Retired" msgstr "Retired" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romanian" @@ -1831,7 +1896,7 @@ msgstr "Serial Plotter" msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "Serial monitor is not supported on network ports such as {0} for the {1} in this release" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" @@ -1844,12 +1909,15 @@ msgid "" " Serial Port menu?" msgstr "Serial port ''{0}'' not found. Did you select the right one from the Tools > Serial Port menu?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Serial port {0} not found.\nRetry the upload with another serial port?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1872,6 +1940,10 @@ msgstr "Settings issues" msgid "Show Sketch Folder" msgstr "Show Sketch Folder" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Show verbose output during: " @@ -1998,7 +2070,7 @@ msgstr "Tamil" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" @@ -2043,6 +2115,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "The file \"{0}\" needs to be inside\na sketch folder named \"{1}\".\nCreate this folder, move the file, and continue?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2088,12 +2168,12 @@ msgid "" "but anything besides the code will be lost." msgstr "The sketch folder has disappeared.\n Will attempt to re-save in the same location,\nbut anything besides the code will be lost." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "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." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2110,6 +2190,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "The specified sketchbook folder contains your copy of the IDE.\nPlease choose a different folder for your sketchbook." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2471,7 +2555,7 @@ msgstr "You forgot your sketchbook" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "You have unsaved changes!\nYou must save all your sketches to enable this option." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2602,6 +2686,12 @@ msgstr "ignoring invalid font size {0}" msgid "name is null" msgstr "name is null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu is null" @@ -2689,11 +2779,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Invalid board name, it should be of the form \"package:arch:board\" or \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Invalid option for \"{1}\" option for board \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2704,6 +2789,11 @@ msgstr "{0}: Invalid option for board \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Invalid option, should be of the form \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_en_GB.properties b/arduino-core/src/processing/app/i18n/Resources_en_GB.properties index 5885dc3a68b..00709457605 100644 --- a/arduino-core/src/processing/app/i18n/Resources_en_GB.properties +++ b/arduino-core/src/processing/app/i18n/Resources_en_GB.properties @@ -16,10 +16,14 @@ # Translators: # Translators: # Translators: -# Andi Chandler , 2013-2016 +# Translators: +# Translators: +# Translators: +# Translators: +# Andi Chandler , 2013-2017 # Cristian Maglie , 2016 # dani987452 , 2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 19\:35+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: English (United Kingdom) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/en_GB/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: en_GB\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: English (United Kingdom) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/en_GB/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: en_GB\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (requires restart of Arduino) @@ -81,7 +85,7 @@ A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=A subfolder of yo About\ Arduino=About Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=Acoli #: ../../../../../app/src/processing/app/Base.java:1177 Add\ .ZIP\ Library...=Add .ZIP Library... @@ -99,7 +103,7 @@ Additional\ Boards\ Manager\ URLs\:\ =Additional Boards Manager URLs\: Afrikaans=Afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Aggressively cache compiled core #: ../../../processing/app/Preferences.java:96 Albanian=Albanian @@ -144,6 +148,10 @@ Archive\ sketch\ as\:=Archive sketch as\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archive sketch canceled. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Archiving the sketch has been canceled because\nthe sketch couldn't save properly. @@ -303,7 +311,7 @@ CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ Can\ only\ pass\ one\ of\:\ {0}=Can only pass one of\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=Can't enable external editor #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -338,7 +346,7 @@ Chinese\ (Taiwan)=Chinese (Taiwan) Chinese\ (Taiwan)\ (Big5)=Chinese (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Clear output #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Click for a list of unofficial boards support URLs @@ -438,6 +446,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Could not remove old version of {0} #, java-format Could\ not\ replace\ {0}=Could not replace {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Couldn't archive sketch @@ -468,12 +480,18 @@ Data\ Processing=Data Processing #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Data Storage +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Decrease Indent #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Default +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Delete @@ -605,6 +623,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Error getting the Arduino data folde #, java-format Error\ inside\ Serial.{0}()=Error inside Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -619,6 +641,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Error opening serial port ''{0}''. #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Error opening serial port ''{0}''. Try consulting the documentation at http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Error reading preferences @@ -644,6 +678,9 @@ Error\ while\ burning\ bootloader.=Error while burning bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Error while burning bootloader\: missing '{0}' configuration parameter +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Error while compiling\: missing '{0}' configuration parameter @@ -672,9 +709,6 @@ Error\ while\ verifying/uploading=Error while verifying/uploading #: Preferences.java:93 Estonian=Estonian -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonian (Estonia) - #: Editor.java:516 Examples=Examples @@ -825,8 +859,8 @@ INCOMPATIBLE=INCOMPATIBLE #: FindReplace.java:96 Ignore\ Case=Ignore Case -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignoring bad library name +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignoring sketch with bad name @@ -841,6 +875,9 @@ Include\ Library=Include Library #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Incorrect IDE installation folder +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Increase Indent @@ -867,9 +904,9 @@ Installed=Installed #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Installing boards... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Installing library\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -890,6 +927,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Invalid library found in {0}\: {1} #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Invalid quoting\: no closing [{0}] char found. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italian @@ -897,7 +943,7 @@ Italian=Italian Japanese=Japanese #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=Kazakh #: Preferences.java:104 Korean=Korean @@ -914,9 +960,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Library ad #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Library can't use both 'src' and 'utility' folders. Double check {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Library is already installed\: {0} version {1} +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Line number\: @@ -1229,9 +1275,9 @@ Reference=Reference #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Remove -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Removing library\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1259,6 +1305,9 @@ Replace\ with\:=Replace with\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Retired +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Romanian @@ -1341,7 +1390,7 @@ Serial\ Plotter=Serial Plotter #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=Serial monitor is not supported on network ports such as {0} for the {1} in this release #: ../../../../../app/src/processing/app/Editor.java:2516 Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Serial monitor not available while plotter is open @@ -1350,9 +1399,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Serial monitor not ava #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Serial port ''{0}'' not found. Did you select the right one from the Tools > Serial Port menu? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Serial port {0} not found.\nRetry the upload with another serial port? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Serial ports @@ -1370,6 +1423,9 @@ Settings\ issues=Settings issues #: Editor.java:641 Show\ Sketch\ Folder=Show Sketch Folder +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Show verbose output during\: @@ -1458,7 +1514,7 @@ Talossan=Talossan Tamil=Tamil #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=Telugu #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 Thai=Thai @@ -1489,6 +1545,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=The file "{0}" needs to be inside\na sketch folder named "{1}".\nCreate this folder, move the file, and continue? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=The library "{0}" cannot be used.\nLibrary names must contain only basic letters and numbers.\n(ASCII only and no spaces, and it cannot start with a number) @@ -1513,8 +1573,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=The sketch already contain #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=The sketch folder has disappeared.\n Will attempt to re-save in the same location,\nbut anything besides the code will be lost. -#: ../../../processing/app/Sketch.java:2028 -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.=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. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=The sketchbook folder no longer exists.\nArduino will switch to the default sketchbook\nlocation, and create a new sketchbook folder if\nnecessary. Arduino will then stop talking about\nhimself in the third person. @@ -1522,6 +1582,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=The specified sketchbook folder contains your copy of the IDE.\nPlease choose a different folder for your sketchbook. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=This library is not listed on Library Manager. You won't be able to reinstall it from here.\nAre you sure you want to delete it? @@ -1782,7 +1845,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=You forgot your sketchbook #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=You have unsaved changes\!\nYou must save all your sketches to enable this option. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=You've pressed {0} but nothing was sent. Should you select a line ending? @@ -1856,6 +1919,11 @@ ignoring\ invalid\ font\ size\ {0}=ignoring invalid font size {0} #: Editor.java:936 Editor.java:943 name\ is\ null=name is null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu is null @@ -1923,10 +1991,6 @@ version\ {0}=version {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Invalid board name, it should be of the form "package\:arch\:board" or "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Invalid option for "{1}" option for board "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Invalid option for board "{1}" @@ -1935,6 +1999,10 @@ version\ {0}=version {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Invalid option, should be of the form "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Unknown architecture diff --git a/arduino-core/src/processing/app/i18n/Resources_es.po b/arduino-core/src/processing/app/i18n/Resources_es.po index d0fae5c4590..42eb9fa5d07 100644 --- a/arduino-core/src/processing/app/i18n/Resources_es.po +++ b/arduino-core/src/processing/app/i18n/Resources_es.po @@ -16,6 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# . . , 2017 +# Alejandro Dafonte , 2018 # David Martin Garcia , 2012 # Cristian Maglie , 2016 # Miguel Ãngel Barrio Vázquez , 2012 @@ -26,8 +32,9 @@ # Jack R. , 2013 # Miguel Ãngel Barrio Vázquez , 2013 # Moritz Werner Casero , 2015 -# Nestor Contreras , 2017 -# Pedro Luis Plizze , 2015-2016 +# d7ce63bf85c9f8c124fab05c2821bbcf, 2017 +# Pedro Luis , 2018 +# Pedro Luis , 2015-2016 # Salvador Parra Camacho , 2014 # Sam Dale , 2016 msgid "" @@ -35,8 +42,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:19+0000\n" -"Last-Translator: Nestor Contreras \n" +"PO-Revision-Date: 2018-11-27 12:39+0000\n" +"Last-Translator: Alejandro Dafonte \n" "Language-Team: Spanish (http://www.transifex.com/mbanzi/arduino-ide-15/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -62,12 +69,12 @@ msgstr "Usado: {0}" msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "'Teclado' no encontrado. Tu sketch incluye la línea '#include '?" +msgstr "'Keyboard' no encontrado. Tu sketch incluye la línea '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" "'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "'Ratón' no encontrado. Tu sketch incluye la línea '#include '?" +msgstr "'Mouse' no encontrado. Tu sketch incluye la línea '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 msgid "" @@ -124,7 +131,7 @@ msgstr "Una nueva versión de Arduino está disponible...\n¿quieres visitar la #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format msgid "A newer {0} package is available" -msgstr "Un nuevo paquete {0} está disponible" +msgstr "Está disponible una nueva versión del paquete {0}" #: ../../../../../app/src/processing/app/Base.java:2307 msgid "A subfolder of your sketchbook is not a valid library" @@ -140,7 +147,7 @@ msgstr "Acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "Añadir librería .ZIP..." +msgstr "Añadir biblioteca .ZIP..." #: Editor.java:650 msgid "Add File..." @@ -223,6 +230,11 @@ msgstr "Archivar programa como:" msgid "Archive sketch canceled." msgstr "Archivación de programa cancelada." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Archivando el núcleo construido (cacheado) en: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -490,7 +502,7 @@ msgstr "Chino (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Limpiar salida" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -629,6 +641,11 @@ msgstr "No pude eliminar la versión antigua de {0}" msgid "Could not replace {0}" msgstr "No pude reemplazar {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "No se pudo escribir el archivo de preferencias: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "No se pudo archivar el programa." @@ -672,6 +689,10 @@ msgstr "Procesando Datos" msgid "Data Storage" msgstr "Datos Almacenados" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Reducir Tamaño de Fuente" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Disminuir Sangría" @@ -680,6 +701,10 @@ msgstr "Disminuir Sangría" msgid "Default" msgstr "Por defecto" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Tema por defecto" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Borrar" @@ -855,6 +880,11 @@ msgstr "Error obteniendo los datos de la carpeta de Arduino" msgid "Error inside Serial.{0}()" msgstr "Error interno del serie.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Error cargando tema {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -874,6 +904,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Error abriendo el puerto serie \"{0}\". Pruebe a consultar la documentación en http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Error al analizar el índice de las bibliotecas: {0}\nIntenta abrir el Administrador de Bibliotecas para actualizar el índice de bibliotecas." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Error leyendo indice de biblioteca: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Error al leer la carpeta de índices de paquetes: {0}\n(¿puede ser un problema de permisos?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Error leyendo preferencias" @@ -908,6 +957,10 @@ msgstr "Error quemando bootloader" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Error mientras se cargaba el bootloader: falta parametro de configuración '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Ha ocurrido un error mientras se grababa el bootloader: por favor selecciona un puerto serie." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Erro mientras se compilaba: falta el parámetro '{0}' de configuración" @@ -944,10 +997,6 @@ msgstr "Error mientras se verificaba/enviaba" msgid "Estonian" msgstr "Estonio" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonio (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Ejemplos" @@ -1151,9 +1200,9 @@ msgstr "INCOMPATIBLE" msgid "Ignore Case" msgstr "Ignorar Caso" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorando el nombre incorrecto de librería." +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignorando la biblioteca con mal nombre" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1179,6 +1228,10 @@ msgstr "Incluir Librería" msgid "Incorrect IDE installation folder" msgstr "Carpeta de instalación del IDE Incorrecta" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Incrementa Tamaño Fuente" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Aumentar Sangría" @@ -1212,10 +1265,10 @@ msgstr "Instalado" msgid "Installing boards..." msgstr "Instalando tarjetas..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Instalando librerías: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Instalando biblioteca: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1241,6 +1294,17 @@ msgstr "Librería inválida encontrada en {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Citado no valido, no encontrado el carácter [{0}] de cierre." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Version no valida '{0}' para biblioteca en: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Versión {0} incorrecta" + #: Preferences.java:102 msgid "Italian" msgstr "Italiano" @@ -1273,10 +1337,10 @@ msgstr "Librería añadida a sus librerías. Revise el menú \"Incluir Librería msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "La Librería no puede usar ambas carpetas 'src' y 'utilidad'. Doble marcado {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "La librería ya estaba instalada: {0} versión {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "La biblioteca ya está instalada: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1301,7 +1365,7 @@ msgstr "Poca memoria disponible, se pueden producir problemas de estabilidad." #: ../../../../../app/src/processing/app/Base.java:1168 msgid "Manage Libraries..." -msgstr "Gestionar Librerías" +msgstr "Administrar Bibliotecas..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 msgid "Manual proxy configuration" @@ -1318,7 +1382,7 @@ msgstr "mensaje" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format msgid "Missing '{0}' from library in {1}" -msgstr "Falta '{0}' de la librería en {1}" +msgstr "Falta '{0}' de la biblioteca en {1}" #: ../../../processing/app/BaseNoGui.java:455 msgid "Mode not supported" @@ -1343,7 +1407,7 @@ msgstr "Múltiples archivos no soportados" #: ../../../processing/app/debug/Compiler.java:520 #, java-format msgid "Multiple libraries were found for \"{0}\"" -msgstr "Se encontraron múltiples librerías para \"{0}\"" +msgstr "Se encontraron varias bibliotecas para \"{0}\"" #: ../../../processing/app/Base.java:395 msgid "Must specify exactly one sketch file" @@ -1375,7 +1439,7 @@ msgstr "Puertos de Red" #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 msgid "Network upload using programmer not supported" -msgstr "Carga a través de red unado programador no soprtado" +msgstr "Subida por red usando un programador no soportado" #: EditorToolbar.java:41 Editor.java:493 msgid "New" @@ -1693,10 +1757,10 @@ msgstr "Referencia" msgid "Remove" msgstr "Eliminar" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Eliminando librería: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Eliminando biblioteca: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1732,6 +1796,10 @@ msgstr "Reemplazar con:" msgid "Retired" msgstr "Retirado" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "¿Reintentar la subida con otro puerto serie?" + #: Preferences.java:113 msgid "Romanian" msgstr "Rumano" @@ -1819,7 +1887,7 @@ msgstr "La tarjeta seleccionada no está disponible" #: ../../../../../app/src/processing/app/Base.java:423 msgid "Selected library is not available" -msgstr "La librería seleccionada no está disponible" +msgstr "La biblioteca seleccionada no está disponible" #: SerialMonitor.java:93 msgid "Send" @@ -1855,12 +1923,15 @@ msgid "" " Serial Port menu?" msgstr "Puerto \"{0}\" no encontrado. ¿Has seleccionado el correcto del menú Herramientas > Puerto Serie?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Puerto serie no seleccionado." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Puerto {0} no encontrado.\n¿Reintentar la subida con otro puerto?" +msgid "Serial port {0} not found." +msgstr "Puerto serie {0} no encontrado." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1883,6 +1954,10 @@ msgstr "Cuestiones de ajustes" msgid "Show Sketch Folder" msgstr "Mostrar Carpeta de Programa" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Mostrar marca temporal" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Mostrar salida detallada mientras:" @@ -1985,7 +2060,7 @@ msgstr "La carpeta o el archivo zip no contienen una librería válida" #: ../../../../../app/src/processing/app/Base.java:466 msgid "Starting..." -msgstr "Arrancando..." +msgstr "Iniciando..." #: Base.java:540 msgid "Sunshine" @@ -2032,7 +2107,7 @@ msgstr "La clase Cliente ha sido renombrada a EthernetClient" msgid "" "The IDE includes an updated {0} package, but you're using an older one.\n" "Do you want to upgrade {0}?" -msgstr "El IDE incluye el paquete {0} actualizado, pero usted está usando uno más viejo.\n¿ Quiere actualizar {0}? " +msgstr "El IDE incluye la actualización del paquete {0}, pero estás usando uno más antiguo.\n¿Quieres actualizar {0}? " #: debug/Compiler.java:420 msgid "The Server class has been renamed EthernetServer." @@ -2054,6 +2129,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "El archivo \"{0}\" necesita estar dentro\nde una carpeta de proyecto llamada \"{1}\".\n¿Crearla, mover el fichero y continuar?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "La biblioteca \"{0}\" no puede ser usada\nLos nombres de las carpetas de bibliotecas deben empezar con una letra o número, seguido de letras,\n." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2099,12 +2182,12 @@ msgid "" "but anything besides the code will be lost." msgstr "La carpeta del programa ha desaparecido\nIntentaré salvarlo de nuevo en la misma ubicación\npero nada más que el código se perderá." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "El nombre del proyecto debe ser modificado. El nombre del proyecto debe consistir solo de caracteres ASCII y números (pero no puede comenzar con un número).\nAdemas debe contener menos de 64 caracteres." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "El nombre del sketch ha sido modificado.\nLos nombres de Sketch deben empezar con una letra o número, seguido por letras,\nnúmeros, guiones, puntos y subrayados. La longitud máxima es de 63 caracteres." #: Base.java:259 msgid "" @@ -2121,18 +2204,22 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "La carpeta sketchbook especificada contiene tu copia del IDE.\nPor favor, escoge otra carpeta diferente para tus bocetos." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Tema:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" "Are you sure you want to delete it?" -msgstr "Esta librería no está listada en el Gestor de Librerías. No te será posible reinstalarla desde aquí.\n¿Estás seguro que quieres borrarla?" +msgstr "Esta biblioteca no está listada en el Gestor de Bibliotecas. No será posible reinstalarla desde aquí.\n¿Estás seguro que quieres borrarla?" #: ../../../../../app/src/processing/app/EditorStatus.java:349 msgid "" "This report would have more information with\n" "\"Show verbose output during compilation\"\n" "option enabled in File -> Preferences.\n" -msgstr "Este reporte podría tener más información con\n\"Mostrar salida detallada durante la compilación\"\nopción habilitada en Archivo -> Preferencias.\n" +msgstr "Este informe podría contener más información con\n\"Mostrar salida detallada durante la compilación\"\nopción habilitada en Archivo -> Preferencias.\n" #: Base.java:535 msgid "Time for a Break" @@ -2192,20 +2279,20 @@ msgstr "Imposible de conectar: ¿está el sketch usando el puente?" #: ../../../processing/app/NetworkMonitor.java:130 msgid "Unable to connect: retrying" -msgstr "Imposible conectarse: reintentando" +msgstr "Imposible conectar: reintentando" #: ../../../processing/app/Editor.java:2526 msgid "Unable to connect: wrong password?" -msgstr "Imposible conectar: contraseña incorrecta?" +msgstr "Imposible conectar: ¿contraseña incorrecta?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 #, java-format msgid "Unable to find {0} in {1}" -msgstr "No fue posible encontrar {0} en {1}" +msgstr "Imposible encontrar {0} en {1}" #: ../../../processing/app/Editor.java:2512 msgid "Unable to open serial monitor" -msgstr "Imposible abrir el monitor serial" +msgstr "Imposible abrir el monitor serie" #: ../../../../../app/src/processing/app/Editor.java:2709 msgid "Unable to open serial plotter" @@ -2231,7 +2318,7 @@ msgstr "Tipo {0} no gestionado en llave conxtexto {1}" #: ../../../../../app//src/processing/app/Editor.java:2818 msgid "Unknown board" -msgstr "Una plata desconocida" +msgstr "Placa desconocida" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -2271,11 +2358,11 @@ msgstr "Actualización disponible para alguna de tus {0}tarjetas{1} y {2}librer #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format msgid "Updates available for some of your {0}libraries{1}" -msgstr "Actualización disponible para alguna de tus {0}librerías{1}" +msgstr "Actualización disponible para alguna de tus {0}bibliotecas{1}" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 msgid "Updating list of installed libraries" -msgstr "Actualizando lista de librerías instaladas" +msgstr "Actualizando la lista de las bibliotecas instaladas" #: EditorToolbar.java:41 Editor.java:545 msgid "Upload" @@ -2382,7 +2469,7 @@ msgstr "Visita Arduino.cc" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format msgid "WARNING: Category '{0}' in library {1} is not valid. Setting to '{2}'" -msgstr "ATENCIÓN: Categoría '{0}' en librería {1} no es válida. Configurando a '{2}'" +msgstr "ATENCIÓN: Categoría '{0}' de la biblioteca {1} no es válida. Configurando a '{2}'" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format @@ -2613,6 +2700,12 @@ msgstr "ignorando tamaño de fuente incorrento {0}" msgid "name is null" msgstr "Nombre está vacío" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "No encontrado archivos de encabezado (.h) en {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu está vacío" @@ -2661,7 +2754,7 @@ msgstr "{0} ficheros añadidos al programa." #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format msgid "{0} libraries" -msgstr "{0} librerías" +msgstr "{0} bibliotecas" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format @@ -2700,11 +2793,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Nombre de placa invalido, debe ser de la forma \"paquete:arq:placa\" o \"paquete:arq:placa:opciones\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opción no valida para opción \"´{1}\" de la tarjeta \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2715,6 +2803,11 @@ msgstr "{0}: Opcion no valida para la tarjeta \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opcion invalida, debe ser de la forma \"nombre=valor\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Valor no valido para opción \"{1}\" para tarjeta \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_es.properties b/arduino-core/src/processing/app/i18n/Resources_es.properties index 9670bc4d90f..1e6db436fd5 100644 --- a/arduino-core/src/processing/app/i18n/Resources_es.properties +++ b/arduino-core/src/processing/app/i18n/Resources_es.properties @@ -16,6 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# . . , 2017 +# Alejandro Dafonte , 2018 # David Martin Garcia , 2012 # Cristian Maglie , 2016 # Miguel \u00c1ngel Barrio V\u00e1zquez , 2012 @@ -26,11 +32,12 @@ # Jack R. , 2013 # Miguel \u00c1ngel Barrio V\u00e1zquez , 2013 # Moritz Werner Casero , 2015 -# Nestor Contreras , 2017 -# Pedro Luis Plizze , 2015-2016 +# d7ce63bf85c9f8c124fab05c2821bbcf, 2017 +# Pedro Luis , 2018 +# Pedro Luis , 2015-2016 # Salvador Parra Camacho , 2014 # Sam Dale , 2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:19+0000\nLast-Translator\: Nestor Contreras \nLanguage-Team\: Spanish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-27 12\:39+0000\nLast-Translator\: Alejandro Dafonte \nLanguage-Team\: Spanish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/es/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: es\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(requiere reiniciar Arduino) @@ -44,10 +51,10 @@ \ Used\:\ {0}=Usado\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Teclado' no encontrado. Tu sketch incluye la l\u00ednea '\#include '? +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Keyboard' no encontrado. Tu sketch incluye la l\u00ednea '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Rat\u00f3n' no encontrado. Tu sketch incluye la l\u00ednea '\#include '? +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Mouse' no encontrado. Tu sketch incluye la l\u00ednea '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information=\u00a1Las carpetas 'arch' ya no son soportadas\! Mira en http\://goo.gl/gfFJzU para m\u00e1s informaci\u00f3n @@ -83,7 +90,7 @@ A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -A\ newer\ {0}\ package\ is\ available=Un nuevo paquete {0} est\u00e1 disponible +A\ newer\ {0}\ package\ is\ available=Est\u00e1 disponible una nueva versi\u00f3n del paquete {0} #: ../../../../../app/src/processing/app/Base.java:2307 A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Un subdirectorio de su 'cuaderno de bocetos' no es una librer\u00eda v\u00e1lida @@ -95,7 +102,7 @@ About\ Arduino=Sobre Arduino Acoli=Acoli #: ../../../../../app/src/processing/app/Base.java:1177 -Add\ .ZIP\ Library...=A\u00f1adir librer\u00eda .ZIP... +Add\ .ZIP\ Library...=A\u00f1adir biblioteca .ZIP... #: Editor.java:650 Add\ File...=A\u00f1adir fichero... @@ -155,6 +162,10 @@ Archive\ sketch\ as\:=Archivar programa como\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivaci\u00f3n de programa cancelada. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Archivando el n\u00facleo construido (cacheado) en\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=El archivo del programa se ha cancelado porque\nno se pudo guardar el propio programa. @@ -349,7 +360,7 @@ Chinese\ (Taiwan)=Chino (Taiwan) Chinese\ (Taiwan)\ (Big5)=Chino (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Limpiar salida #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Clique para obtener una lista de las URLs de soporte para las tarjetas no oficiales @@ -449,6 +460,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=No pude eliminar la versi\u00f3n antig #, java-format Could\ not\ replace\ {0}=No pude reemplazar {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=No se pudo escribir el archivo de preferencias\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=No se pudo archivar el programa. @@ -479,12 +494,18 @@ Data\ Processing=Procesando Datos #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Datos Almacenados +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Reducir Tama\u00f1o de Fuente + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Disminuir Sangr\u00eda #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Por defecto +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Tema por defecto + #: EditorHeader.java:314 Sketch.java:591 Delete=Borrar @@ -616,6 +637,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Error obteniendo los datos de la car #, java-format Error\ inside\ Serial.{0}()=Error interno del serie.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Error cargando tema {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -630,6 +655,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Error abriendo puerto "{0}" #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Error abriendo el puerto serie "{0}". Pruebe a consultar la documentaci\u00f3n en http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Error al analizar el \u00edndice de las bibliotecas\: {0}\nIntenta abrir el Administrador de Bibliotecas para actualizar el \u00edndice de bibliotecas. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Error leyendo indice de biblioteca\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Error al leer la carpeta de \u00edndices de paquetes\: {0}\n(\u00bfpuede ser un problema de permisos?) + #: Preferences.java:277 Error\ reading\ preferences=Error leyendo preferencias @@ -655,6 +692,9 @@ Error\ while\ burning\ bootloader.=Error quemando bootloader #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Error mientras se cargaba el bootloader\: falta parametro de configuraci\u00f3n '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Ha ocurrido un error mientras se grababa el bootloader\: por favor selecciona un puerto serie. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Erro mientras se compilaba\: falta el par\u00e1metro '{0}' de configuraci\u00f3n @@ -683,9 +723,6 @@ Error\ while\ verifying/uploading=Error mientras se verificaba/enviaba #: Preferences.java:93 Estonian=Estonio -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonio (Estonia) - #: Editor.java:516 Examples=Ejemplos @@ -836,8 +873,8 @@ INCOMPATIBLE=INCOMPATIBLE #: FindReplace.java:96 Ignore\ Case=Ignorar Caso -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorando el nombre incorrecto de librer\u00eda. +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignorando la biblioteca con mal nombre #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorando trabajo con nombre incorrecto. @@ -852,6 +889,9 @@ Include\ Library=Incluir Librer\u00eda #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Carpeta de instalaci\u00f3n del IDE Incorrecta +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Incrementa Tama\u00f1o Fuente + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Aumentar Sangr\u00eda @@ -878,9 +918,9 @@ Installed=Instalado #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Instalando tarjetas... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Instalando librer\u00edas\: {0} +Installing\ library\:\ {0}\:{1}=Instalando biblioteca\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -901,6 +941,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Librer\u00eda inv\u00e1lida encontrada e #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Citado no valido, no encontrado el car\u00e1cter [{0}] de cierre. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Version no valida '{0}' para biblioteca en\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Versi\u00f3n {0} incorrecta + #: Preferences.java:102 Italian=Italiano @@ -925,9 +974,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Librer\u00 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=La Librer\u00eda no puede usar ambas carpetas 'src' y 'utilidad'. Doble marcado {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=La librer\u00eda ya estaba instalada\: {0} versi\u00f3n {1} +Library\ is\ already\ installed\:\ {0}\:{1}=La biblioteca ya est\u00e1 instalada\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=N\u00famero l\u00ednea\: @@ -946,7 +995,7 @@ Looking\ for\ recipes\ like\ {0}*{1}=Buscando recetas tales como {0}*{1} Low\ memory\ available,\ stability\ problems\ may\ occur.=Poca memoria disponible, se pueden producir problemas de estabilidad. #: ../../../../../app/src/processing/app/Base.java:1168 -Manage\ Libraries...=Gestionar Librer\u00edas +Manage\ Libraries...=Administrar Bibliotecas... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 Manual\ proxy\ configuration=Configuraci\u00f3n manual del proxy @@ -959,7 +1008,7 @@ Message=mensaje #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format -Missing\ '{0}'\ from\ library\ in\ {1}=Falta '{0}' de la librer\u00eda en {1} +Missing\ '{0}'\ from\ library\ in\ {1}=Falta '{0}' de la biblioteca en {1} #: ../../../processing/app/BaseNoGui.java:455 Mode\ not\ supported=Modo no soportado @@ -978,7 +1027,7 @@ Multiple\ files\ not\ supported=M\u00faltiples archivos no soportados #: ../../../processing/app/debug/Compiler.java:520 #, java-format -Multiple\ libraries\ were\ found\ for\ "{0}"=Se encontraron m\u00faltiples librer\u00edas para "{0}" +Multiple\ libraries\ were\ found\ for\ "{0}"=Se encontraron varias bibliotecas para "{0}" #: ../../../processing/app/Base.java:395 Must\ specify\ exactly\ one\ sketch\ file=Debe especificar ex\u00e1ctamente un archivo de sketch @@ -1002,7 +1051,7 @@ Network\ port,\ can't\ obtain\ info=Puerto de la red, no se puede obtener inform Network\ ports=Puertos de Red #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 -Network\ upload\ using\ programmer\ not\ supported=Carga a trav\u00e9s de red unado programador no soprtado +Network\ upload\ using\ programmer\ not\ supported=Subida por red usando un programador no soportado #: EditorToolbar.java:41 Editor.java:493 New=Nuevo @@ -1240,9 +1289,9 @@ Reference=Referencia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Eliminar -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Eliminando librer\u00eda\: {0} +Removing\ library\:\ {0}\:{1}=Eliminando biblioteca\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1270,6 +1319,9 @@ Replace\ with\:=Reemplazar con\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Retirado +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=\u00bfReintentar la subida con otro puerto serie? + #: Preferences.java:113 Romanian=Rumano @@ -1336,7 +1388,7 @@ Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=La tarjeta seleccio Selected\ board\ is\ not\ available=La tarjeta seleccionada no est\u00e1 disponible #: ../../../../../app/src/processing/app/Base.java:423 -Selected\ library\ is\ not\ available=La librer\u00eda seleccionada no est\u00e1 disponible +Selected\ library\ is\ not\ available=La biblioteca seleccionada no est\u00e1 disponible #: SerialMonitor.java:93 Send=Enviar @@ -1361,9 +1413,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Monitor serie no dispo #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Puerto "{0}" no encontrado. \u00bfHas seleccionado el correcto del men\u00fa Herramientas > Puerto Serie? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Puerto serie no seleccionado. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Puerto {0} no encontrado.\n\u00bfReintentar la subida con otro puerto? +Serial\ port\ {0}\ not\ found.=Puerto serie {0} no encontrado. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Puertos Serie @@ -1381,6 +1437,9 @@ Settings\ issues=Cuestiones de ajustes #: Editor.java:641 Show\ Sketch\ Folder=Mostrar Carpeta de Programa +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Mostrar marca temporal + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Mostrar salida detallada mientras\: @@ -1451,7 +1510,7 @@ Spanish=Espa\u00f1ol Specified\ folder/zip\ file\ does\ not\ contain\ a\ valid\ library=La carpeta o el archivo zip no contienen una librer\u00eda v\u00e1lida #: ../../../../../app/src/processing/app/Base.java:466 -Starting...=Arrancando... +Starting...=Iniciando... #: Base.java:540 Sunshine=Sol @@ -1485,7 +1544,7 @@ The\ Client\ class\ has\ been\ renamed\ EthernetClient.=La clase Cliente ha sido #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=El IDE incluye el paquete {0} actualizado, pero usted est\u00e1 usando uno m\u00e1s viejo.\n\u00bf Quiere actualizar {0}? +The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=El IDE incluye la actualizaci\u00f3n del paquete {0}, pero est\u00e1s usando uno m\u00e1s antiguo.\n\u00bfQuieres actualizar {0}? #: debug/Compiler.java:420 The\ Server\ class\ has\ been\ renamed\ EthernetServer.=La clase Servidor ha sido renombrada a EthernetServer @@ -1500,6 +1559,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=El archivo "{0}" necesita estar dentro\nde una carpeta de proyecto llamada "{1}".\n\u00bfCrearla, mover el fichero y continuar? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=La biblioteca "{0}" no puede ser usada\nLos nombres de las carpetas de bibliotecas deben empezar con una letra o n\u00famero, seguido de letras,\n. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La librer\u00eda "{0}" no se puede usar.\nLos nombres de librer\u00eda deben contener s\u00f3lo n\u00fameros y letras.\n(S\u00f3lo ASCII y sin espacios, y no pueden empezar con un n\u00famero) @@ -1524,8 +1587,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=El sketch ya contiene un a #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=La carpeta del programa ha desaparecido\nIntentar\u00e9 salvarlo de nuevo en la misma ubicaci\u00f3n\npero nada m\u00e1s que el c\u00f3digo se perder\u00e1. -#: ../../../processing/app/Sketch.java:2028 -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.=El nombre del proyecto debe ser modificado. El nombre del proyecto debe consistir solo de caracteres ASCII y n\u00fameros (pero no puede comenzar con un n\u00famero).\nAdemas debe contener menos de 64 caracteres. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=El nombre del sketch ha sido modificado.\nLos nombres de Sketch deben empezar con una letra o n\u00famero, seguido por letras,\nn\u00fameros, guiones, puntos y subrayados. La longitud m\u00e1xima es de 63 caracteres. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=La carpeta de proyecto ya no existe. Arduino cambiar\u00e1 la ubicaci\u00f3n por defecto de proyectos, y crear\u00e1 una carpeta de proyecto nuevo si es necesario. Arduino entonces deja de hablar de s\u00ed mismo en tercera persona. @@ -1533,11 +1596,14 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=La carpeta sketchbook especificada contiene tu copia del IDE.\nPor favor, escoge otra carpeta diferente para tus bocetos. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Tema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Esta librer\u00eda no est\u00e1 listada en el Gestor de Librer\u00edas. No te ser\u00e1 posible reinstalarla desde aqu\u00ed.\n\u00bfEst\u00e1s seguro que quieres borrarla? +This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Esta biblioteca no est\u00e1 listada en el Gestor de Bibliotecas. No ser\u00e1 posible reinstalarla desde aqu\u00ed.\n\u00bfEst\u00e1s seguro que quieres borrarla? #: ../../../../../app/src/processing/app/EditorStatus.java:349 -This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Este reporte podr\u00eda tener m\u00e1s informaci\u00f3n con\n"Mostrar salida detallada durante la compilaci\u00f3n"\nopci\u00f3n habilitada en Archivo -> Preferencias.\n +This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Este informe podr\u00eda contener m\u00e1s informaci\u00f3n con\n"Mostrar salida detallada durante la compilaci\u00f3n"\nopci\u00f3n habilitada en Archivo -> Preferencias.\n #: Base.java:535 Time\ for\ a\ Break=Es momento para un descanso. @@ -1583,17 +1649,17 @@ Unable\ to\ connect\ to\ {0}=Imposible conectar con {0} Unable\ to\ connect\:\ is\ the\ sketch\ using\ the\ bridge?=Imposible de conectar\: \u00bfest\u00e1 el sketch usando el puente? #: ../../../processing/app/NetworkMonitor.java:130 -Unable\ to\ connect\:\ retrying=Imposible conectarse\: reintentando +Unable\ to\ connect\:\ retrying=Imposible conectar\: reintentando #: ../../../processing/app/Editor.java:2526 -Unable\ to\ connect\:\ wrong\ password?=Imposible conectar\: contrase\u00f1a incorrecta? +Unable\ to\ connect\:\ wrong\ password?=Imposible conectar\: \u00bfcontrase\u00f1a incorrecta? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 #, java-format -Unable\ to\ find\ {0}\ in\ {1}=No fue posible encontrar {0} en {1} +Unable\ to\ find\ {0}\ in\ {1}=Imposible encontrar {0} en {1} #: ../../../processing/app/Editor.java:2512 -Unable\ to\ open\ serial\ monitor=Imposible abrir el monitor serial +Unable\ to\ open\ serial\ monitor=Imposible abrir el monitor serie #: ../../../../../app/src/processing/app/Editor.java:2709 Unable\ to\ open\ serial\ plotter=Incapaz de abrir el plotter serie @@ -1613,7 +1679,7 @@ Undo=Deshacer Unhandled\ type\ {0}\ in\ context\ key\ {1}=Tipo {0} no gestionado en llave conxtexto {1} #: ../../../../../app//src/processing/app/Editor.java:2818 -Unknown\ board=Una plata desconocida +Unknown\ board=Placa desconocida #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -1642,10 +1708,10 @@ Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}=Actu #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format -Updates\ available\ for\ some\ of\ your\ {0}libraries{1}=Actualizaci\u00f3n disponible para alguna de tus {0}librer\u00edas{1} +Updates\ available\ for\ some\ of\ your\ {0}libraries{1}=Actualizaci\u00f3n disponible para alguna de tus {0}bibliotecas{1} #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 -Updating\ list\ of\ installed\ libraries=Actualizando lista de librer\u00edas instaladas +Updating\ list\ of\ installed\ libraries=Actualizando la lista de las bibliotecas instaladas #: EditorToolbar.java:41 Editor.java:545 Upload=Subir @@ -1727,7 +1793,7 @@ Visit\ Arduino.cc=Visita Arduino.cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format -WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'=ATENCI\u00d3N\: Categor\u00eda '{0}' en librer\u00eda {1} no es v\u00e1lida. Configurando a '{2}' +WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'=ATENCI\u00d3N\: Categor\u00eda '{0}' de la biblioteca {1} no es v\u00e1lida. Configurando a '{2}' #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format @@ -1867,6 +1933,11 @@ ignoring\ invalid\ font\ size\ {0}=ignorando tama\u00f1o de fuente incorrento {0 #: Editor.java:936 Editor.java:943 name\ is\ null=Nombre est\u00e1 vac\u00edo +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=No encontrado archivos de encabezado (.h) en {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu est\u00e1 vac\u00edo @@ -1904,7 +1975,7 @@ version\ {0}=versi\u00f3n {0} #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format -{0}\ libraries={0} librer\u00edas +{0}\ libraries={0} bibliotecas #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format @@ -1934,10 +2005,6 @@ version\ {0}=versi\u00f3n {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nombre de placa invalido, debe ser de la forma "paquete\:arq\:placa" o "paquete\:arq\:placa\:opciones" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Opci\u00f3n no valida para opci\u00f3n "\u00b4{1}" de la tarjeta "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Opcion no valida para la tarjeta "{1}" @@ -1946,6 +2013,10 @@ version\ {0}=versi\u00f3n {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Opcion invalida, debe ser de la forma "nombre\=valor" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Valor no valido para opci\u00f3n "{1}" para tarjeta "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arquitectura desconocida diff --git a/arduino-core/src/processing/app/i18n/Resources_et.po b/arduino-core/src/processing/app/i18n/Resources_et.po index 8b00cd0cb70..49a808c636b 100644 --- a/arduino-core/src/processing/app/i18n/Resources_et.po +++ b/arduino-core/src/processing/app/i18n/Resources_et.po @@ -16,20 +16,25 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cougar , 2012 # Cougar , 2013 # Cristian Maglie , 2016 # Georg, 2014 -# Hasso Tepper , 2016 -# Lauri Võsandi , 2015 +# Hasso Tepper , 2016,2018-2019 +# d0fb82845e24c8a7bfd7dc19adbd26a7_a0669f4 <0e132a47bd8dd1a622a1f5718397d672_385>, 2015 +# d0fb82845e24c8a7bfd7dc19adbd26a7_a0669f4 <0e132a47bd8dd1a622a1f5718397d672_385>, 2015 # Triin Taveter , 2016 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:43+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-09-04 17:34+0000\n" +"Last-Translator: Hasso Tepper \n" "Language-Team: Estonian (http://www.transifex.com/mbanzi/arduino-ide-15/language/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -66,7 +71,7 @@ msgstr "‘Mouse’ definitsiooni ei leitud. Kas su visandis on rida ‘#include msgid "" "'arch' folder is no longer supported! See http://goo.gl/gfFJzU for more " "information" -msgstr "Kataloog „arch“ pole enam toetatud. Lisainfo saamiseks vaata http://goo.gl/gfFJzU ." +msgstr "Kataloog „arch“ pole enam toetatud. Lisainfot leiad aadressilt http://goo.gl/gfFJzU ." #: Preferences.java:478 msgid "(edit only when Arduino is not running)" @@ -141,11 +146,11 @@ msgstr "Lisa fail ..." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "Lisa URL-id plaatide halduseks" +msgstr "Lisa-URL-id plaatide halduseks" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "Lisa URL-id plaatide halduseks: " +msgstr "Lisa-URL-id plaatide halduseks: " #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" @@ -153,7 +158,7 @@ msgstr "Afrikaani" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Kompileeritud baaspaki agressiivne puhverdamine" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -216,6 +221,11 @@ msgstr "Visandi arhiveerimine" msgid "Archive sketch canceled." msgstr "Visandi arhiveerimine katkestatud." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Kompileeritud baaspaki arhiveermine (puhverdamine): {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -394,7 +404,7 @@ msgstr "Bosnia" #: SerialMonitor.java:112 msgid "Both NL & CR" -msgstr "lisa NL+CR (\\r\\n)" +msgstr "Lisa NL+CR (\\r\\n)" #: Preferences.java:81 msgid "Browse" @@ -428,7 +438,7 @@ msgstr "Alglaaduri I/O plaadile kirjutamine (see võib võtta mõne minuti) ..." msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "CRC ei kattu ja fail on rikutud. See võib olla ajutine probleem, proovi hiljem uuesti." +msgstr "CRC ei klapi ja fail on rikutud. See võib olla ajutine probleem, proovi hiljem uuesti." #: ../../../processing/app/Base.java:379 #, java-format @@ -437,7 +447,7 @@ msgstr "Ainult üht neist saab korraga kasutada: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Välist redaktorit ei saa kasutada" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -459,7 +469,7 @@ msgstr "Ühtegi visandi faili ei tohi määrata" #: SerialMonitor.java:112 msgid "Carriage return" -msgstr "lisa CR (\\r)" +msgstr "Lisa CR (\\r)" #: Preferences.java:87 msgid "Catalan" @@ -483,7 +493,7 @@ msgstr "Hiina (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Tühjenda väljund" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -622,6 +632,11 @@ msgstr "„{0}“ vana versiooni ei saanud eemaldada" msgid "Could not replace {0}" msgstr "{0} pole võimalik asendada" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Eelistuste faili kirjutamine ebaõnnestus: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Visandi arhiveerimine ebaõnnestus" @@ -665,6 +680,10 @@ msgstr "Andmetöötlus" msgid "Data Storage" msgstr "Andmete säilitamine" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Vähenda fonti" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Vähenda taanet" @@ -673,6 +692,10 @@ msgstr "Vähenda taanet" msgid "Default" msgstr "Vaikeväärtus" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Vaiketeema" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Kustuta" @@ -809,7 +832,7 @@ msgstr "Sisesta komaga eraldatud URL-ide nimekiri." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 msgid "Enter additional URLs, one for each row" -msgstr "Lisa URL-id sisesta igaüks omale reale" +msgstr "Lisa-URL-id sisesta igaüks omale reale" #: Editor.java:1062 msgid "Environment" @@ -848,6 +871,11 @@ msgstr "Viga Arduino andmekausta leidmisel." msgid "Error inside Serial.{0}()" msgstr "Viga Serial.{0}() sees." +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Viga teema „{0}“ laadimisel: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -867,6 +895,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Viga jadapordi „{0}“ avamisel. Proovi abi otsida dokumentatsioonist aadressil http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Viga teekide indeksi parsimisel: {0}\nProovi menüüst avada teekide haldus ning teekide indeksit uuendada." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Viga teekide indeksi lugemisel: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Viga pakkide indeksi kataloogi lugemisel: {0}\n(võib olla on see õiguste puudumise probleem?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Viga eelistuste lugemisel" @@ -876,7 +923,7 @@ msgstr "Viga eelistuste lugemisel" msgid "" "Error reading the preferences file. Please delete (or move)\n" "{0} and restart Arduino." -msgstr "Viga eelistuste faili lugemisel. Palun kustuta „{0}“ (või tõsta\nsee mujale) ning käivita Arduino uuesti." +msgstr "Viga eelistuste faili lugemisel. Palun kustuta „{0}“ (või liiguta\nsee mujale) ning käivita Arduino uuesti." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 @@ -901,6 +948,10 @@ msgstr "Viga alglaaduri kirjutamisel." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Viga alglaaduri kirjutamisel: „{0}“ konfiguratsiooniparameeter puudub" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Viga alglaaduri kirjutamisel: palun vali jadaport." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Viga kompileerimisel: „{0}“ konfiguratsiooniparameeter puudub" @@ -937,10 +988,6 @@ msgstr "Viga kontrollimisel/üleslaadimisel" msgid "Estonian" msgstr "Eesti" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Eesti (Eesti)" - #: Editor.java:516 msgid "Examples" msgstr "Näited" @@ -1000,7 +1047,7 @@ msgstr "Filipiini" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 msgid "Filter your search..." -msgstr "Otsingu filtreerimine ..." +msgstr "Otsingufilter ..." #: FindReplace.java:124 FindReplace.java:127 msgid "Find" @@ -1126,7 +1173,7 @@ msgstr "Hosti nimi:" msgid "" "How about saving the sketch first \n" "before trying to rename it?" -msgstr "Kuidas oleks, kui salvestaks visandi \nenne nime muutmist?" +msgstr "Kuidas oleks, kui visandi enne nime\nmuutmist salvestaks?" #: Sketch.java:882 msgid "How very Borges of you" @@ -1144,8 +1191,8 @@ msgstr "MITTEKOMPATIIBEL" msgid "Ignore Case" msgstr "Tähesuuruse ignoreerimine" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "Vigase nimega teegi eiramine" #: Base.java:1436 @@ -1161,7 +1208,7 @@ msgid "" "disable this in the Preferences dialog.\n" "\n" "Save sketch and update its extension?" -msgstr "Arduino 1.0 versioonis muutus failide vaikelaiend – .pde\n-> .ino. Uued visandid (kaasa arvatud need, mida sa\nsalvestad „Salvesta kui“ käsuga) kasutavad uuemat laiendit.\nOlemasolevate visandite laiendit uuendatakse salvestamisel,\nkui selle saad eelistustes ka välja lülitada.\n\nKas salvestada visand ja uuendada selle laiendit?" +msgstr "Arduino 1.0 versioonis muutus failide vaikelaiend – .pde\n-> .ino. Uued visandid (kaasa arvatud need, mida sa\nsalvestad „Salvesta kui“ käsuga) kasutavad uuemat laiendit.\nOlemasolevate visandite laiendit uuendatakse salvestamisel,\nkuid selle saad eelistustes ka välja lülitada.\n\nKas salvestada visand ja uuendada selle laiendit?" #: ../../../../../app/src/processing/app/Editor.java:778 msgid "Include Library" @@ -1172,6 +1219,10 @@ msgstr "Lisa teek" msgid "Incorrect IDE installation folder" msgstr "Vigane IDE paigalduskataloog" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Suurenda fonti" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Suurenda taanet" @@ -1205,10 +1256,10 @@ msgstr "Paigaldatud" msgid "Installing boards..." msgstr "Plaatide paigaldamine ..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Teegi paigaldamine: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Teegi {0} versiooni {1} paigaldamine" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1234,6 +1285,17 @@ msgstr "„{0}“ kataloogist leiti vigane teek: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Vigane jutumärkide/ülakomade kasutamine: sulgevat [{0}] märki ei lietud." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Vigane teegi versioon '{0}' kataloogis {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Vigane versioon {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Itaalia" @@ -1260,16 +1322,16 @@ msgstr "Teekide haldus" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" -msgstr "Teek lisati su teekide hulka. Kontrolli „Lisa teek“ menüüd." +msgstr "Teek lisati su teekide hulka. Veendu selles „Lisa teek“ menüüs." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" -msgstr "Teek ei saa kasutada korraga „src“ ja „utility“ kaustu. Kontrolli üle {0}." +msgstr "Teek ei saa kasutada korraga „src“ ja „utility“ kaustu. Vaata {0} üle." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Teek on juba paigaldatud: {0} versioon {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Teegi {0} versioon {1} on juba paigaldatud" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1286,11 +1348,11 @@ msgstr "Seadete laadimine ..." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format msgid "Looking for recipes like {0}*{1}" -msgstr "Retseptide nagu {0}*{1} otsimine" +msgstr "Retseptide, nagu {0}*{1}, otsimine" #: ../../../processing/app/Sketch.java:1684 msgid "Low memory available, stability problems may occur." -msgstr "Mälu on väga vähe, võivad tekkida probleemid stabiilsusega." +msgstr "Vaba mälu on väga vähe ja seetõttu võib tekkida probleeme stabiilsusega." #: ../../../../../app/src/processing/app/Base.java:1168 msgid "Manage Libraries..." @@ -1380,7 +1442,7 @@ msgstr "Uus kaart" #: SerialMonitor.java:112 msgid "Newline" -msgstr "lisa NL (\\n)" +msgstr "Lisa NL (\\n)" #: EditorHeader.java:340 msgid "Next Tab" @@ -1465,7 +1527,7 @@ msgstr "Norra (BokmÃ¥l)" msgid "" "Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size " "for tips on reducing your footprint." -msgstr "Pole piisavalt mälu. Mälukasutuse vähendamise nippe leiad aadressilt http://www.arduino.cc/en/Guide/Troubleshooting#size" +msgstr "Mälu pole piisavalt. Mälukasutuse vähendamise nippe leiad aadressilt http://www.arduino.cc/en/Guide/Troubleshooting#size" #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 @@ -1686,10 +1748,10 @@ msgstr "Baasdokumentatsioon" msgid "Remove" msgstr "Eemalda" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Teegi eemaldamine: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Teegi {0} versiooni {1} eemaldamine" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1725,6 +1787,10 @@ msgstr "Asendus:" msgid "Retired" msgstr "Vananenud" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Kas proovime üleslaadimist mõne teise jadapordiga?" + #: Preferences.java:113 msgid "Romanian" msgstr "Rumeenia" @@ -1835,7 +1901,7 @@ msgstr "Jadapordi plotter" msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "See tarkvara versioon ei toeta jadapordi monitori kasutamist üle võrgupordi nagu {1} port {0}." #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" @@ -1848,12 +1914,15 @@ msgid "" " Serial Port menu?" msgstr "Jadaporti „{0}“ ei leitud. Kas menüüs Tööriistad -> Jadaport on valitud õige port?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Ühtegi jadaporti pole valitud." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Jadaport „{0}“ puudub.\nKas proovime mõnda teist porti?" +msgid "Serial port {0} not found." +msgstr "Jadaporti {0} ei leitud." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1876,6 +1945,10 @@ msgstr "Probleem seadetega" msgid "Show Sketch Folder" msgstr "Näita visandite kausta" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Näita ajatempleid" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Detailsem väljund:" @@ -2047,6 +2120,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "\"{0}\" peab asuma visandite kaustas \"{1}\".\nKas tekitan selle kausta ning liigutan faili sinna?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Teeki „{0}“ ei saa kasutada.\nTeegi kausta nimi peab algama tähe või numbriga ning sisaldama ainult tähti,\nnumbreid, sidekriipse, punkte ja alakriipse. Nime maksimaalne pikkus on 63 sümbolit." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2092,12 +2173,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Visandi kaust on haihtunud.\nPüüan samasse kohta uuesti salvestada,\nkuid kõik peale selle koodi on kadunud." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Visandi nimi on vaja ära muuta. Visandi nimes saavad olla ainult\nASCII tähed ja numbrid, kuid need ei saa alata numbriga. Samuti\npeavad need olema lühemad kui 64 sümbolit." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Visandi nime tuleb muuta.\nVisandi nimi peab algama tähe või numbriga ning sisaldama ainult tähti,\nnumbreid, sidekriipse, punkte ja alakriipse. Nime maksimaalne pikkus on 63 sümbolit." #: Base.java:259 msgid "" @@ -2114,6 +2195,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Valitud visandite kaustas on su IDE koopia.\nPalun vali oma visandite hoidmiseks mõni teine kaust." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Teema:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2236,7 +2321,7 @@ msgid "" "Unspecified platform, no launcher available.\n" "To enable opening URLs or folders, add a \n" "\"launcher=/path/to/app\" line to preferences.txt" -msgstr "Tundmatu platvorm, veebilehitseja puudub.\nVeebiaadresside avamiseks lisa\n\"launcher=/kaust/brauser\" rida preferences.txt faili." +msgstr "Tundmatu platvorm, info brauseri rakenduse kohta puudub.\nKui sa soovid URL-e või kaustu mõne rakendusega avada, lisa\n\"launcher=/asukoht/rakendus\" rida preferences.txt faili." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 @@ -2475,7 +2560,7 @@ msgstr "Sa unustasid oma visandid" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "Visandites on salvestamata muudatusi.\nSelle seade sisse lülitamiseks pead kõik muudatused salvestama." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2606,6 +2691,12 @@ msgstr "vigase fondi suuruse „{0}“ eiramine" msgid "name is null" msgstr "name on null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "Kataloogist {0} ei leitud ühtegi päisefaili (.h)" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu on null" @@ -2619,7 +2710,7 @@ msgstr "valitud jadaporti {0} ei eksisteeri või plaat on ühendamata" #: ../../../processing/app/Base.java:389 #, java-format msgid "unknown option: {0}" -msgstr "tundmatu valikparameeteer: {0}" +msgstr "tundmatu parameeteer: {0}" #: Preferences.java:391 msgid "upload" @@ -2691,22 +2782,22 @@ msgstr "{0}: Vigane argument --pref võtmele, see peaks olema vormingus „pref= msgid "" "{0}: Invalid board name, it should be of the form \"package:arch:board\" or " "\"package:arch:board:options\"" -msgstr "{0}: Vigane plaadi nimi. See peab olema vormingus „pakk:arhitektuur:plaat“ või „pakk:arhitektuur:plaat:valikparameetrid“" - -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Vigane parameeter plaadi „{2}“ valikparameetrile „{1}“" +msgstr "{0}: Vigane plaadi nimi. See peab olema vormingus „pakk:arhitektuur:plaat“ või „pakk:arhitektuur:plaat:parameetrid“" #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" -msgstr "{0}: Plaadi „{1}“ jaoks vigane valikparameeter" +msgstr "{0}: Plaadi „{1}“ jaoks vigane parameeter" #: ../../../processing/app/Base.java:502 #, java-format msgid "{0}: Invalid option, should be of the form \"name=value\"" -msgstr "{0}: Vigane valikparameeter, see peab olema vormingus „nimi=väärtus“" +msgstr "{0}: Vigane parameeter, see peab olema vormingus „nimi=väärtus“" + +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Vigane väärtus plaadi „{2}“ parameetrile „{1}“" #: ../../../processing/app/Base.java:486 #, java-format diff --git a/arduino-core/src/processing/app/i18n/Resources_et.properties b/arduino-core/src/processing/app/i18n/Resources_et.properties index fa6f9701821..00d5796eb13 100644 --- a/arduino-core/src/processing/app/i18n/Resources_et.properties +++ b/arduino-core/src/processing/app/i18n/Resources_et.properties @@ -16,14 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cougar , 2012 # Cougar , 2013 # Cristian Maglie , 2016 # Georg, 2014 -# Hasso Tepper , 2016 -# Lauri V\u00f5sandi , 2015 +# Hasso Tepper , 2016,2018-2019 +# d0fb82845e24c8a7bfd7dc19adbd26a7_a0669f4 <0e132a47bd8dd1a622a1f5718397d672_385>, 2015 +# d0fb82845e24c8a7bfd7dc19adbd26a7_a0669f4 <0e132a47bd8dd1a622a1f5718397d672_385>, 2015 # Triin Taveter , 2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:43+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Estonian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/et/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: et\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-09-04 17\:34+0000\nLast-Translator\: Hasso Tepper \nLanguage-Team\: Estonian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/et/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: et\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (vajab Arduino taask\u00e4ivitamist) @@ -43,7 +48,7 @@ 'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=\u2018Mouse\u2019 definitsiooni ei leitud. Kas su visandis on rida \u2018\#include \u2019? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information=Kataloog \u201earch\u201c pole enam toetatud. Lisainfo saamiseks vaata http\://goo.gl/gfFJzU . +'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information=Kataloog \u201earch\u201c pole enam toetatud. Lisainfot leiad aadressilt http\://goo.gl/gfFJzU . #: Preferences.java:478 (edit\ only\ when\ Arduino\ is\ not\ running)=(Arduino ei tohi selle faili muutmise ajal k\u00e4ia.) @@ -94,16 +99,16 @@ Add\ .ZIP\ Library...=Lisa .ZIP teek ... Add\ File...=Lisa fail ... #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -Additional\ Boards\ Manager\ URLs=Lisa URL-id plaatide halduseks +Additional\ Boards\ Manager\ URLs=Lisa-URL-id plaatide halduseks #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -Additional\ Boards\ Manager\ URLs\:\ =Lisa URL-id plaatide halduseks\: +Additional\ Boards\ Manager\ URLs\:\ =Lisa-URL-id plaatide halduseks\: #: ../../../../../app/src/processing/app/Preferences.java:161 Afrikaans=Afrikaani #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Kompileeritud baaspaki agressiivne puhverdamine #: ../../../processing/app/Preferences.java:96 Albanian=Albaania @@ -148,6 +153,10 @@ Archive\ sketch\ as\:=Visandi arhiveerimine #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Visandi arhiveerimine katkestatud. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Kompileeritud baaspaki arhiveermine (puhverdamine)\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Visandi arhiveerimine eba\u00f5nnestus kuna seda\nei saanud korralikult salvestada. @@ -276,7 +285,7 @@ Bootloader\ file\ specified\ but\ missing\:\ {0}=Alglaadur on m\u00e4\u00e4ratud Bosnian=Bosnia #: SerialMonitor.java:112 -Both\ NL\ &\ CR=lisa NL+CR (\\r\\n) +Both\ NL\ &\ CR=Lisa NL+CR (\\r\\n) #: Preferences.java:81 Browse=Sirvi @@ -300,14 +309,14 @@ Burn\ Bootloader=Kirjuta alglaadur Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Alglaaduri I/O plaadile kirjutamine (see v\u00f5ib v\u00f5tta m\u00f5ne minuti) ... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC ei kattu ja fail on rikutud. See v\u00f5ib olla ajutine probleem, proovi hiljem uuesti. +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC ei klapi ja fail on rikutud. See v\u00f5ib olla ajutine probleem, proovi hiljem uuesti. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}=Ainult \u00fcht neist saab korraga kasutada\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=V\u00e4list redaktorit ei saa kasutada #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -324,7 +333,7 @@ Cancel=Loobu Cannot\ specify\ any\ sketch\ files=\u00dchtegi visandi faili ei tohi m\u00e4\u00e4rata #: SerialMonitor.java:112 -Carriage\ return=lisa CR (\\r) +Carriage\ return=Lisa CR (\\r) #: Preferences.java:87 Catalan=Katalaani @@ -342,7 +351,7 @@ Chinese\ (Taiwan)=Hiina (Taiwan) Chinese\ (Taiwan)\ (Big5)=Hiina (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=T\u00fchjenda v\u00e4ljund #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Mitteametlik plaatide toe URL-ide nimekiri @@ -442,6 +451,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u201e{0}\u201c vana versiooni ei saan #, java-format Could\ not\ replace\ {0}={0} pole v\u00f5imalik asendada +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Eelistuste faili kirjutamine eba\u00f5nnestus\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Visandi arhiveerimine eba\u00f5nnestus @@ -472,12 +485,18 @@ Data\ Processing=Andmet\u00f6\u00f6tlus #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Andmete s\u00e4ilitamine +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=V\u00e4henda fonti + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=V\u00e4henda taanet #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Vaikev\u00e4\u00e4rtus +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Vaiketeema + #: EditorHeader.java:314 Sketch.java:591 Delete=Kustuta @@ -578,7 +597,7 @@ English\ (United\ Kingdom)=Inglise (Suurbritannia) Enter\ a\ comma\ separated\ list\ of\ urls=Sisesta komaga eraldatud URL-ide nimekiri. #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -Enter\ additional\ URLs,\ one\ for\ each\ row=Lisa URL-id sisesta iga\u00fcks omale reale +Enter\ additional\ URLs,\ one\ for\ each\ row=Lisa-URL-id sisesta iga\u00fcks omale reale #: Editor.java:1062 Environment=T\u00f6\u00f6keskkond @@ -609,6 +628,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Viga Arduino andmekausta leidmisel. #, java-format Error\ inside\ Serial.{0}()=Viga Serial.{0}() sees. +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Viga teema \u201e{0}\u201c laadimisel\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -623,12 +646,24 @@ Error\ opening\ serial\ port\ ''{0}''.=Viga jadapordi \u201e{0}\u201c avamisel. #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Viga jadapordi \u201e{0}\u201c avamisel. Proovi abi otsida dokumentatsioonist aadressil http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Viga teekide indeksi parsimisel\: {0}\nProovi men\u00fc\u00fcst avada teekide haldus ning teekide indeksit uuendada. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Viga teekide indeksi lugemisel\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Viga pakkide indeksi kataloogi lugemisel\: {0}\n(v\u00f5ib olla on see \u00f5iguste puudumise probleem?) + #: Preferences.java:277 Error\ reading\ preferences=Viga eelistuste lugemisel #: Preferences.java:279 #, java-format -Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ restart\ Arduino.=Viga eelistuste faili lugemisel. Palun kustuta \u201e{0}\u201c (v\u00f5i t\u00f5sta\nsee mujale) ning k\u00e4ivita Arduino uuesti. +Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ restart\ Arduino.=Viga eelistuste faili lugemisel. Palun kustuta \u201e{0}\u201c (v\u00f5i liiguta\nsee mujale) ning k\u00e4ivita Arduino uuesti. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 @@ -648,6 +683,9 @@ Error\ while\ burning\ bootloader.=Viga alglaaduri kirjutamisel. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Viga alglaaduri kirjutamisel\: \u201e{0}\u201c konfiguratsiooniparameeter puudub +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Viga alglaaduri kirjutamisel\: palun vali jadaport. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Viga kompileerimisel\: \u201e{0}\u201c konfiguratsiooniparameeter puudub @@ -676,9 +714,6 @@ Error\ while\ verifying/uploading=Viga kontrollimisel/\u00fcleslaadimisel #: Preferences.java:93 Estonian=Eesti -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Eesti (Eesti) - #: Editor.java:516 Examples=N\u00e4ited @@ -724,7 +759,7 @@ File\ name\ {0}\ is\ invalid\:\ ignored=Failinimi {0} pole korrektne\: faili ign Filipino=Filipiini #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 -Filter\ your\ search...=Otsingu filtreerimine ... +Filter\ your\ search...=Otsingufilter ... #: FindReplace.java:124 FindReplace.java:127 Find=Otsi @@ -815,7 +850,7 @@ Hindi=Hindi Host\ name\:=Hosti nimi\: #: Sketch.java:295 -How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Kuidas oleks, kui salvestaks visandi \nenne nime muutmist? +How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Kuidas oleks, kui visandi enne nime\nmuutmist salvestaks? #: Sketch.java:882 How\ very\ Borges\ of\ you=Maakera sees on maakera @@ -829,14 +864,14 @@ INCOMPATIBLE=MITTEKOMPATIIBEL #: FindReplace.java:96 Ignore\ Case=T\u00e4hesuuruse ignoreerimine -#: Base.java:1058 -Ignoring\ bad\ library\ name=Vigase nimega teegi eiramine +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Vigase nimega teegi eiramine #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Vigase nimega visandi eiramine #: ../../../processing/app/Sketch.java:736 -In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=Arduino 1.0 versioonis muutus failide vaikelaiend \u2013 .pde\n-> .ino. Uued visandid (kaasa arvatud need, mida sa\nsalvestad \u201eSalvesta kui\u201c k\u00e4suga) kasutavad uuemat laiendit.\nOlemasolevate visandite laiendit uuendatakse salvestamisel,\nkui selle saad eelistustes ka v\u00e4lja l\u00fclitada.\n\nKas salvestada visand ja uuendada selle laiendit? +In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=Arduino 1.0 versioonis muutus failide vaikelaiend \u2013 .pde\n-> .ino. Uued visandid (kaasa arvatud need, mida sa\nsalvestad \u201eSalvesta kui\u201c k\u00e4suga) kasutavad uuemat laiendit.\nOlemasolevate visandite laiendit uuendatakse salvestamisel,\nkuid selle saad eelistustes ka v\u00e4lja l\u00fclitada.\n\nKas salvestada visand ja uuendada selle laiendit? #: ../../../../../app/src/processing/app/Editor.java:778 Include\ Library=Lisa teek @@ -845,6 +880,9 @@ Include\ Library=Lisa teek #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Vigane IDE paigalduskataloog +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Suurenda fonti + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Suurenda taanet @@ -871,9 +909,9 @@ Installed=Paigaldatud #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Plaatide paigaldamine ... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Teegi paigaldamine\: {0} +Installing\ library\:\ {0}\:{1}=Teegi {0} versiooni {1} paigaldamine #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -894,6 +932,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u201e{0}\u201c kataloogist leiti vigane #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Vigane jutum\u00e4rkide/\u00fclakomade kasutamine\: sulgevat [{0}] m\u00e4rki ei lietud. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Vigane teegi versioon '{0}' kataloogis {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Vigane versioon {0} + #: Preferences.java:102 Italian=Itaalia @@ -913,14 +960,14 @@ Latvian=L\u00e4ti Library\ Manager=Teekide haldus #: ../../../../../app/src/processing/app/Base.java:2349 -Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Teek lisati su teekide hulka. Kontrolli \u201eLisa teek\u201c men\u00fc\u00fcd. +Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Teek lisati su teekide hulka. Veendu selles \u201eLisa teek\u201c men\u00fc\u00fcs. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Teek ei saa kasutada korraga \u201esrc\u201c ja \u201eutility\u201c kaustu. Kontrolli \u00fcle {0}. +Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Teek ei saa kasutada korraga \u201esrc\u201c ja \u201eutility\u201c kaustu. Vaata {0} \u00fcle. -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Teek on juba paigaldatud\: {0} versioon {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Teegi {0} versioon {1} on juba paigaldatud #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Reanumber\: @@ -933,10 +980,10 @@ Loading\ configuration...=Seadete laadimine ... #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format -Looking\ for\ recipes\ like\ {0}*{1}=Retseptide nagu {0}*{1} otsimine +Looking\ for\ recipes\ like\ {0}*{1}=Retseptide, nagu {0}*{1}, otsimine #: ../../../processing/app/Sketch.java:1684 -Low\ memory\ available,\ stability\ problems\ may\ occur.=M\u00e4lu on v\u00e4ga v\u00e4he, v\u00f5ivad tekkida probleemid stabiilsusega. +Low\ memory\ available,\ stability\ problems\ may\ occur.=Vaba m\u00e4lu on v\u00e4ga v\u00e4he ja seet\u00f5ttu v\u00f5ib tekkida probleeme stabiilsusega. #: ../../../../../app/src/processing/app/Base.java:1168 Manage\ Libraries...=Halda teeke ... @@ -1004,7 +1051,7 @@ New=Uus New\ Tab=Uus kaart #: SerialMonitor.java:112 -Newline=lisa NL (\\n) +Newline=Lisa NL (\\n) #: EditorHeader.java:340 Next\ Tab=J\u00e4rgmine kaart @@ -1067,7 +1114,7 @@ None=\u00dcldse mitte Norwegian\ Bokm\u00e5l=Norra (Bokm\u00e5l) #: ../../../processing/app/Sketch.java:1656 -Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=Pole piisavalt m\u00e4lu. M\u00e4lukasutuse v\u00e4hendamise nippe leiad aadressilt http\://www.arduino.cc/en/Guide/Troubleshooting\#size +Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=M\u00e4lu pole piisavalt. M\u00e4lukasutuse v\u00e4hendamise nippe leiad aadressilt http\://www.arduino.cc/en/Guide/Troubleshooting\#size #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 @@ -1233,9 +1280,9 @@ Reference=Baasdokumentatsioon #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Eemalda -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Teegi eemaldamine\: {0} +Removing\ library\:\ {0}\:{1}=Teegi {0} versiooni {1} eemaldamine #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1263,6 +1310,9 @@ Replace\ with\:=Asendus\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Vananenud +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Kas proovime \u00fcleslaadimist m\u00f5ne teise jadapordiga? + #: Preferences.java:113 Romanian=Rumeenia @@ -1345,7 +1395,7 @@ Serial\ Plotter=Jadapordi plotter #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=See tarkvara versioon ei toeta jadapordi monitori kasutamist \u00fcle v\u00f5rgupordi nagu {1} port {0}. #: ../../../../../app/src/processing/app/Editor.java:2516 Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Jadapordi monitori ei saa kasutada, kui plotter on avatud. @@ -1354,9 +1404,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Jadapordi monitori ei #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Jadaporti \u201e{0}\u201c ei leitud. Kas men\u00fc\u00fcs T\u00f6\u00f6riistad -> Jadaport on valitud \u00f5ige port? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=\u00dchtegi jadaporti pole valitud. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Jadaport \u201e{0}\u201c puudub.\nKas proovime m\u00f5nda teist porti? +Serial\ port\ {0}\ not\ found.=Jadaporti {0} ei leitud. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Jadapordid @@ -1374,6 +1428,9 @@ Settings\ issues=Probleem seadetega #: Editor.java:641 Show\ Sketch\ Folder=N\u00e4ita visandite kausta +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=N\u00e4ita ajatempleid + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Detailsem v\u00e4ljund\: @@ -1493,6 +1550,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?="{0}" peab asuma visandite kaustas "{1}".\nKas tekitan selle kausta ning liigutan faili sinna? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Teeki \u201e{0}\u201c ei saa kasutada.\nTeegi kausta nimi peab algama t\u00e4he v\u00f5i numbriga ning sisaldama ainult t\u00e4hti,\nnumbreid, sidekriipse, punkte ja alakriipse. Nime maksimaalne pikkus on 63 s\u00fcmbolit. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Teeki \u201e{0}\u201c ei saa kasutada.\nTeekide nimed tohivad sisaldada ainult ASCII t\u00e4hti ja\nnumbreid ning peavad algama t\u00e4hega. @@ -1517,8 +1578,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Visandis on \u201e{0}\u201 #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Visandi kaust on haihtunud.\nP\u00fc\u00fcan samasse kohta uuesti salvestada,\nkuid k\u00f5ik peale selle koodi on kadunud. -#: ../../../processing/app/Sketch.java:2028 -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.=Visandi nimi on vaja \u00e4ra muuta. Visandi nimes saavad olla ainult\nASCII t\u00e4hed ja numbrid, kuid need ei saa alata numbriga. Samuti\npeavad need olema l\u00fchemad kui 64 s\u00fcmbolit. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Visandi nime tuleb muuta.\nVisandi nimi peab algama t\u00e4he v\u00f5i numbriga ning sisaldama ainult t\u00e4hti,\nnumbreid, sidekriipse, punkte ja alakriipse. Nime maksimaalne pikkus on 63 s\u00fcmbolit. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Visandite kausta pole enam.\nArduino hakkab kasutama vaikimisi kausta ning\nvajadusel tekitab sinna uue visandite kausta. @@ -1526,6 +1587,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Valitud visandite kaustas on su IDE koopia.\nPalun vali oma visandite hoidmiseks m\u00f5ni teine kaust. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Teema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Seda teeki teekide halduris pole ja sealt seda uuesti paigaldada ei saa.\nOled sa kindel, et soovid selle teegi kustutada? @@ -1613,7 +1677,7 @@ Unknown\ board=Tundmatu plaat Unknown\ sketch\ file\ extension\:\ {0}=Tundmatu visandi faili laiend\: {0} #: Platform.java:168 -Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=Tundmatu platvorm, veebilehitseja puudub.\nVeebiaadresside avamiseks lisa\n"launcher\=/kaust/brauser" rida preferences.txt faili. +Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=Tundmatu platvorm, info brauseri rakenduse kohta puudub.\nKui sa soovid URL-e v\u00f5i kaustu m\u00f5ne rakendusega avada, lisa\n"launcher\=/asukoht/rakendus" rida preferences.txt faili. #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 @@ -1786,7 +1850,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=Sa unustasid oma visandid #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Visandites on salvestamata muudatusi.\nSelle seade sisse l\u00fclitamiseks pead k\u00f5ik muudatused salvestama. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=Sa vajutasid \u201e{0}\u201c, kuid midagi ei saadetud. Peaksid \u00e4kki real\u00f5pu vormingu valima? @@ -1860,6 +1924,11 @@ ignoring\ invalid\ font\ size\ {0}=vigase fondi suuruse \u201e{0}\u201c eiramine #: Editor.java:936 Editor.java:943 name\ is\ null=name on null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=Kataloogist {0} ei leitud \u00fchtegi p\u00e4isefaili (.h) + #: Editor.java:932 serialMenu\ is\ null=serialMenu on null @@ -1869,7 +1938,7 @@ the\ selected\ serial\ port\ {0}\ does\ not\ exist\ or\ your\ board\ is\ not\ co #: ../../../processing/app/Base.java:389 #, java-format -unknown\ option\:\ {0}=tundmatu valikparameeteer\: {0} +unknown\ option\:\ {0}=tundmatu parameeteer\: {0} #: Preferences.java:391 upload=\u00fcleslaadimise ajal @@ -1925,19 +1994,19 @@ version\ {0}=versioon {0} #: ../../../processing/app/Base.java:476 #, java-format -{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Vigane plaadi nimi. See peab olema vormingus \u201epakk\:arhitektuur\:plaat\u201c v\u00f5i \u201epakk\:arhitektuur\:plaat\:valikparameetrid\u201c - -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Vigane parameeter plaadi \u201e{2}\u201c valikparameetrile \u201e{1}\u201c +{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Vigane plaadi nimi. See peab olema vormingus \u201epakk\:arhitektuur\:plaat\u201c v\u00f5i \u201epakk\:arhitektuur\:plaat\:parameetrid\u201c #: ../../../processing/app/Base.java:507 #, java-format -{0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Plaadi \u201e{1}\u201c jaoks vigane valikparameeter +{0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Plaadi \u201e{1}\u201c jaoks vigane parameeter #: ../../../processing/app/Base.java:502 #, java-format -{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Vigane valikparameeter, see peab olema vormingus \u201enimi\=v\u00e4\u00e4rtus\u201c +{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Vigane parameeter, see peab olema vormingus \u201enimi\=v\u00e4\u00e4rtus\u201c + +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Vigane v\u00e4\u00e4rtus plaadi \u201e{2}\u201c parameetrile \u201e{1}\u201c #: ../../../processing/app/Base.java:486 #, java-format diff --git a/arduino-core/src/processing/app/i18n/Resources_et_EE.po b/arduino-core/src/processing/app/i18n/Resources_et_EE.po deleted file mode 100644 index dfaac6e6dce..00000000000 --- a/arduino-core/src/processing/app/i18n/Resources_et_EE.po +++ /dev/null @@ -1,2730 +0,0 @@ -# English translations for PACKAGE package. -# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Cougar , 2012 -# Cougar , 2013 -# Cristian Maglie , 2016 -# Georg, 2014 -# Georg, 2014 -# Hasso Tepper , 2016 -# Lauri Võsandi , 2015 -# Triin Taveter , 2016 -msgid "" -msgstr "" -"Project-Id-Version: Arduino IDE 1.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:37+0000\n" -"Last-Translator: Cristian Maglie \n" -"Language-Team: Estonian (Estonia) (http://www.transifex.com/mbanzi/arduino-ide-15/language/et_EE/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: et_EE\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: Preferences.java:358 Preferences.java:374 -msgid " (requires restart of Arduino)" -msgstr " (vajab Arduino taaskäivitamist)" - -#: ../../../processing/app/debug/Compiler.java:529 -#, java-format -msgid " Not used: {0}" -msgstr " Kasutamata: {0}" - -#: ../../../processing/app/debug/Compiler.java:525 -#, java-format -msgid " Used: {0}" -msgstr " Kasutusel: {0}" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -msgid "" -"'Keyboard' not found. Does your sketch include the line '#include " -"'?" -msgstr "‘Keyboard’ definitsiooni ei leitud. Kas su visandis on rida ‘#include ’?" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -msgid "" -"'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "‘Mouse’ definitsiooni ei leitud. Kas su visandis on rida ‘#include ’?" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -msgid "" -"'arch' folder is no longer supported! See http://goo.gl/gfFJzU for more " -"information" -msgstr "Kataloog „arch“ pole enam toetatud. Lisainfo saamiseks vaata http://goo.gl/gfFJzU ." - -#: Preferences.java:478 -msgid "(edit only when Arduino is not running)" -msgstr "(Arduino ei tohi selle faili muutmise ajal käia.)" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -msgid "(legacy)" -msgstr "(iganenud)" - -#: ../../../processing/app/helpers/CommandlineParser.java:149 -msgid "--curdir no longer supported" -msgstr "--curdir võti pole enam toetatud" - -#: ../../../processing/app/Base.java:468 -msgid "" -"--verbose, --verbose-upload and --verbose-build can only be used together " -"with --verify or --upload" -msgstr "--verbose, --verbose-upload ja --verbose-build võtmeid saab kasutada ainult koos --verify või --upload võtmetega." - -#: Sketch.java:746 -msgid ".pde -> .ino" -msgstr ".pde -> .ino" - -#: Editor.java:2053 -msgid "" -" Do you " -"want to save changes to this sketch
before closing?

If you don't " -"save, your changes will be lost." -msgstr " Kas soovid muudatused enne sulgemist salvestada?

Salvestamata muudatused lähevad kaotsi." - -#: Editor.java:2169 -#, java-format -msgid "A folder named \"{0}\" already exists. Can't open sketch." -msgstr "Kaust „{0}“ on juba olemas. Visandit ei saa avada." - -#: Base.java:2690 -#, java-format -msgid "A library named {0} already exists" -msgstr "Teek „{0}“ on juba olemas." - -#: UpdateCheck.java:103 -msgid "" -"A new version of Arduino is available,\n" -"would you like to visit the Arduino download page?" -msgstr "Arduino uuem versioon on saadaval.\nSoovid sa allalaadimise lehe avada?" - -#: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 -#, java-format -msgid "A newer {0} package is available" -msgstr "Pakist {0} on uus versioon saadaval" - -#: ../../../../../app/src/processing/app/Base.java:2307 -msgid "A subfolder of your sketchbook is not a valid library" -msgstr "Su visandite kausta alamkaust pole korrektne teek." - -#: Editor.java:1116 -msgid "About Arduino" -msgstr "Arduino info" - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -msgid "Acoli" -msgstr "Akoli" - -#: ../../../../../app/src/processing/app/Base.java:1177 -msgid "Add .ZIP Library..." -msgstr "Lisa .ZIP teek ..." - -#: Editor.java:650 -msgid "Add File..." -msgstr "Lisa fail ..." - -#: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -msgid "Additional Boards Manager URLs" -msgstr "Lisa URL-id plaatide halduseks" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -msgid "Additional Boards Manager URLs: " -msgstr "Lisa URL-id plaatide halduseks: " - -#: ../../../../../app/src/processing/app/Preferences.java:161 -msgid "Afrikaans" -msgstr "Afrikaani" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -msgid "Aggressively cache compiled core" -msgstr "" - -#: ../../../processing/app/Preferences.java:96 -msgid "Albanian" -msgstr "Albaania" - -#: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -msgid "All" -msgstr "Kõik" - -#: tools/FixEncoding.java:77 -msgid "" -"An error occurred while trying to fix the file encoding.\n" -"Do not attempt to save this sketch as it may overwrite\n" -"the old version. Use Open to re-open the sketch and try again.\n" -msgstr "Viga faili kodeeringu parandamise katsel. Ära proovi\nseda visandit salvestada kuna see võib olemasoleva\nüle kirjutada. Ava visand uuesti ning proovi siis uuesti.\n" - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -msgid "An error occurred while updating libraries index!" -msgstr "Viga teekide indeksi uuendamisel." - -#: ../../../processing/app/BaseNoGui.java:528 -msgid "An error occurred while uploading the sketch" -msgstr "Viga visandi üleslaadimisel" - -#: ../../../processing/app/BaseNoGui.java:506 -#: ../../../processing/app/BaseNoGui.java:551 -#: ../../../processing/app/BaseNoGui.java:554 -msgid "An error occurred while verifying the sketch" -msgstr "Viga visandi kontrollimisel" - -#: ../../../processing/app/BaseNoGui.java:521 -msgid "An error occurred while verifying/uploading the sketch" -msgstr "Viga visandi kontrollimisel/üleslaadimisel" - -#: Base.java:228 -msgid "" -"An unknown error occurred while trying to load\n" -"platform-specific code for your machine." -msgstr "Sinu masina platvormipõhise koodi laadimisel\ntekkis tundmatu viga." - -#: Preferences.java:85 -msgid "Arabic" -msgstr "Araabia" - -#: Preferences.java:86 -msgid "Aragonese" -msgstr "´aragoni" - -#: tools/Archiver.java:48 -msgid "Archive Sketch" -msgstr "Arhiveeri visand" - -#: tools/Archiver.java:109 -msgid "Archive sketch as:" -msgstr "Visandi arhiveerimine" - -#: tools/Archiver.java:139 -msgid "Archive sketch canceled." -msgstr "Visandi arhiveerimine katkestatud." - -#: tools/Archiver.java:75 -msgid "" -"Archiving the sketch has been canceled because\n" -"the sketch couldn't save properly." -msgstr "Visandi arhiveerimine ebaõnnestus kuna seda\nei saanud korralikult salvestada." - -#: ../../../../../arduino-core/src/processing/app/I18n.java:24 -msgid "Arduino" -msgstr "Arduino" - -#: ../../../processing/app/I18n.java:83 -msgid "Arduino ARM (32-bits) Boards" -msgstr "Arduino ARM (32 bit) plaadid" - -#: ../../../processing/app/I18n.java:82 -msgid "Arduino AVR Boards" -msgstr "Arduino AVR plaadid" - -#: Editor.java:2137 -msgid "" -"Arduino can only open its own sketches\n" -"and other files ending in .ino or .pde" -msgstr "Arduino saab avada ainult oma visandeid\nja teisi .ino või .pde laiendiga faile." - -#: Base.java:1682 -msgid "" -"Arduino cannot run because it could not\n" -"create a folder to store your settings." -msgstr "Arduinot ei saa käivitada kuna seadete kausta\nloomine ei õnnestunud." - -#: Base.java:1889 -msgid "" -"Arduino cannot run because it could not\n" -"create a folder to store your sketchbook." -msgstr "Arduinot ei saa käivitada kuna visandite kausta\nloomine ei õnnestunud." - -#: ../../../processing/app/EditorStatus.java:471 -msgid "Arduino: " -msgstr "Arduino: " - -#: Sketch.java:588 -#, java-format -msgid "Are you sure you want to delete \"{0}\"?" -msgstr "Oled kindel, et soovid „{0}“ kustutada?" - -#: Sketch.java:587 -msgid "Are you sure you want to delete this sketch?" -msgstr "Oled kindel, et soovid selle visandi kustutada?" - -#: ../../../processing/app/Base.java:356 -msgid "Argument required for --board" -msgstr "--board võti vajab argumenti" - -#: ../../../processing/app/Base.java:363 -msgid "Argument required for --port" -msgstr "--port võti vajab argumenti" - -#: ../../../processing/app/Base.java:377 -msgid "Argument required for --pref" -msgstr "--pref võti vajab argumenti" - -#: ../../../processing/app/Base.java:384 -msgid "Argument required for --preferences-file" -msgstr "--preferences-file võti vajab argumenti" - -#: ../../../processing/app/helpers/CommandlineParser.java:76 -#: ../../../processing/app/helpers/CommandlineParser.java:83 -#, java-format -msgid "Argument required for {0}" -msgstr "{0} vajab argumenti" - -#: ../../../processing/app/Preferences.java:137 -msgid "Armenian" -msgstr "Armeenia" - -#: ../../../processing/app/Preferences.java:138 -msgid "Asturian" -msgstr "Astuuria" - -#: ../../../processing/app/debug/Compiler.java:145 -msgid "Authorization required" -msgstr "Autoriseerimine on vajalik" - -#: tools/AutoFormat.java:91 -msgid "Auto Format" -msgstr "Automaatvormindus" - -#: tools/AutoFormat.java:944 -msgid "Auto Format finished." -msgstr "Automaatvormindus tehtud." - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 -msgid "Auto-detect proxy settings" -msgstr "Proxy seadete automaatne tuvastus" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 -msgid "Automatic" -msgstr "Automaatne" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 -msgid "Automatic proxy configuration URL:" -msgstr "Proxy automaatse seadistamise URL:" - -#: SerialMonitor.java:110 -msgid "Autoscroll" -msgstr "Automaatne kerimine" - -#: Editor.java:2619 -#, java-format -msgid "Bad error line: {0}" -msgstr "Viga real: {0}" - -#: Editor.java:2136 -msgid "Bad file selected" -msgstr "Vigane fail valitud" - -#: ../../../processing/app/Preferences.java:149 -msgid "Basque" -msgstr "Baski" - -#: ../../../processing/app/Preferences.java:139 -msgid "Belarusian" -msgstr "Valgevene" - -#: ../../../processing/app/Base.java:1433 -#: ../../../processing/app/Editor.java:707 -msgid "Board" -msgstr "Plaat" - -#: ../../../../../app//src/processing/app/Editor.java:2824 -msgid "Board Info" -msgstr "Plaadi info" - -#: ../../../../../app/src/processing/app/Editor.java:2545 -#: ../../../../../app/src/processing/app/Editor.java:2641 -#, java-format -msgid "Board at {0} is not available" -msgstr "„{0}“ pordis pole plaati." - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 -#, java-format -msgid "Board {0} (platform {1}, package {2}) is unknown" -msgstr "Plaat {0} (platvorm {1}, pakk {2}) on tundmatu" - -#: ../../../processing/app/debug/TargetBoard.java:42 -#, java-format -msgid "" -"Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to:" -" {3}" -msgstr "Plaat {0}:{1}:{2} ei määra „build.board“ eelistust. See seatakse väärtusele: {3}" - -#: ../../../processing/app/EditorStatus.java:472 -msgid "Board: " -msgstr "Plaat: " - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -msgid "Boards Manager" -msgstr "Plaatide haldus" - -#: ../../../../../app/src/processing/app/Base.java:1320 -msgid "Boards Manager..." -msgstr "Plaatide haldus ..." - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 -msgid "Boards included in this package:" -msgstr "Selles pakis olevad plaadid:" - -#: ../../../processing/app/debug/Compiler.java:1273 -#, java-format -msgid "Bootloader file specified but missing: {0}" -msgstr "Alglaadur on määratud, kuid see puudub: {0}" - -#: ../../../processing/app/Preferences.java:140 -msgid "Bosnian" -msgstr "Bosnia" - -#: SerialMonitor.java:112 -msgid "Both NL & CR" -msgstr "lisa NL+CR (\\r\\n)" - -#: Preferences.java:81 -msgid "Browse" -msgstr "Sirvi" - -#: ../../../processing/app/Sketch.java:1530 -msgid "Build options changed, rebuilding all" -msgstr "Kompileerimise seaded on muutunud, kõik kompileeritakse ringi." - -#: ../../../../../app/src/processing/app/Base.java:1210 -msgid "Built-in Examples" -msgstr "Kaasasolevad näited" - -#: ../../../processing/app/Preferences.java:80 -msgid "Bulgarian" -msgstr "Bulgaaria" - -#: ../../../processing/app/Preferences.java:141 -msgid "Burmese (Myanmar)" -msgstr "Birma (Myanmar)" - -#: Editor.java:708 -msgid "Burn Bootloader" -msgstr "Kirjuta alglaadur" - -#: Editor.java:2504 -msgid "Burning bootloader to I/O Board (this may take a minute)..." -msgstr "Alglaaduri I/O plaadile kirjutamine (see võib võtta mõne minuti) ..." - -#: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -msgid "" -"CRC doesn't match, file is corrupted. It may be a temporary problem, please " -"retry later." -msgstr "CRC ei kattu ja fail on rikutud. See võib olla ajutine probleem, proovi hiljem uuesti." - -#: ../../../processing/app/Base.java:379 -#, java-format -msgid "Can only pass one of: {0}" -msgstr "Ainult üht neist saab korraga kasutada: {0}" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -msgid "Can't enable external editor" -msgstr "" - -#: ../../../processing/app/BaseNoGui.java:504 -#: ../../../processing/app/BaseNoGui.java:549 -msgid "Can't find the sketch in the specified path" -msgstr "Määratud asukohast ei leitud visandit." - -#: ../../../processing/app/Preferences.java:92 -msgid "Canadian French" -msgstr "Prantsuse (Kanada)" - -#: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 -#: Editor.java:2064 Editor.java:2145 Editor.java:2465 -msgid "Cancel" -msgstr "Loobu" - -#: ../../../processing/app/Base.java:465 -msgid "Cannot specify any sketch files" -msgstr "Ühtegi visandi faili ei tohi määrata" - -#: SerialMonitor.java:112 -msgid "Carriage return" -msgstr "lisa CR (\\r)" - -#: Preferences.java:87 -msgid "Catalan" -msgstr "Katalaani" - -#: Preferences.java:419 -msgid "Check for updates on startup" -msgstr "Uuenduste kontroll käivitamisel" - -#: ../../../processing/app/Preferences.java:142 -msgid "Chinese (China)" -msgstr "Hiina (Hiina)" - -#: ../../../processing/app/Preferences.java:144 -msgid "Chinese (Taiwan)" -msgstr "Hiina (Taiwan)" - -#: ../../../processing/app/Preferences.java:143 -msgid "Chinese (Taiwan) (Big5)" -msgstr "Hiina (Taiwan) (Big5)" - -#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -msgid "Clear output" -msgstr "" - -#: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -msgid "Click for a list of unofficial boards support URLs" -msgstr "Mitteametlik plaatide toe URL-ide nimekiri" - -#: Editor.java:521 Editor.java:2024 -msgid "Close" -msgstr "Sulge" - -#: Editor.java:1208 Editor.java:2749 -msgid "Comment/Uncomment" -msgstr "Lisa/eemalda kommentaar" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:30 -msgid "Communication" -msgstr "Side" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -msgid "Compiler warnings: " -msgstr "Kompilaatori hoiatused: " - -#: Sketch.java:1608 Editor.java:1890 -msgid "Compiling sketch..." -msgstr "Visandi kompileerimine ..." - -#: ../../../../../arduino-core/src/processing/app/I18n.java:27 -msgid "Contributed" -msgstr "Kolmandate osapoolte" - -#: Editor.java:1157 Editor.java:2707 -msgid "Copy" -msgstr "Kopeeri" - -#: Editor.java:1177 Editor.java:2723 -msgid "Copy as HTML" -msgstr "Kopeeri HTML-ina" - -#: ../../../processing/app/EditorStatus.java:455 -msgid "Copy error messages" -msgstr "Kopeeri veateade" - -#: Editor.java:1165 Editor.java:2715 -msgid "Copy for Forum" -msgstr "Kopeeri foorumi jaoks" - -#: Sketch.java:1089 -#, java-format -msgid "Could not add ''{0}'' to the sketch." -msgstr "„{0}“ ei saa visandisse lisada." - -#: Editor.java:2188 -msgid "Could not copy to a proper location." -msgstr "Ettenähtud kohta ei saa kopeerida." - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:342 -#, java-format -msgid "Could not create directory \"{0}\"" -msgstr "Kataloogi „{0}“ ei saa luua" - -#: Editor.java:2179 -msgid "Could not create the sketch folder." -msgstr "Visandi kausta pole võimalik luua." - -#: Editor.java:2206 -msgid "Could not create the sketch." -msgstr "Visandit ei saa luua." - -#: Sketch.java:617 -#, java-format -msgid "Could not delete \"{0}\"." -msgstr "„{0}“ pole võimalik kustutada." - -#: Sketch.java:1066 -#, java-format -msgid "Could not delete the existing ''{0}'' file." -msgstr "Olemasolevat faili „{0}“ ei saa kustutada." - -#: ../../../processing/app/debug/TargetPlatform.java:74 -#, java-format -msgid "Could not find boards.txt in {0}. Is it pre-1.5?" -msgstr "„{0}“ kaustast ei leitud boards.txt faili. On see pärit 1.5 eelsest ajast?" - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:282 -#, java-format -msgid "Could not find tool {0}" -msgstr "Töövahendit {0} ei leitud" - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:278 -#, java-format -msgid "Could not find tool {0} from package {1}" -msgstr "Pakist {1} ei leitud töövahendit {0}" - -#: Base.java:1934 -#, java-format -msgid "" -"Could not open the URL\n" -"{0}" -msgstr "URL-i avamine ebaõnnestus\n{0}" - -#: Base.java:1958 -#, java-format -msgid "" -"Could not open the folder\n" -"{0}" -msgstr "Kausta avamine ebaõnnestus\n{0}" - -#: Sketch.java:1769 -msgid "" -"Could not properly re-save the sketch. You may be in trouble at this point,\n" -"and it might be time to copy and paste your code to another text editor." -msgstr "Visandi uuesti salvestamine ebaõnnestus. Siin on tegemist tõsise probleemiga.\nProovi kopeerida oma kood mõnda teisse tekstiredaktorisse." - -#: Sketch.java:1768 -msgid "Could not re-save sketch" -msgstr "Visandi uuesti salvestamine ebaõnnestus" - -#: Theme.java:52 -msgid "" -"Could not read color theme settings.\n" -"You'll need to reinstall Arduino." -msgstr "Värviteema seadeid pole võimalik lugeda.\nSa pead Arduino uuesti paigaldama." - -#: Preferences.java:219 -msgid "" -"Could not read default settings.\n" -"You'll need to reinstall Arduino." -msgstr "Vaikeseadeid pole võimalik avada.\nSa pead Arduino uuesti paigaldama." - -#: Base.java:2482 -#, java-format -msgid "Could not remove old version of {0}" -msgstr "„{0}“ vana versiooni ei saanud eemaldada" - -#: Base.java:2492 -#, java-format -msgid "Could not replace {0}" -msgstr "{0} pole võimalik asendada" - -#: tools/Archiver.java:74 -msgid "Couldn't archive sketch" -msgstr "Visandi arhiveerimine ebaõnnestus" - -#: Sketch.java:1647 -msgid "Couldn't determine program size: {0}" -msgstr "Programmi suurust ei saanud kindlaks teha: {0}" - -#: Sketch.java:616 -msgid "Couldn't do it" -msgstr "Ei saanud seda teha" - -#: debug/BasicUploader.java:209 -msgid "" -"Couldn't find a Board on the selected port. Check that you have the correct " -"port selected. If it is correct, try pressing the board's reset button " -"after initiating the upload." -msgstr "Valitud pordist plaati ei leitud. Kontrolli, et valitud oleks õige port. Kui port on õige, proovi kohe pärast üleslaadimise alustamist plaadi RESET nuppu vajutada." - -#: ../../../processing/app/Preferences.java:82 -msgid "Croatian" -msgstr "Horvaatia" - -#: Editor.java:1149 Editor.java:2699 -msgid "Cut" -msgstr "Lõika" - -#: ../../../../../app/src/processing/app/Preferences.java:119 -msgid "Czech (Czech Republic)" -msgstr "Tšehhi (Tšehhi Vabariik)" - -#: ../../../../../app/src/processing/app/Preferences.java:120 -msgid "Danish (Denmark)" -msgstr "Taani (Taani)" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:36 -msgid "Data Processing" -msgstr "Andmetöötlus" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:35 -msgid "Data Storage" -msgstr "Andmete säilitamine" - -#: Editor.java:1224 Editor.java:2765 -msgid "Decrease Indent" -msgstr "Vähenda taanet" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 -msgid "Default" -msgstr "Vaikeväärtus" - -#: EditorHeader.java:314 Sketch.java:591 -msgid "Delete" -msgstr "Kustuta" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:33 -msgid "Device Control" -msgstr "Seadmete juhtimine" - -#: debug/Uploader.java:199 -msgid "" -"Device is not responding, check the right serial port is selected or RESET " -"the board right before exporting" -msgstr "Seade ei vasta. Kontrolli, et valitud oleks õige jadaport või vajuta enne eksportimist RESET nuppu" - -#: tools/FixEncoding.java:57 -msgid "Discard all changes and reload sketch?" -msgstr "Unusta kõik muudatused ning laadi uuesti?" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:29 -msgid "Display" -msgstr "Ekraanid" - -#: ../../../processing/app/Preferences.java:438 -msgid "Display line numbers" -msgstr "Reanumbrite näitamine" - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 -#, java-format -msgid "" -"Do you want to remove {0}?\n" -"If you do so you won't be able to use {0} any more." -msgstr "Soovid sa {0} eemaldada?\nKui sa seda teed, ei saa sa {0} enam kasutada." - -#: Editor.java:2064 -msgid "Don't Save" -msgstr "Ära salvesta" - -#: Editor.java:2275 Editor.java:2311 -msgid "Done Saving." -msgstr "Salvestamine lõpetatud." - -#: Editor.java:2510 -msgid "Done burning bootloader." -msgstr "Alglaadur edukalt kirjutatud." - -#: ../../../processing/app/BaseNoGui.java:507 -#: ../../../processing/app/BaseNoGui.java:552 -msgid "Done compiling" -msgstr "Kompileerimine lõpetatud" - -#: Editor.java:1911 Editor.java:1928 -msgid "Done compiling." -msgstr "Kompileerimine lõpetatud." - -#: Editor.java:2564 -msgid "Done printing." -msgstr "Trükkimine lõpetatud." - -#: ../../../processing/app/BaseNoGui.java:514 -msgid "Done uploading" -msgstr "Üleslaadimine lõpetatud" - -#: Editor.java:2395 Editor.java:2431 -msgid "Done uploading." -msgstr "Üleslaadimine lõpetatud." - -#: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 -#, java-format -msgid "Downloaded {0}kb of {1}kb." -msgstr "Alla on laaditud {0}kb kokku {1}kb-st." - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 -msgid "Downloading boards definitions." -msgstr "Plaatide definitsioonide allalaadimine." - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 -msgid "Downloading libraries index..." -msgstr "Teekide indeksi allalaadimine ..." - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 -#, java-format -msgid "Downloading library: {0}" -msgstr "Teegi allalaadimine: {0}" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 -msgid "Downloading platforms index..." -msgstr "Platvormide indeksi allalaadimine ..." - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:113 -#, java-format -msgid "Downloading tools ({0}/{1})." -msgstr "Tööriistade allalaadimine ({0}/{1})." - -#: Preferences.java:91 -msgid "Dutch" -msgstr "Hollandi" - -#: ../../../processing/app/Preferences.java:144 -msgid "Dutch (Netherlands)" -msgstr "Hollandi (Holland)" - -#: ../../../../../app/src/processing/app/Editor.java:1309 -msgid "Edison Help" -msgstr "Edisoni abiinfo" - -#: Editor.java:1130 -msgid "Edit" -msgstr "Redigeerimine" - -#: Preferences.java:370 -msgid "Editor font size: " -msgstr "Fondi suurus redaktoris:" - -#: Preferences.java:353 -msgid "Editor language: " -msgstr "Rakenduse keel:" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 -msgid "Enable Code Folding" -msgstr "Koodi kokkuvoltimine" - -#: Preferences.java:92 -msgid "English" -msgstr "Inglise" - -#: ../../../processing/app/Preferences.java:145 -msgid "English (United Kingdom)" -msgstr "Inglise (Suurbritannia)" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 -msgid "Enter a comma separated list of urls" -msgstr "Sisesta komaga eraldatud URL-ide nimekiri." - -#: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -msgid "Enter additional URLs, one for each row" -msgstr "Lisa URL-id sisesta igaüks omale reale" - -#: Editor.java:1062 -msgid "Environment" -msgstr "Töökeskkond" - -#: Base.java:2147 Preferences.java:256 Sketch.java:475 Sketch.java:481 -#: Sketch.java:496 Sketch.java:503 Sketch.java:526 Sketch.java:543 -#: Editor.java:2167 Editor.java:2178 Editor.java:2188 Editor.java:2206 -msgid "Error" -msgstr "Viga" - -#: Sketch.java:1065 Sketch.java:1088 -msgid "Error adding file" -msgstr "Viga faili lisamisel" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 -#, java-format -msgid "Error compiling for board {0}." -msgstr "Viga „{0}“ plaadile kompileerimisel." - -#: debug/Compiler.java:369 -msgid "Error compiling." -msgstr "Viga kompileerimisel." - -#: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 -#, java-format -msgid "Error downloading {0}" -msgstr "Viga „{0}“ allalaadimisel." - -#: Base.java:1674 -msgid "Error getting the Arduino data folder." -msgstr "Viga Arduino andmekausta leidmisel." - -#: Serial.java:593 -#, java-format -msgid "Error inside Serial.{0}()" -msgstr "Viga Serial.{0}() sees." - -#: ../../../processing/app/debug/TargetPlatform.java:95 -#: ../../../processing/app/debug/TargetPlatform.java:106 -#: ../../../processing/app/debug/TargetPlatform.java:117 -#, java-format -msgid "Error loading {0}" -msgstr "Viga „{0}“ laadimisel." - -#: Serial.java:181 -#, java-format -msgid "Error opening serial port ''{0}''." -msgstr "Viga jadapordi „{0}“ avamisel." - -#: ../../../processing/app/Serial.java:119 -#, java-format -msgid "" -"Error opening serial port ''{0}''. Try consulting the documentation at " -"http://playground.arduino.cc/Linux/All#Permission" -msgstr "Viga jadapordi „{0}“ avamisel. Proovi abi otsida dokumentatsioonist aadressil http://playground.arduino.cc/Linux/All#Permission" - -#: Preferences.java:277 -msgid "Error reading preferences" -msgstr "Viga eelistuste lugemisel" - -#: Preferences.java:279 -#, java-format -msgid "" -"Error reading the preferences file. Please delete (or move)\n" -"{0} and restart Arduino." -msgstr "Viga eelistuste faili lugemisel. Palun kustuta „{0}“ (või tõsta\nsee mujale) ning käivita Arduino uuesti." - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:245 -msgid "Error running post install script" -msgstr "Viga paigaldusjärgse skripti jooksutamisel." - -#: ../../../cc/arduino/packages/DiscoveryManager.java:25 -msgid "Error starting discovery method: " -msgstr "Viga avastusmeetodi käivitamisel: " - -#: Serial.java:125 -#, java-format -msgid "Error touching serial port ''{0}''." -msgstr "Viga jadapordi „{0}“ avamisel." - -#: Editor.java:2512 Editor.java:2516 Editor.java:2520 -msgid "Error while burning bootloader." -msgstr "Viga alglaaduri kirjutamisel." - -#: ../../../processing/app/Editor.java:2555 -msgid "Error while burning bootloader: missing '{0}' configuration parameter" -msgstr "Viga alglaaduri kirjutamisel: „{0}“ konfiguratsiooniparameeter puudub" - -#: ../../../../../app/src/processing/app/Editor.java:1940 -msgid "Error while compiling: missing '{0}' configuration parameter" -msgstr "Viga kompileerimisel: „{0}“ konfiguratsiooniparameeter puudub" - -#: Editor.java:2567 -msgid "Error while printing." -msgstr "Viga trükkimisel." - -#: ../../../../../arduino-core/src/processing/app/Serial.java:117 -#, java-format -msgid "Error while setting serial port parameters: {0} {1} {2} {3}" -msgstr "Viga jadapordi parameetrite seadmisel: {0} {1} {2} {3}" - -#: ../../../processing/app/BaseNoGui.java:528 -msgid "Error while uploading" -msgstr "Viga üleslaadimisel" - -#: ../../../processing/app/Editor.java:2409 -#: ../../../processing/app/Editor.java:2449 -msgid "Error while uploading: missing '{0}' configuration parameter" -msgstr "Viga üleslaadimisel: „{0}“ konfiguratsiooniparameeter puudub" - -#: ../../../processing/app/BaseNoGui.java:506 -#: ../../../processing/app/BaseNoGui.java:551 -#: ../../../processing/app/BaseNoGui.java:554 -msgid "Error while verifying" -msgstr "Viga kontrollimisel" - -#: ../../../processing/app/BaseNoGui.java:521 -msgid "Error while verifying/uploading" -msgstr "Viga kontrollimisel/üleslaadimisel" - -#: Preferences.java:93 -msgid "Estonian" -msgstr "Eesti" - -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Eesti (Eesti)" - -#: Editor.java:516 -msgid "Examples" -msgstr "Näited" - -#: ../../../../../app/src/processing/app/Base.java:1185 -msgid "Examples for any board" -msgstr "Näited kõigile plaatidele" - -#: ../../../../../app/src/processing/app/Base.java:1205 -#: ../../../../../app/src/processing/app/Base.java:1216 -#, java-format -msgid "Examples for {0}" -msgstr "„{0}“ näited" - -#: ../../../../../app/src/processing/app/Base.java:1244 -msgid "Examples from Custom Libraries" -msgstr "Ise paigaldatud teekide näited" - -#: ../../../../../app/src/processing/app/Base.java:1329 -msgid "Examples from Other Libraries" -msgstr "Näited teistest teekidest" - -#: ../../../../../app/src/processing/app/Editor.java:753 -msgid "Export canceled, changes must first be saved." -msgstr "Eksport katkestatud, muudatused tuleb kõigepealt salvestada." - -#: ../../../../../app/src/processing/app/Editor.java:750 -msgid "Export compiled Binary" -msgstr "Ekspordi kompileeritud binaar" - -#: ../../../processing/app/Base.java:416 -#, java-format -msgid "Failed to open sketch: \"{0}\"" -msgstr "Visandi avamine ebaõnnestus: „{0}“" - -#: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 -#, java-format -msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "„{0}“ nime muutmine „{1}“-ks ebaõnnestus" - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -msgid "Failed to rename sketch folder" -msgstr "Visandikausta nime muutmine ebaõnnestus" - -#: Editor.java:491 -msgid "File" -msgstr "Fail" - -#: ../../../../../arduino-core/src/processing/app/SketchData.java:139 -#, java-format -msgid "File name {0} is invalid: ignored" -msgstr "Failinimi {0} pole korrektne: faili ignoreeritakse" - -#: Preferences.java:94 -msgid "Filipino" -msgstr "Filipiini" - -#: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 -msgid "Filter your search..." -msgstr "Otsingu filtreerimine ..." - -#: FindReplace.java:124 FindReplace.java:127 -msgid "Find" -msgstr "Otsi" - -#: Editor.java:1249 -msgid "Find Next" -msgstr "Otsi järgmist" - -#: Editor.java:1259 -msgid "Find Previous" -msgstr "Otsi eelmist" - -#: Editor.java:1086 Editor.java:2775 -msgid "Find in Reference" -msgstr "Otsi dokumentatsioonist" - -#: Editor.java:1234 -msgid "Find..." -msgstr "Otsi ..." - -#: FindReplace.java:80 -msgid "Find:" -msgstr "Otsitav:" - -#: ../../../processing/app/Preferences.java:147 -msgid "Finnish" -msgstr "Soome" - -#: tools/FixEncoding.java:41 tools/FixEncoding.java:58 -#: tools/FixEncoding.java:79 -msgid "Fix Encoding & Reload" -msgstr "Paranda kooditabel ning laadi uuesti" - -#: ../../../processing/app/BaseNoGui.java:318 -msgid "" -"For information on installing libraries, see: " -"http://www.arduino.cc/en/Guide/Libraries\n" -msgstr "Teekide paigaldamise kohta leiad infot aadressilt http://www.arduino.cc/en/Guide/Libraries\n" - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:118 -#, java-format -msgid "Forcing reset using 1200bps open/close on port {0}" -msgstr "Plaadi lähtestamine pordi {0} 1200bps kiirusega avamise/sulgemisega." - -#: Preferences.java:95 -msgid "French" -msgstr "Prantsuse" - -#: Editor.java:1097 -msgid "Frequently Asked Questions" -msgstr "Korduma Kippuvad Küsimused" - -#: Preferences.java:96 -msgid "Galician" -msgstr "Galeegi" - -#: ../../../../../app/src/processing/app/Preferences.java:176 -msgid "Galician (Spain)" -msgstr "Galeegi (Hispaania)" - -#: ../../../../../app/src/processing/app/Editor.java:1288 -msgid "Galileo Help" -msgstr "Galileo abiinfo" - -#: ../../../processing/app/Preferences.java:94 -msgid "Georgian" -msgstr "Gruusia" - -#: Preferences.java:97 -msgid "German" -msgstr "Saksa" - -#: ../../../../../app//src/processing/app/Editor.java:817 -msgid "Get Board Info" -msgstr "Plaadi info" - -#: Editor.java:1054 -msgid "Getting Started" -msgstr "Sissejuhatus" - -#: ../../../processing/app/Sketch.java:1646 -#, java-format -msgid "" -"Global variables use {0} bytes ({2}%%) of dynamic memory, leaving {3} bytes " -"for local variables. Maximum is {1} bytes." -msgstr "Globaalsed muutujad kasutavad {0} baiti ({2}%%) dünaamilisest mälust, jättes {3} baiti lokaalse skoobiga muutujatele. Maksimaalne on {1} baiti." - -#: ../../../processing/app/Sketch.java:1651 -#, java-format -msgid "Global variables use {0} bytes of dynamic memory." -msgstr "Globaalsed muutujad kasutavad {0} baiti dünaamilisest mälust." - -#: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 -msgid "Go to line" -msgstr "Liikumine reale" - -#: ../../../../../app/src/processing/app/Editor.java:1460 -msgid "Go to line..." -msgstr "Liigu reale ..." - -#: Preferences.java:98 -msgid "Greek" -msgstr "Kreeka" - -#: ../../../processing/app/Preferences.java:95 -msgid "Hebrew" -msgstr "Heebria" - -#: Editor.java:1015 -msgid "Help" -msgstr "Abi" - -#: Preferences.java:99 -msgid "Hindi" -msgstr "Hindi" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 -msgid "Host name:" -msgstr "Hosti nimi:" - -#: Sketch.java:295 -msgid "" -"How about saving the sketch first \n" -"before trying to rename it?" -msgstr "Kuidas oleks, kui salvestaks visandi \nenne nime muutmist?" - -#: Sketch.java:882 -msgid "How very Borges of you" -msgstr "Maakera sees on maakera" - -#: Preferences.java:100 -msgid "Hungarian" -msgstr "Ungari" - -#: ../../../../../app/src/processing/app/Base.java:1319 -msgid "INCOMPATIBLE" -msgstr "MITTEKOMPATIIBEL" - -#: FindReplace.java:96 -msgid "Ignore Case" -msgstr "Tähesuuruse ignoreerimine" - -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Vigase nimega teegi eiramine" - -#: Base.java:1436 -msgid "Ignoring sketch with bad name" -msgstr "Vigase nimega visandi eiramine" - -#: ../../../processing/app/Sketch.java:736 -msgid "" -"In Arduino 1.0, the default file extension has changed\n" -"from .pde to .ino. New sketches (including those created\n" -"by \"Save-As\") will use the new extension. The extension\n" -"of existing sketches will be updated on save, but you can\n" -"disable this in the Preferences dialog.\n" -"\n" -"Save sketch and update its extension?" -msgstr "Arduino 1.0 versioonis muutus failide vaikelaiend – .pde\n-> .ino. Uued visandid (kaasa arvatud need, mida sa\nsalvestad „Salvesta kui“ käsuga) kasutavad uuemat laiendit.\nOlemasolevate visandite laiendit uuendatakse salvestamisel,\nkui selle saad eelistustes ka välja lülitada.\n\nKas salvestada visand ja uuendada selle laiendit?" - -#: ../../../../../app/src/processing/app/Editor.java:778 -msgid "Include Library" -msgstr "Lisa teek" - -#: ../../../processing/app/BaseNoGui.java:768 -#: ../../../processing/app/BaseNoGui.java:771 -msgid "Incorrect IDE installation folder" -msgstr "Vigane IDE paigalduskataloog" - -#: Editor.java:1216 Editor.java:2757 -msgid "Increase Indent" -msgstr "Suurenda taanet" - -#: Preferences.java:101 -msgid "Indonesian" -msgstr "Indoneesia" - -#: ../../../../../app/src/processing/app/Base.java:295 -msgid "Initializing packages..." -msgstr "Pakkide initsialiseerimine ..." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:289 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:78 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 -msgid "Install" -msgstr "Paigalda" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 -msgid "Installation completed!" -msgstr "Paigaldamine lõpetatud." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 -msgid "Installed" -msgstr "Paigaldatud" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 -msgid "Installing boards..." -msgstr "Plaatide paigaldamine ..." - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 -#, java-format -msgid "Installing library: {0}" -msgstr "Teegi paigaldamine: {0}" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 -#, java-format -msgid "Installing tools ({0}/{1})..." -msgstr "Tööriistade paigaldamine ({0}/{1}) ..." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:239 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:172 -msgid "Installing..." -msgstr "Paigaldamine ..." - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 -msgid "Interface scale:" -msgstr "Kasutajaliidese suurendus:" - -#: ../../../processing/app/Base.java:1204 -#, java-format -msgid "Invalid library found in {0}: {1}" -msgstr "„{0}“ kataloogist leiti vigane teek: {1}" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:66 -#, java-format -msgid "Invalid quoting: no closing [{0}] char found." -msgstr "Vigane jutumärkide/ülakomade kasutamine: sulgevat [{0}] märki ei lietud." - -#: Preferences.java:102 -msgid "Italian" -msgstr "Itaalia" - -#: Preferences.java:103 -msgid "Japanese" -msgstr "Jaapani" - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -msgid "Kazakh" -msgstr "Kasahhi" - -#: Preferences.java:104 -msgid "Korean" -msgstr "Korea" - -#: Preferences.java:105 -msgid "Latvian" -msgstr "Läti" - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -msgid "Library Manager" -msgstr "Teekide haldus" - -#: ../../../../../app/src/processing/app/Base.java:2349 -msgid "Library added to your libraries. Check \"Include library\" menu" -msgstr "Teek lisati su teekide hulka. Kontrolli „Lisa teek“ menüüd." - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" -msgstr "Teek ei saa kasutada korraga „src“ ja „utility“ kaustu. Kontrolli üle {0}." - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 -#, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Teek on juba paigaldatud: {0} versioon {1}" - -#: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 -msgid "Line number:" -msgstr "Reanumber:" - -#: Preferences.java:106 -msgid "Lithuaninan" -msgstr "Leedu" - -#: ../../../../../app/src/processing/app/Base.java:132 -msgid "Loading configuration..." -msgstr "Seadete laadimine ..." - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -#, java-format -msgid "Looking for recipes like {0}*{1}" -msgstr "Retseptide nagu {0}*{1} otsimine" - -#: ../../../processing/app/Sketch.java:1684 -msgid "Low memory available, stability problems may occur." -msgstr "Mälu on väga vähe, võivad tekkida probleemid stabiilsusega." - -#: ../../../../../app/src/processing/app/Base.java:1168 -msgid "Manage Libraries..." -msgstr "Halda teeke ..." - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 -msgid "Manual proxy configuration" -msgstr "Käsitsi seadistamine" - -#: Preferences.java:107 -msgid "Marathi" -msgstr "Marathi" - -#: Base.java:2112 -msgid "Message" -msgstr "Teade" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 -#, java-format -msgid "Missing '{0}' from library in {1}" -msgstr "Teegis „{1}“ puudub '{0}'" - -#: ../../../processing/app/BaseNoGui.java:455 -msgid "Mode not supported" -msgstr "Režiim pole toetatud" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 -msgid "More" -msgstr "Rohkem kui vaikeväärtus" - -#: Preferences.java:449 -msgid "More preferences can be edited directly in the file" -msgstr "Rohkem seadeid saad muuta otse failis" - -#: Editor.java:2156 -msgid "Moving" -msgstr "Liigutamine" - -#: ../../../processing/app/BaseNoGui.java:484 -msgid "Multiple files not supported" -msgstr "Mitu faili pole toetatud." - -#: ../../../processing/app/debug/Compiler.java:520 -#, java-format -msgid "Multiple libraries were found for \"{0}\"" -msgstr "„{0}“ jaoks leiti mitu teeki" - -#: ../../../processing/app/Base.java:395 -msgid "Must specify exactly one sketch file" -msgstr "Määratud peab olema täpselt ühe visandi fail" - -#: Sketch.java:282 -msgid "Name for new file:" -msgstr "Uue faili nimi:" - -#: ../../../../../app//src/processing/app/Editor.java:2809 -msgid "Native serial port, can't obtain info" -msgstr "Info lugemine jadapordist ei õnnestu" - -#: ../../../processing/app/Preferences.java:149 -msgid "Nepali" -msgstr "Nepali" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 -msgid "Network" -msgstr "Võrk" - -#: ../../../../../app//src/processing/app/Editor.java:2804 -msgid "Network port, can't obtain info" -msgstr "Info lugemine võrgupordist ei õnnestu" - -#: ../../../../../app/src/processing/app/Editor.java:65 -msgid "Network ports" -msgstr "Võrgupordid" - -#: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 -msgid "Network upload using programmer not supported" -msgstr "Programmaatoriga üle võrgu üles laadimine pole toetatud." - -#: EditorToolbar.java:41 Editor.java:493 -msgid "New" -msgstr "Uus" - -#: EditorHeader.java:292 -msgid "New Tab" -msgstr "Uus kaart" - -#: SerialMonitor.java:112 -msgid "Newline" -msgstr "lisa NL (\\n)" - -#: EditorHeader.java:340 -msgid "Next Tab" -msgstr "Järgmine kaart" - -#: Preferences.java:78 UpdateCheck.java:108 -msgid "No" -msgstr "Ei" - -#: ../../../processing/app/debug/Compiler.java:158 -msgid "No authorization data found" -msgstr "Autoriseerimise infot ei leitud" - -#: tools/format/src/AutoFormat.java:54 tools/AutoFormat.java:916 -msgid "No changes necessary for Auto Format." -msgstr "Automaatvormindus ei vaja muudatusi." - -#: ../../../processing/app/BaseNoGui.java:665 -msgid "No command line parameters found" -msgstr "Ühtegi käsurea parameetrit ei leitud" - -#: ../../../processing/app/debug/Compiler.java:200 -msgid "No compiled sketch found" -msgstr "Ühtegi kompileeritud visandit ei leitud" - -#: Editor.java:373 -msgid "No files were added to the sketch." -msgstr "Visandisse pole faile lisatud." - -#: Platform.java:167 -msgid "No launcher available" -msgstr "Veebilehitseja puudub" - -#: SerialMonitor.java:112 -msgid "No line ending" -msgstr "Reavahetust ei lisa" - -#: ../../../processing/app/BaseNoGui.java:665 -msgid "No parameters" -msgstr "Parameetreid pole" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:453 -msgid "No proxy" -msgstr "Proxyt ei kasutata" - -#: Base.java:541 -msgid "No really, time for some fresh air for you." -msgstr "Tõesti oleks aeg natuke värsket õhku hingata." - -#: Editor.java:1872 -#, java-format -msgid "No reference available for \"{0}\"" -msgstr "„{0}“ kohta juhend puudub" - -#: ../../../processing/app/BaseNoGui.java:504 -#: ../../../processing/app/BaseNoGui.java:549 -msgid "No sketch" -msgstr "Visandit pole" - -#: ../../../processing/app/BaseNoGui.java:428 -msgid "No sketchbook" -msgstr "Visandite kausta pole" - -#: ../../../processing/app/Sketch.java:204 -msgid "No valid code files found" -msgstr "Ühtegi korrektset koodifaili ei leitud" - -#: ../../../processing/app/debug/TargetPackage.java:63 -#, java-format -msgid "No valid hardware definitions found in folder {0}." -msgstr "Kasutast „{0}“ ei leitud ühtegi korrektset riistvara definitsiooni." - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:184 -msgid "None" -msgstr "Üldse mitte" - -#: ../../../processing/app/Preferences.java:108 -msgid "Norwegian Bokmål" -msgstr "Norra (Bokmål)" - -#: ../../../processing/app/Sketch.java:1656 -msgid "" -"Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size " -"for tips on reducing your footprint." -msgstr "Pole piisavalt mälu. Mälukasutuse vähendamise nippe leiad aadressilt http://www.arduino.cc/en/Guide/Troubleshooting#size" - -#: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 -#: Editor.java:2145 Editor.java:2465 -msgid "OK" -msgstr "OK" - -#: Sketch.java:992 Editor.java:376 -msgid "One file added to the sketch." -msgstr "Visandisse on lisatud üks fail." - -#: ../../../processing/app/BaseNoGui.java:455 -msgid "Only --verify, --upload or --get-pref are supported" -msgstr "Ainult --verify, --upload või --get-pref on toetatud." - -#: EditorToolbar.java:41 -msgid "Open" -msgstr "Ava" - -#: ../../../../../app/src/processing/app/Editor.java:625 -msgid "Open Recent" -msgstr "Ava viimati kasutatud" - -#: Editor.java:2688 -msgid "Open URL" -msgstr "Ava URL" - -#: Base.java:636 -msgid "Open an Arduino sketch..." -msgstr "Arduino visandi avamine" - -#: Base.java:903 Editor.java:501 -msgid "Open..." -msgstr "Ava ..." - -#: ../../../../../arduino-core/src/processing/app/I18n.java:37 -msgid "Other" -msgstr "Muud" - -#: Editor.java:563 -msgid "Page Setup" -msgstr "Lehekülje seaded" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:25 -msgid "Partner" -msgstr "Partnerid" - -#: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 -msgid "Password:" -msgstr "Parool:" - -#: Editor.java:1189 Editor.java:2731 -msgid "Paste" -msgstr "Aseta" - -#: Preferences.java:109 -msgid "Persian" -msgstr "Pärsia" - -#: ../../../processing/app/Preferences.java:161 -msgid "Persian (Iran)" -msgstr "Pärsia (Iraan)" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 -#, java-format -msgid "Platform {0} (package {1}) is unknown" -msgstr "Platvorm {0} ({1} pakis) on tunmatu" - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 -msgid "Please confirm boards deletion" -msgstr "Palun kinnitust plaadi kustutamisele" - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -msgid "Please confirm library deletion" -msgstr "Palun kinnitust teegi kustutamisele" - -#: debug/Compiler.java:408 -msgid "Please import the SPI library from the Sketch > Import Library menu." -msgstr "Laadi SPI teek menüüst Visand -> Laadi teek." - -#: ../../../processing/app/debug/Compiler.java:529 -msgid "Please import the Wire library from the Sketch > Import Library menu." -msgstr "Laadi Wire teek menüüst Visand -> Laadi teek." - -#: ../../../../../app//src/processing/app/Editor.java:2799 -msgid "Please select a port to obtain board info" -msgstr "Plaadi info nägemiseks vali port." - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 -msgid "Please select a programmer from Tools->Programmer menu" -msgstr "Vali programmaator menüüst Tööriistad -> Programmaator." - -#: ../../../../../app/src/processing/app/Editor.java:2613 -msgid "Plotter not available while serial monitor is open" -msgstr "Plotterit ei saa kasutada, kui jadapordi monitor on avatud." - -#: Preferences.java:110 -msgid "Polish" -msgstr "Poola" - -#: ../../../processing/app/Editor.java:718 -msgid "Port" -msgstr "Port" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:491 -msgid "Port number:" -msgstr "Pordi number:" - -#: ../../../processing/app/Preferences.java:151 -msgid "Portugese" -msgstr "Portugali" - -#: ../../../processing/app/Preferences.java:127 -msgid "Portuguese (Brazil)" -msgstr "Portugali (Brasiilia)" - -#: ../../../processing/app/Preferences.java:128 -msgid "Portuguese (Portugal)" -msgstr "Portugali (Portugal)" - -#: Preferences.java:295 Editor.java:583 -msgid "Preferences" -msgstr "Eelistused" - -#: ../../../../../app/src/processing/app/Base.java:297 -msgid "Preparing boards..." -msgstr "Plaatide ettevalmistamine ..." - -#: FindReplace.java:123 FindReplace.java:128 -msgid "Previous" -msgstr "Eelmine" - -#: EditorHeader.java:326 -msgid "Previous Tab" -msgstr "Eelmine kaart" - -#: Editor.java:571 -msgid "Print" -msgstr "Prindi" - -#: Editor.java:2571 -msgid "Printing canceled." -msgstr "Trükkimine katkestati." - -#: Editor.java:2547 -msgid "Printing..." -msgstr "Trükkimine ..." - -#: Base.java:1957 -msgid "Problem Opening Folder" -msgstr "Probleem kausta avamisel" - -#: Base.java:1933 -msgid "Problem Opening URL" -msgstr "Probleem URL-i avamisel" - -#: Base.java:227 -msgid "Problem Setting the Platform" -msgstr "Probleem platvormi valimisel" - -#: ../../../cc/arduino/packages/uploaders/SSHUploader.java:136 -msgid "Problem accessing board folder /www/sd" -msgstr "Probleem plaadi kaustale /www/sd ligipääsuga" - -#: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 -#, java-format -msgid "Problem accessing files in folder \"{0}\"" -msgstr "Probleem kaustas „{0}“ failidele ligipääsuga" - -#: Base.java:1673 -msgid "Problem getting data folder" -msgstr "Probleem andmekausta leidmisega" - -#: debug/Uploader.java:209 -msgid "" -"Problem uploading to board. See " -"http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions." -msgstr "Probleem plaadile üleslaadimisega. Aadressilt http://www.arduino.cc/en/Guide/Troubleshooting#upload leiad soovitusi probleemi lahendamiseks." - -#: Sketch.java:355 Sketch.java:362 Sketch.java:373 -msgid "Problem with rename" -msgstr "Probleem nime muutmisega" - -#: ../../../processing/app/I18n.java:86 -msgid "Processor" -msgstr "Protsessor" - -#: Editor.java:704 -msgid "Programmer" -msgstr "Programmaator" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:80 -#, java-format -msgid "Progress {0}" -msgstr "Edenemine {0}" - -#: Base.java:783 Editor.java:593 -msgid "Quit" -msgstr "Välju" - -#: ../../../../../app/src/processing/app/Base.java:1233 -msgid "RETIRED" -msgstr "VANANENUD" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:26 -msgid "Recommended" -msgstr "Soovituslikud" - -#: Editor.java:1138 Editor.java:1140 Editor.java:1390 -msgid "Redo" -msgstr "Tee uuesti" - -#: Editor.java:1078 -msgid "Reference" -msgstr "Baasdokumentatsioon" - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -msgid "Remove" -msgstr "Eemalda" - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 -#, java-format -msgid "Removing library: {0}" -msgstr "Teegi eemaldamine: {0}" - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 -msgid "Removing..." -msgstr "Eemaldamine ..." - -#: EditorHeader.java:300 -msgid "Rename" -msgstr "Nimeta ümber" - -#: FindReplace.java:121 FindReplace.java:130 Sketch.java:1046 -msgid "Replace" -msgstr "Asendada" - -#: FindReplace.java:122 FindReplace.java:129 -msgid "Replace & Find" -msgstr "Otsi ja asenda" - -#: FindReplace.java:120 FindReplace.java:131 -msgid "Replace All" -msgstr "Asenda kõik" - -#: Sketch.java:1043 -#, java-format -msgid "Replace the existing version of {0}?" -msgstr "Kas asendada paigaldatud {0} versioon?" - -#: FindReplace.java:81 -msgid "Replace with:" -msgstr "Asendus:" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:28 -msgid "Retired" -msgstr "Vananenud" - -#: Preferences.java:113 -msgid "Romanian" -msgstr "Rumeenia" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 -#, java-format -msgid "Running recipe: {0}" -msgstr "Retsepti käivitamine: {0}" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:82 -#, java-format -msgid "Running: {0}" -msgstr "Käivitamine: {0}" - -#: Preferences.java:114 -msgid "Russian" -msgstr "Vene" - -#: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 -#: Editor.java:2064 Editor.java:2468 -msgid "Save" -msgstr "Salvesta" - -#: Editor.java:537 -msgid "Save As..." -msgstr "Salvesta kui ..." - -#: Editor.java:2317 -msgid "Save Canceled." -msgstr "Salvestamine katkestatud." - -#: Editor.java:2020 -#, java-format -msgid "Save changes to \"{0}\"? " -msgstr "Kas salvestada „{0}“ muudatused?" - -#: Sketch.java:825 -msgid "Save sketch folder as..." -msgstr "Visandi salvestamine uude kausta" - -#: ../../../../../app/src/processing/app/Preferences.java:425 -msgid "Save when verifying or uploading" -msgstr "Salvestamine kontrollimisel või üleslaadimisel" - -#: Editor.java:2270 Editor.java:2308 -msgid "Saving..." -msgstr "Salvestamine ..." - -#: ../../../processing/app/FindReplace.java:131 -msgid "Search all Sketch Tabs" -msgstr "Otsing visandi kõigist kaarditest" - -#: Base.java:1909 -msgid "Select (or create new) folder for sketches..." -msgstr "Vali (või loo uus) kaust visandite jaoks ..." - -#: Editor.java:1198 Editor.java:2739 -msgid "Select All" -msgstr "Vali kõik" - -#: Base.java:2636 -msgid "Select a zip file or a folder containing the library you'd like to add" -msgstr "Vali lisamiseks teeki sisaldav kataloog või ZIP fail" - -#: Sketch.java:975 -msgid "Select an image or other data file to copy to your sketch" -msgstr "Vali visandi juurde kopeerimiseks pilt või muu andmefail" - -#: Preferences.java:330 -msgid "Select new sketchbook location" -msgstr "Vali uus visandite kaust" - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 -msgid "Select version" -msgstr "Vali versioon" - -#: ../../../processing/app/debug/Compiler.java:146 -msgid "Selected board depends on '{0}' core (not installed)." -msgstr "Valitud plaat vajab „{0}“ baaspakki (seda pole paigaldatud)." - -#: ../../../../../app/src/processing/app/Base.java:374 -msgid "Selected board is not available" -msgstr "Valitud plaati pole saadaval." - -#: ../../../../../app/src/processing/app/Base.java:423 -msgid "Selected library is not available" -msgstr "Valitud teeki pole saadaval." - -#: SerialMonitor.java:93 -msgid "Send" -msgstr "Saada" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:32 -msgid "Sensors" -msgstr "Sensorid" - -#: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 -msgid "Serial Monitor" -msgstr "Jadapordi monitor" - -#: ../../../../../app/src/processing/app/Editor.java:804 -msgid "Serial Plotter" -msgstr "Jadapordi plotter" - -#: ../../../../../app/src/processing/app/Editor.java:2325 -#, java-format -msgid "" -"Serial monitor is not supported on network ports such as {0} for the {1} in " -"this release" -msgstr "" - -#: ../../../../../app/src/processing/app/Editor.java:2516 -msgid "Serial monitor not available while plotter is open" -msgstr "Jadapordi monitori ei saa kasutada, kui plotter on avatud." - -#: Serial.java:194 -#, java-format -msgid "" -"Serial port ''{0}'' not found. Did you select the right one from the Tools >" -" Serial Port menu?" -msgstr "Jadaporti „{0}“ ei leitud. Kas menüüs Tööriistad -> Jadaport on valitud õige port?" - -#: Editor.java:2343 -#, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Jadaport „{0}“ puudub.\nKas proovime mõnda teist porti?" - -#: ../../../../../app/src/processing/app/Editor.java:65 -msgid "Serial ports" -msgstr "Jadapordid" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 -#, java-format -msgid "Setting build path to {0}" -msgstr "Kompileerimise asukoha seadmine väärtusele {0}" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -msgid "Settings" -msgstr "Seaded" - -#: Base.java:1681 -msgid "Settings issues" -msgstr "Probleem seadetega" - -#: Editor.java:641 -msgid "Show Sketch Folder" -msgstr "Näita visandite kausta" - -#: Preferences.java:387 -msgid "Show verbose output during: " -msgstr "Detailsem väljund:" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:31 -msgid "Signal Input/Output" -msgstr "Signaali sisend/väljund" - -#: Editor.java:607 -msgid "Sketch" -msgstr "Visand" - -#: Sketch.java:1754 -msgid "Sketch Disappeared" -msgstr "Visand on haihtunud" - -#: Base.java:1411 -msgid "Sketch Does Not Exist" -msgstr "Visandit pole olemas" - -#: Sketch.java:274 Sketch.java:303 Sketch.java:577 Sketch.java:966 -msgid "Sketch is Read-Only" -msgstr "Visand on kirjutuskaitsega" - -#: Sketch.java:294 -msgid "Sketch is Untitled" -msgstr "Visand on pealkirjastamata" - -#: Sketch.java:720 -msgid "Sketch is read-only" -msgstr "Visand on kirjutuskaitsega" - -#: Sketch.java:1653 -msgid "" -"Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for " -"tips on reducing it." -msgstr "Visand on liiga suur. Aadressilt http://www.arduino.cc/en/Guide/Troubleshooting#size leiad näpunäiteid selle vähendamiseks." - -#: ../../../processing/app/Sketch.java:1639 -#, java-format -msgid "" -"Sketch uses {0} bytes ({2}%%) of program storage space. Maximum is {1} " -"bytes." -msgstr "Visand kasutab programmi salvestamise ruumist {0} baiti ({2}%%). Maksimum on {1} baiti." - -#: Editor.java:510 -msgid "Sketchbook" -msgstr "Visandid" - -#: Base.java:258 -msgid "Sketchbook folder disappeared" -msgstr "Visandite kaust on haihtunud" - -#: Preferences.java:315 -msgid "Sketchbook location:" -msgstr "Visandite asukoht:" - -#: ../../../processing/app/BaseNoGui.java:428 -msgid "Sketchbook path not defined" -msgstr "Visandite asukoht on määramata" - -#: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 -#, java-format -msgid "Skipping contributed index file {0}, parsing error occured:" -msgstr "Paki indeksi faili {0} ignoreeritakse, viga parsimisel:" - -#: ../../../../../app/src/processing/app/Preferences.java:185 -msgid "Slovak" -msgstr "Slovaki" - -#: ../../../processing/app/Preferences.java:152 -msgid "Slovenian" -msgstr "Sloveeni" - -#: Sketch.java:275 Sketch.java:304 Sketch.java:578 Sketch.java:967 -msgid "" -"Some files are marked \"read-only\", so you'll\n" -"need to re-save the sketch in another location,\n" -"and try again." -msgstr "Vähemalt mõned visandi failid on kirjutuskaitsega.\nSalvesta visand kuhugi mujale ja proovi siis uuesti." - -#: Sketch.java:721 -msgid "" -"Some files are marked \"read-only\", so you'll\n" -"need to re-save this sketch to another location." -msgstr "Mõned failid on kirjutuskaitsega.\nPead salvestama visandi kuhugi mujale." - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:246 -#, java-format -msgid "Sorry, the folder \"{0}\" already exists." -msgstr "Vabandust, „{0}“ nimeline kaust on juba olemas." - -#: Preferences.java:115 -msgid "Spanish" -msgstr "Hispaania" - -#: ../../../../../app/src/processing/app/Base.java:2333 -msgid "Specified folder/zip file does not contain a valid library" -msgstr "Valitud kaustas või zip failis pole korrektset teeki." - -#: ../../../../../app/src/processing/app/Base.java:466 -msgid "Starting..." -msgstr "Käivitamine ..." - -#: Base.java:540 -msgid "Sunshine" -msgstr "Särasilm" - -#: ../../../processing/app/Preferences.java:153 -msgid "Swedish" -msgstr "Rootsi" - -#: Preferences.java:84 -msgid "System Default" -msgstr "Süsteemi vaikekeel" - -#: ../../../../../app/src/processing/app/Preferences.java:188 -msgid "Talossan" -msgstr "Talossan" - -#: Preferences.java:116 -msgid "Tamil" -msgstr "Tamili" - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -msgid "Telugu" -msgstr "Telugu" - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 -msgid "Thai" -msgstr "Tai" - -#: debug/Compiler.java:414 -msgid "The 'BYTE' keyword is no longer supported." -msgstr "\"BYTE\" võtmesõna pole enam toetatud." - -#: ../../../processing/app/BaseNoGui.java:484 -msgid "The --upload option supports only one file at a time" -msgstr "--upload võti toetab ainult üht faili korraga" - -#: debug/Compiler.java:426 -msgid "The Client class has been renamed EthernetClient." -msgstr "Klass Client on nüüd EthernetClient." - -#: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 -#, java-format -msgid "" -"The IDE includes an updated {0} package, but you're using an older one.\n" -"Do you want to upgrade {0}?" -msgstr "IDE-s on uuendatud „{0}“ pakk, kuid sina kasutad vanemat.\nSoovid sa „{0}“ uuendada?" - -#: debug/Compiler.java:420 -msgid "The Server class has been renamed EthernetServer." -msgstr "Klass Server on nüüd EthernetServer." - -#: debug/Compiler.java:432 -msgid "The Udp class has been renamed EthernetUdp." -msgstr "Klass Udp on nimetatud ümber EthernetUdp." - -#: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "Hetkel valitud plaat vajab „{0}“ baaspakki, mis pole paigaldatud." - -#: Editor.java:2147 -#, java-format -msgid "" -"The file \"{0}\" needs to be inside\n" -"a sketch folder named \"{1}\".\n" -"Create this folder, move the file, and continue?" -msgstr "\"{0}\" peab asuma visandite kaustas \"{1}\".\nKas tekitan selle kausta ning liigutan faili sinna?" - -#: Base.java:1054 Base.java:2674 -#, java-format -msgid "" -"The library \"{0}\" 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)" -msgstr "Teeki „{0}“ ei saa kasutada.\nTeekide nimed tohivad sisaldada ainult ASCII tähti ja\nnumbreid ning peavad algama tähega." - -#: ../../../../../app/src/processing/app/SketchController.java:170 -msgid "The main file cannot use an extension" -msgstr "Põhifailil ei tohi laiendit olla." - -#: Sketch.java:356 -msgid "The name cannot start with a period." -msgstr "Nimi ei tohi alata punktiga." - -#: Base.java:1412 -msgid "" -"The selected sketch no longer exists.\n" -"You may need to restart Arduino to update\n" -"the sketchbook menu." -msgstr "Valitud visandit pole enam.\nVisandite kausta menüü uuendamiseks\nkäivita Arduino uuesti." - -#: Base.java:1430 -#, java-format -msgid "" -"The sketch \"{0}\" cannot be used.\n" -"Sketch names must contain only basic letters and numbers\n" -"(ASCII-only with no spaces, and it cannot start with a number).\n" -"To get rid of this message, remove the sketch from\n" -"{1}" -msgstr "Visandit „{0}“ ei saa kasutada.\nVisandite nimed nimed tohivad sisaldada ainult ASCII tähti\nja numbreid ning peavad algama tähega.\nSellest teatest lahti saamiseks eemalda visand\n„{1}“ kaustast." - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:272 -#, java-format -msgid "The sketch already contains a file named \"{0}\"" -msgstr "Visandis on „{0}“ nimeline fail juba olemas." - -#: Sketch.java:1755 -msgid "" -"The sketch folder has disappeared.\n" -" Will attempt to re-save in the same location,\n" -"but anything besides the code will be lost." -msgstr "Visandi kaust on haihtunud.\nPüüan samasse kohta uuesti salvestada,\nkuid kõik peale selle koodi on kadunud." - -#: ../../../processing/app/Sketch.java:2028 -msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Visandi nimi on vaja ära muuta. Visandi nimes saavad olla ainult\nASCII tähed ja numbrid, kuid need ei saa alata numbriga. Samuti\npeavad need olema lühemad kui 64 sümbolit." - -#: Base.java:259 -msgid "" -"The sketchbook folder no longer exists.\n" -"Arduino will switch to the default sketchbook\n" -"location, and create a new sketchbook folder if\n" -"necessary. Arduino will then stop talking about\n" -"himself in the third person." -msgstr "Visandite kausta pole enam.\nArduino hakkab kasutama vaikimisi kausta ning\nvajadusel tekitab sinna uue visandite kausta." - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 -msgid "" -"The specified sketchbook folder contains your copy of the IDE.\n" -"Please choose a different folder for your sketchbook." -msgstr "Valitud visandite kaustas on su IDE koopia.\nPalun vali oma visandite hoidmiseks mõni teine kaust." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -msgid "" -"This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" -"Are you sure you want to delete it?" -msgstr "Seda teeki teekide halduris pole ja sealt seda uuesti paigaldada ei saa.\nOled sa kindel, et soovid selle teegi kustutada?" - -#: ../../../../../app/src/processing/app/EditorStatus.java:349 -msgid "" -"This report would have more information with\n" -"\"Show verbose output during compilation\"\n" -"option enabled in File -> Preferences.\n" -msgstr "Siin oleks rohkem infot kui „Detailsem väljund:\nkompileerimise ajal“ oleks rakenduse eelistustes\nsisse lülitatud (Fail -> Eelistused).\n" - -#: Base.java:535 -msgid "Time for a Break" -msgstr "Aeg puhata" - -#: ../../../../../arduino-core/src/processing/app/I18n.java:34 -msgid "Timing" -msgstr "Aeg" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 -#, java-format -msgid "Tool {0} is not available for your operating system." -msgstr "Töövahendit {0} sinu operatsioonisüsteemile pole." - -#: Editor.java:663 -msgid "Tools" -msgstr "Tööriistad" - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:97 -msgid "Topic" -msgstr "Valdkond" - -#: Editor.java:1070 -msgid "Troubleshooting" -msgstr "Probleemide lahendamine" - -#: ../../../processing/app/Preferences.java:117 -msgid "Turkish" -msgstr "Türgi" - -#: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 -msgid "Type" -msgstr "Tüüp" - -#: ../../../processing/app/Editor.java:2507 -msgid "Type board password to access its console" -msgstr "Konsoolile ligipääsuks sisesta plaadi parool." - -#: ../../../processing/app/Sketch.java:1673 -msgid "Type board password to upload a new sketch" -msgstr "Uue visandi üleslaadimiseks sisesta plaadi parool." - -#: ../../../processing/app/Preferences.java:118 -msgid "Ukrainian" -msgstr "Ukraina" - -#: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 -#, java-format -msgid "Unable to connect to {0}" -msgstr "Aadressiga „{0}“ ei õnnestu ühendust luua" - -#: ../../../processing/app/Editor.java:2524 -#: ../../../processing/app/NetworkMonitor.java:145 -msgid "Unable to connect: is the sketch using the bridge?" -msgstr "Ühenduse loomine ei õnnestu: kas visand kasutab silda?" - -#: ../../../processing/app/NetworkMonitor.java:130 -msgid "Unable to connect: retrying" -msgstr "Ühendust ei õnnestu luua, proovime uuesti." - -#: ../../../processing/app/Editor.java:2526 -msgid "Unable to connect: wrong password?" -msgstr "Ühendust ei õnnestu luua, vale parool?" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 -#, java-format -msgid "Unable to find {0} in {1}" -msgstr "Visandit „{0}“ pole kataloogis „{1}“" - -#: ../../../processing/app/Editor.java:2512 -msgid "Unable to open serial monitor" -msgstr "Jadapordi monitori pole võimalik avada." - -#: ../../../../../app/src/processing/app/Editor.java:2709 -msgid "Unable to open serial plotter" -msgstr "Jadapordi plotterit pole võimalik avada." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -msgid "Unable to reach Arduino.cc due to possible network issues." -msgstr "Võimalike võrguprobleemide tõttu pole Arduino.cc kättesaadav." - -#: ../../../../../arduino-core/src/processing/app/I18n.java:38 -msgid "Uncategorized" -msgstr "Kategoriseerimata" - -#: Editor.java:1133 Editor.java:1355 -msgid "Undo" -msgstr "Võta tagasi" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 -#, java-format -msgid "Unhandled type {0} in context key {1}" -msgstr "" - -#: ../../../../../app//src/processing/app/Editor.java:2818 -msgid "Unknown board" -msgstr "Tundmatu plaat" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 -#, java-format -msgid "Unknown sketch file extension: {0}" -msgstr "Tundmatu visandi faili laiend: {0}" - -#: Platform.java:168 -msgid "" -"Unspecified platform, no launcher available.\n" -"To enable opening URLs or folders, add a \n" -"\"launcher=/path/to/app\" line to preferences.txt" -msgstr "Tundmatu platvorm, veebilehitseja puudub.\nVeebiaadresside avamiseks lisa\n\"launcher=/kaust/brauser\" rida preferences.txt faili." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 -msgid "Updatable" -msgstr "Uuendatav" - -#: UpdateCheck.java:111 -msgid "Update" -msgstr "Uuenda" - -#: Preferences.java:428 -msgid "Update sketch files to new extension on save (.pde -> .ino)" -msgstr "Visandi laiendi uuendamine (.pde -> .ino) salvestamisel" - -#: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:88 -#, java-format -msgid "Updates available for some of your {0}boards{1}" -msgstr "Mõnele su {0}plaadile{1} on olemas uuendus." - -#: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 -#, java-format -msgid "Updates available for some of your {0}boards{1} and {2}libraries{3}" -msgstr "Mõnele su {0}plaadile{1} ja {2}teegile{3} on olemas uuendus." - -#: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 -#, java-format -msgid "Updates available for some of your {0}libraries{1}" -msgstr "Mõnele su {0}teegile{1} on olemas uuendus." - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 -msgid "Updating list of installed libraries" -msgstr "Paigaldatud teekide nimekirja uuendamine." - -#: EditorToolbar.java:41 Editor.java:545 -msgid "Upload" -msgstr "Laadi üles" - -#: EditorToolbar.java:46 Editor.java:553 -msgid "Upload Using Programmer" -msgstr "Laadi üles programmaatori kaudu" - -#: ../../../../../app//src/processing/app/Editor.java:2814 -msgid "Upload any sketch to obtain it" -msgstr "Info lugemiseks laadi suvaline visand üles" - -#: Editor.java:2403 Editor.java:2439 -msgid "Upload canceled." -msgstr "Üleslaadimine on katkestatud." - -#: ../../../processing/app/Sketch.java:1678 -msgid "Upload cancelled" -msgstr "Üleslaadimine on katkestatud." - -#: Editor.java:2378 -msgid "Uploading to I/O Board..." -msgstr "I/O plaadile laadimine ..." - -#: Sketch.java:1622 -msgid "Uploading..." -msgstr "Üleslaadimine ..." - -#: Editor.java:1269 -msgid "Use Selection For Find" -msgstr "Valitud teksti otsimine" - -#: Preferences.java:409 -msgid "Use external editor" -msgstr "Välise redaktori kasutamine" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 -msgid "Username:" -msgstr "Kasutajanimi:" - -#: ../../../processing/app/debug/Compiler.java:410 -#, java-format -msgid "Using library {0} at version {1} in folder: {2} {3}" -msgstr "Kasutatakse {0} teegi versiooni {1} kaustast: {2} {3}" - -#: ../../../processing/app/debug/Compiler.java:94 -#, java-format -msgid "Using library {0} in folder: {1} {2}" -msgstr "Kasutatakse {0} teeki kaustast: {1} {2}" - -#: ../../../processing/app/debug/Compiler.java:320 -#, java-format -msgid "Using previously compiled file: {0}" -msgstr "Kasutatakse eelnevalt kompileeritud faili: {0}" - -#: EditorToolbar.java:41 EditorToolbar.java:46 -msgid "Verify" -msgstr "Kontrolli" - -#: Preferences.java:400 -msgid "Verify code after upload" -msgstr "Koodi kontrollimine pärast üleslaadimist" - -#: ../../../../../app/src/processing/app/Editor.java:725 -msgid "Verify/Compile" -msgstr "Kontrolli/kompileeri" - -#: ../../../../../app/src/processing/app/Base.java:451 -msgid "Verifying and uploading..." -msgstr "Kontrollimine ja üleslaadimine ..." - -#: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 -msgid "Verifying archive integrity..." -msgstr "Arhiivi terviklikkuse kontrollimine ..." - -#: ../../../../../app/src/processing/app/Base.java:454 -msgid "Verifying..." -msgstr "Kontrollimine ..." - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 -#, java-format -msgid "Version {0}" -msgstr "Versioon {0}" - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:326 -msgid "Version unknown" -msgstr "Tundmatu versioon" - -#: ../../../cc/arduino/contributions/libraries/ContributedLibrary.java:97 -#, java-format -msgid "Version {0}" -msgstr "Versioon {0}" - -#: ../../../processing/app/Preferences.java:154 -msgid "Vietnamese" -msgstr "Vietnami" - -#: Editor.java:1105 -msgid "Visit Arduino.cc" -msgstr "Külasta Arduino.cc lehte" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 -#, java-format -msgid "WARNING: Category '{0}' in library {1} is not valid. Setting to '{2}'" -msgstr "HOIATUS: Kategooria '{0}' teegis {1} pole korrektne. See seatakse väärtusele '{2}'" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 -#, java-format -msgid "WARNING: Spurious {0} folder in '{1}' library" -msgstr "HOIATUS: Vigane {0} kataloog '{1}' teegis" - -#: ../../../processing/app/debug/Compiler.java:115 -#, java-format -msgid "" -"WARNING: library {0} claims to run on {1} architecture(s) and may be " -"incompatible with your current board which runs on {2} architecture(s)." -msgstr "HOIATUS: Teek {0} väidab ennast olevat {1} arhitektuuri(de)le ja võib sinu kasutatava plaadiga, mis on {2} arhitektuuri(de)ga, mitte kokku sobida." - -#: Base.java:2128 -msgid "Warning" -msgstr "Hoiatus" - -#: ../../../processing/app/debug/Compiler.java:1295 -msgid "" -"Warning: This core does not support exporting sketches. Please consider " -"upgrading it or contacting its author" -msgstr "Hoiatus: See baaspakk ei toeta visandite eksportimist. Kaalu selle uuendamist või võta ühendust paki autoriga." - -#: ../../../cc/arduino/utils/ArchiveExtractor.java:197 -#, java-format -msgid "Warning: file {0} links to an absolute path {1}" -msgstr "Hoiatus: fail {0} viitab täielikule asukohale {1}" - -#: ../../../cc/arduino/contributions/packages/ContributionsIndexer.java:133 -msgid "Warning: forced trusting untrusted contributions" -msgstr "Hoiatus: mitteusaldusväärse paki sunnitud usaldamine" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:217 -#, java-format -msgid "Warning: forced untrusted script execution ({0})" -msgstr "Hoiatus: mitteusaldusväärse skripti ({0}) sunnitud käivitamine" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:212 -#, java-format -msgid "Warning: non trusted contribution, skipping script execution ({0})" -msgstr "Hoiatus: pakk pole usaldusväärne, skripte ei käivitata ({0})" - -#: ../../../processing/app/debug/LegacyTargetPlatform.java:158 -#, java-format -msgid "" -"Warning: platform.txt from core '{0}' contains deprecated {1}, automatically" -" converted to {2}. Consider upgrading this core." -msgstr "Hoiatus: '{0}' baaspaki platform.txt fail sisaldab aegunud koodi: {1}, mis konverditakse automaatselt koodiks {2}. Kaalu selle baaspaki uuendamist." - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 -msgid "" -"Warning: platform.txt from core '{0}' misses property '{1}', using default " -"value '{2}'. Consider upgrading this core." -msgstr "Hoiatus: „{0}“ baaspaki platform.txt failis pole määratud „{1}“ väärtust, kasutatakse vaikeväärtust „{2}“. Kaalu selle baaspaki uuendamist." - -#: ../../../../../app/src/processing/app/Preferences.java:190 -msgid "Western Frisian" -msgstr "Lääne Friisi" - -#: debug/Compiler.java:444 -msgid "Wire.receive() has been renamed Wire.read()." -msgstr "Wire.receive() on ümber nimetatud – Wire.read()." - -#: debug/Compiler.java:438 -msgid "Wire.send() has been renamed Wire.write()." -msgstr "Wire.send() on ümber nimetatud – Wire.write()." - -#: FindReplace.java:105 -msgid "Wrap Around" -msgstr "Jätkamine algusest" - -#: debug/Uploader.java:213 -msgid "" -"Wrong microcontroller found. Did you select the right board from the Tools " -"> Board menu?" -msgstr "Mikrokontroller on vale tüüpi. Kas sa valisid Tööriistad > Plaat menüüst õige plaadi?" - -#: Preferences.java:77 UpdateCheck.java:108 -msgid "Yes" -msgstr "Jah" - -#: ../../../../../app/src/processing/app/Base.java:2312 -msgid "You can't import a folder that contains your sketchbook" -msgstr "Kausta, mis sisaldab su visandeid, importida ei saa." - -#: Sketch.java:883 -msgid "" -"You cannot save the sketch into a folder\n" -"inside itself. This would go on forever." -msgstr "Sa ei saa salvestada visandit kausta,\nmis on sama kausta sees." - -#: Base.java:1888 -msgid "You forgot your sketchbook" -msgstr "Sa unustasid oma visandid" - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -msgid "" -"You have unsaved changes!\n" -"You must save all your sketches to enable this option." -msgstr "" - -#: ../../../processing/app/AbstractMonitor.java:92 -msgid "" -"You've pressed {0} but nothing was sent. Should you select a line ending?" -msgstr "Sa vajutasid „{0}“, kuid midagi ei saadetud. Peaksid äkki realõpu vormingu valima?" - -#: Base.java:536 -msgid "" -"You've reached the limit for auto naming of new sketches\n" -"for the day. How about going for a walk instead?" -msgstr "Sa oled saavutanud ühel päeval loodavate automaatsete\nnimede piiri. Kuidas hoopis oleks väikese jalutuskäiguga?" - -#: ../../../processing/app/BaseNoGui.java:768 -msgid "" -"Your copy of the IDE is installed in a subfolder of your settings folder.\n" -"Please move the IDE to another folder." -msgstr "Su seadete kausta alamkausta on paigaldatud su IDE koopia.\nPalun liiguta IDE kuhugi mujale." - -#: ../../../processing/app/BaseNoGui.java:771 -msgid "" -"Your copy of the IDE is installed in a subfolder of your sketchbook.\n" -"Please move the IDE to another folder." -msgstr "Su visandite kausta alamkausta on paigaldatud su IDE koopia.\nPalun liiguta IDE kuhugi mujale." - -#: Base.java:2638 -msgid "ZIP files or folders" -msgstr "ZIP failid või kaustad" - -#: Base.java:2661 -msgid "Zip doesn't contain a library" -msgstr "ZIP failis pole teeki" - -#: Sketch.java:364 -#, java-format -msgid "\".{0}\" is not a valid extension." -msgstr "„.{0}“ pole lubatud laiend." - -#: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 -#, java-format -msgid "" -"\"{0}\" contains unrecognized characters. If this code was created with an " -"older version of Arduino, you may need to use Tools -> Fix Encoding & Reload" -" to update the sketch to use UTF-8 encoding. If not, you may need to delete " -"the bad characters to get rid of this warning." -msgstr "Failis „{0}“ on tuvastamatuid sümboleid. Kui see kood on kirjutatud Arduino vanema versiooniga, võid visandi UTF-8 kooditabelisse teisendamiseks kasutada menüükäsku „Tööriistad -> Paranda kooditabel ja laadi uuesti“. Kui ei, pead sellest hoiatusest lahti saamiseks vigased sümbolid kustutama." - -#: debug/Compiler.java:409 -msgid "" -"\n" -"As of Arduino 0019, the Ethernet library depends on the SPI library.\n" -"You appear to be using it or another library that depends on the SPI library.\n" -"\n" -msgstr "\nAlates Arduino versioonis 0019 on Etherneti teegi kasutamiseks vaja SPI teeki.\nPaistab, et sa kasutad seda või mõnda muud teeki, mis SPI teegist sõltub.\n\n" - -#: debug/Compiler.java:415 -msgid "" -"\n" -"As of Arduino 1.0, the 'BYTE' keyword is no longer supported.\n" -"Please use Serial.write() instead.\n" -"\n" -msgstr "\nAlates Arduino versioonist 1.0 ei kasutata enam võtmesõna „BYTE“.\nPalun kasuta selle asemel Serial.write() funktsiooni.\n\n" - -#: debug/Compiler.java:427 -msgid "" -"\n" -"As of Arduino 1.0, the Client class in the Ethernet library has been renamed to EthernetClient.\n" -"\n" -msgstr "\nAlates Arduino versioonist 1.0 on Etherneti teegis olev klass Client nimetatud ümber EthernetClient klassiks.\n\n" - -#: debug/Compiler.java:421 -msgid "" -"\n" -"As of Arduino 1.0, the Server class in the Ethernet library has been renamed to EthernetServer.\n" -"\n" -msgstr "\nAlates Arduino versioonist 1.0 on Etherneti teegis olev klass Server nimetatud ümber EthernetServer klassiks.\n\n" - -#: debug/Compiler.java:433 -msgid "" -"\n" -"As of Arduino 1.0, the Udp class in the Ethernet library has been renamed to EthernetUdp.\n" -"\n" -msgstr "\nAlates Arduino versioonist 1.0 on Etherneti teegis olev klass Udp nimetatud ümber EthernetUdp klassiks.\n\n" - -#: debug/Compiler.java:445 -msgid "" -"\n" -"As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.\n" -"\n" -msgstr "\nTeiste teekidega ühtlustamiseks on alates Arduino versioonist 1.0 muutunud Wire.receive() nimi – nüüd on see Wire.read().\n\n" - -#: debug/Compiler.java:439 -msgid "" -"\n" -"As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.\n" -"\n" -msgstr "\nTeiste teekidega ühtlustamiseks on alates Arduino versioonist 1.0 muutunud Wire.send() nimi – nüüd on see Wire.write().\n\n" - -#: SerialMonitor.java:130 SerialMonitor.java:133 -msgid "baud" -msgstr "boodi" - -#: Preferences.java:389 -msgid "compilation " -msgstr "kompileerimise ajal" - -#: ../../../processing/app/NetworkMonitor.java:111 -msgid "connected!" -msgstr "ühendus loodud." - -#: ../../../../../app/src/processing/app/Editor.java:1352 -msgid "http://www.arduino.cc/" -msgstr "http://www.arduino.cc/" - -#: UpdateCheck.java:118 -msgid "http://www.arduino.cc/en/Main/Software" -msgstr "http://www.arduino.cc/en/Main/Software" - -#: UpdateCheck.java:53 -msgid "http://www.arduino.cc/latest.txt" -msgstr "http://www.arduino.cc/latest.txt" - -#: Preferences.java:625 -#, java-format -msgid "ignoring invalid font size {0}" -msgstr "vigase fondi suuruse „{0}“ eiramine" - -#: Editor.java:936 Editor.java:943 -msgid "name is null" -msgstr "name on null" - -#: Editor.java:932 -msgid "serialMenu is null" -msgstr "serialMenu on null" - -#: debug/Uploader.java:195 -#, java-format -msgid "" -"the selected serial port {0} does not exist or your board is not connected" -msgstr "valitud jadaporti {0} ei eksisteeri või plaat on ühendamata" - -#: ../../../processing/app/Base.java:389 -#, java-format -msgid "unknown option: {0}" -msgstr "tundmatu valikparameeteer: {0}" - -#: Preferences.java:391 -msgid "upload" -msgstr "üleslaadimise ajal" - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:324 -#, java-format -msgid "version {0}" -msgstr "versioon {0}" - -#: ../../../../../app/src/processing/app/Editor.java:2243 -#, java-format -msgid "{0} - {1} | Arduino {2}" -msgstr "{0} - {1} | Arduino {2}" - -#: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:39 -#: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:43 -#, java-format -msgid "{0} file signature verification failed" -msgstr "{0} faili signatuuri kontrollimine ebaõnnestus" - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:310 -#, java-format -msgid "{0} file signature verification failed. File ignored." -msgstr "{0} faili signatuuri kontrollimine ebaõnnestus. Faili ignoreeritakse." - -#: Editor.java:380 -#, java-format -msgid "{0} files added to the sketch." -msgstr "Visandisse on lisatud {0} faili." - -#: ../../../../../app/src/processing/app/Base.java:1201 -#, java-format -msgid "{0} libraries" -msgstr "{0} teegid" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 -#, java-format -msgid "{0} must be a folder" -msgstr "{0} peab olema kaust" - -#: ../../../../../app/src/processing/app/EditorLineStatus.java:109 -#, java-format -msgid "{0} on {1}" -msgstr "{0} pordis {1}" - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 -#, java-format -msgid "{0} pattern is missing" -msgstr "{0} muster puudub" - -#: debug/Compiler.java:365 -#, java-format -msgid "{0} returned {1}" -msgstr "{0} tagastas {1}" - -#: Editor.java:2213 -#, java-format -msgid "{0} | Arduino {1}" -msgstr "{0} | Arduino {1}" - -#: ../../../processing/app/Base.java:519 -#, java-format -msgid "{0}: Invalid argument to --pref, should be of the form \"pref=value\"" -msgstr "{0}: Vigane argument --pref võtmele, see peaks olema vormingus „pref=value“." - -#: ../../../processing/app/Base.java:476 -#, java-format -msgid "" -"{0}: Invalid board name, it should be of the form \"package:arch:board\" or " -"\"package:arch:board:options\"" -msgstr "{0}: Vigane plaadi nimi. See peab olema vormingus „pakk:arhitektuur:plaat“ või „pakk:arhitektuur:plaat:valikparameetrid“" - -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Vigane parameeter plaadi „{2}“ valikparameetrile „{1}“" - -#: ../../../processing/app/Base.java:507 -#, java-format -msgid "{0}: Invalid option for board \"{1}\"" -msgstr "{0}: Plaadi „{1}“ jaoks vigane valikparameeter" - -#: ../../../processing/app/Base.java:502 -#, java-format -msgid "{0}: Invalid option, should be of the form \"name=value\"" -msgstr "{0}: Vigane valikparameeter, see peab olema vormingus „nimi=väärtus“" - -#: ../../../processing/app/Base.java:486 -#, java-format -msgid "{0}: Unknown architecture" -msgstr "{0}: Tundmatu arhitektuur" - -#: ../../../processing/app/Base.java:491 -#, java-format -msgid "{0}: Unknown board" -msgstr "{0}: Tundmatu plaat" - -#: ../../../processing/app/Base.java:481 -#, java-format -msgid "{0}: Unknown package" -msgstr "{0}: Tundmatu pakk" - -#: ../../../../../arduino-core/src/processing/app/Platform.java:223 -#, java-format -msgid "{0}Install this package{1} to use your {2} board" -msgstr "„{2}“ plaadi kasutamiseks paigalda {0}see pakk{1}" diff --git a/arduino-core/src/processing/app/i18n/Resources_et_EE.properties b/arduino-core/src/processing/app/i18n/Resources_et_EE.properties deleted file mode 100644 index 01a0b8a7a99..00000000000 --- a/arduino-core/src/processing/app/i18n/Resources_et_EE.properties +++ /dev/null @@ -1,1957 +0,0 @@ -# English translations for PACKAGE package. -# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Translators: -# Cougar , 2012 -# Cougar , 2013 -# Cristian Maglie , 2016 -# Georg, 2014 -# Georg, 2014 -# Hasso Tepper , 2016 -# Lauri V\u00f5sandi , 2015 -# Triin Taveter , 2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:37+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Estonian (Estonia) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/et_EE/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: et_EE\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n - -#: Preferences.java:358 Preferences.java:374 -\ \ (requires\ restart\ of\ Arduino)=\ (vajab Arduino taask\u00e4ivitamist) - -#: ../../../processing/app/debug/Compiler.java:529 -#, java-format -\ Not\ used\:\ {0}=\ Kasutamata\: {0} - -#: ../../../processing/app/debug/Compiler.java:525 -#, java-format -\ Used\:\ {0}=\ Kasutusel\: {0} - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=\u2018Keyboard\u2019 definitsiooni ei leitud. Kas su visandis on rida \u2018\#include \u2019? - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=\u2018Mouse\u2019 definitsiooni ei leitud. Kas su visandis on rida \u2018\#include \u2019? - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information=Kataloog \u201earch\u201c pole enam toetatud. Lisainfo saamiseks vaata http\://goo.gl/gfFJzU . - -#: Preferences.java:478 -(edit\ only\ when\ Arduino\ is\ not\ running)=(Arduino ei tohi selle faili muutmise ajal k\u00e4ia.) - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -(legacy)=(iganenud) - -#: ../../../processing/app/helpers/CommandlineParser.java:149 ---curdir\ no\ longer\ supported=--curdir v\u00f5ti pole enam toetatud - -#: ../../../processing/app/Base.java:468 ---verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload ja --verbose-build v\u00f5tmeid saab kasutada ainult koos --verify v\u00f5i --upload v\u00f5tmetega. - -#: Sketch.java:746 -.pde\ ->\ .ino=.pde -> .ino - -#: Editor.java:2053 -\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= Kas soovid muudatused enne sulgemist salvestada?

Salvestamata muudatused l\u00e4hevad kaotsi. - -#: Editor.java:2169 -#, java-format -A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=Kaust \u201e{0}\u201c on juba olemas. Visandit ei saa avada. - -#: Base.java:2690 -#, java-format -A\ library\ named\ {0}\ already\ exists=Teek \u201e{0}\u201c on juba olemas. - -#: UpdateCheck.java:103 -A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Arduino uuem versioon on saadaval.\nSoovid sa allalaadimise lehe avada? - -#: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 -#, java-format -A\ newer\ {0}\ package\ is\ available=Pakist {0} on uus versioon saadaval - -#: ../../../../../app/src/processing/app/Base.java:2307 -A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Su visandite kausta alamkaust pole korrektne teek. - -#: Editor.java:1116 -About\ Arduino=Arduino info - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -Acoli=Akoli - -#: ../../../../../app/src/processing/app/Base.java:1177 -Add\ .ZIP\ Library...=Lisa .ZIP teek ... - -#: Editor.java:650 -Add\ File...=Lisa fail ... - -#: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -Additional\ Boards\ Manager\ URLs=Lisa URL-id plaatide halduseks - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -Additional\ Boards\ Manager\ URLs\:\ =Lisa URL-id plaatide halduseks\: - -#: ../../../../../app/src/processing/app/Preferences.java:161 -Afrikaans=Afrikaani - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= - -#: ../../../processing/app/Preferences.java:96 -Albanian=Albaania - -#: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -All=K\u00f5ik - -#: tools/FixEncoding.java:77 -An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Viga faili kodeeringu parandamise katsel. \u00c4ra proovi\nseda visandit salvestada kuna see v\u00f5ib olemasoleva\n\u00fcle kirjutada. Ava visand uuesti ning proovi siis uuesti.\n - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -An\ error\ occurred\ while\ updating\ libraries\ index\!=Viga teekide indeksi uuendamisel. - -#: ../../../processing/app/BaseNoGui.java:528 -An\ error\ occurred\ while\ uploading\ the\ sketch=Viga visandi \u00fcleslaadimisel - -#: ../../../processing/app/BaseNoGui.java:506 -#: ../../../processing/app/BaseNoGui.java:551 -#: ../../../processing/app/BaseNoGui.java:554 -An\ error\ occurred\ while\ verifying\ the\ sketch=Viga visandi kontrollimisel - -#: ../../../processing/app/BaseNoGui.java:521 -An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=Viga visandi kontrollimisel/\u00fcleslaadimisel - -#: Base.java:228 -An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=Sinu masina platvormip\u00f5hise koodi laadimisel\ntekkis tundmatu viga. - -#: Preferences.java:85 -Arabic=Araabia - -#: Preferences.java:86 -Aragonese=\u00b4aragoni - -#: tools/Archiver.java:48 -Archive\ Sketch=Arhiveeri visand - -#: tools/Archiver.java:109 -Archive\ sketch\ as\:=Visandi arhiveerimine - -#: tools/Archiver.java:139 -Archive\ sketch\ canceled.=Visandi arhiveerimine katkestatud. - -#: tools/Archiver.java:75 -Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Visandi arhiveerimine eba\u00f5nnestus kuna seda\nei saanud korralikult salvestada. - -#: ../../../../../arduino-core/src/processing/app/I18n.java:24 -Arduino=Arduino - -#: ../../../processing/app/I18n.java:83 -Arduino\ ARM\ (32-bits)\ Boards=Arduino ARM (32 bit) plaadid - -#: ../../../processing/app/I18n.java:82 -Arduino\ AVR\ Boards=Arduino AVR plaadid - -#: Editor.java:2137 -Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde=Arduino saab avada ainult oma visandeid\nja teisi .ino v\u00f5i .pde laiendiga faile. - -#: Base.java:1682 -Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ settings.=Arduinot ei saa k\u00e4ivitada kuna seadete kausta\nloomine ei \u00f5nnestunud. - -#: Base.java:1889 -Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.=Arduinot ei saa k\u00e4ivitada kuna visandite kausta\nloomine ei \u00f5nnestunud. - -#: ../../../processing/app/EditorStatus.java:471 -Arduino\:\ =Arduino\: - -#: Sketch.java:588 -#, java-format -Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?=Oled kindel, et soovid \u201e{0}\u201c kustutada? - -#: Sketch.java:587 -Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Oled kindel, et soovid selle visandi kustutada? - -#: ../../../processing/app/Base.java:356 -Argument\ required\ for\ --board=--board v\u00f5ti vajab argumenti - -#: ../../../processing/app/Base.java:363 -Argument\ required\ for\ --port=--port v\u00f5ti vajab argumenti - -#: ../../../processing/app/Base.java:377 -Argument\ required\ for\ --pref=--pref v\u00f5ti vajab argumenti - -#: ../../../processing/app/Base.java:384 -Argument\ required\ for\ --preferences-file=--preferences-file v\u00f5ti vajab argumenti - -#: ../../../processing/app/helpers/CommandlineParser.java:76 -#: ../../../processing/app/helpers/CommandlineParser.java:83 -#, java-format -Argument\ required\ for\ {0}={0} vajab argumenti - -#: ../../../processing/app/Preferences.java:137 -Armenian=Armeenia - -#: ../../../processing/app/Preferences.java:138 -Asturian=Astuuria - -#: ../../../processing/app/debug/Compiler.java:145 -Authorization\ required=Autoriseerimine on vajalik - -#: tools/AutoFormat.java:91 -Auto\ Format=Automaatvormindus - -#: tools/AutoFormat.java:944 -Auto\ Format\ finished.=Automaatvormindus tehtud. - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 -Auto-detect\ proxy\ settings=Proxy seadete automaatne tuvastus - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 -Automatic=Automaatne - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 -Automatic\ proxy\ configuration\ URL\:=Proxy automaatse seadistamise URL\: - -#: SerialMonitor.java:110 -Autoscroll=Automaatne kerimine - -#: Editor.java:2619 -#, java-format -Bad\ error\ line\:\ {0}=Viga real\: {0} - -#: Editor.java:2136 -Bad\ file\ selected=Vigane fail valitud - -#: ../../../processing/app/Preferences.java:149 -Basque=Baski - -#: ../../../processing/app/Preferences.java:139 -Belarusian=Valgevene - -#: ../../../processing/app/Base.java:1433 -#: ../../../processing/app/Editor.java:707 -Board=Plaat - -#: ../../../../../app//src/processing/app/Editor.java:2824 -Board\ Info=Plaadi info - -#: ../../../../../app/src/processing/app/Editor.java:2545 -#: ../../../../../app/src/processing/app/Editor.java:2641 -#, java-format -Board\ at\ {0}\ is\ not\ available=\u201e{0}\u201c pordis pole plaati. - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 -#, java-format -Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown=Plaat {0} (platvorm {1}, pakk {2}) on tundmatu - -#: ../../../processing/app/debug/TargetBoard.java:42 -#, java-format -Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}=Plaat {0}\:{1}\:{2} ei m\u00e4\u00e4ra \u201ebuild.board\u201c eelistust. See seatakse v\u00e4\u00e4rtusele\: {3} - -#: ../../../processing/app/EditorStatus.java:472 -Board\:\ =Plaat\: - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -Boards\ Manager=Plaatide haldus - -#: ../../../../../app/src/processing/app/Base.java:1320 -Boards\ Manager...=Plaatide haldus ... - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 -Boards\ included\ in\ this\ package\:=Selles pakis olevad plaadid\: - -#: ../../../processing/app/debug/Compiler.java:1273 -#, java-format -Bootloader\ file\ specified\ but\ missing\:\ {0}=Alglaadur on m\u00e4\u00e4ratud, kuid see puudub\: {0} - -#: ../../../processing/app/Preferences.java:140 -Bosnian=Bosnia - -#: SerialMonitor.java:112 -Both\ NL\ &\ CR=lisa NL+CR (\\r\\n) - -#: Preferences.java:81 -Browse=Sirvi - -#: ../../../processing/app/Sketch.java:1530 -Build\ options\ changed,\ rebuilding\ all=Kompileerimise seaded on muutunud, k\u00f5ik kompileeritakse ringi. - -#: ../../../../../app/src/processing/app/Base.java:1210 -Built-in\ Examples=Kaasasolevad n\u00e4ited - -#: ../../../processing/app/Preferences.java:80 -Bulgarian=Bulgaaria - -#: ../../../processing/app/Preferences.java:141 -Burmese\ (Myanmar)=Birma (Myanmar) - -#: Editor.java:708 -Burn\ Bootloader=Kirjuta alglaadur - -#: Editor.java:2504 -Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Alglaaduri I/O plaadile kirjutamine (see v\u00f5ib v\u00f5tta m\u00f5ne minuti) ... - -#: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC ei kattu ja fail on rikutud. See v\u00f5ib olla ajutine probleem, proovi hiljem uuesti. - -#: ../../../processing/app/Base.java:379 -#, java-format -Can\ only\ pass\ one\ of\:\ {0}=Ainult \u00fcht neist saab korraga kasutada\: {0} - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= - -#: ../../../processing/app/BaseNoGui.java:504 -#: ../../../processing/app/BaseNoGui.java:549 -Can't\ find\ the\ sketch\ in\ the\ specified\ path=M\u00e4\u00e4ratud asukohast ei leitud visandit. - -#: ../../../processing/app/Preferences.java:92 -Canadian\ French=Prantsuse (Kanada) - -#: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 -#: Editor.java:2064 Editor.java:2145 Editor.java:2465 -Cancel=Loobu - -#: ../../../processing/app/Base.java:465 -Cannot\ specify\ any\ sketch\ files=\u00dchtegi visandi faili ei tohi m\u00e4\u00e4rata - -#: SerialMonitor.java:112 -Carriage\ return=lisa CR (\\r) - -#: Preferences.java:87 -Catalan=Katalaani - -#: Preferences.java:419 -Check\ for\ updates\ on\ startup=Uuenduste kontroll k\u00e4ivitamisel - -#: ../../../processing/app/Preferences.java:142 -Chinese\ (China)=Hiina (Hiina) - -#: ../../../processing/app/Preferences.java:144 -Chinese\ (Taiwan)=Hiina (Taiwan) - -#: ../../../processing/app/Preferences.java:143 -Chinese\ (Taiwan)\ (Big5)=Hiina (Taiwan) (Big5) - -#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= - -#: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Mitteametlik plaatide toe URL-ide nimekiri - -#: Editor.java:521 Editor.java:2024 -Close=Sulge - -#: Editor.java:1208 Editor.java:2749 -Comment/Uncomment=Lisa/eemalda kommentaar - -#: ../../../../../arduino-core/src/processing/app/I18n.java:30 -Communication=Side - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -Compiler\ warnings\:\ =Kompilaatori hoiatused\: - -#: Sketch.java:1608 Editor.java:1890 -Compiling\ sketch...=Visandi kompileerimine ... - -#: ../../../../../arduino-core/src/processing/app/I18n.java:27 -Contributed=Kolmandate osapoolte - -#: Editor.java:1157 Editor.java:2707 -Copy=Kopeeri - -#: Editor.java:1177 Editor.java:2723 -Copy\ as\ HTML=Kopeeri HTML-ina - -#: ../../../processing/app/EditorStatus.java:455 -Copy\ error\ messages=Kopeeri veateade - -#: Editor.java:1165 Editor.java:2715 -Copy\ for\ Forum=Kopeeri foorumi jaoks - -#: Sketch.java:1089 -#, java-format -Could\ not\ add\ ''{0}''\ to\ the\ sketch.=\u201e{0}\u201c ei saa visandisse lisada. - -#: Editor.java:2188 -Could\ not\ copy\ to\ a\ proper\ location.=Etten\u00e4htud kohta ei saa kopeerida. - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:342 -#, java-format -Could\ not\ create\ directory\ "{0}"=Kataloogi \u201e{0}\u201c ei saa luua - -#: Editor.java:2179 -Could\ not\ create\ the\ sketch\ folder.=Visandi kausta pole v\u00f5imalik luua. - -#: Editor.java:2206 -Could\ not\ create\ the\ sketch.=Visandit ei saa luua. - -#: Sketch.java:617 -#, java-format -Could\ not\ delete\ "{0}".=\u201e{0}\u201c pole v\u00f5imalik kustutada. - -#: Sketch.java:1066 -#, java-format -Could\ not\ delete\ the\ existing\ ''{0}''\ file.=Olemasolevat faili \u201e{0}\u201c ei saa kustutada. - -#: ../../../processing/app/debug/TargetPlatform.java:74 -#, java-format -Could\ not\ find\ boards.txt\ in\ {0}.\ Is\ it\ pre-1.5?=\u201e{0}\u201c kaustast ei leitud boards.txt faili. On see p\u00e4rit 1.5 eelsest ajast? - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:282 -#, java-format -Could\ not\ find\ tool\ {0}=T\u00f6\u00f6vahendit {0} ei leitud - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:278 -#, java-format -Could\ not\ find\ tool\ {0}\ from\ package\ {1}=Pakist {1} ei leitud t\u00f6\u00f6vahendit {0} - -#: Base.java:1934 -#, java-format -Could\ not\ open\ the\ URL\n{0}=URL-i avamine eba\u00f5nnestus\n{0} - -#: Base.java:1958 -#, java-format -Could\ not\ open\ the\ folder\n{0}=Kausta avamine eba\u00f5nnestus\n{0} - -#: Sketch.java:1769 -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.=Visandi uuesti salvestamine eba\u00f5nnestus. Siin on tegemist t\u00f5sise probleemiga.\nProovi kopeerida oma kood m\u00f5nda teisse tekstiredaktorisse. - -#: Sketch.java:1768 -Could\ not\ re-save\ sketch=Visandi uuesti salvestamine eba\u00f5nnestus - -#: Theme.java:52 -Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=V\u00e4rviteema seadeid pole v\u00f5imalik lugeda.\nSa pead Arduino uuesti paigaldama. - -#: Preferences.java:219 -Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=Vaikeseadeid pole v\u00f5imalik avada.\nSa pead Arduino uuesti paigaldama. - -#: Base.java:2482 -#, java-format -Could\ not\ remove\ old\ version\ of\ {0}=\u201e{0}\u201c vana versiooni ei saanud eemaldada - -#: Base.java:2492 -#, java-format -Could\ not\ replace\ {0}={0} pole v\u00f5imalik asendada - -#: tools/Archiver.java:74 -Couldn't\ archive\ sketch=Visandi arhiveerimine eba\u00f5nnestus - -#: Sketch.java:1647 -Couldn't\ determine\ program\ size\:\ {0}=Programmi suurust ei saanud kindlaks teha\: {0} - -#: Sketch.java:616 -Couldn't\ do\ it=Ei saanud seda teha - -#: debug/BasicUploader.java:209 -Couldn't\ find\ a\ Board\ on\ the\ selected\ port.\ Check\ that\ you\ have\ the\ correct\ port\ selected.\ \ If\ it\ is\ correct,\ try\ pressing\ the\ board's\ reset\ button\ after\ initiating\ the\ upload.=Valitud pordist plaati ei leitud. Kontrolli, et valitud oleks \u00f5ige port. Kui port on \u00f5ige, proovi kohe p\u00e4rast \u00fcleslaadimise alustamist plaadi RESET nuppu vajutada. - -#: ../../../processing/app/Preferences.java:82 -Croatian=Horvaatia - -#: Editor.java:1149 Editor.java:2699 -Cut=L\u00f5ika - -#: ../../../../../app/src/processing/app/Preferences.java:119 -Czech\ (Czech\ Republic)=T\u0161ehhi (T\u0161ehhi Vabariik) - -#: ../../../../../app/src/processing/app/Preferences.java:120 -Danish\ (Denmark)=Taani (Taani) - -#: ../../../../../arduino-core/src/processing/app/I18n.java:36 -Data\ Processing=Andmet\u00f6\u00f6tlus - -#: ../../../../../arduino-core/src/processing/app/I18n.java:35 -Data\ Storage=Andmete s\u00e4ilitamine - -#: Editor.java:1224 Editor.java:2765 -Decrease\ Indent=V\u00e4henda taanet - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 -Default=Vaikev\u00e4\u00e4rtus - -#: EditorHeader.java:314 Sketch.java:591 -Delete=Kustuta - -#: ../../../../../arduino-core/src/processing/app/I18n.java:33 -Device\ Control=Seadmete juhtimine - -#: debug/Uploader.java:199 -Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=Seade ei vasta. Kontrolli, et valitud oleks \u00f5ige jadaport v\u00f5i vajuta enne eksportimist RESET nuppu - -#: tools/FixEncoding.java:57 -Discard\ all\ changes\ and\ reload\ sketch?=Unusta k\u00f5ik muudatused ning laadi uuesti? - -#: ../../../../../arduino-core/src/processing/app/I18n.java:29 -Display=Ekraanid - -#: ../../../processing/app/Preferences.java:438 -Display\ line\ numbers=Reanumbrite n\u00e4itamine - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 -#, java-format -Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.=Soovid sa {0} eemaldada?\nKui sa seda teed, ei saa sa {0} enam kasutada. - -#: Editor.java:2064 -Don't\ Save=\u00c4ra salvesta - -#: Editor.java:2275 Editor.java:2311 -Done\ Saving.=Salvestamine l\u00f5petatud. - -#: Editor.java:2510 -Done\ burning\ bootloader.=Alglaadur edukalt kirjutatud. - -#: ../../../processing/app/BaseNoGui.java:507 -#: ../../../processing/app/BaseNoGui.java:552 -Done\ compiling=Kompileerimine l\u00f5petatud - -#: Editor.java:1911 Editor.java:1928 -Done\ compiling.=Kompileerimine l\u00f5petatud. - -#: Editor.java:2564 -Done\ printing.=Tr\u00fckkimine l\u00f5petatud. - -#: ../../../processing/app/BaseNoGui.java:514 -Done\ uploading=\u00dcleslaadimine l\u00f5petatud - -#: Editor.java:2395 Editor.java:2431 -Done\ uploading.=\u00dcleslaadimine l\u00f5petatud. - -#: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 -#, java-format -Downloaded\ {0}kb\ of\ {1}kb.=Alla on laaditud {0}kb kokku {1}kb-st. - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 -Downloading\ boards\ definitions.=Plaatide definitsioonide allalaadimine. - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 -Downloading\ libraries\ index...=Teekide indeksi allalaadimine ... - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 -#, java-format -Downloading\ library\:\ {0}=Teegi allalaadimine\: {0} - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 -Downloading\ platforms\ index...=Platvormide indeksi allalaadimine ... - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:113 -#, java-format -Downloading\ tools\ ({0}/{1}).=T\u00f6\u00f6riistade allalaadimine ({0}/{1}). - -#: Preferences.java:91 -Dutch=Hollandi - -#: ../../../processing/app/Preferences.java:144 -Dutch\ (Netherlands)=Hollandi (Holland) - -#: ../../../../../app/src/processing/app/Editor.java:1309 -Edison\ Help=Edisoni abiinfo - -#: Editor.java:1130 -Edit=Redigeerimine - -#: Preferences.java:370 -Editor\ font\ size\:\ =Fondi suurus redaktoris\: - -#: Preferences.java:353 -Editor\ language\:\ =Rakenduse keel\: - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 -Enable\ Code\ Folding=Koodi kokkuvoltimine - -#: Preferences.java:92 -English=Inglise - -#: ../../../processing/app/Preferences.java:145 -English\ (United\ Kingdom)=Inglise (Suurbritannia) - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 -Enter\ a\ comma\ separated\ list\ of\ urls=Sisesta komaga eraldatud URL-ide nimekiri. - -#: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -Enter\ additional\ URLs,\ one\ for\ each\ row=Lisa URL-id sisesta iga\u00fcks omale reale - -#: Editor.java:1062 -Environment=T\u00f6\u00f6keskkond - -#: Base.java:2147 Preferences.java:256 Sketch.java:475 Sketch.java:481 -#: Sketch.java:496 Sketch.java:503 Sketch.java:526 Sketch.java:543 -#: Editor.java:2167 Editor.java:2178 Editor.java:2188 Editor.java:2206 -Error=Viga - -#: Sketch.java:1065 Sketch.java:1088 -Error\ adding\ file=Viga faili lisamisel - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 -#, java-format -Error\ compiling\ for\ board\ {0}.=Viga \u201e{0}\u201c plaadile kompileerimisel. - -#: debug/Compiler.java:369 -Error\ compiling.=Viga kompileerimisel. - -#: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 -#, java-format -Error\ downloading\ {0}=Viga \u201e{0}\u201c allalaadimisel. - -#: Base.java:1674 -Error\ getting\ the\ Arduino\ data\ folder.=Viga Arduino andmekausta leidmisel. - -#: Serial.java:593 -#, java-format -Error\ inside\ Serial.{0}()=Viga Serial.{0}() sees. - -#: ../../../processing/app/debug/TargetPlatform.java:95 -#: ../../../processing/app/debug/TargetPlatform.java:106 -#: ../../../processing/app/debug/TargetPlatform.java:117 -#, java-format -Error\ loading\ {0}=Viga \u201e{0}\u201c laadimisel. - -#: Serial.java:181 -#, java-format -Error\ opening\ serial\ port\ ''{0}''.=Viga jadapordi \u201e{0}\u201c avamisel. - -#: ../../../processing/app/Serial.java:119 -#, java-format -Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Viga jadapordi \u201e{0}\u201c avamisel. Proovi abi otsida dokumentatsioonist aadressil http\://playground.arduino.cc/Linux/All\#Permission - -#: Preferences.java:277 -Error\ reading\ preferences=Viga eelistuste lugemisel - -#: Preferences.java:279 -#, java-format -Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ restart\ Arduino.=Viga eelistuste faili lugemisel. Palun kustuta \u201e{0}\u201c (v\u00f5i t\u00f5sta\nsee mujale) ning k\u00e4ivita Arduino uuesti. - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:245 -Error\ running\ post\ install\ script=Viga paigaldusj\u00e4rgse skripti jooksutamisel. - -#: ../../../cc/arduino/packages/DiscoveryManager.java:25 -Error\ starting\ discovery\ method\:\ =Viga avastusmeetodi k\u00e4ivitamisel\: - -#: Serial.java:125 -#, java-format -Error\ touching\ serial\ port\ ''{0}''.=Viga jadapordi \u201e{0}\u201c avamisel. - -#: Editor.java:2512 Editor.java:2516 Editor.java:2520 -Error\ while\ burning\ bootloader.=Viga alglaaduri kirjutamisel. - -#: ../../../processing/app/Editor.java:2555 -Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Viga alglaaduri kirjutamisel\: \u201e{0}\u201c konfiguratsiooniparameeter puudub - -#: ../../../../../app/src/processing/app/Editor.java:1940 -Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Viga kompileerimisel\: \u201e{0}\u201c konfiguratsiooniparameeter puudub - -#: Editor.java:2567 -Error\ while\ printing.=Viga tr\u00fckkimisel. - -#: ../../../../../arduino-core/src/processing/app/Serial.java:117 -#, java-format -Error\ while\ setting\ serial\ port\ parameters\:\ {0}\ {1}\ {2}\ {3}=Viga jadapordi parameetrite seadmisel\: {0} {1} {2} {3} - -#: ../../../processing/app/BaseNoGui.java:528 -Error\ while\ uploading=Viga \u00fcleslaadimisel - -#: ../../../processing/app/Editor.java:2409 -#: ../../../processing/app/Editor.java:2449 -Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Viga \u00fcleslaadimisel\: \u201e{0}\u201c konfiguratsiooniparameeter puudub - -#: ../../../processing/app/BaseNoGui.java:506 -#: ../../../processing/app/BaseNoGui.java:551 -#: ../../../processing/app/BaseNoGui.java:554 -Error\ while\ verifying=Viga kontrollimisel - -#: ../../../processing/app/BaseNoGui.java:521 -Error\ while\ verifying/uploading=Viga kontrollimisel/\u00fcleslaadimisel - -#: Preferences.java:93 -Estonian=Eesti - -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Eesti (Eesti) - -#: Editor.java:516 -Examples=N\u00e4ited - -#: ../../../../../app/src/processing/app/Base.java:1185 -Examples\ for\ any\ board=N\u00e4ited k\u00f5igile plaatidele - -#: ../../../../../app/src/processing/app/Base.java:1205 -#: ../../../../../app/src/processing/app/Base.java:1216 -#, java-format -Examples\ for\ {0}=\u201e{0}\u201c n\u00e4ited - -#: ../../../../../app/src/processing/app/Base.java:1244 -Examples\ from\ Custom\ Libraries=Ise paigaldatud teekide n\u00e4ited - -#: ../../../../../app/src/processing/app/Base.java:1329 -Examples\ from\ Other\ Libraries=N\u00e4ited teistest teekidest - -#: ../../../../../app/src/processing/app/Editor.java:753 -Export\ canceled,\ changes\ must\ first\ be\ saved.=Eksport katkestatud, muudatused tuleb k\u00f5igepealt salvestada. - -#: ../../../../../app/src/processing/app/Editor.java:750 -Export\ compiled\ Binary=Ekspordi kompileeritud binaar - -#: ../../../processing/app/Base.java:416 -#, java-format -Failed\ to\ open\ sketch\:\ "{0}"=Visandi avamine eba\u00f5nnestus\: \u201e{0}\u201c - -#: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 -#, java-format -Failed\ to\ rename\ "{0}"\ to\ "{1}"=\u201e{0}\u201c nime muutmine \u201e{1}\u201c-ks eba\u00f5nnestus - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -Failed\ to\ rename\ sketch\ folder=Visandikausta nime muutmine eba\u00f5nnestus - -#: Editor.java:491 -File=Fail - -#: ../../../../../arduino-core/src/processing/app/SketchData.java:139 -#, java-format -File\ name\ {0}\ is\ invalid\:\ ignored=Failinimi {0} pole korrektne\: faili ignoreeritakse - -#: Preferences.java:94 -Filipino=Filipiini - -#: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 -Filter\ your\ search...=Otsingu filtreerimine ... - -#: FindReplace.java:124 FindReplace.java:127 -Find=Otsi - -#: Editor.java:1249 -Find\ Next=Otsi j\u00e4rgmist - -#: Editor.java:1259 -Find\ Previous=Otsi eelmist - -#: Editor.java:1086 Editor.java:2775 -Find\ in\ Reference=Otsi dokumentatsioonist - -#: Editor.java:1234 -Find...=Otsi ... - -#: FindReplace.java:80 -Find\:=Otsitav\: - -#: ../../../processing/app/Preferences.java:147 -Finnish=Soome - -#: tools/FixEncoding.java:41 tools/FixEncoding.java:58 -#: tools/FixEncoding.java:79 -Fix\ Encoding\ &\ Reload=Paranda kooditabel ning laadi uuesti - -#: ../../../processing/app/BaseNoGui.java:318 -For\ information\ on\ installing\ libraries,\ see\:\ http\://www.arduino.cc/en/Guide/Libraries\n=Teekide paigaldamise kohta leiad infot aadressilt http\://www.arduino.cc/en/Guide/Libraries\n - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:118 -#, java-format -Forcing\ reset\ using\ 1200bps\ open/close\ on\ port\ {0}=Plaadi l\u00e4htestamine pordi {0} 1200bps kiirusega avamise/sulgemisega. - -#: Preferences.java:95 -French=Prantsuse - -#: Editor.java:1097 -Frequently\ Asked\ Questions=Korduma Kippuvad K\u00fcsimused - -#: Preferences.java:96 -Galician=Galeegi - -#: ../../../../../app/src/processing/app/Preferences.java:176 -Galician\ (Spain)=Galeegi (Hispaania) - -#: ../../../../../app/src/processing/app/Editor.java:1288 -Galileo\ Help=Galileo abiinfo - -#: ../../../processing/app/Preferences.java:94 -Georgian=Gruusia - -#: Preferences.java:97 -German=Saksa - -#: ../../../../../app//src/processing/app/Editor.java:817 -Get\ Board\ Info=Plaadi info - -#: Editor.java:1054 -Getting\ Started=Sissejuhatus - -#: ../../../processing/app/Sketch.java:1646 -#, java-format -Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.=Globaalsed muutujad kasutavad {0} baiti ({2}%%) d\u00fcnaamilisest m\u00e4lust, j\u00e4ttes {3} baiti lokaalse skoobiga muutujatele. Maksimaalne on {1} baiti. - -#: ../../../processing/app/Sketch.java:1651 -#, java-format -Global\ variables\ use\ {0}\ bytes\ of\ dynamic\ memory.=Globaalsed muutujad kasutavad {0} baiti d\u00fcnaamilisest m\u00e4lust. - -#: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 -Go\ to\ line=Liikumine reale - -#: ../../../../../app/src/processing/app/Editor.java:1460 -Go\ to\ line...=Liigu reale ... - -#: Preferences.java:98 -Greek=Kreeka - -#: ../../../processing/app/Preferences.java:95 -Hebrew=Heebria - -#: Editor.java:1015 -Help=Abi - -#: Preferences.java:99 -Hindi=Hindi - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 -Host\ name\:=Hosti nimi\: - -#: Sketch.java:295 -How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Kuidas oleks, kui salvestaks visandi \nenne nime muutmist? - -#: Sketch.java:882 -How\ very\ Borges\ of\ you=Maakera sees on maakera - -#: Preferences.java:100 -Hungarian=Ungari - -#: ../../../../../app/src/processing/app/Base.java:1319 -INCOMPATIBLE=MITTEKOMPATIIBEL - -#: FindReplace.java:96 -Ignore\ Case=T\u00e4hesuuruse ignoreerimine - -#: Base.java:1058 -Ignoring\ bad\ library\ name=Vigase nimega teegi eiramine - -#: Base.java:1436 -Ignoring\ sketch\ with\ bad\ name=Vigase nimega visandi eiramine - -#: ../../../processing/app/Sketch.java:736 -In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=Arduino 1.0 versioonis muutus failide vaikelaiend \u2013 .pde\n-> .ino. Uued visandid (kaasa arvatud need, mida sa\nsalvestad \u201eSalvesta kui\u201c k\u00e4suga) kasutavad uuemat laiendit.\nOlemasolevate visandite laiendit uuendatakse salvestamisel,\nkui selle saad eelistustes ka v\u00e4lja l\u00fclitada.\n\nKas salvestada visand ja uuendada selle laiendit? - -#: ../../../../../app/src/processing/app/Editor.java:778 -Include\ Library=Lisa teek - -#: ../../../processing/app/BaseNoGui.java:768 -#: ../../../processing/app/BaseNoGui.java:771 -Incorrect\ IDE\ installation\ folder=Vigane IDE paigalduskataloog - -#: Editor.java:1216 Editor.java:2757 -Increase\ Indent=Suurenda taanet - -#: Preferences.java:101 -Indonesian=Indoneesia - -#: ../../../../../app/src/processing/app/Base.java:295 -Initializing\ packages...=Pakkide initsialiseerimine ... - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:289 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:78 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 -Install=Paigalda - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 -Installation\ completed\!=Paigaldamine l\u00f5petatud. - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 -Installed=Paigaldatud - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 -Installing\ boards...=Plaatide paigaldamine ... - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 -#, java-format -Installing\ library\:\ {0}=Teegi paigaldamine\: {0} - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 -#, java-format -Installing\ tools\ ({0}/{1})...=T\u00f6\u00f6riistade paigaldamine ({0}/{1}) ... - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:239 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:172 -Installing...=Paigaldamine ... - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 -Interface\ scale\:=Kasutajaliidese suurendus\: - -#: ../../../processing/app/Base.java:1204 -#, java-format -Invalid\ library\ found\ in\ {0}\:\ {1}=\u201e{0}\u201c kataloogist leiti vigane teek\: {1} - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:66 -#, java-format -Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Vigane jutum\u00e4rkide/\u00fclakomade kasutamine\: sulgevat [{0}] m\u00e4rki ei lietud. - -#: Preferences.java:102 -Italian=Itaalia - -#: Preferences.java:103 -Japanese=Jaapani - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -Kazakh=Kasahhi - -#: Preferences.java:104 -Korean=Korea - -#: Preferences.java:105 -Latvian=L\u00e4ti - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -Library\ Manager=Teekide haldus - -#: ../../../../../app/src/processing/app/Base.java:2349 -Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Teek lisati su teekide hulka. Kontrolli \u201eLisa teek\u201c men\u00fc\u00fcd. - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Teek ei saa kasutada korraga \u201esrc\u201c ja \u201eutility\u201c kaustu. Kontrolli \u00fcle {0}. - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 -#, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Teek on juba paigaldatud\: {0} versioon {1} - -#: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 -Line\ number\:=Reanumber\: - -#: Preferences.java:106 -Lithuaninan=Leedu - -#: ../../../../../app/src/processing/app/Base.java:132 -Loading\ configuration...=Seadete laadimine ... - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -#, java-format -Looking\ for\ recipes\ like\ {0}*{1}=Retseptide nagu {0}*{1} otsimine - -#: ../../../processing/app/Sketch.java:1684 -Low\ memory\ available,\ stability\ problems\ may\ occur.=M\u00e4lu on v\u00e4ga v\u00e4he, v\u00f5ivad tekkida probleemid stabiilsusega. - -#: ../../../../../app/src/processing/app/Base.java:1168 -Manage\ Libraries...=Halda teeke ... - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 -Manual\ proxy\ configuration=K\u00e4sitsi seadistamine - -#: Preferences.java:107 -Marathi=Marathi - -#: Base.java:2112 -Message=Teade - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 -#, java-format -Missing\ '{0}'\ from\ library\ in\ {1}=Teegis \u201e{1}\u201c puudub '{0}' - -#: ../../../processing/app/BaseNoGui.java:455 -Mode\ not\ supported=Re\u017eiim pole toetatud - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 -More=Rohkem kui vaikev\u00e4\u00e4rtus - -#: Preferences.java:449 -More\ preferences\ can\ be\ edited\ directly\ in\ the\ file=Rohkem seadeid saad muuta otse failis - -#: Editor.java:2156 -Moving=Liigutamine - -#: ../../../processing/app/BaseNoGui.java:484 -Multiple\ files\ not\ supported=Mitu faili pole toetatud. - -#: ../../../processing/app/debug/Compiler.java:520 -#, java-format -Multiple\ libraries\ were\ found\ for\ "{0}"=\u201e{0}\u201c jaoks leiti mitu teeki - -#: ../../../processing/app/Base.java:395 -Must\ specify\ exactly\ one\ sketch\ file=M\u00e4\u00e4ratud peab olema t\u00e4pselt \u00fche visandi fail - -#: Sketch.java:282 -Name\ for\ new\ file\:=Uue faili nimi\: - -#: ../../../../../app//src/processing/app/Editor.java:2809 -Native\ serial\ port,\ can't\ obtain\ info=Info lugemine jadapordist ei \u00f5nnestu - -#: ../../../processing/app/Preferences.java:149 -Nepali=Nepali - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 -Network=V\u00f5rk - -#: ../../../../../app//src/processing/app/Editor.java:2804 -Network\ port,\ can't\ obtain\ info=Info lugemine v\u00f5rgupordist ei \u00f5nnestu - -#: ../../../../../app/src/processing/app/Editor.java:65 -Network\ ports=V\u00f5rgupordid - -#: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 -Network\ upload\ using\ programmer\ not\ supported=Programmaatoriga \u00fcle v\u00f5rgu \u00fcles laadimine pole toetatud. - -#: EditorToolbar.java:41 Editor.java:493 -New=Uus - -#: EditorHeader.java:292 -New\ Tab=Uus kaart - -#: SerialMonitor.java:112 -Newline=lisa NL (\\n) - -#: EditorHeader.java:340 -Next\ Tab=J\u00e4rgmine kaart - -#: Preferences.java:78 UpdateCheck.java:108 -No=Ei - -#: ../../../processing/app/debug/Compiler.java:158 -No\ authorization\ data\ found=Autoriseerimise infot ei leitud - -#: tools/format/src/AutoFormat.java:54 tools/AutoFormat.java:916 -No\ changes\ necessary\ for\ Auto\ Format.=Automaatvormindus ei vaja muudatusi. - -#: ../../../processing/app/BaseNoGui.java:665 -No\ command\ line\ parameters\ found=\u00dchtegi k\u00e4surea parameetrit ei leitud - -#: ../../../processing/app/debug/Compiler.java:200 -No\ compiled\ sketch\ found=\u00dchtegi kompileeritud visandit ei leitud - -#: Editor.java:373 -No\ files\ were\ added\ to\ the\ sketch.=Visandisse pole faile lisatud. - -#: Platform.java:167 -No\ launcher\ available=Veebilehitseja puudub - -#: SerialMonitor.java:112 -No\ line\ ending=Reavahetust ei lisa - -#: ../../../processing/app/BaseNoGui.java:665 -No\ parameters=Parameetreid pole - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:453 -No\ proxy=Proxyt ei kasutata - -#: Base.java:541 -No\ really,\ time\ for\ some\ fresh\ air\ for\ you.=T\u00f5esti oleks aeg natuke v\u00e4rsket \u00f5hku hingata. - -#: Editor.java:1872 -#, java-format -No\ reference\ available\ for\ "{0}"=\u201e{0}\u201c kohta juhend puudub - -#: ../../../processing/app/BaseNoGui.java:504 -#: ../../../processing/app/BaseNoGui.java:549 -No\ sketch=Visandit pole - -#: ../../../processing/app/BaseNoGui.java:428 -No\ sketchbook=Visandite kausta pole - -#: ../../../processing/app/Sketch.java:204 -No\ valid\ code\ files\ found=\u00dchtegi korrektset koodifaili ei leitud - -#: ../../../processing/app/debug/TargetPackage.java:63 -#, java-format -No\ valid\ hardware\ definitions\ found\ in\ folder\ {0}.=Kasutast \u201e{0}\u201c ei leitud \u00fchtegi korrektset riistvara definitsiooni. - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:184 -None=\u00dcldse mitte - -#: ../../../processing/app/Preferences.java:108 -Norwegian\ Bokm\u00e5l=Norra (Bokm\u00e5l) - -#: ../../../processing/app/Sketch.java:1656 -Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=Pole piisavalt m\u00e4lu. M\u00e4lukasutuse v\u00e4hendamise nippe leiad aadressilt http\://www.arduino.cc/en/Guide/Troubleshooting\#size - -#: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 -#: Editor.java:2145 Editor.java:2465 -OK=OK - -#: Sketch.java:992 Editor.java:376 -One\ file\ added\ to\ the\ sketch.=Visandisse on lisatud \u00fcks fail. - -#: ../../../processing/app/BaseNoGui.java:455 -Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported=Ainult --verify, --upload v\u00f5i --get-pref on toetatud. - -#: EditorToolbar.java:41 -Open=Ava - -#: ../../../../../app/src/processing/app/Editor.java:625 -Open\ Recent=Ava viimati kasutatud - -#: Editor.java:2688 -Open\ URL=Ava URL - -#: Base.java:636 -Open\ an\ Arduino\ sketch...=Arduino visandi avamine - -#: Base.java:903 Editor.java:501 -Open...=Ava ... - -#: ../../../../../arduino-core/src/processing/app/I18n.java:37 -Other=Muud - -#: Editor.java:563 -Page\ Setup=Lehek\u00fclje seaded - -#: ../../../../../arduino-core/src/processing/app/I18n.java:25 -Partner=Partnerid - -#: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 -Password\:=Parool\: - -#: Editor.java:1189 Editor.java:2731 -Paste=Aseta - -#: Preferences.java:109 -Persian=P\u00e4rsia - -#: ../../../processing/app/Preferences.java:161 -Persian\ (Iran)=P\u00e4rsia (Iraan) - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 -#, java-format -Platform\ {0}\ (package\ {1})\ is\ unknown=Platvorm {0} ({1} pakis) on tunmatu - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 -Please\ confirm\ boards\ deletion=Palun kinnitust plaadi kustutamisele - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -Please\ confirm\ library\ deletion=Palun kinnitust teegi kustutamisele - -#: debug/Compiler.java:408 -Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Laadi SPI teek men\u00fc\u00fcst Visand -> Laadi teek. - -#: ../../../processing/app/debug/Compiler.java:529 -Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Laadi Wire teek men\u00fc\u00fcst Visand -> Laadi teek. - -#: ../../../../../app//src/processing/app/Editor.java:2799 -Please\ select\ a\ port\ to\ obtain\ board\ info=Plaadi info n\u00e4gemiseks vali port. - -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 -#: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 -Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=Vali programmaator men\u00fc\u00fcst T\u00f6\u00f6riistad -> Programmaator. - -#: ../../../../../app/src/processing/app/Editor.java:2613 -Plotter\ not\ available\ while\ serial\ monitor\ is\ open=Plotterit ei saa kasutada, kui jadapordi monitor on avatud. - -#: Preferences.java:110 -Polish=Poola - -#: ../../../processing/app/Editor.java:718 -Port=Port - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:491 -Port\ number\:=Pordi number\: - -#: ../../../processing/app/Preferences.java:151 -Portugese=Portugali - -#: ../../../processing/app/Preferences.java:127 -Portuguese\ (Brazil)=Portugali (Brasiilia) - -#: ../../../processing/app/Preferences.java:128 -Portuguese\ (Portugal)=Portugali (Portugal) - -#: Preferences.java:295 Editor.java:583 -Preferences=Eelistused - -#: ../../../../../app/src/processing/app/Base.java:297 -Preparing\ boards...=Plaatide ettevalmistamine ... - -#: FindReplace.java:123 FindReplace.java:128 -Previous=Eelmine - -#: EditorHeader.java:326 -Previous\ Tab=Eelmine kaart - -#: Editor.java:571 -Print=Prindi - -#: Editor.java:2571 -Printing\ canceled.=Tr\u00fckkimine katkestati. - -#: Editor.java:2547 -Printing...=Tr\u00fckkimine ... - -#: Base.java:1957 -Problem\ Opening\ Folder=Probleem kausta avamisel - -#: Base.java:1933 -Problem\ Opening\ URL=Probleem URL-i avamisel - -#: Base.java:227 -Problem\ Setting\ the\ Platform=Probleem platvormi valimisel - -#: ../../../cc/arduino/packages/uploaders/SSHUploader.java:136 -Problem\ accessing\ board\ folder\ /www/sd=Probleem plaadi kaustale /www/sd ligip\u00e4\u00e4suga - -#: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 -#, java-format -Problem\ accessing\ files\ in\ folder\ "{0}"=Probleem kaustas \u201e{0}\u201c failidele ligip\u00e4\u00e4suga - -#: Base.java:1673 -Problem\ getting\ data\ folder=Probleem andmekausta leidmisega - -#: debug/Uploader.java:209 -Problem\ uploading\ to\ board.\ \ See\ http\://www.arduino.cc/en/Guide/Troubleshooting\#upload\ for\ suggestions.=Probleem plaadile \u00fcleslaadimisega. Aadressilt http\://www.arduino.cc/en/Guide/Troubleshooting\#upload leiad soovitusi probleemi lahendamiseks. - -#: Sketch.java:355 Sketch.java:362 Sketch.java:373 -Problem\ with\ rename=Probleem nime muutmisega - -#: ../../../processing/app/I18n.java:86 -Processor=Protsessor - -#: Editor.java:704 -Programmer=Programmaator - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:80 -#, java-format -Progress\ {0}=Edenemine {0} - -#: Base.java:783 Editor.java:593 -Quit=V\u00e4lju - -#: ../../../../../app/src/processing/app/Base.java:1233 -RETIRED=VANANENUD - -#: ../../../../../arduino-core/src/processing/app/I18n.java:26 -Recommended=Soovituslikud - -#: Editor.java:1138 Editor.java:1140 Editor.java:1390 -Redo=Tee uuesti - -#: Editor.java:1078 -Reference=Baasdokumentatsioon - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -Remove=Eemalda - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 -#, java-format -Removing\ library\:\ {0}=Teegi eemaldamine\: {0} - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 -Removing...=Eemaldamine ... - -#: EditorHeader.java:300 -Rename=Nimeta \u00fcmber - -#: FindReplace.java:121 FindReplace.java:130 Sketch.java:1046 -Replace=Asendada - -#: FindReplace.java:122 FindReplace.java:129 -Replace\ &\ Find=Otsi ja asenda - -#: FindReplace.java:120 FindReplace.java:131 -Replace\ All=Asenda k\u00f5ik - -#: Sketch.java:1043 -#, java-format -Replace\ the\ existing\ version\ of\ {0}?=Kas asendada paigaldatud {0} versioon? - -#: FindReplace.java:81 -Replace\ with\:=Asendus\: - -#: ../../../../../arduino-core/src/processing/app/I18n.java:28 -Retired=Vananenud - -#: Preferences.java:113 -Romanian=Rumeenia - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 -#, java-format -Running\ recipe\:\ {0}=Retsepti k\u00e4ivitamine\: {0} - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:82 -#, java-format -Running\:\ {0}=K\u00e4ivitamine\: {0} - -#: Preferences.java:114 -Russian=Vene - -#: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 Editor.java:2064 -#: Editor.java:2468 -Save=Salvesta - -#: Editor.java:537 -Save\ As...=Salvesta kui ... - -#: Editor.java:2317 -Save\ Canceled.=Salvestamine katkestatud. - -#: Editor.java:2020 -#, java-format -Save\ changes\ to\ "{0}"?\ \ =Kas salvestada \u201e{0}\u201c muudatused? - -#: Sketch.java:825 -Save\ sketch\ folder\ as...=Visandi salvestamine uude kausta - -#: ../../../../../app/src/processing/app/Preferences.java:425 -Save\ when\ verifying\ or\ uploading=Salvestamine kontrollimisel v\u00f5i \u00fcleslaadimisel - -#: Editor.java:2270 Editor.java:2308 -Saving...=Salvestamine ... - -#: ../../../processing/app/FindReplace.java:131 -Search\ all\ Sketch\ Tabs=Otsing visandi k\u00f5igist kaarditest - -#: Base.java:1909 -Select\ (or\ create\ new)\ folder\ for\ sketches...=Vali (v\u00f5i loo uus) kaust visandite jaoks ... - -#: Editor.java:1198 Editor.java:2739 -Select\ All=Vali k\u00f5ik - -#: Base.java:2636 -Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add=Vali lisamiseks teeki sisaldav kataloog v\u00f5i ZIP fail - -#: Sketch.java:975 -Select\ an\ image\ or\ other\ data\ file\ to\ copy\ to\ your\ sketch=Vali visandi juurde kopeerimiseks pilt v\u00f5i muu andmefail - -#: Preferences.java:330 -Select\ new\ sketchbook\ location=Vali uus visandite kaust - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 -Select\ version=Vali versioon - -#: ../../../processing/app/debug/Compiler.java:146 -Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=Valitud plaat vajab \u201e{0}\u201c baaspakki (seda pole paigaldatud). - -#: ../../../../../app/src/processing/app/Base.java:374 -Selected\ board\ is\ not\ available=Valitud plaati pole saadaval. - -#: ../../../../../app/src/processing/app/Base.java:423 -Selected\ library\ is\ not\ available=Valitud teeki pole saadaval. - -#: SerialMonitor.java:93 -Send=Saada - -#: ../../../../../arduino-core/src/processing/app/I18n.java:32 -Sensors=Sensorid - -#: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 -Serial\ Monitor=Jadapordi monitor - -#: ../../../../../app/src/processing/app/Editor.java:804 -Serial\ Plotter=Jadapordi plotter - -#: ../../../../../app/src/processing/app/Editor.java:2325 -#, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= - -#: ../../../../../app/src/processing/app/Editor.java:2516 -Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Jadapordi monitori ei saa kasutada, kui plotter on avatud. - -#: Serial.java:194 -#, java-format -Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Jadaporti \u201e{0}\u201c ei leitud. Kas men\u00fc\u00fcs T\u00f6\u00f6riistad -> Jadaport on valitud \u00f5ige port? - -#: Editor.java:2343 -#, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Jadaport \u201e{0}\u201c puudub.\nKas proovime m\u00f5nda teist porti? - -#: ../../../../../app/src/processing/app/Editor.java:65 -Serial\ ports=Jadapordid - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 -#, java-format -Setting\ build\ path\ to\ {0}=Kompileerimise asukoha seadmine v\u00e4\u00e4rtusele {0} - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -Settings=Seaded - -#: Base.java:1681 -Settings\ issues=Probleem seadetega - -#: Editor.java:641 -Show\ Sketch\ Folder=N\u00e4ita visandite kausta - -#: Preferences.java:387 -Show\ verbose\ output\ during\:\ =Detailsem v\u00e4ljund\: - -#: ../../../../../arduino-core/src/processing/app/I18n.java:31 -Signal\ Input/Output=Signaali sisend/v\u00e4ljund - -#: Editor.java:607 -Sketch=Visand - -#: Sketch.java:1754 -Sketch\ Disappeared=Visand on haihtunud - -#: Base.java:1411 -Sketch\ Does\ Not\ Exist=Visandit pole olemas - -#: Sketch.java:274 Sketch.java:303 Sketch.java:577 Sketch.java:966 -Sketch\ is\ Read-Only=Visand on kirjutuskaitsega - -#: Sketch.java:294 -Sketch\ is\ Untitled=Visand on pealkirjastamata - -#: Sketch.java:720 -Sketch\ is\ read-only=Visand on kirjutuskaitsega - -#: Sketch.java:1653 -Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ it.=Visand on liiga suur. Aadressilt http\://www.arduino.cc/en/Guide/Troubleshooting\#size leiad n\u00e4pun\u00e4iteid selle v\u00e4hendamiseks. - -#: ../../../processing/app/Sketch.java:1639 -#, java-format -Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.=Visand kasutab programmi salvestamise ruumist {0} baiti ({2}%%). Maksimum on {1} baiti. - -#: Editor.java:510 -Sketchbook=Visandid - -#: Base.java:258 -Sketchbook\ folder\ disappeared=Visandite kaust on haihtunud - -#: Preferences.java:315 -Sketchbook\ location\:=Visandite asukoht\: - -#: ../../../processing/app/BaseNoGui.java:428 -Sketchbook\ path\ not\ defined=Visandite asukoht on m\u00e4\u00e4ramata - -#: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 -#, java-format -Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=Paki indeksi faili {0} ignoreeritakse, viga parsimisel\: - -#: ../../../../../app/src/processing/app/Preferences.java:185 -Slovak=Slovaki - -#: ../../../processing/app/Preferences.java:152 -Slovenian=Sloveeni - -#: Sketch.java:275 Sketch.java:304 Sketch.java:578 Sketch.java:967 -Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=V\u00e4hemalt m\u00f5ned visandi failid on kirjutuskaitsega.\nSalvesta visand kuhugi mujale ja proovi siis uuesti. - -#: Sketch.java:721 -Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ sketch\ to\ another\ location.=M\u00f5ned failid on kirjutuskaitsega.\nPead salvestama visandi kuhugi mujale. - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:246 -#, java-format -Sorry,\ the\ folder\ "{0}"\ already\ exists.=Vabandust, \u201e{0}\u201c nimeline kaust on juba olemas. - -#: Preferences.java:115 -Spanish=Hispaania - -#: ../../../../../app/src/processing/app/Base.java:2333 -Specified\ folder/zip\ file\ does\ not\ contain\ a\ valid\ library=Valitud kaustas v\u00f5i zip failis pole korrektset teeki. - -#: ../../../../../app/src/processing/app/Base.java:466 -Starting...=K\u00e4ivitamine ... - -#: Base.java:540 -Sunshine=S\u00e4rasilm - -#: ../../../processing/app/Preferences.java:153 -Swedish=Rootsi - -#: Preferences.java:84 -System\ Default=S\u00fcsteemi vaikekeel - -#: ../../../../../app/src/processing/app/Preferences.java:188 -Talossan=Talossan - -#: Preferences.java:116 -Tamil=Tamili - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -Telugu=Telugu - -#: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 -Thai=Tai - -#: debug/Compiler.java:414 -The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.="BYTE" v\u00f5tmes\u00f5na pole enam toetatud. - -#: ../../../processing/app/BaseNoGui.java:484 -The\ --upload\ option\ supports\ only\ one\ file\ at\ a\ time=--upload v\u00f5ti toetab ainult \u00fcht faili korraga - -#: debug/Compiler.java:426 -The\ Client\ class\ has\ been\ renamed\ EthernetClient.=Klass Client on n\u00fc\u00fcd EthernetClient. - -#: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 -#, java-format -The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=IDE-s on uuendatud \u201e{0}\u201c pakk, kuid sina kasutad vanemat.\nSoovid sa \u201e{0}\u201c uuendada? - -#: debug/Compiler.java:420 -The\ Server\ class\ has\ been\ renamed\ EthernetServer.=Klass Server on n\u00fc\u00fcd EthernetServer. - -#: debug/Compiler.java:432 -The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Klass Udp on nimetatud \u00fcmber EthernetUdp. - -#: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=Hetkel valitud plaat vajab \u201e{0}\u201c baaspakki, mis pole paigaldatud. - -#: Editor.java:2147 -#, java-format -The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?="{0}" peab asuma visandite kaustas "{1}".\nKas tekitan selle kausta ning liigutan faili sinna? - -#: Base.java:1054 Base.java:2674 -#, java-format -The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Teeki \u201e{0}\u201c ei saa kasutada.\nTeekide nimed tohivad sisaldada ainult ASCII t\u00e4hti ja\nnumbreid ning peavad algama t\u00e4hega. - -#: ../../../../../app/src/processing/app/SketchController.java:170 -The\ main\ file\ cannot\ use\ an\ extension=P\u00f5hifailil ei tohi laiendit olla. - -#: Sketch.java:356 -The\ name\ cannot\ start\ with\ a\ period.=Nimi ei tohi alata punktiga. - -#: Base.java:1412 -The\ selected\ sketch\ no\ longer\ exists.\nYou\ may\ need\ to\ restart\ Arduino\ to\ update\nthe\ sketchbook\ menu.=Valitud visandit pole enam.\nVisandite kausta men\u00fc\u00fc uuendamiseks\nk\u00e4ivita Arduino uuesti. - -#: Base.java:1430 -#, java-format -The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic\ letters\ and\ numbers\n(ASCII-only\ with\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number).\nTo\ get\ rid\ of\ this\ message,\ remove\ the\ sketch\ from\n{1}=Visandit \u201e{0}\u201c ei saa kasutada.\nVisandite nimed nimed tohivad sisaldada ainult ASCII t\u00e4hti\nja numbreid ning peavad algama t\u00e4hega.\nSellest teatest lahti saamiseks eemalda visand\n\u201e{1}\u201c kaustast. - -#: ../../../../../arduino-core/src/processing/app/Sketch.java:272 -#, java-format -The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Visandis on \u201e{0}\u201c nimeline fail juba olemas. - -#: Sketch.java:1755 -The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Visandi kaust on haihtunud.\nP\u00fc\u00fcan samasse kohta uuesti salvestada,\nkuid k\u00f5ik peale selle koodi on kadunud. - -#: ../../../processing/app/Sketch.java:2028 -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.=Visandi nimi on vaja \u00e4ra muuta. Visandi nimes saavad olla ainult\nASCII t\u00e4hed ja numbrid, kuid need ei saa alata numbriga. Samuti\npeavad need olema l\u00fchemad kui 64 s\u00fcmbolit. - -#: Base.java:259 -The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Visandite kausta pole enam.\nArduino hakkab kasutama vaikimisi kausta ning\nvajadusel tekitab sinna uue visandite kausta. - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 -The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Valitud visandite kaustas on su IDE koopia.\nPalun vali oma visandite hoidmiseks m\u00f5ni teine kaust. - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Seda teeki teekide halduris pole ja sealt seda uuesti paigaldada ei saa.\nOled sa kindel, et soovid selle teegi kustutada? - -#: ../../../../../app/src/processing/app/EditorStatus.java:349 -This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Siin oleks rohkem infot kui \u201eDetailsem v\u00e4ljund\:\nkompileerimise ajal\u201c oleks rakenduse eelistustes\nsisse l\u00fclitatud (Fail -> Eelistused).\n - -#: Base.java:535 -Time\ for\ a\ Break=Aeg puhata - -#: ../../../../../arduino-core/src/processing/app/I18n.java:34 -Timing=Aeg - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 -#, java-format -Tool\ {0}\ is\ not\ available\ for\ your\ operating\ system.=T\u00f6\u00f6vahendit {0} sinu operatsioonis\u00fcsteemile pole. - -#: Editor.java:663 -Tools=T\u00f6\u00f6riistad - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:97 -Topic=Valdkond - -#: Editor.java:1070 -Troubleshooting=Probleemide lahendamine - -#: ../../../processing/app/Preferences.java:117 -Turkish=T\u00fcrgi - -#: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 -Type=T\u00fc\u00fcp - -#: ../../../processing/app/Editor.java:2507 -Type\ board\ password\ to\ access\ its\ console=Konsoolile ligip\u00e4\u00e4suks sisesta plaadi parool. - -#: ../../../processing/app/Sketch.java:1673 -Type\ board\ password\ to\ upload\ a\ new\ sketch=Uue visandi \u00fcleslaadimiseks sisesta plaadi parool. - -#: ../../../processing/app/Preferences.java:118 -Ukrainian=Ukraina - -#: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 -#, java-format -Unable\ to\ connect\ to\ {0}=Aadressiga \u201e{0}\u201c ei \u00f5nnestu \u00fchendust luua - -#: ../../../processing/app/Editor.java:2524 -#: ../../../processing/app/NetworkMonitor.java:145 -Unable\ to\ connect\:\ is\ the\ sketch\ using\ the\ bridge?=\u00dchenduse loomine ei \u00f5nnestu\: kas visand kasutab silda? - -#: ../../../processing/app/NetworkMonitor.java:130 -Unable\ to\ connect\:\ retrying=\u00dchendust ei \u00f5nnestu luua, proovime uuesti. - -#: ../../../processing/app/Editor.java:2526 -Unable\ to\ connect\:\ wrong\ password?=\u00dchendust ei \u00f5nnestu luua, vale parool? - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 -#, java-format -Unable\ to\ find\ {0}\ in\ {1}=Visandit \u201e{0}\u201c pole kataloogis \u201e{1}\u201c - -#: ../../../processing/app/Editor.java:2512 -Unable\ to\ open\ serial\ monitor=Jadapordi monitori pole v\u00f5imalik avada. - -#: ../../../../../app/src/processing/app/Editor.java:2709 -Unable\ to\ open\ serial\ plotter=Jadapordi plotterit pole v\u00f5imalik avada. - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=V\u00f5imalike v\u00f5rguprobleemide t\u00f5ttu pole Arduino.cc k\u00e4ttesaadav. - -#: ../../../../../arduino-core/src/processing/app/I18n.java:38 -Uncategorized=Kategoriseerimata - -#: Editor.java:1133 Editor.java:1355 -Undo=V\u00f5ta tagasi - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 -#, java-format -!Unhandled\ type\ {0}\ in\ context\ key\ {1}= - -#: ../../../../../app//src/processing/app/Editor.java:2818 -Unknown\ board=Tundmatu plaat - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 -#, java-format -Unknown\ sketch\ file\ extension\:\ {0}=Tundmatu visandi faili laiend\: {0} - -#: Platform.java:168 -Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=Tundmatu platvorm, veebilehitseja puudub.\nVeebiaadresside avamiseks lisa\n"launcher\=/kaust/brauser" rida preferences.txt faili. - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 -Updatable=Uuendatav - -#: UpdateCheck.java:111 -Update=Uuenda - -#: Preferences.java:428 -Update\ sketch\ files\ to\ new\ extension\ on\ save\ (.pde\ ->\ .ino)=Visandi laiendi uuendamine (.pde -> .ino) salvestamisel - -#: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:88 -#, java-format -Updates\ available\ for\ some\ of\ your\ {0}boards{1}=M\u00f5nele su {0}plaadile{1} on olemas uuendus. - -#: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 -#, java-format -Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}=M\u00f5nele su {0}plaadile{1} ja {2}teegile{3} on olemas uuendus. - -#: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 -#, java-format -Updates\ available\ for\ some\ of\ your\ {0}libraries{1}=M\u00f5nele su {0}teegile{1} on olemas uuendus. - -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 -Updating\ list\ of\ installed\ libraries=Paigaldatud teekide nimekirja uuendamine. - -#: EditorToolbar.java:41 Editor.java:545 -Upload=Laadi \u00fcles - -#: EditorToolbar.java:46 Editor.java:553 -Upload\ Using\ Programmer=Laadi \u00fcles programmaatori kaudu - -#: ../../../../../app//src/processing/app/Editor.java:2814 -Upload\ any\ sketch\ to\ obtain\ it=Info lugemiseks laadi suvaline visand \u00fcles - -#: Editor.java:2403 Editor.java:2439 -Upload\ canceled.=\u00dcleslaadimine on katkestatud. - -#: ../../../processing/app/Sketch.java:1678 -Upload\ cancelled=\u00dcleslaadimine on katkestatud. - -#: Editor.java:2378 -Uploading\ to\ I/O\ Board...=I/O plaadile laadimine ... - -#: Sketch.java:1622 -Uploading...=\u00dcleslaadimine ... - -#: Editor.java:1269 -Use\ Selection\ For\ Find=Valitud teksti otsimine - -#: Preferences.java:409 -Use\ external\ editor=V\u00e4lise redaktori kasutamine - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 -Username\:=Kasutajanimi\: - -#: ../../../processing/app/debug/Compiler.java:410 -#, java-format -Using\ library\ {0}\ at\ version\ {1}\ in\ folder\:\ {2}\ {3}=Kasutatakse {0} teegi versiooni {1} kaustast\: {2} {3} - -#: ../../../processing/app/debug/Compiler.java:94 -#, java-format -Using\ library\ {0}\ in\ folder\:\ {1}\ {2}=Kasutatakse {0} teeki kaustast\: {1} {2} - -#: ../../../processing/app/debug/Compiler.java:320 -#, java-format -Using\ previously\ compiled\ file\:\ {0}=Kasutatakse eelnevalt kompileeritud faili\: {0} - -#: EditorToolbar.java:41 EditorToolbar.java:46 -Verify=Kontrolli - -#: Preferences.java:400 -Verify\ code\ after\ upload=Koodi kontrollimine p\u00e4rast \u00fcleslaadimist - -#: ../../../../../app/src/processing/app/Editor.java:725 -Verify/Compile=Kontrolli/kompileeri - -#: ../../../../../app/src/processing/app/Base.java:451 -Verifying\ and\ uploading...=Kontrollimine ja \u00fcleslaadimine ... - -#: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 -Verifying\ archive\ integrity...=Arhiivi terviklikkuse kontrollimine ... - -#: ../../../../../app/src/processing/app/Base.java:454 -Verifying...=Kontrollimine ... - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 -#, java-format -Version\ {0}=Versioon {0} - -#: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:326 -Version\ unknown=Tundmatu versioon - -#: ../../../cc/arduino/contributions/libraries/ContributedLibrary.java:97 -#, java-format -Version\ {0}=Versioon {0} - -#: ../../../processing/app/Preferences.java:154 -Vietnamese=Vietnami - -#: Editor.java:1105 -Visit\ Arduino.cc=K\u00fclasta Arduino.cc lehte - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 -#, java-format -WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'=HOIATUS\: Kategooria '{0}' teegis {1} pole korrektne. See seatakse v\u00e4\u00e4rtusele '{2}' - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 -#, java-format -WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library=HOIATUS\: Vigane {0} kataloog '{1}' teegis - -#: ../../../processing/app/debug/Compiler.java:115 -#, java-format -WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=HOIATUS\: Teek {0} v\u00e4idab ennast olevat {1} arhitektuuri(de)le ja v\u00f5ib sinu kasutatava plaadiga, mis on {2} arhitektuuri(de)ga, mitte kokku sobida. - -#: Base.java:2128 -Warning=Hoiatus - -#: ../../../processing/app/debug/Compiler.java:1295 -Warning\:\ This\ core\ does\ not\ support\ exporting\ sketches.\ Please\ consider\ upgrading\ it\ or\ contacting\ its\ author=Hoiatus\: See baaspakk ei toeta visandite eksportimist. Kaalu selle uuendamist v\u00f5i v\u00f5ta \u00fchendust paki autoriga. - -#: ../../../cc/arduino/utils/ArchiveExtractor.java:197 -#, java-format -Warning\:\ file\ {0}\ links\ to\ an\ absolute\ path\ {1}=Hoiatus\: fail {0} viitab t\u00e4ielikule asukohale {1} - -#: ../../../cc/arduino/contributions/packages/ContributionsIndexer.java:133 -Warning\:\ forced\ trusting\ untrusted\ contributions=Hoiatus\: mitteusaldusv\u00e4\u00e4rse paki sunnitud usaldamine - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:217 -#, java-format -Warning\:\ forced\ untrusted\ script\ execution\ ({0})=Hoiatus\: mitteusaldusv\u00e4\u00e4rse skripti ({0}) sunnitud k\u00e4ivitamine - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:212 -#, java-format -Warning\:\ non\ trusted\ contribution,\ skipping\ script\ execution\ ({0})=Hoiatus\: pakk pole usaldusv\u00e4\u00e4rne, skripte ei k\u00e4ivitata ({0}) - -#: ../../../processing/app/debug/LegacyTargetPlatform.java:158 -#, java-format -Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.=Hoiatus\: '{0}' baaspaki platform.txt fail sisaldab aegunud koodi\: {1}, mis konverditakse automaatselt koodiks {2}. Kaalu selle baaspaki uuendamist. - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 -Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.=Hoiatus\: \u201e{0}\u201c baaspaki platform.txt failis pole m\u00e4\u00e4ratud \u201e{1}\u201c v\u00e4\u00e4rtust, kasutatakse vaikev\u00e4\u00e4rtust \u201e{2}\u201c. Kaalu selle baaspaki uuendamist. - -#: ../../../../../app/src/processing/app/Preferences.java:190 -Western\ Frisian=L\u00e4\u00e4ne Friisi - -#: debug/Compiler.java:444 -Wire.receive()\ has\ been\ renamed\ Wire.read().=Wire.receive() on \u00fcmber nimetatud \u2013 Wire.read(). - -#: debug/Compiler.java:438 -Wire.send()\ has\ been\ renamed\ Wire.write().=Wire.send() on \u00fcmber nimetatud \u2013 Wire.write(). - -#: FindReplace.java:105 -Wrap\ Around=J\u00e4tkamine algusest - -#: debug/Uploader.java:213 -Wrong\ microcontroller\ found.\ \ Did\ you\ select\ the\ right\ board\ from\ the\ Tools\ >\ Board\ menu?=Mikrokontroller on vale t\u00fc\u00fcpi. Kas sa valisid T\u00f6\u00f6riistad > Plaat men\u00fc\u00fcst \u00f5ige plaadi? - -#: Preferences.java:77 UpdateCheck.java:108 -Yes=Jah - -#: ../../../../../app/src/processing/app/Base.java:2312 -You\ can't\ import\ a\ folder\ that\ contains\ your\ sketchbook=Kausta, mis sisaldab su visandeid, importida ei saa. - -#: Sketch.java:883 -You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ go\ on\ forever.=Sa ei saa salvestada visandit kausta,\nmis on sama kausta sees. - -#: Base.java:1888 -You\ forgot\ your\ sketchbook=Sa unustasid oma visandid - -#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= - -#: ../../../processing/app/AbstractMonitor.java:92 -You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=Sa vajutasid \u201e{0}\u201c, kuid midagi ei saadetud. Peaksid \u00e4kki real\u00f5pu vormingu valima? - -#: Base.java:536 -You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day.\ How\ about\ going\ for\ a\ walk\ instead?=Sa oled saavutanud \u00fchel p\u00e4eval loodavate automaatsete\nnimede piiri. Kuidas hoopis oleks v\u00e4ikese jalutusk\u00e4iguga? - -#: ../../../processing/app/BaseNoGui.java:768 -Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ settings\ folder.\nPlease\ move\ the\ IDE\ to\ another\ folder.=Su seadete kausta alamkausta on paigaldatud su IDE koopia.\nPalun liiguta IDE kuhugi mujale. - -#: ../../../processing/app/BaseNoGui.java:771 -Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ sketchbook.\nPlease\ move\ the\ IDE\ to\ another\ folder.=Su visandite kausta alamkausta on paigaldatud su IDE koopia.\nPalun liiguta IDE kuhugi mujale. - -#: Base.java:2638 -ZIP\ files\ or\ folders=ZIP failid v\u00f5i kaustad - -#: Base.java:2661 -Zip\ doesn't\ contain\ a\ library=ZIP failis pole teeki - -#: Sketch.java:364 -#, java-format -".{0}"\ is\ not\ a\ valid\ extension.=\u201e.{0}\u201c pole lubatud laiend. - -#: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 -#, java-format -"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.=Failis \u201e{0}\u201c on tuvastamatuid s\u00fcmboleid. Kui see kood on kirjutatud Arduino vanema versiooniga, v\u00f5id visandi UTF-8 kooditabelisse teisendamiseks kasutada men\u00fc\u00fck\u00e4sku \u201eT\u00f6\u00f6riistad -> Paranda kooditabel ja laadi uuesti\u201c. Kui ei, pead sellest hoiatusest lahti saamiseks vigased s\u00fcmbolid kustutama. - -#: debug/Compiler.java:409 -\nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nAlates Arduino versioonis 0019 on Etherneti teegi kasutamiseks vaja SPI teeki.\nPaistab, et sa kasutad seda v\u00f5i m\u00f5nda muud teeki, mis SPI teegist s\u00f5ltub.\n\n - -#: debug/Compiler.java:415 -\nAs\ of\ Arduino\ 1.0,\ the\ 'BYTE'\ keyword\ is\ no\ longer\ supported.\nPlease\ use\ Serial.write()\ instead.\n\n=\nAlates Arduino versioonist 1.0 ei kasutata enam v\u00f5tmes\u00f5na \u201eBYTE\u201c.\nPalun kasuta selle asemel Serial.write() funktsiooni.\n\n - -#: debug/Compiler.java:427 -\nAs\ of\ Arduino\ 1.0,\ the\ Client\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\nAlates Arduino versioonist 1.0 on Etherneti teegis olev klass Client nimetatud \u00fcmber EthernetClient klassiks.\n\n - -#: debug/Compiler.java:421 -\nAs\ of\ Arduino\ 1.0,\ the\ Server\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetServer.\n\n=\nAlates Arduino versioonist 1.0 on Etherneti teegis olev klass Server nimetatud \u00fcmber EthernetServer klassiks.\n\n - -#: debug/Compiler.java:433 -\nAs\ of\ Arduino\ 1.0,\ the\ Udp\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetUdp.\n\n=\nAlates Arduino versioonist 1.0 on Etherneti teegis olev klass Udp nimetatud \u00fcmber EthernetUdp klassiks.\n\n - -#: debug/Compiler.java:445 -\nAs\ of\ Arduino\ 1.0,\ the\ Wire.receive()\ function\ was\ renamed\ to\ Wire.read()\ for\ consistency\ with\ other\ libraries.\n\n=\nTeiste teekidega \u00fchtlustamiseks on alates Arduino versioonist 1.0 muutunud Wire.receive() nimi \u2013 n\u00fc\u00fcd on see Wire.read().\n\n - -#: debug/Compiler.java:439 -\nAs\ of\ Arduino\ 1.0,\ the\ Wire.send()\ function\ was\ renamed\ to\ Wire.write()\ for\ consistency\ with\ other\ libraries.\n\n=\nTeiste teekidega \u00fchtlustamiseks on alates Arduino versioonist 1.0 muutunud Wire.send() nimi \u2013 n\u00fc\u00fcd on see Wire.write().\n\n - -#: SerialMonitor.java:130 SerialMonitor.java:133 -baud=boodi - -#: Preferences.java:389 -compilation\ =kompileerimise ajal - -#: ../../../processing/app/NetworkMonitor.java:111 -connected\!=\u00fchendus loodud. - -#: ../../../../../app/src/processing/app/Editor.java:1352 -http\://www.arduino.cc/=http\://www.arduino.cc/ - -#: UpdateCheck.java:118 -http\://www.arduino.cc/en/Main/Software=http\://www.arduino.cc/en/Main/Software - -#: UpdateCheck.java:53 -http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt - -#: Preferences.java:625 -#, java-format -ignoring\ invalid\ font\ size\ {0}=vigase fondi suuruse \u201e{0}\u201c eiramine - -#: Editor.java:936 Editor.java:943 -name\ is\ null=name on null - -#: Editor.java:932 -serialMenu\ is\ null=serialMenu on null - -#: debug/Uploader.java:195 -#, java-format -the\ selected\ serial\ port\ {0}\ does\ not\ exist\ or\ your\ board\ is\ not\ connected=valitud jadaporti {0} ei eksisteeri v\u00f5i plaat on \u00fchendamata - -#: ../../../processing/app/Base.java:389 -#, java-format -unknown\ option\:\ {0}=tundmatu valikparameeteer\: {0} - -#: Preferences.java:391 -upload=\u00fcleslaadimise ajal - -#: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:324 -#, java-format -version\ {0}=versioon {0} - -#: ../../../../../app/src/processing/app/Editor.java:2243 -#, java-format -{0}\ -\ {1}\ |\ Arduino\ {2}={0} - {1} | Arduino {2} - -#: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:39 -#: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:43 -#, java-format -{0}\ file\ signature\ verification\ failed={0} faili signatuuri kontrollimine eba\u00f5nnestus - -#: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:310 -#, java-format -{0}\ file\ signature\ verification\ failed.\ File\ ignored.={0} faili signatuuri kontrollimine eba\u00f5nnestus. Faili ignoreeritakse. - -#: Editor.java:380 -#, java-format -{0}\ files\ added\ to\ the\ sketch.=Visandisse on lisatud {0} faili. - -#: ../../../../../app/src/processing/app/Base.java:1201 -#, java-format -{0}\ libraries={0} teegid - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 -#, java-format -{0}\ must\ be\ a\ folder={0} peab olema kaust - -#: ../../../../../app/src/processing/app/EditorLineStatus.java:109 -#, java-format -{0}\ on\ {1}={0} pordis {1} - -#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 -#, java-format -{0}\ pattern\ is\ missing={0} muster puudub - -#: debug/Compiler.java:365 -#, java-format -{0}\ returned\ {1}={0} tagastas {1} - -#: Editor.java:2213 -#, java-format -{0}\ |\ Arduino\ {1}={0} | Arduino {1} - -#: ../../../processing/app/Base.java:519 -#, java-format -{0}\:\ Invalid\ argument\ to\ --pref,\ should\ be\ of\ the\ form\ "pref\=value"={0}\: Vigane argument --pref v\u00f5tmele, see peaks olema vormingus \u201epref\=value\u201c. - -#: ../../../processing/app/Base.java:476 -#, java-format -{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Vigane plaadi nimi. See peab olema vormingus \u201epakk\:arhitektuur\:plaat\u201c v\u00f5i \u201epakk\:arhitektuur\:plaat\:valikparameetrid\u201c - -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Vigane parameeter plaadi \u201e{2}\u201c valikparameetrile \u201e{1}\u201c - -#: ../../../processing/app/Base.java:507 -#, java-format -{0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Plaadi \u201e{1}\u201c jaoks vigane valikparameeter - -#: ../../../processing/app/Base.java:502 -#, java-format -{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Vigane valikparameeter, see peab olema vormingus \u201enimi\=v\u00e4\u00e4rtus\u201c - -#: ../../../processing/app/Base.java:486 -#, java-format -{0}\:\ Unknown\ architecture={0}\: Tundmatu arhitektuur - -#: ../../../processing/app/Base.java:491 -#, java-format -{0}\:\ Unknown\ board={0}\: Tundmatu plaat - -#: ../../../processing/app/Base.java:481 -#, java-format -{0}\:\ Unknown\ package={0}\: Tundmatu pakk - -#: ../../../../../arduino-core/src/processing/app/Platform.java:223 -#, java-format -{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board=\u201e{2}\u201c plaadi kasutamiseks paigalda {0}see pakk{1} diff --git a/arduino-core/src/processing/app/i18n/Resources_eu.po b/arduino-core/src/processing/app/i18n/Resources_eu.po index aa19f0e7db1..ce6ecb67480 100644 --- a/arduino-core/src/processing/app/i18n/Resources_eu.po +++ b/arduino-core/src/processing/app/i18n/Resources_eu.po @@ -16,9 +16,18 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Asier Iturralde Sarasola , 2018 # @atzerritik, 2014 # Ivan Barquero , 2014 +# iñigo Gebara , 2018 # Ivan Barquero , 2014 +# José Miguel Andonegi , 2017-2019 +# Jose Zabala , 2018 +# Jose Zabala , 2018 # Zylu , 2014 # Rubén Garciandía , 2016 msgid "" @@ -26,8 +35,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 21:01+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-06-30 22:48+0000\n" +"Last-Translator: José Miguel Andonegi \n" "Language-Team: Basque (http://www.transifex.com/mbanzi/arduino-ide-15/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,52 +46,52 @@ msgstr "" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" -msgstr "(Arduinoa berabiarazi behar da)" +msgstr " (Arduinoa berrabiarazi behar da)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format msgid " Not used: {0}" -msgstr "Erabil gabe: {0}" +msgstr " Erabili gabe: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format msgid " Used: {0}" -msgstr "Erabiltzen: {0}" +msgstr " Erabilia: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "Ezin da aurkitzen 'Teclatua'. Ziur egon zure sketch '#include ' lerroa dauka." +msgstr "Ezin da aurkitu 'Teklatua'. Zure programak '#include ' lerroa dauka?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" "'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "Ezin da aurkitzen 'Sagua'. Ziur egon zure sketch '#include ' lerroa dauka." +msgstr "Ezin da aurkitu 'Sagua'. Zure programak '#include ' lerroa dauka?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 msgid "" "'arch' folder is no longer supported! See http://goo.gl/gfFJzU for more " "information" -msgstr "" +msgstr "'arch' karpetak ez dauka euskarririk jada! Ikusi http://goo.gl/gfFJzU informazio gehiagorako" #: Preferences.java:478 msgid "(edit only when Arduino is not running)" -msgstr "(soilik editatu Arduino lanean ez dagoenean )" +msgstr "(Arduino exekutatzen ari ez denean soilik editatu)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "" +msgstr "(zaharra)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" -msgstr "" +msgstr "Dagoeneko --curdir ez da onartzen" #: ../../../processing/app/Base.java:468 msgid "" "--verbose, --verbose-upload and --verbose-build can only be used together " "with --verify or --upload" -msgstr "" +msgstr "--verbose, --verbose-upload eta --verbose-build erabiltzeko beharrezkoa da --verify edo --upload erabiltzea" #: Sketch.java:746 msgid ".pde -> .ino" @@ -94,12 +103,12 @@ msgid "" " font: 11pt \"Lucida Grande\"; margin-top: 8px } Do you " "want to save changes to this sketch
before closing?

If you don't " "save, your changes will be lost." -msgstr " Sketch honetarako aldaketak gorde nahi dituzu
itxi aurretik?

Ez baduzu gordetzen, zure aldaketak galduko dira." +msgstr " Programa honi egindako aldaketak gorde nahi dituzu
itxi aurretik?

Ez baduzu gordetzen, zure aldaketak galduko dira." #: Editor.java:2169 #, java-format msgid "A folder named \"{0}\" already exists. Can't open sketch." -msgstr "Dagoeneko {0} izeneko karpeta bat existitzen da. Ezin da sketcha ireki" +msgstr "Dagoeneko {0} izeneko karpeta bat existitzen da. Ezin da programa ireki." #: Base.java:2690 #, java-format @@ -110,16 +119,16 @@ msgstr "Dagoeneko {0} izeneko liburutegi bat existitzen da" msgid "" "A new version of Arduino is available,\n" "would you like to visit the Arduino download page?" -msgstr "Arduinoren bertsio berri bat eskuragarri dago,\nArduinoren deskargako orria bisitatzea nahi duzu?" +msgstr "Arduinoren bertsio berri bat eskuragarri dago,\nArduinoren deskargen orria bisitatu nahi duzu?" #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format msgid "A newer {0} package is available" -msgstr "" +msgstr "{0} pakete berriagoa eskuragarri dago" #: ../../../../../app/src/processing/app/Base.java:2307 msgid "A subfolder of your sketchbook is not a valid library" -msgstr "" +msgstr "Zure programa bildumaren azpikarpeta bat ez da liburutegi onargarria" #: Editor.java:1116 msgid "About Arduino" @@ -127,31 +136,31 @@ msgstr "Arduinori buruz" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Acholiera" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "" +msgstr "Gehitu .zip liburutegia..." #: Editor.java:650 msgid "Add File..." -msgstr "Fitxategia gehitu..." +msgstr "Gehitu fitxategia..." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "" +msgstr "Plaka kudeatzaile gehigarrien URLak" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "" +msgstr "Plaka kudeatzaile gehigarrien URLak: " #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" -msgstr "" +msgstr "Afrikaansa" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Cachetik azkar konpilatutako nukleoa" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -161,38 +170,38 @@ msgstr "Albaniera" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 msgid "All" -msgstr "" +msgstr "Denak" #: tools/FixEncoding.java:77 msgid "" "An error occurred while trying to fix the file encoding.\n" "Do not attempt to save this sketch as it may overwrite\n" "the old version. Use Open to re-open the sketch and try again.\n" -msgstr "Arazo bat gertatu da fitxategiaren kodifikazioa konpontzen saiatzean.\nEz saiatu sketch hau gordetzen, aurreko bertsioa gainidatzi bait dezake.\nZabaldu sakatu sketch-a berriro zabaltzeko eta saiatu berriro.\n" +msgstr "Arazo bat gertatu da fitxategiaren kodifikazioa konpontzen saiatzean.\nEz saiatu programa hau gordetzen, aurreko bertsioa gainidatzi baitezake.\nIreki sakatu programa berriro zabaltzeko eta saiatu berriro.\n" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "" +msgstr "Errorea gertatu da liburutegien indizea eguneratzean" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" -msgstr "" +msgstr "Errorea gertatu da programa kargatzerakoan" #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "An error occurred while verifying the sketch" -msgstr "" +msgstr "Errorea gertatu da programa egiaztatzerakoan" #: ../../../processing/app/BaseNoGui.java:521 msgid "An error occurred while verifying/uploading the sketch" -msgstr "" +msgstr "Errorea gertatu da programa egiaztatzerakoan edo kargatzerakoan" #: Base.java:228 msgid "" "An unknown error occurred while trying to load\n" "platform-specific code for your machine." -msgstr "Akats ezezagun bat gertatu da kargatzen saiatzerakoan\nkodigoa zure makonaren plataformako espezifikoa da." +msgstr "Errore ezezagun bat gertatu da zure makinan\nplataforma-espezifikoa den kodea kargatzen saiatzean." #: Preferences.java:85 msgid "Arabic" @@ -204,86 +213,91 @@ msgstr "Aragoiera" #: tools/Archiver.java:48 msgid "Archive Sketch" -msgstr "Sketch-a gorde" +msgstr "Artxibatu programa" #: tools/Archiver.java:109 msgid "Archive sketch as:" -msgstr "Gorde sketcha honela:" +msgstr "Artxibatu programa honela:" #: tools/Archiver.java:139 msgid "Archive sketch canceled." -msgstr "Sketch-aren gordetzea bertan behera utzi da.." +msgstr "Programa artxibatzea bertan behera utzi da." + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Cachetik sortutako nukleoa hemen gordetzen: {0}" #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" "the sketch couldn't save properly." -msgstr "Sketch-aren gordetzea bertan behera utzi da\nsketch-a ezin bait da ondo gorde." +msgstr "Programa artxibatzea bertan behera utzi da\nprograma ezin izan delako ondo gorde." #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" -msgstr "" +msgstr "Arduino" #: ../../../processing/app/I18n.java:83 msgid "Arduino ARM (32-bits) Boards" -msgstr "Arduino ARM (32-bit) Plakak" +msgstr "Arduino ARM (32-bit) plakak" #: ../../../processing/app/I18n.java:82 msgid "Arduino AVR Boards" -msgstr "Arduino AVR Plakak" +msgstr "Arduino AVR plakak" #: Editor.java:2137 msgid "" "Arduino can only open its own sketches\n" "and other files ending in .ino or .pde" -msgstr "" +msgstr "Arduinok bere programa propioak eta .ino edo .pde\namaiera duten beste fitxategiak soilik ireki ditzake" #: Base.java:1682 msgid "" "Arduino cannot run because it could not\n" "create a folder to store your settings." -msgstr "Arduinok ezin du funtzionatu ezin duelako karpeta\nbat zure konfigurazioa gordetzeko sortu." +msgstr "Arduinok ezin du funtzionatu ezin izan duelako\nzure ezarpenak gordetzeko karpeta sortu." #: Base.java:1889 msgid "" "Arduino cannot run because it could not\n" "create a folder to store your sketchbook." -msgstr "Arduinok ezin du funtzionatu ezin duelako karpeta\nbat zure sketchbook-a gordetzeko sortu." +msgstr "Arduinok ezin du funtzionatu ezin izan duelako\nzure programa bilduma gordetzeko karpeta sortu." #: ../../../processing/app/EditorStatus.java:471 msgid "Arduino: " -msgstr "Arduino:" +msgstr "Arduino: " #: Sketch.java:588 #, java-format msgid "Are you sure you want to delete \"{0}\"?" -msgstr "\"{0}\" ezabatu nahi duzula seguru zara?" +msgstr "Ziur zaude \"{0}\" ezabatu nahi duzula?" #: Sketch.java:587 msgid "Are you sure you want to delete this sketch?" -msgstr "Sketch hau ezabatu nahi duzula seguru zara?" +msgstr "Ziur zaude programa hau ezabatu nahi duzula?" #: ../../../processing/app/Base.java:356 msgid "Argument required for --board" -msgstr "Argumentua beharrezkoa da --plakarako" +msgstr "Argumentua beharrezkoa da --board aukerarentzat" #: ../../../processing/app/Base.java:363 msgid "Argument required for --port" -msgstr "Argumentua beharrezkoa da --atakarako" +msgstr "Argumentua beharrezkoa da --port aukerarentzat" #: ../../../processing/app/Base.java:377 msgid "Argument required for --pref" -msgstr "Argumentua beharrezkoa da --pref arako" +msgstr "Argumentua beharrezkoa da --pref aukerarentzat" #: ../../../processing/app/Base.java:384 msgid "Argument required for --preferences-file" -msgstr "Argumentua beharrezkoa da --Hobespen fitxategirako" +msgstr "Argumentua beharrezkoa da --preferences-file aukerarentzat" #: ../../../processing/app/helpers/CommandlineParser.java:76 #: ../../../processing/app/helpers/CommandlineParser.java:83 #, java-format msgid "Argument required for {0}" -msgstr "" +msgstr "Argumentua beharrezkoa da {0} aukerarentzat" #: ../../../processing/app/Preferences.java:137 msgid "Armenian" @@ -295,11 +309,11 @@ msgstr "Bable" #: ../../../processing/app/debug/Compiler.java:145 msgid "Authorization required" -msgstr "" +msgstr "Baimena beharrezkoa" #: tools/AutoFormat.java:91 msgid "Auto Format" -msgstr "Formatu Automatikoa." +msgstr "Formatu automatikoa" #: tools/AutoFormat.java:944 msgid "Auto Format finished." @@ -307,19 +321,19 @@ msgstr "Formatu automatikoa bukatu da." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 msgid "Auto-detect proxy settings" -msgstr "" +msgstr "Proxy-aren ezarpenak automatikoki detektatu" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 msgid "Automatic" -msgstr "" +msgstr "Automatikoa" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 msgid "Automatic proxy configuration URL:" -msgstr "" +msgstr "Proxy-aren ezarpen automatikoen URLa:" #: SerialMonitor.java:110 msgid "Autoscroll" -msgstr "Autoscroll" +msgstr "Korritze automatikoa" #: Editor.java:2619 #, java-format @@ -328,7 +342,7 @@ msgstr "Errore lerroa: {0}" #: Editor.java:2136 msgid "Bad file selected" -msgstr "Hautatutako fitxategi txarra da" +msgstr "Fitxategi okerra hautatuta" #: ../../../processing/app/Preferences.java:149 msgid "Basque" @@ -345,46 +359,46 @@ msgstr "Plaka" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "Plakaren informazioa" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "" +msgstr "{0}-n plaka ez dago eskuragarri" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format msgid "Board {0} (platform {1}, package {2}) is unknown" -msgstr "" +msgstr "Plaka {0} ezezaguna ({1} plataforma, {2} paketea)" #: ../../../processing/app/debug/TargetBoard.java:42 #, java-format msgid "" "Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to:" " {3}" -msgstr "Plaka {0}:{1}:{2} ez du definitzen ''build.board'' lehentasuna. Auto-seta: {3} etara" +msgstr "{0}:{1}:{2} plakak ez du ''build.board'' hobespena definitzen. Balio hau ezarri da automatikoki: {3}" #: ../../../processing/app/EditorStatus.java:472 msgid "Board: " -msgstr "Plaka:" +msgstr "Plaka: " #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Boards Manager" -msgstr "" +msgstr "Plaken kudeatzailea" #: ../../../../../app/src/processing/app/Base.java:1320 msgid "Boards Manager..." -msgstr "" +msgstr "Plaken kudeatzailea..." #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 msgid "Boards included in this package:" -msgstr "" +msgstr "Pakete honetan sartutako plakak:" #: ../../../processing/app/debug/Compiler.java:1273 #, java-format msgid "Bootloader file specified but missing: {0}" -msgstr "" +msgstr "Abiarazte-kudeatzailearen fitxategia zehaztu da baina ez dago: {0}" #: ../../../processing/app/Preferences.java:140 msgid "Bosnian" @@ -392,19 +406,19 @@ msgstr "Bosniera" #: SerialMonitor.java:112 msgid "Both NL & CR" -msgstr "NL & CR Biak" +msgstr "NL & CR biak" #: Preferences.java:81 msgid "Browse" -msgstr "Bilatu" +msgstr "Arakatu" #: ../../../processing/app/Sketch.java:1530 msgid "Build options changed, rebuilding all" -msgstr "Konpilazio-aukerak aldatu dira, guztia berkonpilatzen" +msgstr "Konpilazio-aukerak aldatu dira, guztia berriz konpilatzen" #: ../../../../../app/src/processing/app/Base.java:1210 msgid "Built-in Examples" -msgstr "" +msgstr "Berezko adibideak" #: ../../../processing/app/Preferences.java:80 msgid "Bulgarian" @@ -416,35 +430,35 @@ msgstr "Myanmarniera" #: Editor.java:708 msgid "Burn Bootloader" -msgstr "Idatzi Bootloader-a" +msgstr "Kargatu abiarazte-kudeatzailea" #: Editor.java:2504 msgid "Burning bootloader to I/O Board (this may take a minute)..." -msgstr "Bootloader-a S/I plakaN idazten (honek minutu bat har dezake)..." +msgstr "Abiarazte-kudeatzailea S/I plakan kargatzen (honek minutu bat har dezake)..." #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "CRC ez dator bat, fitxategia hondatuta dago. Behin-behineko arazoa izan daiteke, saiatu beranduago." #: ../../../processing/app/Base.java:379 #, java-format msgid "Can only pass one of: {0}" -msgstr "" +msgstr "Hauetako bat pasa daiteke soilik: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Ezin da gaitu kanpoko editorea" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 msgid "Can't find the sketch in the specified path" -msgstr "" +msgstr "Ezin da aurkitu programa zehaztutako bidean" #: ../../../processing/app/Preferences.java:92 msgid "Canadian French" -msgstr "Canada-frantses" +msgstr "Kanadako frantsesa" #: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2064 Editor.java:2145 Editor.java:2465 @@ -453,7 +467,7 @@ msgstr "Utzi" #: ../../../processing/app/Base.java:465 msgid "Cannot specify any sketch files" -msgstr "" +msgstr "Ezin da programa fitxategirik zehaztu" #: SerialMonitor.java:112 msgid "Carriage return" @@ -465,11 +479,11 @@ msgstr "Katalana" #: Preferences.java:419 msgid "Check for updates on startup" -msgstr "Eguneratzeak bilatzen ditu Hasieran" +msgstr "Egiaztatu eguneratzerik baden abioan" #: ../../../processing/app/Preferences.java:142 msgid "Chinese (China)" -msgstr "Txinera(Txina)" +msgstr "Txinera (Txina)" #: ../../../processing/app/Preferences.java:144 msgid "Chinese (Taiwan)" @@ -477,15 +491,15 @@ msgstr "Txinera (Taiwan)" #: ../../../processing/app/Preferences.java:143 msgid "Chinese (Taiwan) (Big5)" -msgstr "Txinera (Taiwan)(Big5)" +msgstr "Txinera (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Garbitu irteera" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" -msgstr "" +msgstr "Klik egin ofizialak ez diren plaken laguntza-URL zerrenda ikusteko" #: Editor.java:521 Editor.java:2024 msgid "Close" @@ -493,23 +507,23 @@ msgstr "Itxi" #: Editor.java:1208 Editor.java:2749 msgid "Comment/Uncomment" -msgstr "Iruzkina / iruzkina desegitea" +msgstr "Iruzkindu / Desiruzkindu" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" -msgstr "" +msgstr "Komunikazioa" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " -msgstr "" +msgstr "Konpiladorearen abisuak: " #: Sketch.java:1608 Editor.java:1890 msgid "Compiling sketch..." -msgstr "Sketch konpilatzen" +msgstr "Programa konpilatzen..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" -msgstr "" +msgstr "Kolaborazio bidezkoak" #: Editor.java:1157 Editor.java:2707 msgid "Copy" @@ -517,131 +531,136 @@ msgstr "Kopiatu" #: Editor.java:1177 Editor.java:2723 msgid "Copy as HTML" -msgstr "HTMLa bezala kopia" +msgstr "Kopiatu HTML bezala" #: ../../../processing/app/EditorStatus.java:455 msgid "Copy error messages" -msgstr "Errore-mezua kopia ezazu" +msgstr "Kopiatu errore-mezuak" #: Editor.java:1165 Editor.java:2715 msgid "Copy for Forum" -msgstr "Fororako Kopia" +msgstr "Kopiatu Fororako" #: Sketch.java:1089 #, java-format msgid "Could not add ''{0}'' to the sketch." -msgstr "Ezin izango litzateke gehitu ''{0}'' sketchera." +msgstr "Ezin izan da ''{0}'' gehitu programara." #: Editor.java:2188 msgid "Could not copy to a proper location." -msgstr "Ezin izan zen kopiatu kokapen egokian." +msgstr "Ezin izan da kopiatu kokapen egokian." #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "Ezin izan da \"{0}\" direktorioa sortu" #: Editor.java:2179 msgid "Could not create the sketch folder." -msgstr "Sketch-karpeta ezin da sortu." +msgstr "Ezin izan da programa karpeta sortu." #: Editor.java:2206 msgid "Could not create the sketch." -msgstr "Sketcha ezin da sortu" +msgstr "Ezin izan da programa sortu" #: Sketch.java:617 #, java-format msgid "Could not delete \"{0}\"." -msgstr " \"{0}\" ezin da ezabatu" +msgstr "Ezin izan da \"{0}\" ezabatu." #: Sketch.java:1066 #, java-format msgid "Could not delete the existing ''{0}'' file." -msgstr "Ezin izango litzateke ezabatu oraingoa ''{0}'' fitxategia." +msgstr "Ezin izan da ezabatu lehendik dagoen ''{0}'' fitxategia." #: ../../../processing/app/debug/TargetPlatform.java:74 #, java-format msgid "Could not find boards.txt in {0}. Is it pre-1.5?" -msgstr "Ezin du boards.tx-ik aurkitu {0}-etan. -1,5 bertsioaren aurrekoa da ?" +msgstr "Ezin izan da boards.txt aurkitu {0}-(e)n. 1.5 bertsioaren aurrekoa da?" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:282 #, java-format msgid "Could not find tool {0}" -msgstr "Ez du {0} tresna aurkitzen" +msgstr "Ezin izan da {0} tresna aurkitu" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:278 #, java-format msgid "Could not find tool {0} from package {1}" -msgstr "Ez du pakete {1}-eko tresna {0} aurkitzen" +msgstr "Ezin izan da {1} paketeko {0} tresna aurkitu" #: Base.java:1934 #, java-format msgid "" "Could not open the URL\n" "{0}" -msgstr "URL-a ezin da ireki\n{0}" +msgstr "Ezin izan da URLa ireki\n{0}" #: Base.java:1958 #, java-format msgid "" "Could not open the folder\n" "{0}" -msgstr "Karpeta ezin da ireki\n{0}" +msgstr "Ezin izan da karpeta ireki\n{0}" #: Sketch.java:1769 msgid "" "Could not properly re-save the sketch. You may be in trouble at this point,\n" "and it might be time to copy and paste your code to another text editor." -msgstr "Ez zen ahal izan sketcha zentzu hertsian gorde. Arazoetan egon zaitezke puntu honetan,\neta denbora izan liteke kopiatu eta zure kodea beste testu-editore batengana itsatsi." +msgstr "Ezin izan da programa berriz gorde. Egindako lana ez galtzeko\ngomendagarria da zure kodea kopiatzea eta beste testu-editore batean itsastea." #: Sketch.java:1768 msgid "Could not re-save sketch" -msgstr "Ezin izango luke gorde sketcha" +msgstr "Ezin izan da programa berriz gorde" #: Theme.java:52 msgid "" "Could not read color theme settings.\n" "You'll need to reinstall Arduino." -msgstr "" +msgstr "Ezin izan dira kolore itxuraren ezarpenak irakurri.\nArduino berriz instalatu beharko duzu." #: Preferences.java:219 msgid "" "Could not read default settings.\n" "You'll need to reinstall Arduino." -msgstr "Ezarpen lehenetsiak ezin dira irakurri.\nArduino Instalatu berriro behar izango duzu." +msgstr "Ezin izan dira ezarpen lehenetsiak irakurri.\nArduino berriz instalatu beharko duzu." #: Base.java:2482 #, java-format msgid "Could not remove old version of {0}" -msgstr "Ezin izango litzateke kendu bertsio zaharra{0}" +msgstr "Ezin izan da {0}(r)en bertsio zaharra kendu" #: Base.java:2492 #, java-format msgid "Could not replace {0}" -msgstr "Ezin izango luke ordeztu {0}" +msgstr "Ezin izan da {0} ordeztu" + +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Ezin izan da hobespenen fitxategia idatzi: {0}" #: tools/Archiver.java:74 msgid "Couldn't archive sketch" -msgstr "Sketcha ezin da artxibatu" +msgstr "Ezin izan da programa artxibatu" #: Sketch.java:1647 msgid "Couldn't determine program size: {0}" -msgstr "Ezin izango luke erabaki programa-neurria: {0}" +msgstr "Ezin izan da programaren tamaina zehaztu: {0}" #: Sketch.java:616 msgid "Couldn't do it" -msgstr "Ezin da egin" +msgstr "Ezin izan da egin" #: debug/BasicUploader.java:209 msgid "" "Couldn't find a Board on the selected port. Check that you have the correct " "port selected. If it is correct, try pressing the board's reset button " "after initiating the upload." -msgstr "Ezin du inongo plakarik aurkitu aukeratutako atakan. Ataka zuzena duzula hautatuta egiaztatu ezazu. Zuzena bada, kargatu hasi ondoren reset-botoia sakatzen du." +msgstr "Ezin izan da plakarik aurkitu hautatutako atakan. Egiaztatu ataka zuzena hautatu duzula. Zuzena bada, saiatu plaka berrezartzeko botoia sakatzen karga hasi ondoren." #: ../../../processing/app/Preferences.java:82 msgid "Croatian" -msgstr " kroaziera" +msgstr "Kroaziera" #: Editor.java:1149 Editor.java:2699 msgid "Cut" @@ -649,27 +668,35 @@ msgstr "Ebaki" #: ../../../../../app/src/processing/app/Preferences.java:119 msgid "Czech (Czech Republic)" -msgstr "" +msgstr "Txekiera (Txekiar Errepublika)" #: ../../../../../app/src/processing/app/Preferences.java:120 msgid "Danish (Denmark)" -msgstr "" +msgstr "Daniera (Danimarka)" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" -msgstr "" +msgstr "Datu prozesaketa" #: ../../../../../arduino-core/src/processing/app/I18n.java:35 msgid "Data Storage" -msgstr "" +msgstr "Datu prozesaketa" + +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Txikiagotu letra-tamaina" #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" -msgstr "Txikitu koska" +msgstr "Txikiagotu koska" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 msgid "Default" -msgstr "" +msgstr "Lehenetsia" + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Lehenetsitako itxura" #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" @@ -677,92 +704,92 @@ msgstr "Ezabatu" #: ../../../../../arduino-core/src/processing/app/I18n.java:33 msgid "Device Control" -msgstr "" +msgstr "Gailuaren kontrola" #: debug/Uploader.java:199 msgid "" "Device is not responding, check the right serial port is selected or RESET " "the board right before exporting" -msgstr "Gailuak ez du erantzuten, egiaztatzen du serieko ataka zuzena hau aukeratuta edo resetea plaka esportatu baino lehen" +msgstr "Gailuak ez du erantzuten, egiaztatu serieko ataka zuzena hautatuta dagoela edo BERREZARRI plaka esportatu baino lehen" #: tools/FixEncoding.java:57 msgid "Discard all changes and reload sketch?" -msgstr "Aldaketa guztiak baztertzen dituzu eta sketcha kargatzen duzu?" +msgstr "Baztertu aldaketa guztiak eta programa berriro kargatu?" #: ../../../../../arduino-core/src/processing/app/I18n.java:29 msgid "Display" -msgstr "" +msgstr "Bistaratu" #: ../../../processing/app/Preferences.java:438 msgid "Display line numbers" -msgstr "Lerro-zenbakiak erakusten ditu" +msgstr "Bistaratu lerro-zenbakiak" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format msgid "" "Do you want to remove {0}?\n" "If you do so you won't be able to use {0} any more." -msgstr "" +msgstr "{0} kendu nahi duzu?\nHala eginez gero ezingo duzu {0} gehiago erabili." #: Editor.java:2064 msgid "Don't Save" -msgstr "Ez Gorde" +msgstr "Ez gorde" #: Editor.java:2275 Editor.java:2311 msgid "Done Saving." -msgstr "Gordeta bukatu" +msgstr "Gordetzea burutu da." #: Editor.java:2510 msgid "Done burning bootloader." -msgstr "Bootloader-erreketa bukatuta." +msgstr "Abiarazte-kudeatzailea kargatzea burutu da." #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 msgid "Done compiling" -msgstr "" +msgstr "Konpilazioa burutu da" #: Editor.java:1911 Editor.java:1928 msgid "Done compiling." -msgstr "konpilazio eginda." +msgstr "Konpilazioa burutu da." #: Editor.java:2564 msgid "Done printing." -msgstr "Inprimaketa bukatu du." +msgstr "Inprimatzea burutu da." #: ../../../processing/app/BaseNoGui.java:514 msgid "Done uploading" -msgstr "" +msgstr "Kargatzea burutu da" #: Editor.java:2395 Editor.java:2431 msgid "Done uploading." -msgstr "Datu-karga bukatuta du." +msgstr "Kargatzea burutu da." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format msgid "Downloaded {0}kb of {1}kb." -msgstr "" +msgstr "{0}kb / {1}kb deskargatuta." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 msgid "Downloading boards definitions." -msgstr "" +msgstr "Plaken definizioak deskargatzen." #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 msgid "Downloading libraries index..." -msgstr "" +msgstr "Liburutegien indizea deskargatzen..." #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 #, java-format msgid "Downloading library: {0}" -msgstr "" +msgstr "Liburutegia deskargatzen: {0}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 msgid "Downloading platforms index..." -msgstr "" +msgstr "Plataformen indizea deskargatzen..." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:113 #, java-format msgid "Downloading tools ({0}/{1})." -msgstr "" +msgstr "Tresnak deskargatzen ({0}/{1})." #: Preferences.java:91 msgid "Dutch" @@ -774,7 +801,7 @@ msgstr "Nederlandera (Holanda)" #: ../../../../../app/src/processing/app/Editor.java:1309 msgid "Edison Help" -msgstr "" +msgstr "Edisonen laguntza" #: Editor.java:1130 msgid "Edit" @@ -782,32 +809,32 @@ msgstr "Editatu" #: Preferences.java:370 msgid "Editor font size: " -msgstr " Letra-tamaina Editorea:" +msgstr "Editorearen letra-tamaina: " #: Preferences.java:353 msgid "Editor language: " -msgstr "Hizkuntza editorea:" +msgstr "Editorearen lengoaia: " #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 msgid "Enable Code Folding" -msgstr "" +msgstr "Gaitu kode tolesketa" #: Preferences.java:92 msgid "English" -msgstr "Ingeles" +msgstr "Ingelesa" #: ../../../processing/app/Preferences.java:145 msgid "English (United Kingdom)" -msgstr "Ingeles ( Ingalaterra )" +msgstr "Ingelesa (Erresuma Batua)" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 msgid "Enter a comma separated list of urls" -msgstr "" +msgstr "Sartu komaz banatutako URLen zerrenda" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 msgid "Enter additional URLs, one for each row" -msgstr "" +msgstr "Sartu URL gehigarriak, bat errenkadako" #: Editor.java:1062 msgid "Environment" @@ -817,188 +844,212 @@ msgstr "Ingurunea" #: Sketch.java:496 Sketch.java:503 Sketch.java:526 Sketch.java:543 #: Editor.java:2167 Editor.java:2178 Editor.java:2188 Editor.java:2206 msgid "Error" -msgstr "Errore" +msgstr "Errorea" #: Sketch.java:1065 Sketch.java:1088 msgid "Error adding file" -msgstr "Akatsa fitxategi bat gehitzerakoan" +msgstr "Errorea fitxategia gehitzean" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format msgid "Error compiling for board {0}." -msgstr "" +msgstr "Errorea {0} plakarako konpilatzean." #: debug/Compiler.java:369 msgid "Error compiling." -msgstr "konpilazio-errore" +msgstr "Errorea konpilatzean." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format msgid "Error downloading {0}" -msgstr "" +msgstr "Errorea {0} deskargatzean" #: Base.java:1674 msgid "Error getting the Arduino data folder." -msgstr "Arazoak Arduino-ko karpetaren datuak irakurtzerakoan" +msgstr "Errorea Arduinoren datuen karpeta eskuratzean." #: Serial.java:593 #, java-format msgid "Error inside Serial.{0}()" -msgstr "Akatsa Serial.{0}() -ean" +msgstr "Errorea Serial.{0}() barruan" + +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Errorea {0} itxura kargatzean: {1}" #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 #, java-format msgid "Error loading {0}" -msgstr "Karga-errore {0}" +msgstr "Errorea {0} kargatzean" #: Serial.java:181 #, java-format msgid "Error opening serial port ''{0}''." -msgstr "''{0}'' hutseko irekierako serieko ataka." +msgstr "Errorea ''{0}'' serieko ataka irekitzean." #: ../../../processing/app/Serial.java:119 #, java-format msgid "" "Error opening serial port ''{0}''. Try consulting the documentation at " "http://playground.arduino.cc/Linux/All#Permission" -msgstr "" +msgstr "Errorea ''{0}'' serieko ataka irekitzean. Kontsultatu dokumentazioa: http://playground.arduino.cc/Linux/All#Permission" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Errorea liburutegien indizea analizatzean: {0}\nIreki Liburutegi kudeatzailea liburutegien indizea eguneratzeko." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Errorea liburutegien indizea irakurtzean: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Errorea paketeen indizeen karpeta irakurtzean: {0}\n(behar bada baimen arazoa?)" #: Preferences.java:277 msgid "Error reading preferences" -msgstr "Hutseko irakurketako lehentasunak" +msgstr "Errorea hobespenak irakurtzean" #: Preferences.java:279 #, java-format msgid "" "Error reading the preferences file. Please delete (or move)\n" "{0} and restart Arduino." -msgstr "Lehentasun-fitxategia irakurri hutsa. Mesedez ezabatu ezazu (edo eraman) \n{0} eta Arduino berrabiarazi." +msgstr "Errorea hobespenen fitxategia irakurtzean. Ezabatu (edo lekuz aldatu) \n{0} eta berrabiarazi Arduino." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:245 msgid "Error running post install script" -msgstr "" +msgstr "Errorea instalazio ondorengo script-a exekutatzean" #: ../../../cc/arduino/packages/DiscoveryManager.java:25 msgid "Error starting discovery method: " -msgstr "Aurkikuntza-metodoa hasiz hutsa:" +msgstr "Errorea aurkikuntza-metodoa abiaraztean: " #: Serial.java:125 #, java-format msgid "Error touching serial port ''{0}''." -msgstr "Hutsa ukitu ''{0}'' serieko ataka." +msgstr "Errorea ''{0}'' serieko ataka ukitzean." #: Editor.java:2512 Editor.java:2516 Editor.java:2520 msgid "Error while burning bootloader." -msgstr "Akatsa bootloaderak erretzen diren bitartean." +msgstr "Errorea abiarazte-kudeatzailea kargatzean." #: ../../../processing/app/Editor.java:2555 msgid "Error while burning bootloader: missing '{0}' configuration parameter" -msgstr "Bootloader-a erretzerakoan hutsa: desagertu {0} konfigurazio-parametroa" +msgstr "Errorea abiarazte-kudeatzailea kargatzean: '{0}' konfigurazio-parametroa falta da" + +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Errorea gertatu da abiarazte-kudeatzailea kargatzean: aukeratu serie-ataka bat." #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" -msgstr "" +msgstr "Errorea konpilatzean: '{0}' konfigurazio-parametroa falta da" #: Editor.java:2567 msgid "Error while printing." -msgstr "Inprimatzerakoan hutsa." +msgstr "Errorea inprimatzerakoan." #: ../../../../../arduino-core/src/processing/app/Serial.java:117 #, java-format msgid "Error while setting serial port parameters: {0} {1} {2} {3}" -msgstr "" +msgstr "Errorea serieko ataken parametroak ezartzean: {0} {1} {2} {3}" #: ../../../processing/app/BaseNoGui.java:528 msgid "Error while uploading" -msgstr "" +msgstr "Errorea igotzean" #: ../../../processing/app/Editor.java:2409 #: ../../../processing/app/Editor.java:2449 msgid "Error while uploading: missing '{0}' configuration parameter" -msgstr "Kargatzerakoan hutsa: desagertu {0} konfigurazio-parametroa" +msgstr "Errorea igotzean: '{0}' konfigurazio-parametroa falta da" #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "Error while verifying" -msgstr "" +msgstr "Errorea egiaztatzean" #: ../../../processing/app/BaseNoGui.java:521 msgid "Error while verifying/uploading" -msgstr "" +msgstr "Errorea egiaztatzean/igotzean" #: Preferences.java:93 msgid "Estonian" msgstr "Estoniera" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estoniera (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Adibideak" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "Edozein plaketarako adibideak" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "{0}-rako adibideak" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" -msgstr "" +msgstr "Liburutegi pertsonalizatuetako adibideak" #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" -msgstr "" +msgstr "Beste liburutegietako adibideak" #: ../../../../../app/src/processing/app/Editor.java:753 msgid "Export canceled, changes must first be saved." -msgstr "" +msgstr "Esportazioa bertan behera utzi da, lehenik gorde egin behar da." #: ../../../../../app/src/processing/app/Editor.java:750 msgid "Export compiled Binary" -msgstr "" +msgstr "Esportatu konpilatutako bitarra" #: ../../../processing/app/Base.java:416 #, java-format msgid "Failed to open sketch: \"{0}\"" -msgstr "Sketcha irekitzeko huts eginda: \"{0}\"" +msgstr "Programa irekitzean huts egin du: \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "Huts egin du \"{0}\"(e)tik \"{1}\"(e)ra izenez aldatzean" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "Huts egin du programaren karpetari izena aldatzean" #: Editor.java:491 msgid "File" -msgstr "Fitxategi" +msgstr "Fitxategia" #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format msgid "File name {0} is invalid: ignored" -msgstr "" +msgstr "{0} fitxategi-izena baliogabea da: ezikusia" #: Preferences.java:94 msgid "Filipino" -msgstr "Filipiniera" +msgstr "Filipinera" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 msgid "Filter your search..." -msgstr "" +msgstr "Iragazi zure bilaketa..." #: FindReplace.java:124 FindReplace.java:127 msgid "Find" @@ -1006,15 +1057,15 @@ msgstr "Bilatu" #: Editor.java:1249 msgid "Find Next" -msgstr "Aurkitu hurrengoa" +msgstr "Bilatu hurrengoa" #: Editor.java:1259 msgid "Find Previous" -msgstr "Aurkitu aurrekoa" +msgstr "Bilatu aurrekoa" #: Editor.java:1086 Editor.java:2775 msgid "Find in Reference" -msgstr "Aipamen bidezko dei" +msgstr "Bilatu Erreferentzian" #: Editor.java:1234 msgid "Find..." @@ -1022,7 +1073,7 @@ msgstr "Bilatu..." #: FindReplace.java:80 msgid "Find:" -msgstr "Aurkitu" +msgstr "Bilatu:" #: ../../../processing/app/Preferences.java:147 msgid "Finnish" @@ -1031,26 +1082,26 @@ msgstr "Finlandiera" #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 msgid "Fix Encoding & Reload" -msgstr "Kodea konpontzen & kargatu" +msgstr "Konpondu kodeketa eta kargatu" #: ../../../processing/app/BaseNoGui.java:318 msgid "" "For information on installing libraries, see: " "http://www.arduino.cc/en/Guide/Libraries\n" -msgstr "" +msgstr "Liburutegiak instalatzeari buruz informazioa behar baduzu, ikusi: http://www.arduino.cc/en/Guide/Libraries\n" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:118 #, java-format msgid "Forcing reset using 1200bps open/close on port {0}" -msgstr "" +msgstr "{0} atakan 1200bps ireki/itxi erabiliz berrezartzea behartzen" #: Preferences.java:95 msgid "French" -msgstr "Frantses" +msgstr "Frantsesa" #: Editor.java:1097 msgid "Frequently Asked Questions" -msgstr "Maiz egiten diren galderak" +msgstr "Maiz egindako galderak" #: Preferences.java:96 msgid "Galician" @@ -1058,11 +1109,11 @@ msgstr "Galiziera" #: ../../../../../app/src/processing/app/Preferences.java:176 msgid "Galician (Spain)" -msgstr "" +msgstr "Galiziera (Espainia)" #: ../../../../../app/src/processing/app/Editor.java:1288 msgid "Galileo Help" -msgstr "" +msgstr "Galileoren laguntza" #: ../../../processing/app/Preferences.java:94 msgid "Georgian" @@ -1070,35 +1121,35 @@ msgstr "Georgiera" #: Preferences.java:97 msgid "German" -msgstr "Aleman" +msgstr "Alemana" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "Eskuratu plakaren informazioa" #: Editor.java:1054 msgid "Getting Started" -msgstr "Abiarazi" +msgstr "Erabiltzen hasi" #: ../../../processing/app/Sketch.java:1646 #, java-format msgid "" "Global variables use {0} bytes ({2}%%) of dynamic memory, leaving {3} bytes " "for local variables. Maximum is {1} bytes." -msgstr "Aldagai osoek memoria dinamikoko {0} byte ({2}%%) darabiltzate, {3} byte uzten dituzte aldagai lokaletarako. Maximoa {1} byte dira." +msgstr "Aldagai orokorrek memoria dinamikoko {0} byte ({2}%%) erabiltzen dituzte, {3} byte utziz aldagai lokaletarako. Maximoa {1} byte dira." #: ../../../processing/app/Sketch.java:1651 #, java-format msgid "Global variables use {0} bytes of dynamic memory." -msgstr "Aldagai osoek memoria dinamikoko {0} byte darabiltzate." +msgstr "Aldagai orokorrek memoria dinamikoko {0} byte darabiltzate." #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 msgid "Go to line" -msgstr "" +msgstr "Joan lerrora" #: ../../../../../app/src/processing/app/Editor.java:1460 msgid "Go to line..." -msgstr "" +msgstr "Joan lerrora..." #: Preferences.java:98 msgid "Greek" @@ -1114,17 +1165,17 @@ msgstr "Laguntza" #: Preferences.java:99 msgid "Hindi" -msgstr "Indiera" +msgstr "Hindia" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 msgid "Host name:" -msgstr "" +msgstr "Ostalari-izena:" #: Sketch.java:295 msgid "" "How about saving the sketch first \n" "before trying to rename it?" -msgstr "sketcha hura izendatzen saiatu baino lehen \nlehenik eta behin ez duzulako gordetzen" +msgstr "Oraindik ez duzu programa gorde. \nIzena aldatu aurretik gorde nahi duzu?" #: Sketch.java:882 msgid "How very Borges of you" @@ -1136,19 +1187,19 @@ msgstr "Hungariera" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" -msgstr "" +msgstr "BATERAEZINA" #: FindReplace.java:96 msgid "Ignore Case" msgstr "Ezikusi Maiuskula/minuskula" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Liburutegi izen txarra ez ikusi egin" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Liburutegia ezikusi da izen desegokia duelako" #: Base.java:1436 msgid "Ignoring sketch with bad name" -msgstr "Ez ikusi egin izen txarrarekiko esketcha" +msgstr "Programari ezikusi da izen desegokia duelako" #: ../../../processing/app/Sketch.java:736 msgid "" @@ -1159,16 +1210,20 @@ msgid "" "disable this in the Preferences dialog.\n" "\n" "Save sketch and update its extension?" -msgstr "1.0 Arduinon, ez-betetzeko fitxategiko luzapena aldatu da\n.pde-tatik .ino.-etatik sketch berriak (sortutako horiek barne\n\"Save-As-en\") erabiliko du luzapena berria. Luzapena\noraingo sketchen eguneratuko da gorde, baina ahal zara\nhau desgaitu ezazu Lehentasun-elkarrizketan.\n\nSketcha gordetzen duzu eta bere luzapena eguneratzen duzu?" +msgstr "Arduino 1.0-n, fitxategien luzapen lehenetsia .pde-tik .ino.-ra aldatu da.\nPrograma berriek (\"Gorde honela\"-rekin sortutakoak barne) luzapen berria erabiliko dute. Programa zaharren luzapena aldatuko da programa gordetzerakoan baina ezarpen hau hobespenetan aldatu dezakezu.\n\nPrograma gorde eta bere luzapena eguneratu?" #: ../../../../../app/src/processing/app/Editor.java:778 msgid "Include Library" -msgstr "" +msgstr "Erantsi liburutegia" #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 msgid "Incorrect IDE installation folder" -msgstr "" +msgstr "IDEaren instalazio karpeta okerra" + +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Handitu letra-tamaina" #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" @@ -1180,7 +1235,7 @@ msgstr "Indonesiera" #: ../../../../../app/src/processing/app/Base.java:295 msgid "Initializing packages..." -msgstr "" +msgstr "Paketeak hasieratzen..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 @@ -1189,48 +1244,59 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 msgid "Install" -msgstr "" +msgstr "Instalatu" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 msgid "Installation completed!" -msgstr "" +msgstr "Instalazioa amaitu da!" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 msgid "Installed" -msgstr "" +msgstr "Instalatuta" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 msgid "Installing boards..." -msgstr "" +msgstr "Plakak instalatzen..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "" +msgid "Installing library: {0}:{1}" +msgstr "Liburutegia instalatzen: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format msgid "Installing tools ({0}/{1})..." -msgstr "" +msgstr "Tresnak instalatzen ({0}/{1})..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:239 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:172 msgid "Installing..." -msgstr "" +msgstr "Instalatzen..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 msgid "Interface scale:" -msgstr "" +msgstr "Interfazearen eskala:" #: ../../../processing/app/Base.java:1204 #, java-format msgid "Invalid library found in {0}: {1}" -msgstr " {0}: {1}-etan aurkitutako liburutegi okerra" +msgstr "Liburutegi baliogabea aurkitu da {0}(e)n: {1}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:66 #, java-format msgid "Invalid quoting: no closing [{0}] char found." -msgstr "" +msgstr "Komatxoen formatu baliogabea: ez da topatu [{0}] itxiera karakterea." + +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Liburutegiaren '{0}' bertsio baliogabea hemen: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "{0} bertsio baliogabea" #: Preferences.java:102 msgid "Italian" @@ -1242,7 +1308,7 @@ msgstr "Japoniera" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "Kazakhera" #: Preferences.java:104 msgid "Korean" @@ -1254,24 +1320,24 @@ msgstr "Letoniera" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "" +msgstr "Liburutegi kudeatzailea" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" -msgstr "" +msgstr "Liburutegia zure liburutegietara gehitua. Ikusi \"Erantsi liburutegia\" menua" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" -msgstr "" +msgstr "Liburutegiek ezin dute erabili 'src' eta 'utility' karpetak. Berrikusi {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "" +msgid "Library is already installed: {0}:{1}" +msgstr "Liburutegia instalatua dago dagoeneko: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" -msgstr "" +msgstr "Lerro-zenbakia:" #: Preferences.java:106 msgid "Lithuaninan" @@ -1279,24 +1345,24 @@ msgstr "Lituaniera" #: ../../../../../app/src/processing/app/Base.java:132 msgid "Loading configuration..." -msgstr "" +msgstr "Konfigurazioa kargatzen..." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format msgid "Looking for recipes like {0}*{1}" -msgstr "" +msgstr "{0}*{1} bezalako prozeduren bila" #: ../../../processing/app/Sketch.java:1684 msgid "Low memory available, stability problems may occur." -msgstr "" +msgstr "Memoria gutxi dago erabilgarri, egonkortasun arazoak gerta daitezke." #: ../../../../../app/src/processing/app/Base.java:1168 msgid "Manage Libraries..." -msgstr "" +msgstr "Kudeatu liburutegiak..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 msgid "Manual proxy configuration" -msgstr "" +msgstr "Proxyaren eskuzko konfigurazioa" #: Preferences.java:107 msgid "Marathi" @@ -1309,44 +1375,44 @@ msgstr "Mezua" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format msgid "Missing '{0}' from library in {1}" -msgstr "" +msgstr "'{0}'falta da liburutegitik {1}(e)n" #: ../../../processing/app/BaseNoGui.java:455 msgid "Mode not supported" -msgstr "" +msgstr "Modua ez da onartzen" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 msgid "More" -msgstr "" +msgstr "Gehiago" #: Preferences.java:449 msgid "More preferences can be edited directly in the file" -msgstr "Zuzenean fitxategian lehentasun gehiago editatu ahal dituzte" +msgstr "Hobespen gehiago editatu daitezke zuzenean fitxategian" #: Editor.java:2156 msgid "Moving" -msgstr "Mugitzen" +msgstr "Lekuz aldatzen" #: ../../../processing/app/BaseNoGui.java:484 msgid "Multiple files not supported" -msgstr "" +msgstr "Ez dago hainbat fitxategirentzako euskarririk" #: ../../../processing/app/debug/Compiler.java:520 #, java-format msgid "Multiple libraries were found for \"{0}\"" -msgstr "" +msgstr "\"{0}\"(r)entzat hainbat liburutegi aurkitu dira" #: ../../../processing/app/Base.java:395 msgid "Must specify exactly one sketch file" -msgstr "Zehaztu behar du sketch-fitxategi zehazki bat" +msgstr "Programa fitxategi bat zehaztu behar duzu" #: Sketch.java:282 msgid "Name for new file:" -msgstr "Fitxategi berriaren izena" +msgstr "Fitxategi berriaren izena:" #: ../../../../../app//src/processing/app/Editor.java:2809 msgid "Native serial port, can't obtain info" -msgstr "" +msgstr "Serieko ataka natiboa, ezin da informaziorik eskuratu" #: ../../../processing/app/Preferences.java:149 msgid "Nepali" @@ -1354,19 +1420,19 @@ msgstr "Nepalera" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 msgid "Network" -msgstr "" +msgstr "Sarea" #: ../../../../../app//src/processing/app/Editor.java:2804 msgid "Network port, can't obtain info" -msgstr "" +msgstr "Sareko ataka, ezin da informaziorik eskuratu" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Network ports" -msgstr "" +msgstr "Sareko atakak" #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 msgid "Network upload using programmer not supported" -msgstr "Laguntzarik ez dago artxibo-kargarako sarean programagailua erabiliz" +msgstr "Ez da onartzen sareko karga programatzailea erabiliz" #: EditorToolbar.java:41 Editor.java:493 msgid "New" @@ -1374,11 +1440,11 @@ msgstr "Berria" #: EditorHeader.java:292 msgid "New Tab" -msgstr "Fitxa berri" +msgstr "Fitxa berria" #: SerialMonitor.java:112 msgid "Newline" -msgstr "Lerro-amaiera" +msgstr "Lerro berria" #: EditorHeader.java:340 msgid "Next Tab" @@ -1390,93 +1456,93 @@ msgstr "Ez" #: ../../../processing/app/debug/Compiler.java:158 msgid "No authorization data found" -msgstr "" +msgstr "Ez da baimenaren daturik aurkitu" #: tools/format/src/AutoFormat.java:54 tools/AutoFormat.java:916 msgid "No changes necessary for Auto Format." -msgstr "Aldaketa bat ere beharrezko Auto Formaturako." +msgstr "Formatu automatikorako ez da aldaketarik behar." #: ../../../processing/app/BaseNoGui.java:665 msgid "No command line parameters found" -msgstr "" +msgstr "Ez da komando lerroko parametrorik aurkitu" #: ../../../processing/app/debug/Compiler.java:200 msgid "No compiled sketch found" -msgstr "" +msgstr "Ez da fitxategi konpilaturik aurkitu" #: Editor.java:373 msgid "No files were added to the sketch." -msgstr "Fitxategi bat ere ez zioten sketchari gehitu." +msgstr "Programari ez zaio fitxategirik gehitu." #: Platform.java:167 msgid "No launcher available" -msgstr "Inongo jaurtitzailerik-Launcher ez dago" +msgstr "Ez dago abiarazlerik erabilgarri" #: SerialMonitor.java:112 msgid "No line ending" -msgstr "Ez lerro-bukaera" +msgstr "Lerro amaierarik ez" #: ../../../processing/app/BaseNoGui.java:665 msgid "No parameters" -msgstr "" +msgstr "Parametrorik ez" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:453 msgid "No proxy" -msgstr "" +msgstr "Proxy-rik ez" #: Base.java:541 msgid "No really, time for some fresh air for you." -msgstr "Ez benetan, zuretzako aire freskoren baterako denbora." +msgstr "Benetan, aire fresko pixka bat behar duzu." #: Editor.java:1872 #, java-format msgid "No reference available for \"{0}\"" -msgstr "Aipamen erabilgarri bat ere {0}" +msgstr "Ez dago erreferentziarik erabilgarri {0}(r)entzat" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 msgid "No sketch" -msgstr "" +msgstr "Programarik ez" #: ../../../processing/app/BaseNoGui.java:428 msgid "No sketchbook" -msgstr "" +msgstr "Programa bildumarik ez" #: ../../../processing/app/Sketch.java:204 msgid "No valid code files found" -msgstr "Aurkitutako baliozko kode-fitxategi bat ere" +msgstr "Ez da baliozko kode-fitxategirik aurkitu" #: ../../../processing/app/debug/TargetPackage.java:63 #, java-format msgid "No valid hardware definitions found in folder {0}." -msgstr "Karpetan {0} aurkitutako baliozko hardware-definizio bat ere." +msgstr "Ez da baliozko hardware-definiziorik aurkitu {0} karpetan." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:184 msgid "None" -msgstr "" +msgstr "Bat ere ez" #: ../../../processing/app/Preferences.java:108 msgid "Norwegian Bokmål" -msgstr " Norvegiera" +msgstr "Norvegiera (Bokmål)" #: ../../../processing/app/Sketch.java:1656 msgid "" "Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size " "for tips on reducing your footprint." -msgstr "Memoria nahikorik ez dago ; bisita http://www.arduino.cc/en/Guide/Troubleshooting#size bere erabilera txikiagotzea bezala ikasteko." +msgstr "Ez dago memoria nahikorik; bisitatu http://www.arduino.cc/en/Guide/Troubleshooting#size memoria erabilera nola txikiagotu ikasteko." #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 msgid "OK" -msgstr "OK" +msgstr "Ados" #: Sketch.java:992 Editor.java:376 msgid "One file added to the sketch." -msgstr "Sketcherako fitxategi bat gehitu da." +msgstr "Programari fitxategi bat gehitu zaio." #: ../../../processing/app/BaseNoGui.java:455 msgid "Only --verify, --upload or --get-pref are supported" -msgstr "" +msgstr "Soilik --verify, --upload eta --get-pref onartzen dira" #: EditorToolbar.java:41 msgid "Open" @@ -1484,23 +1550,23 @@ msgstr "Ireki" #: ../../../../../app/src/processing/app/Editor.java:625 msgid "Open Recent" -msgstr "" +msgstr "Ireki azkenak" #: Editor.java:2688 msgid "Open URL" -msgstr "Ireki URLa." +msgstr "Ireki URLa" #: Base.java:636 msgid "Open an Arduino sketch..." -msgstr "Arduino sketcha ireki ezazu" +msgstr "Ireki Arduino programa..." #: Base.java:903 Editor.java:501 msgid "Open..." -msgstr "Ireki" +msgstr "Ireki..." #: ../../../../../arduino-core/src/processing/app/I18n.java:37 msgid "Other" -msgstr "" +msgstr "Bestea" #: Editor.java:563 msgid "Page Setup" @@ -1508,7 +1574,7 @@ msgstr "Prestatu orrialdea" #: ../../../../../arduino-core/src/processing/app/I18n.java:25 msgid "Partner" -msgstr "" +msgstr "Bazkidea" #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 msgid "Password:" @@ -1529,36 +1595,36 @@ msgstr "Persiera (Iran)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 #, java-format msgid "Platform {0} (package {1}) is unknown" -msgstr "" +msgstr "{0} plataforma ({1} paketea) ezezaguna da" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 msgid "Please confirm boards deletion" -msgstr "" +msgstr "Berretsi plaken ezabapena" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "Please confirm library deletion" -msgstr "" +msgstr "Berretsi liburutegiaren ezabapena" #: debug/Compiler.java:408 msgid "Please import the SPI library from the Sketch > Import Library menu." -msgstr "Mesedez SPI-liburutegia Sketchetik inportatu ezazu > Inportazioko Liburutegiko menua." +msgstr "Inportatu ezazu SPI-liburutegia Programa > Inportatu liburutegia menutik." #: ../../../processing/app/debug/Compiler.java:529 msgid "Please import the Wire library from the Sketch > Import Library menu." -msgstr "Mesedez Wire liburutegia sketch > Import Library menutik inportatu ezazu." +msgstr "Inportatu ezazu Wire liburutegia Programa > Inportatu liburutegia menutik." #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" -msgstr "" +msgstr "Hautatu ataka bat plakaren informazioa eskuratzeko" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 msgid "Please select a programmer from Tools->Programmer menu" -msgstr "" +msgstr "Hautatu programatzaile bat Tresnak->Programatzailea menuan" #: ../../../../../app/src/processing/app/Editor.java:2613 msgid "Plotter not available while serial monitor is open" -msgstr "" +msgstr "Plotterra ez dago erabilgarri, serieko monitorea irekita dagoen bitartean" #: Preferences.java:110 msgid "Polish" @@ -1570,7 +1636,7 @@ msgstr "Ataka" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:491 msgid "Port number:" -msgstr "" +msgstr "Ataka zenbakia:" #: ../../../processing/app/Preferences.java:151 msgid "Portugese" @@ -1578,7 +1644,7 @@ msgstr "Portugalera" #: ../../../processing/app/Preferences.java:127 msgid "Portuguese (Brazil)" -msgstr "Portugalera (Brazil)" +msgstr "Portugalera (Brasil)" #: ../../../processing/app/Preferences.java:128 msgid "Portuguese (Portugal)" @@ -1590,7 +1656,7 @@ msgstr "Hobespenak" #: ../../../../../app/src/processing/app/Base.java:297 msgid "Preparing boards..." -msgstr "" +msgstr "Plakak prestatzen..." #: FindReplace.java:123 FindReplace.java:128 msgid "Previous" @@ -1614,38 +1680,38 @@ msgstr "Inprimatzen..." #: Base.java:1957 msgid "Problem Opening Folder" -msgstr "Arazoko Irekierako Karpeta" +msgstr "Arazoa karpeta irekitzean" #: Base.java:1933 msgid "Problem Opening URL" -msgstr "Arazoak URLa irekitzerakoan" +msgstr "Arazoa URLa irekitzerakoan" #: Base.java:227 msgid "Problem Setting the Platform" -msgstr "Plataformaren Konfigurazio Arazoa" +msgstr "Arazoa plataforma ezartzean" #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:136 msgid "Problem accessing board folder /www/sd" -msgstr "Arazoa plakako karpeta sartzerakoan dago /www/sd" +msgstr "Arazoa plakaren karpeta atzitzean /www/sd" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format msgid "Problem accessing files in folder \"{0}\"" -msgstr "" +msgstr "Atzipen-arazoa \"{0}\" karpetako fitxategietan" #: Base.java:1673 msgid "Problem getting data folder" -msgstr "Arazoak karpetaren datuak irakurtzerakoan" +msgstr "Arazoa datuen karpeta irakurtzerakoan" #: debug/Uploader.java:209 msgid "" "Problem uploading to board. See " "http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions." -msgstr "Plakaratzeko upload arazoa. http://www.arduino.cc/en/Guide/Troubleshooting#upload ikusi ezazu iradokizunetarako." +msgstr "Arazoa plakara kargatzean. Ikusi http://www.arduino.cc/en/Guide/Troubleshooting#upload iradokizunetarako." #: Sketch.java:355 Sketch.java:362 Sketch.java:373 msgid "Problem with rename" -msgstr "Izen-aldaketarekiko arazoa" +msgstr "Arazoa izena aldatzean" #: ../../../processing/app/I18n.java:86 msgid "Processor" @@ -1653,24 +1719,24 @@ msgstr "Prozesadorea" #: Editor.java:704 msgid "Programmer" -msgstr "Programatzaile" +msgstr "Programatzailea" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:80 #, java-format msgid "Progress {0}" -msgstr "" +msgstr "Aurrerapena {0}" #: Base.java:783 Editor.java:593 msgid "Quit" -msgstr "kentzea" +msgstr "Irten" #: ../../../../../app/src/processing/app/Base.java:1233 msgid "RETIRED" -msgstr "" +msgstr "ERRETIRATUA" #: ../../../../../arduino-core/src/processing/app/I18n.java:26 msgid "Recommended" -msgstr "" +msgstr "Gomendatua" #: Editor.java:1138 Editor.java:1140 Editor.java:1390 msgid "Redo" @@ -1678,21 +1744,21 @@ msgstr "Berregin" #: Editor.java:1078 msgid "Reference" -msgstr "Aipamen" +msgstr "Erreferentzia" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 msgid "Remove" -msgstr "" +msgstr "Kendu" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "" +msgid "Removing library: {0}:{1}" +msgstr "Liburutegia kentzen: {0}{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 msgid "Removing..." -msgstr "" +msgstr "Kentzen..." #: EditorHeader.java:300 msgid "Rename" @@ -1704,7 +1770,7 @@ msgstr "Ordeztu" #: FindReplace.java:122 FindReplace.java:129 msgid "Replace & Find" -msgstr "Bilatu & Ordeztu" +msgstr "Ordeztu & bilatu" #: FindReplace.java:120 FindReplace.java:131 msgid "Replace All" @@ -1713,29 +1779,33 @@ msgstr "Ordeztu guztiak" #: Sketch.java:1043 #, java-format msgid "Replace the existing version of {0}?" -msgstr "{0}-aren oraingo bertsioa ordeztu ezazu ?" +msgstr "{0}-(r)en oraingo bertsioa ordeztu nahi duzu?" #: FindReplace.java:81 msgid "Replace with:" -msgstr "Ordeztu honekin" +msgstr "Ordeztu honekin:" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" -msgstr "" +msgstr "Erretiratua" + +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Berriro igo beste serie ataka baten bidez?" #: Preferences.java:113 msgid "Romanian" -msgstr "Erromaniko" +msgstr "Errumaniera" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 #, java-format msgid "Running recipe: {0}" -msgstr "" +msgstr "Exekutatzen ari den prozedura: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:82 #, java-format msgid "Running: {0}" -msgstr "" +msgstr "Exekutatzen: {0}" #: Preferences.java:114 msgid "Russian" @@ -1752,32 +1822,32 @@ msgstr "Gorde honela..." #: Editor.java:2317 msgid "Save Canceled." -msgstr "Utzi gordeatzea" +msgstr "Gordetzea bertan behera utzi da." #: Editor.java:2020 #, java-format msgid "Save changes to \"{0}\"? " -msgstr "Gorde aldaketak \"{0}\"an ?" +msgstr "\"{0}\"-(r)i egindako aldaketak gorde? " #: Sketch.java:825 msgid "Save sketch folder as..." -msgstr "Gorde sketch-karpeta honela" +msgstr "Gorde programaren karpeta honela..." #: ../../../../../app/src/processing/app/Preferences.java:425 msgid "Save when verifying or uploading" -msgstr "" +msgstr "Gorde egiaztatzean edo kargatzean" #: Editor.java:2270 Editor.java:2308 msgid "Saving..." -msgstr "Gordetzen" +msgstr "Gordetzen..." #: ../../../processing/app/FindReplace.java:131 msgid "Search all Sketch Tabs" -msgstr "" +msgstr "Bilatu programa fitxa guztietan" #: Base.java:1909 msgid "Select (or create new) folder for sketches..." -msgstr "Hautatu (edo sortu berri) esketcharako karpeta..." +msgstr "Hautatu (edo sortu) programentzako karpeta..." #: Editor.java:1198 Editor.java:2739 msgid "Select All" @@ -1785,32 +1855,32 @@ msgstr "Hautatu dena" #: Base.java:2636 msgid "Select a zip file or a folder containing the library you'd like to add" -msgstr "Hautatu ezazu zip-fitxategi bat edo gehitzea nahi izango zenukeen liburutegia edukiz karpeta bat" +msgstr "Hautatu gehitu nahi duzun liburutegia daukan zip fitxategi edo karpeta bat" #: Sketch.java:975 msgid "Select an image or other data file to copy to your sketch" -msgstr "Irudi edo fitxategi bat aukera ezazu zure schetchean kopiatzeko " +msgstr "Hautatu irudi edo datu fitxategi bat zure programan kopiatzeko" #: Preferences.java:330 msgid "Select new sketchbook location" -msgstr "Lokalizazio berria aukeratzen du sketchbookerako" +msgstr "Hautatu kokaleku berria programen bildumarentzat" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 msgid "Select version" -msgstr "" +msgstr "Hautatu bertsioa" #: ../../../processing/app/debug/Compiler.java:146 msgid "Selected board depends on '{0}' core (not installed)." -msgstr "Aukeratutako plaka '{0}' nukleoaren mendean dago (ez dago instalatuta)." +msgstr "Hautatutako plakak '{0}' nukleoaren mendekotasuna du (ez dago instalatuta)." #: ../../../../../app/src/processing/app/Base.java:374 msgid "Selected board is not available" -msgstr "" +msgstr "Hautatutako plaka ez dago erabilgarri" #: ../../../../../app/src/processing/app/Base.java:423 msgid "Selected library is not available" -msgstr "" +msgstr "Hautatutako liburutegia ez dago erabilgarri" #: SerialMonitor.java:93 msgid "Send" @@ -1818,7 +1888,7 @@ msgstr "Bidali" #: ../../../../../arduino-core/src/processing/app/I18n.java:32 msgid "Sensors" -msgstr "" +msgstr "Sentsoreak" #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 msgid "Serial Monitor" @@ -1826,123 +1896,130 @@ msgstr "Serieko monitorea" #: ../../../../../app/src/processing/app/Editor.java:804 msgid "Serial Plotter" -msgstr "" +msgstr "Serieko plotterra" #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "Bertsio honetan, serieko monitorea ez dago erabilgarri sareko ataketan. Adibidez, {1}-(r)en {0}" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" -msgstr "" +msgstr "Serieko monitorea ez dago erabilgarri, plotterra irekita dagoen bitartean" #: Serial.java:194 #, java-format msgid "" "Serial port ''{0}'' not found. Did you select the right one from the Tools >" " Serial Port menu?" -msgstr "Serieko ataka ''{0}'' ez aurkituta. Ongi aukeratu duzu era zuzenean menutik Erremintetatik > Serieko Ataka ?" +msgstr "Ez da aurkitu ''{0}'' serieko ataka. Tresnak > Serieko ataka menuan egokia hautatu duzu?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Ez da aukeratu serie ataka." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Ez aurkitutako serieko ataka {0}.\nBirsaioa beste serieko ataka batekin kargatu?" +msgid "Serial port {0} not found." +msgstr "Ez da aurkitu {0} serie ataka." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" -msgstr "" +msgstr "Serieko atakak" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 #, java-format msgid "Setting build path to {0}" -msgstr "" +msgstr "Ezarritako konpilazio-bide berria: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 msgid "Settings" -msgstr "" +msgstr "Ezarpenak" #: Base.java:1681 msgid "Settings issues" -msgstr "konfigurazioaren kontuak" +msgstr "Ezarpenen arazoak" #: Editor.java:641 msgid "Show Sketch Folder" -msgstr "Erakustaldiko Sketcheko Karpeta" +msgstr "Erakutsi programen karpeta" + +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Erakutsi denbora-zigilua" #: Preferences.java:387 msgid "Show verbose output during: " -msgstr "Irteera luzea erakusten duzu zehar:" +msgstr "Erakutsi irteera xehatua honetan zehar: " #: ../../../../../arduino-core/src/processing/app/I18n.java:31 msgid "Signal Input/Output" -msgstr "" +msgstr "Seinaleen Sarrera/Irteera" #: Editor.java:607 msgid "Sketch" -msgstr "Sketch" +msgstr "Programa" #: Sketch.java:1754 msgid "Sketch Disappeared" -msgstr "Sketcha desagertu zen" +msgstr "Programa desagertu da" #: Base.java:1411 msgid "Sketch Does Not Exist" -msgstr "Sketcha ez da existitzen" +msgstr "Programa ez da existitzen" #: Sketch.java:274 Sketch.java:303 Sketch.java:577 Sketch.java:966 msgid "Sketch is Read-Only" -msgstr "Irakurtzeko soilik Sketch" +msgstr "Programa irakurtzeko-soilik da" #: Sketch.java:294 msgid "Sketch is Untitled" -msgstr "Sketcha ez du izenik" +msgstr "Programak ez du izenik" #: Sketch.java:720 msgid "Sketch is read-only" -msgstr "Sketcha Irakurtzeko soilik\tda\n " +msgstr "Programa irakurtzeko-soilik da" #: Sketch.java:1653 msgid "" "Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for " "tips on reducing it." -msgstr "Sketcha handiegi; bisitatu http://www.arduino.cc/en/Guide/Troubleshooting#size tamaina txikiagotzea bezala jakiteko" +msgstr "Programa handiegia da; bisitatu http://www.arduino.cc/en/Guide/Troubleshooting#size tamaina txikiagotzeko gomendioak kontsultatzeko" #: ../../../processing/app/Sketch.java:1639 #, java-format msgid "" "Sketch uses {0} bytes ({2}%%) of program storage space. Maximum is {1} " "bytes." -msgstr "Sketchak byteak darabiltza {0} ({2}%%-a) programako biltegiratzeko espazioaren. Maximoa byteak da {1}." +msgstr "Programak biltegiratzeko espazioaren {0} byte ({2}%%-a) darabil. Maximoa {1} byte da." #: Editor.java:510 msgid "Sketchbook" -msgstr "Sketchbook" +msgstr "Programa bilduma" #: Base.java:258 msgid "Sketchbook folder disappeared" -msgstr "Sketchbook karpeta desagertu da" +msgstr "Programa bildumaren karpeta desagertu da" #: Preferences.java:315 msgid "Sketchbook location:" -msgstr "Sketchbook kokalekua" +msgstr "Programa bildumaren kokalekua:" #: ../../../processing/app/BaseNoGui.java:428 msgid "Sketchbook path not defined" -msgstr "" +msgstr "Ez da definitu programa bildumaren bidea" #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format msgid "Skipping contributed index file {0}, parsing error occured:" -msgstr "" +msgstr "Kolaborazio bidezko {0} indize-fitxategia ezin da erabili; errore sintaktiko hau gertatu da:" #: ../../../../../app/src/processing/app/Preferences.java:185 msgid "Slovak" -msgstr "" +msgstr "Eslovakiera" #: ../../../processing/app/Preferences.java:152 msgid "Slovenian" @@ -1953,18 +2030,18 @@ msgid "" "Some files are marked \"read-only\", so you'll\n" "need to re-save the sketch in another location,\n" "and try again." -msgstr "Fitxategi batzuk markatzen dituzte \"Irakurtzeko-soilik \", hala egingo duzu\nsketch beste lokalizazio batean gorde behar izan ezazu,\neta berriro probatu ezazu." +msgstr "Fitxategi batzuk \"irakurtzeko-soilik\" gisa \nmarkatuta daude, programa beste kokagune batean \ngorde beharko duzu eta berriro saiatu beharko zara." #: Sketch.java:721 msgid "" "Some files are marked \"read-only\", so you'll\n" "need to re-save this sketch to another location." -msgstr "Fitxategi batzuk markatzen dituzte \"irakurtzeko soilik\", hala egingo duzu\nbeste lokalizazio baterako sketch hau gorde behar izan ezazu." +msgstr "Fitxategi batzuk \"irakurtzeko-soilik\" gisa markatuta daude,\n programa beste kokagune batean gorde beharko duzu." #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format msgid "Sorry, the folder \"{0}\" already exists." -msgstr "" +msgstr "Barkatu, baina \"{0}\" karpeta existitzen da jadanik." #: Preferences.java:115 msgid "Spanish" @@ -1972,11 +2049,11 @@ msgstr "Espainiera" #: ../../../../../app/src/processing/app/Base.java:2333 msgid "Specified folder/zip file does not contain a valid library" -msgstr "" +msgstr "Zehaztutako karpetak/zip fitxategiak ez dauka liburutegi baliodunik" #: ../../../../../app/src/processing/app/Base.java:466 msgid "Starting..." -msgstr "" +msgstr "Abiatzen..." #: Base.java:540 msgid "Sunshine" @@ -1992,7 +2069,7 @@ msgstr "Sistemako lehenetsia" #: ../../../../../app/src/processing/app/Preferences.java:188 msgid "Talossan" -msgstr "" +msgstr "Talossera" #: Preferences.java:116 msgid "Tamil" @@ -2000,42 +2077,42 @@ msgstr "Tamilera" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" -msgstr "" +msgstr "Thailandiera" #: debug/Compiler.java:414 msgid "The 'BYTE' keyword is no longer supported." -msgstr "Jada 'BYTE' gako-hitza ez dute sostengatzen." +msgstr "'BYTE' gako-hitza ez da onartzen jada." #: ../../../processing/app/BaseNoGui.java:484 msgid "The --upload option supports only one file at a time" -msgstr "" +msgstr "--upload aukerak fitxategiak banaka onartzen ditu soilik" #: debug/Compiler.java:426 msgid "The Client class has been renamed EthernetClient." -msgstr "Client klasea berrizendatu dute EthernetClient." +msgstr "Client klasea EthernetClient bezala berrizendatua izan da." #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format msgid "" "The IDE includes an updated {0} package, but you're using an older one.\n" "Do you want to upgrade {0}?" -msgstr "" +msgstr "IDEak {0} pakete eguneratua dauka, baina zaharrago bat erabiltzen ari zara.\n{0} bertsio-berritu nahi duzu?" #: debug/Compiler.java:420 msgid "The Server class has been renamed EthernetServer." -msgstr "Server klasea berrizendatu dute EthernetServer." +msgstr "Server klasea EthernetServer bezala berrizendatua izan da." #: debug/Compiler.java:432 msgid "The Udp class has been renamed EthernetUdp." -msgstr "Udp klasea berrizendatu dute EthernetUdp." +msgstr "Udp klasea EthernetUdp bezala berrizendatua izan da." #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "" +msgstr "Unean hautatutako plakak '{0}' nukleoa behar du, eta ez dago instalatuta." #: Editor.java:2147 #, java-format @@ -2043,7 +2120,15 @@ msgid "" "The file \"{0}\" needs to be inside\n" "a sketch folder named \"{1}\".\n" "Create this folder, move the file, and continue?" -msgstr "Fitxategiak {0} barruan egon behar du\n{1} izendatutako sketch-karpeta bat.\nKarpeta hau sortzen duzu, fitxategia mugitzen duzu, eta jarraitzen duzu?" +msgstr "{0} fitxategiak {1} izendatutako programa karpeta \nbarruan egon behar du. \nSortu karpeta hau, eraman fitxategia eta jarraitu?" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "\"{0}\" liburutegia ezin da erabili.\nLiburutegi karpeten izenak letra edo zenbaki batekin hasi behar dute eta ondoren letra, \nzenbakiak, marratxoak, puntuak eta azpimarrak erabili daitezke. Gehienez 63 karaktere erabili daitezke." #: Base.java:1054 Base.java:2674 #, java-format @@ -2051,22 +2136,22 @@ msgid "" "The library \"{0}\" 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)" -msgstr "Liburutegia {0} ezin dute erabili. Liburutegi-izenek bakarrik oinarrizko gutunak eta numbers. eduki behar dituzte. (ASCII-a bakarrik eta espazio bat ere, eta ezin da zenbaki batekin hasi)" +msgstr "{0} liburutegia ezin da erabili.\nLiburutegi-izenek oinarrizko letra eta zenbakiak soilik eduki ditzakete.\n(ASCII bakarrik eta zuriunerik ez, eta ezin dira zenbaki batekin hasi)" #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "Fitxategi nagusiak ezin du luzapenik erabili" #: Sketch.java:356 msgid "The name cannot start with a period." -msgstr "Izena ezin da hasi puntuarekin." +msgstr "Izena ezin da puntuarekin hasi." #: Base.java:1412 msgid "" "The selected sketch no longer exists.\n" "You may need to restart Arduino to update\n" "the sketchbook menu." -msgstr "Jada hautatutako skettcha ez da existitzen.\nSketchbook-menua eguneratzeko Arduino berriz hasi behar dezakezu." +msgstr "Hautatutako programa dagoeneko ez da existitzen.\nArduino berriz hasi beharko duzu programa bildumaren \nmenua eguneratzeko ." #: Base.java:1430 #, java-format @@ -2076,26 +2161,26 @@ msgid "" "(ASCII-only with no spaces, and it cannot start with a number).\n" "To get rid of this message, remove the sketch from\n" "{1}" -msgstr "Sketch {0} ezin dute erabili.\nSketch-izenek bakarrik oinarrizko gutunak eta zenbakiak eduki behar dituzte\n(Espazio batekin erko ASCII-a, eta ezin da zenbaki batekin hasi).\nMezu honetaz libratzeko, eskema|esketxa kentzen duzu {1}" +msgstr "\"{0}\" programa ezin da erabili.\nPrograma izenek bakarrik oinarrizko letrak eta zenbakiak eduki behar dituzte\n(espaziorik gabeko ASCII karaktereak eta ezin da zenbaki batekin hasi).\nMezu hau berriro ez agertzeko, programa {1}-tik kendu" #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format msgid "The sketch already contains a file named \"{0}\"" -msgstr "" +msgstr "Dagoeneko programak \"{0}\" izeneko fitxategi bat dauka" #: Sketch.java:1755 msgid "" "The sketch folder has disappeared.\n" " Will attempt to re-save in the same location,\n" "but anything besides the code will be lost." -msgstr "Sketch-karpeta desagertu da.\nSaiatuko da lokalizazio berean gorde,\nbaina kodeaz gain edozer galduko dute." +msgstr "Programen karpeta desagertu da.\nKokagune berdinean berriro gordetzen saiatuko da,\nbaina kodea ez den guztia galduko da." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Sketch-izena aldatu behar izan zuten. Bakarrik sketch-izenak izan daitezke\nASCII-karaktereen eta zenbakien (baina ezin da zenbaki batekin hasi).\n64 luzera-karaktere baino gutxiago izan behar ditu ere." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Programaren izena aldatu behar izan da.\nProgramen izenak letra edo zenbaki batekin hasi behar dute eta ondoren letra,\nzenbakiak, marratxoak, puntuak eta azpimarrak erabili daitezke. Gehienez 63 karaktere erabili daitezke." #: Base.java:259 msgid "" @@ -2104,26 +2189,30 @@ msgid "" "location, and create a new sketchbook folder if\n" "necessary. Arduino will then stop talking about\n" "himself in the third person." -msgstr "Ez du sketchbook karpeta aurkitzen. Arduinok lokalizazioari aldatuko dio lehenetsi, eta beharrezkoa bada, karpeta berria sor zezan. Arduinok bere burua buruz hitz egiten utziko du hirugarren pertsonarengan" +msgstr "Programa bildumaren karpeta ez da existitzen.\nArduino programa bilduma karpeta lehenetsira itzuliko da eta\nbeharrezkoa izanez gero, programa bilduma karpeta berria sortuko du.\nOrduan Arduinok bere buruari buruz hirugarren pertsonan hitz\negiteari utziko dio." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 msgid "" "The specified sketchbook folder contains your copy of the IDE.\n" "Please choose a different folder for your sketchbook." -msgstr "" +msgstr "Zehaztutako programa bilduma karpetaren barruan garapen ingurunearen (IDE) kopia dago.\nAukeratu beste karpeta bat zure programa bilduma gordetzeko." + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Itxura: " #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" "Are you sure you want to delete it?" -msgstr "" +msgstr "Liburutegi hau ez dago liburutegi kudeatzailean zerrendatua. Ezin izango duzu berrinstalatu hemendik.\nZiur zaude ezabatu nahi duzula?" #: ../../../../../app/src/processing/app/EditorStatus.java:349 msgid "" "This report would have more information with\n" "\"Show verbose output during compilation\"\n" "option enabled in File -> Preferences.\n" -msgstr "" +msgstr "Txosten honek informazio gehiago izango luke\nFitxategia -> Hobespenak-en \"Erakutsi irteera zehaztuak konpilazioan \nzehar\" ezarpena gaitua egongo balitz.\n" #: Base.java:535 msgid "Time for a Break" @@ -2131,12 +2220,12 @@ msgstr "Atsedenerako denbora" #: ../../../../../arduino-core/src/processing/app/I18n.java:34 msgid "Timing" -msgstr "" +msgstr "Sinkronizatzen" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format msgid "Tool {0} is not available for your operating system." -msgstr "" +msgstr "{0} tresna ez dago erabilgarri zure sistema eragilean." #: Editor.java:663 msgid "Tools" @@ -2144,7 +2233,7 @@ msgstr "Tresnak" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:97 msgid "Topic" -msgstr "" +msgstr "Gaia" #: Editor.java:1070 msgid "Troubleshooting" @@ -2157,15 +2246,15 @@ msgstr "Turkiera" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 msgid "Type" -msgstr "" +msgstr "Mota" #: ../../../processing/app/Editor.java:2507 msgid "Type board password to access its console" -msgstr "Plakaren pasahitza idatz ezazu bere kontsolara sartzeko" +msgstr "Idatzi plakaren pasahitza bere kontsolara sartzeko" #: ../../../processing/app/Sketch.java:1673 msgid "Type board password to upload a new sketch" -msgstr "Plakaren pasahitza idatz ezazu sketch berri bat kargatzeko" +msgstr "Idatzi plakaren pasahitza programa berria kargatzeko" #: ../../../processing/app/Preferences.java:118 msgid "Ukrainian" @@ -2174,42 +2263,42 @@ msgstr "Ukrainera" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format msgid "Unable to connect to {0}" -msgstr "" +msgstr "Ezin da konektatu {0}(e)ra" #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 msgid "Unable to connect: is the sketch using the bridge?" -msgstr "Konektatu ezinezkoa da: sketcha zubia erabiltzen ari da?" +msgstr "Ezin da konektatu: programa zubia erabiltzen ari da?" #: ../../../processing/app/NetworkMonitor.java:130 msgid "Unable to connect: retrying" -msgstr "Konektatu ezinezkoa da: Saiatzen" +msgstr "Ezin da konektatu: berriz saiatzen" #: ../../../processing/app/Editor.java:2526 msgid "Unable to connect: wrong password?" -msgstr "Konektatu ezinezkoa da: pasahitz okerra?" +msgstr "Ezin da konektatu: pasahitz okerra?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 #, java-format msgid "Unable to find {0} in {1}" -msgstr "" +msgstr "Ezin da {0} aurkitu {1}(e)n:" #: ../../../processing/app/Editor.java:2512 msgid "Unable to open serial monitor" -msgstr "Serial-monitorea ireki ezinezkoa da." +msgstr "Ezin da serieko monitorea ireki" #: ../../../../../app/src/processing/app/Editor.java:2709 msgid "Unable to open serial plotter" -msgstr "" +msgstr "Ezin da serieko plotterra ireki" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Unable to reach Arduino.cc due to possible network issues." -msgstr "" +msgstr "Ezin da Arduino.cc atzitu, posible da sareko arazoengatik izatea" #: ../../../../../arduino-core/src/processing/app/I18n.java:38 msgid "Uncategorized" -msgstr "" +msgstr "Sailkatu gabea" #: Editor.java:1133 Editor.java:1355 msgid "Undo" @@ -2218,28 +2307,28 @@ msgstr "Desegin" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format msgid "Unhandled type {0} in context key {1}" -msgstr "" +msgstr "Kudeatu gabeko {0} mota {1} testuinguru gakoan" #: ../../../../../app//src/processing/app/Editor.java:2818 msgid "Unknown board" -msgstr "" +msgstr "Plaka ezezaguna" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format msgid "Unknown sketch file extension: {0}" -msgstr "" +msgstr "Programa fitxategi luzapen ezezaguna: {0}" #: Platform.java:168 msgid "" "Unspecified platform, no launcher available.\n" "To enable opening URLs or folders, add a \n" "\"launcher=/path/to/app\" line to preferences.txt" -msgstr "Plataforma ezezaguna, Inongo jaurtitzailerik-Launcher ez dago.\nURLs-ak edo karpetak irekiz ahalbidetzeko, gaineratzen zara\n\"launcher=/path/to/app\"-lerroa preferences.txt-etara" +msgstr "Plataforma zehaztugabea, ez dago abiarazlerik erabilgarri.\nURLak edo karpetak irekitzea gaitzeko, gehitu\n\"launcher=/aplikaziorako/bidea\" lerroa preferences.txt-en" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 msgid "Updatable" -msgstr "" +msgstr "Eguneratu daiteke" #: UpdateCheck.java:111 msgid "Update" @@ -2247,26 +2336,26 @@ msgstr "Eguneratu" #: Preferences.java:428 msgid "Update sketch files to new extension on save (.pde -> .ino)" -msgstr "Eguneratze-sketchak hedadura berrira artxibatzen du gordetzen duenean (.pde -> .ino)" +msgstr "Eguneratu luzapena (.pde -> .ino) programa fitxategiak gordetzean" #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:88 #, java-format msgid "Updates available for some of your {0}boards{1}" -msgstr "" +msgstr "Eguneraketak daude zure {0}plaketako{1} batzuentzat" #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 #, java-format msgid "Updates available for some of your {0}boards{1} and {2}libraries{3}" -msgstr "" +msgstr "Eguneraketak daude zure {0}plaketako{1} eta {2}liburutegietako{3} batzuentzat" #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format msgid "Updates available for some of your {0}libraries{1}" -msgstr "" +msgstr "Eguneraketak daude zure {0}liburutegietako{1} batzuentzat" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 msgid "Updating list of installed libraries" -msgstr "" +msgstr "Instalatutako liburutegien zerrenda eguneratzen" #: EditorToolbar.java:41 Editor.java:545 msgid "Upload" @@ -2274,23 +2363,23 @@ msgstr "Kargatu" #: EditorToolbar.java:46 Editor.java:553 msgid "Upload Using Programmer" -msgstr "Programagailu erabiliz kargatu" +msgstr "Kargatu programatzailea erabiliz" #: ../../../../../app//src/processing/app/Editor.java:2814 msgid "Upload any sketch to obtain it" -msgstr "" +msgstr "Kargatu edozein programa plakaren serie zenbakia lortzeko" #: Editor.java:2403 Editor.java:2439 msgid "Upload canceled." -msgstr "Datu-karga bertan behera utzi da." +msgstr "Kargatzea bertan behera utzi da." #: ../../../processing/app/Sketch.java:1678 msgid "Upload cancelled" -msgstr "Utxi Kargaketa" +msgstr "Kargatzea bertan behera utzi da" #: Editor.java:2378 msgid "Uploading to I/O Board..." -msgstr "S/I Plakak Kargatzen ..." +msgstr "S/I plakara kargatzen ..." #: Sketch.java:1622 msgid "Uploading..." @@ -2298,31 +2387,31 @@ msgstr "Kargatzen..." #: Editor.java:1269 msgid "Use Selection For Find" -msgstr "Aurkikuntzarako Erabilera-Hautaketa" +msgstr "Erabili hautapena bilatzeko" #: Preferences.java:409 msgid "Use external editor" -msgstr "Kanpoko editorea erabili ezazu" +msgstr "Erabili kanpoko editorea" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 msgid "Username:" -msgstr "" +msgstr "Erabiltzaile-izena:" #: ../../../processing/app/debug/Compiler.java:410 #, java-format msgid "Using library {0} at version {1} in folder: {2} {3}" -msgstr "" +msgstr "{1} bertsioko {0} liburutegia {2} {3} karpetan erabiltzen" #: ../../../processing/app/debug/Compiler.java:94 #, java-format msgid "Using library {0} in folder: {1} {2}" -msgstr "{0} liburu-denda {1} {2} karpetan erabiliz:" +msgstr "{0} liburutegia {1} {2} karpetan erabiltzen" #: ../../../processing/app/debug/Compiler.java:320 #, java-format msgid "Using previously compiled file: {0}" -msgstr "Erabili lehenago bildutako fitxategia: {0}" +msgstr "Aurretik konpilatutako fitxategia erabiltzen: {0}" #: EditorToolbar.java:41 EditorToolbar.java:46 msgid "Verify" @@ -2330,37 +2419,37 @@ msgstr "Egiaztatu" #: Preferences.java:400 msgid "Verify code after upload" -msgstr "Kodea egiaztatzen duzu geroago kargatu" +msgstr "Egiaztatu kodea kargatu ondoren" #: ../../../../../app/src/processing/app/Editor.java:725 msgid "Verify/Compile" -msgstr "" +msgstr "Egiaztatu/Konpilatu" #: ../../../../../app/src/processing/app/Base.java:451 msgid "Verifying and uploading..." -msgstr "" +msgstr "Egiaztatzen eta kargatzen..." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 msgid "Verifying archive integrity..." -msgstr "" +msgstr "Artxiboaren osotasuna egiaztatzen..." #: ../../../../../app/src/processing/app/Base.java:454 msgid "Verifying..." -msgstr "" +msgstr "Egiaztatzen..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 #, java-format msgid "Version {0}" -msgstr "" +msgstr "{0} bertsioa" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:326 msgid "Version unknown" -msgstr "" +msgstr "Bertsio ezezaguna" #: ../../../cc/arduino/contributions/libraries/ContributedLibrary.java:97 #, java-format msgid "Version {0}" -msgstr "" +msgstr "{0} bertsioa" #: ../../../processing/app/Preferences.java:154 msgid "Vietnamese" @@ -2368,24 +2457,24 @@ msgstr "Vietnamera" #: Editor.java:1105 msgid "Visit Arduino.cc" -msgstr "Arduino.cc bisita" +msgstr "Ikusi Arduino.cc" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format msgid "WARNING: Category '{0}' in library {1} is not valid. Setting to '{2}'" -msgstr "" +msgstr "ABISUA: {1} liburutegiko '{0}' kategoria ez da baliozkoa. '{2}' ezarriko da." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format msgid "WARNING: Spurious {0} folder in '{1}' library" -msgstr "" +msgstr "ABISUA: {0} karpeta faltsua '{1}' liburutegian" #: ../../../processing/app/debug/Compiler.java:115 #, java-format msgid "" "WARNING: library {0} claims to run on {1} architecture(s) and may be " "incompatible with your current board which runs on {2} architecture(s)." -msgstr "OHARTARAZPENA: {0} liburutegia {1} arkitekturan() funtzionatzen saiatzen da eta zure plakarekin, zeinek {2} arkitekturarekin() funtzionatzen duen, bateraezina izan liteke" +msgstr "ABISUA: {0} liburutegiak {1} arkitektur(et)an funtzionatzen duela dio eta baliteke {2} arkitektur(ar)ekin funtzionatzen duen zure uneko plakarekin bateraezina izatea." #: Base.java:2128 msgid "Warning" @@ -2395,51 +2484,51 @@ msgstr "Abisua" msgid "" "Warning: This core does not support exporting sketches. Please consider " "upgrading it or contacting its author" -msgstr "" +msgstr "Abisua: nukleo honek ez du programarik esportatzen uzten. Saiatu bertsio-berritzen edo egilearekin harremanetan jartzen." #: ../../../cc/arduino/utils/ArchiveExtractor.java:197 #, java-format msgid "Warning: file {0} links to an absolute path {1}" -msgstr "" +msgstr "Abisua: {0} fitxategia bide absolutu batekin estekatuta dago: {1}" #: ../../../cc/arduino/contributions/packages/ContributionsIndexer.java:133 msgid "Warning: forced trusting untrusted contributions" -msgstr "" +msgstr "Abisua: ekarpen ez fidagarriak fidagarri izatera behartu dira." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:217 #, java-format msgid "Warning: forced untrusted script execution ({0})" -msgstr "" +msgstr "Abisua: ({0}) script ez fidagarriaren exekuzioa behartu da." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:212 #, java-format msgid "Warning: non trusted contribution, skipping script execution ({0})" -msgstr "" +msgstr "Abisua: ekarpen ez fidagarria. Scripta ez da exekutatuko ({0})" #: ../../../processing/app/debug/LegacyTargetPlatform.java:158 #, java-format msgid "" "Warning: platform.txt from core '{0}' contains deprecated {1}, automatically" " converted to {2}. Consider upgrading this core." -msgstr "" +msgstr "Abisua: '{0}' nukleoko platform.txt fitxategiak zaharkitutako {1} dauka, automatikoki {2}(e)ra bihurtu da. Nukleo hau bertsio-berritzea hausnartu beharko zenuke." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 msgid "" "Warning: platform.txt from core '{0}' misses property '{1}', using default " "value '{2}'. Consider upgrading this core." -msgstr "" +msgstr "Abisua: '{0}' nukleoaren platform.txt-ari '{1}' propietatea falta zaio eta '{2}' lehenetsitako balioa erabiliko da. Nukleo hau bertsio-berritzea hausnartu beharko zenuke." #: ../../../../../app/src/processing/app/Preferences.java:190 msgid "Western Frisian" -msgstr "" +msgstr "Mendebaldeko frisiera" #: debug/Compiler.java:444 msgid "Wire.receive() has been renamed Wire.read()." -msgstr "Wire.receive() berrizendatu dute Wire.read()." +msgstr "Wire.receive() Wire.read() bezala berrizendatu da." #: debug/Compiler.java:438 msgid "Wire.send() has been renamed Wire.write()." -msgstr "Wire.send() berrizendatu dute Wire.write()." +msgstr "Wire.send() Wire.write() bezala berrizendatu da." #: FindReplace.java:105 msgid "Wrap Around" @@ -2449,7 +2538,7 @@ msgstr "Egokitu" msgid "" "Wrong microcontroller found. Did you select the right board from the Tools " "> Board menu?" -msgstr "Mikrokontrolatzaile okerra. Plaka aukeratu duzu era zuzenean menutik Erremintetatik > Plaka ?" +msgstr "Mikrokontrolatzaile okerra aurkitu da. Tresnak > Plaka menuan plaka zuzena hautatu duzu?" #: Preferences.java:77 UpdateCheck.java:108 msgid "Yes" @@ -2457,59 +2546,59 @@ msgstr "Bai" #: ../../../../../app/src/processing/app/Base.java:2312 msgid "You can't import a folder that contains your sketchbook" -msgstr "" +msgstr "Ezin duzu inportatu zure programa bilduma barne duen karpeta" #: Sketch.java:883 msgid "" "You cannot save the sketch into a folder\n" "inside itself. This would go on forever." -msgstr "Ezin duzu sketcha gorde bere burua \nbarruan karpeta batean. Honek betiko jarraituko luke." +msgstr "Ezin duzu programa gorde programaren karpetaren \nazpiko karpeta batean. Etengabeko errekurtsibitate arazoa sortuko luke." #: Base.java:1888 msgid "You forgot your sketchbook" -msgstr "Zure sketchbooka ahaztu zenuen" +msgstr "Zure programa bilduma ahaztu zenuen" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "Gorde gabeko aldaketak dituzu!\nZure programa guztiak gorde behar dituzu aukera hau gaitzeko." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" "You've pressed {0} but nothing was sent. Should you select a line ending?" -msgstr "{0} zapaldu duzu baina ezer ez zuten bidali. Lerro-bukaera bat hautatu behar izango zenuke?" +msgstr "{0} sakatu duzu baina ezer ez da bidali. Lerro-bukaera bat hautatu beharko zenuke?" #: Base.java:536 msgid "" "You've reached the limit for auto naming of new sketches\n" "for the day. How about going for a walk instead?" -msgstr "Programa-mugara heldu zara gaur era automatikoan esleitutako izenarekin. Paseo bat ematen baduzu iruditzen zaizula?" +msgstr "Gaurkoz, programa berrietan izena automatikoki ezartzeko \nmekanismoaren mugara iritsi zara. Paseotxo bat eman nahi duzu?" #: ../../../processing/app/BaseNoGui.java:768 msgid "" "Your copy of the IDE is installed in a subfolder of your settings folder.\n" "Please move the IDE to another folder." -msgstr "" +msgstr "Zure ezarpenak gordetzeko karpetaren azpikarpeta batean instalatu da IDE-aren zure kopia. \nEraman IDE-a beste karpeta batera." #: ../../../processing/app/BaseNoGui.java:771 msgid "" "Your copy of the IDE is installed in a subfolder of your sketchbook.\n" "Please move the IDE to another folder." -msgstr "" +msgstr "Zure garapen ingurunea (IDE) programa bildumaren azpikarpeta batean dago.\nMugitu IDE-a beste karpeta batera." #: Base.java:2638 msgid "ZIP files or folders" -msgstr "ZIP-fitxategiak edo karpetak" +msgstr "Zip fitxategiak edo karpetak" #: Base.java:2661 msgid "Zip doesn't contain a library" -msgstr "ZIP ez dauka liburutegi bat" +msgstr "Zip fitxategiak ez dauka liburutegirik" #: Sketch.java:364 #, java-format msgid "\".{0}\" is not a valid extension." -msgstr "\".{0}\" ez da balio izandako luzapena." +msgstr "\".{0}\" ez da baliozko luzapen bat." #: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 #, java-format @@ -2518,7 +2607,7 @@ msgid "" "older version of Arduino, you may need to use Tools -> Fix Encoding & Reload" " to update the sketch to use UTF-8 encoding. If not, you may need to delete " "the bad characters to get rid of this warning." -msgstr "" +msgstr "\"{0}\"-(e)k karaktere ezezagunak ditu. Kodea Arduino bertsio zahar batekin sortu bazen, behar bada Tresnak->Konpondu kodeketa eta birkargatu programa erabili beharko duzu UTF-8ra bihurtzeko. Bestela, karaktere okerrak ezabatu beharko dituzu abisu hau berriro ez agertzeko." #: debug/Compiler.java:409 msgid "" @@ -2526,7 +2615,7 @@ msgid "" "As of Arduino 0019, the Ethernet library depends on the SPI library.\n" "You appear to be using it or another library that depends on the SPI library.\n" "\n" -msgstr "\n0019 Arduinotik aurrera, Ethernet-liburutegia SPI-liburutegiaren esku dago.\nHura erabiltzen ari izan iruditzen zara edo SPI-liburutegiaren esku dagoen beste liburutegi bat.\n" +msgstr "\nArduinotik 0019an Ethernet liburutegiak SPI liburutegiaren mendekotasuna du.\nHura edo SPI liburutegiaren mendekotasuna duen beste liburutegi bat erabiltzen ari zarela dirudi.\n\n" #: debug/Compiler.java:415 msgid "" @@ -2534,42 +2623,42 @@ msgid "" "As of Arduino 1.0, the 'BYTE' keyword is no longer supported.\n" "Please use Serial.write() instead.\n" "\n" -msgstr "\n1.0 Arduino-tik aurrera, 'BYTE' gako-hitza ez da supported.\njada mesedez Serial.write() erabili ezazu.\n" +msgstr "\nArduino 1.0an, 'BYTE' gako-hitza jada ez da onartzen.\nErabili Serial.write() bere ordez.\n\n" #: debug/Compiler.java:427 msgid "" "\n" "As of Arduino 1.0, the Client class in the Ethernet library has been renamed to EthernetClient.\n" "\n" -msgstr "\n1.0 Arduino-tik aurrera, Ethernet-liburutegiko Client klasea berrizendatu dute EthernetClient.\n" +msgstr "\nArduino 1.0an Ethernet liburutegiko Client klasea EthernetClient bezala berrizendatu da.\n\n" #: debug/Compiler.java:421 msgid "" "\n" "As of Arduino 1.0, the Server class in the Ethernet library has been renamed to EthernetServer.\n" "\n" -msgstr "\n1.0 Arduino-tik aurrera, Ethernet-liburutegiko Server klasea berrizendatu dute EthernetServer .\n" +msgstr "\nArduino 1.0an Ethernet liburutegiko Server klasea EthernetServer bezala berrizendatu da.\n\n" #: debug/Compiler.java:433 msgid "" "\n" "As of Arduino 1.0, the Udp class in the Ethernet library has been renamed to EthernetUdp.\n" "\n" -msgstr "\n1.0 Arduinotik aurrera, Ethernet-liburutegiko Udp klasea berrizendatu dute EthernetUdp.\n" +msgstr "\nArduino 1.0an Ethernet liburutegiko Udp klasea EthernetUdp bezala berrizendatu da.\n\n" #: debug/Compiler.java:445 msgid "" "\n" "As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.\n" "\n" -msgstr "\n 1.0 Arduino-tik aurrera, Wire.receive() funtzioa, beste libraries batzuekiko funtserako Wire.read() etara berrizendatu zuten.\n" +msgstr "\nArduino 1.0-tik aurrera, Wire.receive() funtzioa Wire.read()-ra aldatu zen beste liburutegi batzuekiko bateragarritasuna bermatzeko.\n\n" #: debug/Compiler.java:439 msgid "" "\n" "As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.\n" "\n" -msgstr "\n1.0 Arduinotik aurrera, Wire.send()-funtzioa, beste liburutegi batzuekiko funtserako Wire.write() -etara berrizendatu zuten\n" +msgstr "\n1.0 Arduinotik aurrera, Wire.send()-funtzioa, beste liburutegi batzuekiko funtserako Wire.write() -etara berrizendatu zuten\n\n" #: SerialMonitor.java:130 SerialMonitor.java:133 msgid "baud" @@ -2577,15 +2666,15 @@ msgstr "baud" #: Preferences.java:389 msgid "compilation " -msgstr "konpilazio" +msgstr "konpilazioa " #: ../../../processing/app/NetworkMonitor.java:111 msgid "connected!" -msgstr "Konektatu !" +msgstr "konektatuta!" #: ../../../../../app/src/processing/app/Editor.java:1352 msgid "http://www.arduino.cc/" -msgstr "" +msgstr "http://www.arduino.cc/" #: UpdateCheck.java:118 msgid "http://www.arduino.cc/en/Main/Software" @@ -2598,15 +2687,21 @@ msgstr "http://www.arduino.cc/latest.txt" #: Preferences.java:625 #, java-format msgid "ignoring invalid font size {0}" -msgstr "Letra-tamaina elbarria {0} ez ikusi egin" +msgstr "{0} letra-tamaina baliogabeari ez ikusia egiten zaio" #: Editor.java:936 Editor.java:943 msgid "name is null" -msgstr "Izen nulu" +msgstr "izena nulua da" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "Ez da goiburu fitxategirik (.h) topatu {0}-(e)n" #: Editor.java:932 msgid "serialMenu is null" -msgstr "serialMenu-a nulua da" +msgstr "serialMenu nulua da" #: debug/Uploader.java:195 #, java-format @@ -2626,53 +2721,53 @@ msgstr "Kargatu" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:324 #, java-format msgid "version {0}" -msgstr "" +msgstr "{0} bertsioa" #: ../../../../../app/src/processing/app/Editor.java:2243 #, java-format msgid "{0} - {1} | Arduino {2}" -msgstr "" +msgstr "{0} - {1} | Arduino {2}" #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:39 #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:43 #, java-format msgid "{0} file signature verification failed" -msgstr "" +msgstr "{0} fitxategi-sinaduraren egiaztapenak huts egin du" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:310 #, java-format msgid "{0} file signature verification failed. File ignored." -msgstr "" +msgstr "{0} fitxategi-sinaduraren egiaztapenak huts egin du. Fitxategia ez da aintzat hartuko." #: Editor.java:380 #, java-format msgid "{0} files added to the sketch." -msgstr "{0} sketchari gehitutako fitxategiak." +msgstr "Programari {0} fitxategi erantsi zaizkio." #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format msgid "{0} libraries" -msgstr "" +msgstr "{0} liburutegi" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format msgid "{0} must be a folder" -msgstr "" +msgstr "{0} -(e)k karpeta izan behar du" #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format msgid "{0} on {1}" -msgstr "" +msgstr "{0} {1}(e)n" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format msgid "{0} pattern is missing" -msgstr "" +msgstr "Ez da {0} eredurik topatzen" #: debug/Compiler.java:365 #, java-format msgid "{0} returned {1}" -msgstr "{0} itzuli {1}" +msgstr "{0}(e)k {1} itzuli du" #: Editor.java:2213 #, java-format @@ -2682,29 +2777,29 @@ msgstr "{0} | Arduino {1}" #: ../../../processing/app/Base.java:519 #, java-format msgid "{0}: Invalid argument to --pref, should be of the form \"pref=value\"" -msgstr "{0}: Argumentu elbarria --pref, \"pref=value\" formaren izan behar izango litzateke" +msgstr "{0}: Argumentu baliogabea --pref aukerarentzat, \"pref=balioa\" modukoa izan behar du" #: ../../../processing/app/Base.java:476 #, java-format msgid "" "{0}: Invalid board name, it should be of the form \"package:arch:board\" or " "\"package:arch:board:options\"" -msgstr "{0}: Plaka-izen elbarria, \"package:arch:board\" edo \"package:arch:board:options\" izan behar izango litzateke formaren." - -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Aukera elbarria {1} plakarako {2} aukera" +msgstr "{0}: plakaren izen baliogabea, \"package:arch:board\" edo \"package:arch:board:options\" modukoa izan behar du" #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" -msgstr "{0}: Plakarako {1} aukera elbarria" +msgstr "{0}: {1} plakarentzako aukera baliogabea" #: ../../../processing/app/Base.java:502 #, java-format msgid "{0}: Invalid option, should be of the form \"name=value\"" -msgstr "{0}: Aukera elbarria, \"name=value\" formaren izan behar izango litzateke." +msgstr "{0}: Aukera baliogabea, \"name=value\" modukoa izan behar du" + +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: \"{2}\" plakaren \"{1}\" aukerarentzako balio ez onargarria" #: ../../../processing/app/Base.java:486 #, java-format @@ -2724,4 +2819,4 @@ msgstr "{0}: Pakete ezezaguna" #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format msgid "{0}Install this package{1} to use your {2} board" -msgstr "" +msgstr "{0}Instalatu pakete hau{1} zure {2} plaka erabiltzeko" diff --git a/arduino-core/src/processing/app/i18n/Resources_eu.properties b/arduino-core/src/processing/app/i18n/Resources_eu.properties index e885c167cb3..07bed5c25ac 100644 --- a/arduino-core/src/processing/app/i18n/Resources_eu.properties +++ b/arduino-core/src/processing/app/i18n/Resources_eu.properties @@ -16,92 +16,101 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Asier Iturralde Sarasola , 2018 # @atzerritik, 2014 # Ivan Barquero , 2014 +# i\u00f1igo Gebara , 2018 # Ivan Barquero , 2014 +# Jos\u00e9 Miguel Andonegi , 2017-2019 +# Jose Zabala , 2018 +# Jose Zabala , 2018 # Zylu , 2014 # Rub\u00e9n Garciand\u00eda , 2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 21\:01+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Basque (http\://www.transifex.com/mbanzi/arduino-ide-15/language/eu/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: eu\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-06-30 22\:48+0000\nLast-Translator\: Jos\u00e9 Miguel Andonegi \nLanguage-Team\: Basque (http\://www.transifex.com/mbanzi/arduino-ide-15/language/eu/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: eu\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 -\ \ (requires\ restart\ of\ Arduino)=(Arduinoa berabiarazi behar da) +\ \ (requires\ restart\ of\ Arduino)=\ (Arduinoa berrabiarazi behar da) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -\ Not\ used\:\ {0}=Erabil gabe\: {0} +\ Not\ used\:\ {0}=\ Erabili gabe\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format -\ Used\:\ {0}=Erabiltzen\: {0} +\ Used\:\ {0}=\ Erabilia\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=Ezin da aurkitzen 'Teclatua'. Ziur egon zure sketch '\#include ' lerroa dauka. +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=Ezin da aurkitu 'Teklatua'. Zure programak '\#include ' lerroa dauka? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=Ezin da aurkitzen 'Sagua'. Ziur egon zure sketch '\#include ' lerroa dauka. +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=Ezin da aurkitu 'Sagua'. Zure programak '\#include ' lerroa dauka? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -!'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information= +'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information='arch' karpetak ez dauka euskarririk jada\! Ikusi http\://goo.gl/gfFJzU informazio gehiagorako #: Preferences.java:478 -(edit\ only\ when\ Arduino\ is\ not\ running)=(soilik editatu Arduino lanean ez dagoenean ) +(edit\ only\ when\ Arduino\ is\ not\ running)=(Arduino exekutatzen ari ez denean soilik editatu) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -!(legacy)= +(legacy)=(zaharra) #: ../../../processing/app/helpers/CommandlineParser.java:149 -!--curdir\ no\ longer\ supported= +--curdir\ no\ longer\ supported=Dagoeneko --curdir ez da onartzen #: ../../../processing/app/Base.java:468 -!--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload= +--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload eta --verbose-build erabiltzeko beharrezkoa da --verify edo --upload erabiltzea #: Sketch.java:746 .pde\ ->\ .ino=.pde -> .ino #: Editor.java:2053 -\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= Sketch honetarako aldaketak gorde nahi dituzu
itxi aurretik?

Ez baduzu gordetzen, zure aldaketak galduko dira. +\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= Programa honi egindako aldaketak gorde nahi dituzu
itxi aurretik?

Ez baduzu gordetzen, zure aldaketak galduko dira. #: Editor.java:2169 #, java-format -A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=Dagoeneko {0} izeneko karpeta bat existitzen da. Ezin da sketcha ireki +A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=Dagoeneko {0} izeneko karpeta bat existitzen da. Ezin da programa ireki. #: Base.java:2690 #, java-format A\ library\ named\ {0}\ already\ exists=Dagoeneko {0} izeneko liburutegi bat existitzen da #: UpdateCheck.java:103 -A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Arduinoren bertsio berri bat eskuragarri dago,\nArduinoren deskargako orria bisitatzea nahi duzu? +A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Arduinoren bertsio berri bat eskuragarri dago,\nArduinoren deskargen orria bisitatu nahi duzu? #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -!A\ newer\ {0}\ package\ is\ available= +A\ newer\ {0}\ package\ is\ available={0} pakete berriagoa eskuragarri dago #: ../../../../../app/src/processing/app/Base.java:2307 -!A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library= +A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Zure programa bildumaren azpikarpeta bat ez da liburutegi onargarria #: Editor.java:1116 About\ Arduino=Arduinori buruz #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=Acholiera #: ../../../../../app/src/processing/app/Base.java:1177 -!Add\ .ZIP\ Library...= +Add\ .ZIP\ Library...=Gehitu .zip liburutegia... #: Editor.java:650 -Add\ File...=Fitxategia gehitu... +Add\ File...=Gehitu fitxategia... #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -!Additional\ Boards\ Manager\ URLs= +Additional\ Boards\ Manager\ URLs=Plaka kudeatzaile gehigarrien URLak #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -!Additional\ Boards\ Manager\ URLs\:\ = +Additional\ Boards\ Manager\ URLs\:\ =Plaka kudeatzaile gehigarrien URLak\: #: ../../../../../app/src/processing/app/Preferences.java:161 -!Afrikaans= +Afrikaans=Afrikaansa #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Cachetik azkar konpilatutako nukleoa #: ../../../processing/app/Preferences.java:96 Albanian=Albaniera @@ -109,27 +118,27 @@ Albanian=Albaniera #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -!All= +All=Denak #: tools/FixEncoding.java:77 -An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Arazo bat gertatu da fitxategiaren kodifikazioa konpontzen saiatzean.\nEz saiatu sketch hau gordetzen, aurreko bertsioa gainidatzi bait dezake.\nZabaldu sakatu sketch-a berriro zabaltzeko eta saiatu berriro.\n +An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Arazo bat gertatu da fitxategiaren kodifikazioa konpontzen saiatzean.\nEz saiatu programa hau gordetzen, aurreko bertsioa gainidatzi baitezake.\nIreki sakatu programa berriro zabaltzeko eta saiatu berriro.\n #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -!An\ error\ occurred\ while\ updating\ libraries\ index\!= +An\ error\ occurred\ while\ updating\ libraries\ index\!=Errorea gertatu da liburutegien indizea eguneratzean #: ../../../processing/app/BaseNoGui.java:528 -!An\ error\ occurred\ while\ uploading\ the\ sketch= +An\ error\ occurred\ while\ uploading\ the\ sketch=Errorea gertatu da programa kargatzerakoan #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -!An\ error\ occurred\ while\ verifying\ the\ sketch= +An\ error\ occurred\ while\ verifying\ the\ sketch=Errorea gertatu da programa egiaztatzerakoan #: ../../../processing/app/BaseNoGui.java:521 -!An\ error\ occurred\ while\ verifying/uploading\ the\ sketch= +An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=Errorea gertatu da programa egiaztatzerakoan edo kargatzerakoan #: Base.java:228 -An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=Akats ezezagun bat gertatu da kargatzen saiatzerakoan\nkodigoa zure makonaren plataformako espezifikoa da. +An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=Errore ezezagun bat gertatu da zure makinan\nplataforma-espezifikoa den kodea kargatzen saiatzean. #: Preferences.java:85 Arabic=Arabiera @@ -138,61 +147,65 @@ Arabic=Arabiera Aragonese=Aragoiera #: tools/Archiver.java:48 -Archive\ Sketch=Sketch-a gorde +Archive\ Sketch=Artxibatu programa #: tools/Archiver.java:109 -Archive\ sketch\ as\:=Gorde sketcha honela\: +Archive\ sketch\ as\:=Artxibatu programa honela\: #: tools/Archiver.java:139 -Archive\ sketch\ canceled.=Sketch-aren gordetzea bertan behera utzi da.. +Archive\ sketch\ canceled.=Programa artxibatzea bertan behera utzi da. + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Cachetik sortutako nukleoa hemen gordetzen\: {0} #: tools/Archiver.java:75 -Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Sketch-aren gordetzea bertan behera utzi da\nsketch-a ezin bait da ondo gorde. +Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Programa artxibatzea bertan behera utzi da\nprograma ezin izan delako ondo gorde. #: ../../../../../arduino-core/src/processing/app/I18n.java:24 -!Arduino= +Arduino=Arduino #: ../../../processing/app/I18n.java:83 -Arduino\ ARM\ (32-bits)\ Boards=Arduino ARM (32-bit) Plakak +Arduino\ ARM\ (32-bits)\ Boards=Arduino ARM (32-bit) plakak #: ../../../processing/app/I18n.java:82 -Arduino\ AVR\ Boards=Arduino AVR Plakak +Arduino\ AVR\ Boards=Arduino AVR plakak #: Editor.java:2137 -!Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde= +Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde=Arduinok bere programa propioak eta .ino edo .pde\namaiera duten beste fitxategiak soilik ireki ditzake #: Base.java:1682 -Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ settings.=Arduinok ezin du funtzionatu ezin duelako karpeta\nbat zure konfigurazioa gordetzeko sortu. +Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ settings.=Arduinok ezin du funtzionatu ezin izan duelako\nzure ezarpenak gordetzeko karpeta sortu. #: Base.java:1889 -Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.=Arduinok ezin du funtzionatu ezin duelako karpeta\nbat zure sketchbook-a gordetzeko sortu. +Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.=Arduinok ezin du funtzionatu ezin izan duelako\nzure programa bilduma gordetzeko karpeta sortu. #: ../../../processing/app/EditorStatus.java:471 -Arduino\:\ =Arduino\: +Arduino\:\ =Arduino\: #: Sketch.java:588 #, java-format -Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?="{0}" ezabatu nahi duzula seguru zara? +Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?=Ziur zaude "{0}" ezabatu nahi duzula? #: Sketch.java:587 -Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Sketch hau ezabatu nahi duzula seguru zara? +Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Ziur zaude programa hau ezabatu nahi duzula? #: ../../../processing/app/Base.java:356 -Argument\ required\ for\ --board=Argumentua beharrezkoa da --plakarako +Argument\ required\ for\ --board=Argumentua beharrezkoa da --board aukerarentzat #: ../../../processing/app/Base.java:363 -Argument\ required\ for\ --port=Argumentua beharrezkoa da --atakarako +Argument\ required\ for\ --port=Argumentua beharrezkoa da --port aukerarentzat #: ../../../processing/app/Base.java:377 -Argument\ required\ for\ --pref=Argumentua beharrezkoa da --pref arako +Argument\ required\ for\ --pref=Argumentua beharrezkoa da --pref aukerarentzat #: ../../../processing/app/Base.java:384 -Argument\ required\ for\ --preferences-file=Argumentua beharrezkoa da --Hobespen fitxategirako +Argument\ required\ for\ --preferences-file=Argumentua beharrezkoa da --preferences-file aukerarentzat #: ../../../processing/app/helpers/CommandlineParser.java:76 #: ../../../processing/app/helpers/CommandlineParser.java:83 #, java-format -!Argument\ required\ for\ {0}= +Argument\ required\ for\ {0}=Argumentua beharrezkoa da {0} aukerarentzat #: ../../../processing/app/Preferences.java:137 Armenian=Armeniera @@ -201,32 +214,32 @@ Armenian=Armeniera Asturian=Bable #: ../../../processing/app/debug/Compiler.java:145 -!Authorization\ required= +Authorization\ required=Baimena beharrezkoa #: tools/AutoFormat.java:91 -Auto\ Format=Formatu Automatikoa. +Auto\ Format=Formatu automatikoa #: tools/AutoFormat.java:944 Auto\ Format\ finished.=Formatu automatikoa bukatu da. #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 -!Auto-detect\ proxy\ settings= +Auto-detect\ proxy\ settings=Proxy-aren ezarpenak automatikoki detektatu #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 -!Automatic= +Automatic=Automatikoa #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 -!Automatic\ proxy\ configuration\ URL\:= +Automatic\ proxy\ configuration\ URL\:=Proxy-aren ezarpen automatikoen URLa\: #: SerialMonitor.java:110 -Autoscroll=Autoscroll +Autoscroll=Korritze automatikoa #: Editor.java:2619 #, java-format Bad\ error\ line\:\ {0}=Errore lerroa\: {0} #: Editor.java:2136 -Bad\ file\ selected=Hautatutako fitxategi txarra da +Bad\ file\ selected=Fitxategi okerra hautatuta #: ../../../processing/app/Preferences.java:149 Basque=Euskara @@ -239,51 +252,51 @@ Belarusian=Bielorrusiera Board=Plaka #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=Plakaren informazioa #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -!Board\ at\ {0}\ is\ not\ available= +Board\ at\ {0}\ is\ not\ available={0}-n plaka ez dago eskuragarri #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format -!Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown= +Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown=Plaka {0} ezezaguna ({1} plataforma, {2} paketea) #: ../../../processing/app/debug/TargetBoard.java:42 #, java-format -Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}=Plaka {0}\:{1}\:{2} ez du definitzen ''build.board'' lehentasuna. Auto-seta\: {3} etara +Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}={0}\:{1}\:{2} plakak ez du ''build.board'' hobespena definitzen. Balio hau ezarri da automatikoki\: {3} #: ../../../processing/app/EditorStatus.java:472 -Board\:\ =Plaka\: +Board\:\ =Plaka\: #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -!Boards\ Manager= +Boards\ Manager=Plaken kudeatzailea #: ../../../../../app/src/processing/app/Base.java:1320 -!Boards\ Manager...= +Boards\ Manager...=Plaken kudeatzailea... #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 -!Boards\ included\ in\ this\ package\:= +Boards\ included\ in\ this\ package\:=Pakete honetan sartutako plakak\: #: ../../../processing/app/debug/Compiler.java:1273 #, java-format -!Bootloader\ file\ specified\ but\ missing\:\ {0}= +Bootloader\ file\ specified\ but\ missing\:\ {0}=Abiarazte-kudeatzailearen fitxategia zehaztu da baina ez dago\: {0} #: ../../../processing/app/Preferences.java:140 Bosnian=Bosniera #: SerialMonitor.java:112 -Both\ NL\ &\ CR=NL & CR Biak +Both\ NL\ &\ CR=NL & CR biak #: Preferences.java:81 -Browse=Bilatu +Browse=Arakatu #: ../../../processing/app/Sketch.java:1530 -Build\ options\ changed,\ rebuilding\ all=Konpilazio-aukerak aldatu dira, guztia berkonpilatzen +Build\ options\ changed,\ rebuilding\ all=Konpilazio-aukerak aldatu dira, guztia berriz konpilatzen #: ../../../../../app/src/processing/app/Base.java:1210 -!Built-in\ Examples= +Built-in\ Examples=Berezko adibideak #: ../../../processing/app/Preferences.java:80 Bulgarian=Bulgariera @@ -292,34 +305,34 @@ Bulgarian=Bulgariera Burmese\ (Myanmar)=Myanmarniera #: Editor.java:708 -Burn\ Bootloader=Idatzi Bootloader-a +Burn\ Bootloader=Kargatu abiarazte-kudeatzailea #: Editor.java:2504 -Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Bootloader-a S/I plakaN idazten (honek minutu bat har dezake)... +Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Abiarazte-kudeatzailea S/I plakan kargatzen (honek minutu bat har dezake)... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC ez dator bat, fitxategia hondatuta dago. Behin-behineko arazoa izan daiteke, saiatu beranduago. #: ../../../processing/app/Base.java:379 #, java-format -!Can\ only\ pass\ one\ of\:\ {0}= +Can\ only\ pass\ one\ of\:\ {0}=Hauetako bat pasa daiteke soilik\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=Ezin da gaitu kanpoko editorea #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 -!Can't\ find\ the\ sketch\ in\ the\ specified\ path= +Can't\ find\ the\ sketch\ in\ the\ specified\ path=Ezin da aurkitu programa zehaztutako bidean #: ../../../processing/app/Preferences.java:92 -Canadian\ French=Canada-frantses +Canadian\ French=Kanadako frantsesa #: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2064 Editor.java:2145 Editor.java:2465 Cancel=Utzi #: ../../../processing/app/Base.java:465 -!Cannot\ specify\ any\ sketch\ files= +Cannot\ specify\ any\ sketch\ files=Ezin da programa fitxategirik zehaztu #: SerialMonitor.java:112 Carriage\ return=Orga-itzulera @@ -328,221 +341,231 @@ Carriage\ return=Orga-itzulera Catalan=Katalana #: Preferences.java:419 -Check\ for\ updates\ on\ startup=Eguneratzeak bilatzen ditu Hasieran +Check\ for\ updates\ on\ startup=Egiaztatu eguneratzerik baden abioan #: ../../../processing/app/Preferences.java:142 -Chinese\ (China)=Txinera(Txina) +Chinese\ (China)=Txinera (Txina) #: ../../../processing/app/Preferences.java:144 Chinese\ (Taiwan)=Txinera (Taiwan) #: ../../../processing/app/Preferences.java:143 -Chinese\ (Taiwan)\ (Big5)=Txinera (Taiwan)(Big5) +Chinese\ (Taiwan)\ (Big5)=Txinera (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Garbitu irteera #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -!Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs= +Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Klik egin ofizialak ez diren plaken laguntza-URL zerrenda ikusteko #: Editor.java:521 Editor.java:2024 Close=Itxi #: Editor.java:1208 Editor.java:2749 -Comment/Uncomment=Iruzkina / iruzkina desegitea +Comment/Uncomment=Iruzkindu / Desiruzkindu #: ../../../../../arduino-core/src/processing/app/I18n.java:30 -!Communication= +Communication=Komunikazioa #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -!Compiler\ warnings\:\ = +Compiler\ warnings\:\ =Konpiladorearen abisuak\: #: Sketch.java:1608 Editor.java:1890 -Compiling\ sketch...=Sketch konpilatzen +Compiling\ sketch...=Programa konpilatzen... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 -!Contributed= +Contributed=Kolaborazio bidezkoak #: Editor.java:1157 Editor.java:2707 Copy=Kopiatu #: Editor.java:1177 Editor.java:2723 -Copy\ as\ HTML=HTMLa bezala kopia +Copy\ as\ HTML=Kopiatu HTML bezala #: ../../../processing/app/EditorStatus.java:455 -Copy\ error\ messages=Errore-mezua kopia ezazu +Copy\ error\ messages=Kopiatu errore-mezuak #: Editor.java:1165 Editor.java:2715 -Copy\ for\ Forum=Fororako Kopia +Copy\ for\ Forum=Kopiatu Fororako #: Sketch.java:1089 #, java-format -Could\ not\ add\ ''{0}''\ to\ the\ sketch.=Ezin izango litzateke gehitu ''{0}'' sketchera. +Could\ not\ add\ ''{0}''\ to\ the\ sketch.=Ezin izan da ''{0}'' gehitu programara. #: Editor.java:2188 -Could\ not\ copy\ to\ a\ proper\ location.=Ezin izan zen kopiatu kokapen egokian. +Could\ not\ copy\ to\ a\ proper\ location.=Ezin izan da kopiatu kokapen egokian. #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=Ezin izan da "{0}" direktorioa sortu #: Editor.java:2179 -Could\ not\ create\ the\ sketch\ folder.=Sketch-karpeta ezin da sortu. +Could\ not\ create\ the\ sketch\ folder.=Ezin izan da programa karpeta sortu. #: Editor.java:2206 -Could\ not\ create\ the\ sketch.=Sketcha ezin da sortu +Could\ not\ create\ the\ sketch.=Ezin izan da programa sortu #: Sketch.java:617 #, java-format -Could\ not\ delete\ "{0}".=\ "{0}" ezin da ezabatu +Could\ not\ delete\ "{0}".=Ezin izan da "{0}" ezabatu. #: Sketch.java:1066 #, java-format -Could\ not\ delete\ the\ existing\ ''{0}''\ file.=Ezin izango litzateke ezabatu oraingoa ''{0}'' fitxategia. +Could\ not\ delete\ the\ existing\ ''{0}''\ file.=Ezin izan da ezabatu lehendik dagoen ''{0}'' fitxategia. #: ../../../processing/app/debug/TargetPlatform.java:74 #, java-format -Could\ not\ find\ boards.txt\ in\ {0}.\ Is\ it\ pre-1.5?=Ezin du boards.tx-ik aurkitu {0}-etan. -1,5 bertsioaren aurrekoa da ? +Could\ not\ find\ boards.txt\ in\ {0}.\ Is\ it\ pre-1.5?=Ezin izan da boards.txt aurkitu {0}-(e)n. 1.5 bertsioaren aurrekoa da? #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:282 #, java-format -Could\ not\ find\ tool\ {0}=Ez du {0} tresna aurkitzen +Could\ not\ find\ tool\ {0}=Ezin izan da {0} tresna aurkitu #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:278 #, java-format -Could\ not\ find\ tool\ {0}\ from\ package\ {1}=Ez du pakete {1}-eko tresna {0} aurkitzen +Could\ not\ find\ tool\ {0}\ from\ package\ {1}=Ezin izan da {1} paketeko {0} tresna aurkitu #: Base.java:1934 #, java-format -Could\ not\ open\ the\ URL\n{0}=URL-a ezin da ireki\n{0} +Could\ not\ open\ the\ URL\n{0}=Ezin izan da URLa ireki\n{0} #: Base.java:1958 #, java-format -Could\ not\ open\ the\ folder\n{0}=Karpeta ezin da ireki\n{0} +Could\ not\ open\ the\ folder\n{0}=Ezin izan da karpeta ireki\n{0} #: Sketch.java:1769 -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.=Ez zen ahal izan sketcha zentzu hertsian gorde. Arazoetan egon zaitezke puntu honetan,\neta denbora izan liteke kopiatu eta zure kodea beste testu-editore batengana itsatsi. +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.=Ezin izan da programa berriz gorde. Egindako lana ez galtzeko\ngomendagarria da zure kodea kopiatzea eta beste testu-editore batean itsastea. #: Sketch.java:1768 -Could\ not\ re-save\ sketch=Ezin izango luke gorde sketcha +Could\ not\ re-save\ sketch=Ezin izan da programa berriz gorde #: Theme.java:52 -!Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.= +Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=Ezin izan dira kolore itxuraren ezarpenak irakurri.\nArduino berriz instalatu beharko duzu. #: Preferences.java:219 -Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=Ezarpen lehenetsiak ezin dira irakurri.\nArduino Instalatu berriro behar izango duzu. +Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=Ezin izan dira ezarpen lehenetsiak irakurri.\nArduino berriz instalatu beharko duzu. #: Base.java:2482 #, java-format -Could\ not\ remove\ old\ version\ of\ {0}=Ezin izango litzateke kendu bertsio zaharra{0} +Could\ not\ remove\ old\ version\ of\ {0}=Ezin izan da {0}(r)en bertsio zaharra kendu #: Base.java:2492 #, java-format -Could\ not\ replace\ {0}=Ezin izango luke ordeztu {0} +Could\ not\ replace\ {0}=Ezin izan da {0} ordeztu + +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Ezin izan da hobespenen fitxategia idatzi\: {0} #: tools/Archiver.java:74 -Couldn't\ archive\ sketch=Sketcha ezin da artxibatu +Couldn't\ archive\ sketch=Ezin izan da programa artxibatu #: Sketch.java:1647 -Couldn't\ determine\ program\ size\:\ {0}=Ezin izango luke erabaki programa-neurria\: {0} +Couldn't\ determine\ program\ size\:\ {0}=Ezin izan da programaren tamaina zehaztu\: {0} #: Sketch.java:616 -Couldn't\ do\ it=Ezin da egin +Couldn't\ do\ it=Ezin izan da egin #: debug/BasicUploader.java:209 -Couldn't\ find\ a\ Board\ on\ the\ selected\ port.\ Check\ that\ you\ have\ the\ correct\ port\ selected.\ \ If\ it\ is\ correct,\ try\ pressing\ the\ board's\ reset\ button\ after\ initiating\ the\ upload.=Ezin du inongo plakarik aurkitu aukeratutako atakan. Ataka zuzena duzula hautatuta egiaztatu ezazu. Zuzena bada, kargatu hasi ondoren reset-botoia sakatzen du. +Couldn't\ find\ a\ Board\ on\ the\ selected\ port.\ Check\ that\ you\ have\ the\ correct\ port\ selected.\ \ If\ it\ is\ correct,\ try\ pressing\ the\ board's\ reset\ button\ after\ initiating\ the\ upload.=Ezin izan da plakarik aurkitu hautatutako atakan. Egiaztatu ataka zuzena hautatu duzula. Zuzena bada, saiatu plaka berrezartzeko botoia sakatzen karga hasi ondoren. #: ../../../processing/app/Preferences.java:82 -Croatian=\ kroaziera +Croatian=Kroaziera #: Editor.java:1149 Editor.java:2699 Cut=Ebaki #: ../../../../../app/src/processing/app/Preferences.java:119 -!Czech\ (Czech\ Republic)= +Czech\ (Czech\ Republic)=Txekiera (Txekiar Errepublika) #: ../../../../../app/src/processing/app/Preferences.java:120 -!Danish\ (Denmark)= +Danish\ (Denmark)=Daniera (Danimarka) #: ../../../../../arduino-core/src/processing/app/I18n.java:36 -!Data\ Processing= +Data\ Processing=Datu prozesaketa #: ../../../../../arduino-core/src/processing/app/I18n.java:35 -!Data\ Storage= +Data\ Storage=Datu prozesaketa + +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Txikiagotu letra-tamaina #: Editor.java:1224 Editor.java:2765 -Decrease\ Indent=Txikitu koska +Decrease\ Indent=Txikiagotu koska #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 -!Default= +Default=Lehenetsia + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Lehenetsitako itxura #: EditorHeader.java:314 Sketch.java:591 Delete=Ezabatu #: ../../../../../arduino-core/src/processing/app/I18n.java:33 -!Device\ Control= +Device\ Control=Gailuaren kontrola #: debug/Uploader.java:199 -Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=Gailuak ez du erantzuten, egiaztatzen du serieko ataka zuzena hau aukeratuta edo resetea plaka esportatu baino lehen +Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=Gailuak ez du erantzuten, egiaztatu serieko ataka zuzena hautatuta dagoela edo BERREZARRI plaka esportatu baino lehen #: tools/FixEncoding.java:57 -Discard\ all\ changes\ and\ reload\ sketch?=Aldaketa guztiak baztertzen dituzu eta sketcha kargatzen duzu? +Discard\ all\ changes\ and\ reload\ sketch?=Baztertu aldaketa guztiak eta programa berriro kargatu? #: ../../../../../arduino-core/src/processing/app/I18n.java:29 -!Display= +Display=Bistaratu #: ../../../processing/app/Preferences.java:438 -Display\ line\ numbers=Lerro-zenbakiak erakusten ditu +Display\ line\ numbers=Bistaratu lerro-zenbakiak #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format -!Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.= +Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.={0} kendu nahi duzu?\nHala eginez gero ezingo duzu {0} gehiago erabili. #: Editor.java:2064 -Don't\ Save=Ez Gorde +Don't\ Save=Ez gorde #: Editor.java:2275 Editor.java:2311 -Done\ Saving.=Gordeta bukatu +Done\ Saving.=Gordetzea burutu da. #: Editor.java:2510 -Done\ burning\ bootloader.=Bootloader-erreketa bukatuta. +Done\ burning\ bootloader.=Abiarazte-kudeatzailea kargatzea burutu da. #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 -!Done\ compiling= +Done\ compiling=Konpilazioa burutu da #: Editor.java:1911 Editor.java:1928 -Done\ compiling.=konpilazio eginda. +Done\ compiling.=Konpilazioa burutu da. #: Editor.java:2564 -Done\ printing.=Inprimaketa bukatu du. +Done\ printing.=Inprimatzea burutu da. #: ../../../processing/app/BaseNoGui.java:514 -!Done\ uploading= +Done\ uploading=Kargatzea burutu da #: Editor.java:2395 Editor.java:2431 -Done\ uploading.=Datu-karga bukatuta du. +Done\ uploading.=Kargatzea burutu da. #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format -!Downloaded\ {0}kb\ of\ {1}kb.= +Downloaded\ {0}kb\ of\ {1}kb.={0}kb / {1}kb deskargatuta. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 -!Downloading\ boards\ definitions.= +Downloading\ boards\ definitions.=Plaken definizioak deskargatzen. #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 -!Downloading\ libraries\ index...= +Downloading\ libraries\ index...=Liburutegien indizea deskargatzen... #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 #, java-format -!Downloading\ library\:\ {0}= +Downloading\ library\:\ {0}=Liburutegia deskargatzen\: {0} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 -!Downloading\ platforms\ index...= +Downloading\ platforms\ index...=Plataformen indizea deskargatzen... #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:113 #, java-format -!Downloading\ tools\ ({0}/{1}).= +Downloading\ tools\ ({0}/{1}).=Tresnak deskargatzen ({0}/{1}). #: Preferences.java:91 Dutch=Nederlandera @@ -551,32 +574,32 @@ Dutch=Nederlandera Dutch\ (Netherlands)=Nederlandera (Holanda) #: ../../../../../app/src/processing/app/Editor.java:1309 -!Edison\ Help= +Edison\ Help=Edisonen laguntza #: Editor.java:1130 Edit=Editatu #: Preferences.java:370 -Editor\ font\ size\:\ =\ Letra-tamaina Editorea\: +Editor\ font\ size\:\ =Editorearen letra-tamaina\: #: Preferences.java:353 -Editor\ language\:\ =Hizkuntza editorea\: +Editor\ language\:\ =Editorearen lengoaia\: #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 -!Enable\ Code\ Folding= +Enable\ Code\ Folding=Gaitu kode tolesketa #: Preferences.java:92 -English=Ingeles +English=Ingelesa #: ../../../processing/app/Preferences.java:145 -English\ (United\ Kingdom)=Ingeles ( Ingalaterra ) +English\ (United\ Kingdom)=Ingelesa (Erresuma Batua) #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 -!Enter\ a\ comma\ separated\ list\ of\ urls= +Enter\ a\ comma\ separated\ list\ of\ urls=Sartu komaz banatutako URLen zerrenda #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -!Enter\ additional\ URLs,\ one\ for\ each\ row= +Enter\ additional\ URLs,\ one\ for\ each\ row=Sartu URL gehigarriak, bat errenkadako #: Editor.java:1062 Environment=Ingurunea @@ -584,218 +607,234 @@ Environment=Ingurunea #: Base.java:2147 Preferences.java:256 Sketch.java:475 Sketch.java:481 #: Sketch.java:496 Sketch.java:503 Sketch.java:526 Sketch.java:543 #: Editor.java:2167 Editor.java:2178 Editor.java:2188 Editor.java:2206 -Error=Errore +Error=Errorea #: Sketch.java:1065 Sketch.java:1088 -Error\ adding\ file=Akatsa fitxategi bat gehitzerakoan +Error\ adding\ file=Errorea fitxategia gehitzean #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format -!Error\ compiling\ for\ board\ {0}.= +Error\ compiling\ for\ board\ {0}.=Errorea {0} plakarako konpilatzean. #: debug/Compiler.java:369 -Error\ compiling.=konpilazio-errore +Error\ compiling.=Errorea konpilatzean. #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format -!Error\ downloading\ {0}= +Error\ downloading\ {0}=Errorea {0} deskargatzean #: Base.java:1674 -Error\ getting\ the\ Arduino\ data\ folder.=Arazoak Arduino-ko karpetaren datuak irakurtzerakoan +Error\ getting\ the\ Arduino\ data\ folder.=Errorea Arduinoren datuen karpeta eskuratzean. #: Serial.java:593 #, java-format -Error\ inside\ Serial.{0}()=Akatsa Serial.{0}() -ean +Error\ inside\ Serial.{0}()=Errorea Serial.{0}() barruan + +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Errorea {0} itxura kargatzean\: {1} #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 #, java-format -Error\ loading\ {0}=Karga-errore {0} +Error\ loading\ {0}=Errorea {0} kargatzean #: Serial.java:181 #, java-format -Error\ opening\ serial\ port\ ''{0}''.=''{0}'' hutseko irekierako serieko ataka. +Error\ opening\ serial\ port\ ''{0}''.=Errorea ''{0}'' serieko ataka irekitzean. #: ../../../processing/app/Serial.java:119 #, java-format -!Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Errorea ''{0}'' serieko ataka irekitzean. Kontsultatu dokumentazioa\: http\://playground.arduino.cc/Linux/All\#Permission + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Errorea liburutegien indizea analizatzean\: {0}\nIreki Liburutegi kudeatzailea liburutegien indizea eguneratzeko. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Errorea liburutegien indizea irakurtzean\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Errorea paketeen indizeen karpeta irakurtzean\: {0}\n(behar bada baimen arazoa?) #: Preferences.java:277 -Error\ reading\ preferences=Hutseko irakurketako lehentasunak +Error\ reading\ preferences=Errorea hobespenak irakurtzean #: Preferences.java:279 #, java-format -Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ restart\ Arduino.=Lehentasun-fitxategia irakurri hutsa. Mesedez ezabatu ezazu (edo eraman) \n{0} eta Arduino berrabiarazi. +Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ restart\ Arduino.=Errorea hobespenen fitxategia irakurtzean. Ezabatu (edo lekuz aldatu) \n{0} eta berrabiarazi Arduino. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:146 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:166 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:245 -!Error\ running\ post\ install\ script= +Error\ running\ post\ install\ script=Errorea instalazio ondorengo script-a exekutatzean #: ../../../cc/arduino/packages/DiscoveryManager.java:25 -Error\ starting\ discovery\ method\:\ =Aurkikuntza-metodoa hasiz hutsa\: +Error\ starting\ discovery\ method\:\ =Errorea aurkikuntza-metodoa abiaraztean\: #: Serial.java:125 #, java-format -Error\ touching\ serial\ port\ ''{0}''.=Hutsa ukitu ''{0}'' serieko ataka. +Error\ touching\ serial\ port\ ''{0}''.=Errorea ''{0}'' serieko ataka ukitzean. #: Editor.java:2512 Editor.java:2516 Editor.java:2520 -Error\ while\ burning\ bootloader.=Akatsa bootloaderak erretzen diren bitartean. +Error\ while\ burning\ bootloader.=Errorea abiarazte-kudeatzailea kargatzean. #: ../../../processing/app/Editor.java:2555 -Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Bootloader-a erretzerakoan hutsa\: desagertu {0} konfigurazio-parametroa +Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Errorea abiarazte-kudeatzailea kargatzean\: '{0}' konfigurazio-parametroa falta da + +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Errorea gertatu da abiarazte-kudeatzailea kargatzean\: aukeratu serie-ataka bat. #: ../../../../../app/src/processing/app/Editor.java:1940 -!Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= +Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Errorea konpilatzean\: '{0}' konfigurazio-parametroa falta da #: Editor.java:2567 -Error\ while\ printing.=Inprimatzerakoan hutsa. +Error\ while\ printing.=Errorea inprimatzerakoan. #: ../../../../../arduino-core/src/processing/app/Serial.java:117 #, java-format -!Error\ while\ setting\ serial\ port\ parameters\:\ {0}\ {1}\ {2}\ {3}= +Error\ while\ setting\ serial\ port\ parameters\:\ {0}\ {1}\ {2}\ {3}=Errorea serieko ataken parametroak ezartzean\: {0} {1} {2} {3} #: ../../../processing/app/BaseNoGui.java:528 -!Error\ while\ uploading= +Error\ while\ uploading=Errorea igotzean #: ../../../processing/app/Editor.java:2409 #: ../../../processing/app/Editor.java:2449 -Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Kargatzerakoan hutsa\: desagertu {0} konfigurazio-parametroa +Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Errorea igotzean\: '{0}' konfigurazio-parametroa falta da #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -!Error\ while\ verifying= +Error\ while\ verifying=Errorea egiaztatzean #: ../../../processing/app/BaseNoGui.java:521 -!Error\ while\ verifying/uploading= +Error\ while\ verifying/uploading=Errorea egiaztatzean/igotzean #: Preferences.java:93 Estonian=Estoniera -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estoniera (Estonia) - #: Editor.java:516 Examples=Adibideak #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=Edozein plaketarako adibideak #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}={0}-rako adibideak #: ../../../../../app/src/processing/app/Base.java:1244 -!Examples\ from\ Custom\ Libraries= +Examples\ from\ Custom\ Libraries=Liburutegi pertsonalizatuetako adibideak #: ../../../../../app/src/processing/app/Base.java:1329 -!Examples\ from\ Other\ Libraries= +Examples\ from\ Other\ Libraries=Beste liburutegietako adibideak #: ../../../../../app/src/processing/app/Editor.java:753 -!Export\ canceled,\ changes\ must\ first\ be\ saved.= +Export\ canceled,\ changes\ must\ first\ be\ saved.=Esportazioa bertan behera utzi da, lehenik gorde egin behar da. #: ../../../../../app/src/processing/app/Editor.java:750 -!Export\ compiled\ Binary= +Export\ compiled\ Binary=Esportatu konpilatutako bitarra #: ../../../processing/app/Base.java:416 #, java-format -Failed\ to\ open\ sketch\:\ "{0}"=Sketcha irekitzeko huts eginda\: "{0}" +Failed\ to\ open\ sketch\:\ "{0}"=Programa irekitzean huts egin du\: "{0}" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=Huts egin du "{0}"(e)tik "{1}"(e)ra izenez aldatzean #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=Huts egin du programaren karpetari izena aldatzean #: Editor.java:491 -File=Fitxategi +File=Fitxategia #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format -!File\ name\ {0}\ is\ invalid\:\ ignored= +File\ name\ {0}\ is\ invalid\:\ ignored={0} fitxategi-izena baliogabea da\: ezikusia #: Preferences.java:94 -Filipino=Filipiniera +Filipino=Filipinera #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 -!Filter\ your\ search...= +Filter\ your\ search...=Iragazi zure bilaketa... #: FindReplace.java:124 FindReplace.java:127 Find=Bilatu #: Editor.java:1249 -Find\ Next=Aurkitu hurrengoa +Find\ Next=Bilatu hurrengoa #: Editor.java:1259 -Find\ Previous=Aurkitu aurrekoa +Find\ Previous=Bilatu aurrekoa #: Editor.java:1086 Editor.java:2775 -Find\ in\ Reference=Aipamen bidezko dei +Find\ in\ Reference=Bilatu Erreferentzian #: Editor.java:1234 Find...=Bilatu... #: FindReplace.java:80 -Find\:=Aurkitu +Find\:=Bilatu\: #: ../../../processing/app/Preferences.java:147 Finnish=Finlandiera #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 -Fix\ Encoding\ &\ Reload=Kodea konpontzen & kargatu +Fix\ Encoding\ &\ Reload=Konpondu kodeketa eta kargatu #: ../../../processing/app/BaseNoGui.java:318 -!For\ information\ on\ installing\ libraries,\ see\:\ http\://www.arduino.cc/en/Guide/Libraries\n= +For\ information\ on\ installing\ libraries,\ see\:\ http\://www.arduino.cc/en/Guide/Libraries\n=Liburutegiak instalatzeari buruz informazioa behar baduzu, ikusi\: http\://www.arduino.cc/en/Guide/Libraries\n #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:118 #, java-format -!Forcing\ reset\ using\ 1200bps\ open/close\ on\ port\ {0}= +Forcing\ reset\ using\ 1200bps\ open/close\ on\ port\ {0}={0} atakan 1200bps ireki/itxi erabiliz berrezartzea behartzen #: Preferences.java:95 -French=Frantses +French=Frantsesa #: Editor.java:1097 -Frequently\ Asked\ Questions=Maiz egiten diren galderak +Frequently\ Asked\ Questions=Maiz egindako galderak #: Preferences.java:96 Galician=Galiziera #: ../../../../../app/src/processing/app/Preferences.java:176 -!Galician\ (Spain)= +Galician\ (Spain)=Galiziera (Espainia) #: ../../../../../app/src/processing/app/Editor.java:1288 -!Galileo\ Help= +Galileo\ Help=Galileoren laguntza #: ../../../processing/app/Preferences.java:94 Georgian=Georgiera #: Preferences.java:97 -German=Aleman +German=Alemana #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=Eskuratu plakaren informazioa #: Editor.java:1054 -Getting\ Started=Abiarazi +Getting\ Started=Erabiltzen hasi #: ../../../processing/app/Sketch.java:1646 #, java-format -Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.=Aldagai osoek memoria dinamikoko {0} byte ({2}%%) darabiltzate, {3} byte uzten dituzte aldagai lokaletarako. Maximoa {1} byte dira. +Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.=Aldagai orokorrek memoria dinamikoko {0} byte ({2}%%) erabiltzen dituzte, {3} byte utziz aldagai lokaletarako. Maximoa {1} byte dira. #: ../../../processing/app/Sketch.java:1651 #, java-format -Global\ variables\ use\ {0}\ bytes\ of\ dynamic\ memory.=Aldagai osoek memoria dinamikoko {0} byte darabiltzate. +Global\ variables\ use\ {0}\ bytes\ of\ dynamic\ memory.=Aldagai orokorrek memoria dinamikoko {0} byte darabiltzate. #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 -!Go\ to\ line= +Go\ to\ line=Joan lerrora #: ../../../../../app/src/processing/app/Editor.java:1460 -!Go\ to\ line...= +Go\ to\ line...=Joan lerrora... #: Preferences.java:98 Greek=Greziera @@ -807,13 +846,13 @@ Hebrew=Hebreera Help=Laguntza #: Preferences.java:99 -Hindi=Indiera +Hindi=Hindia #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 -!Host\ name\:= +Host\ name\:=Ostalari-izena\: #: Sketch.java:295 -How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=sketcha hura izendatzen saiatu baino lehen \nlehenik eta behin ez duzulako gordetzen +How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Oraindik ez duzu programa gorde. \nIzena aldatu aurretik gorde nahi duzu? #: Sketch.java:882 How\ very\ Borges\ of\ you=Hor konpon, Marianton\! @@ -822,26 +861,29 @@ How\ very\ Borges\ of\ you=Hor konpon, Marianton\! Hungarian=Hungariera #: ../../../../../app/src/processing/app/Base.java:1319 -!INCOMPATIBLE= +INCOMPATIBLE=BATERAEZINA #: FindReplace.java:96 Ignore\ Case=Ezikusi Maiuskula/minuskula -#: Base.java:1058 -Ignoring\ bad\ library\ name=Liburutegi izen txarra ez ikusi egin +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Liburutegia ezikusi da izen desegokia duelako #: Base.java:1436 -Ignoring\ sketch\ with\ bad\ name=Ez ikusi egin izen txarrarekiko esketcha +Ignoring\ sketch\ with\ bad\ name=Programari ezikusi da izen desegokia duelako #: ../../../processing/app/Sketch.java:736 -In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=1.0 Arduinon, ez-betetzeko fitxategiko luzapena aldatu da\n.pde-tatik .ino.-etatik sketch berriak (sortutako horiek barne\n"Save-As-en") erabiliko du luzapena berria. Luzapena\noraingo sketchen eguneratuko da gorde, baina ahal zara\nhau desgaitu ezazu Lehentasun-elkarrizketan.\n\nSketcha gordetzen duzu eta bere luzapena eguneratzen duzu? +In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=Arduino 1.0-n, fitxategien luzapen lehenetsia .pde-tik .ino.-ra aldatu da.\nPrograma berriek ("Gorde honela"-rekin sortutakoak barne) luzapen berria erabiliko dute. Programa zaharren luzapena aldatuko da programa gordetzerakoan baina ezarpen hau hobespenetan aldatu dezakezu.\n\nPrograma gorde eta bere luzapena eguneratu? #: ../../../../../app/src/processing/app/Editor.java:778 -!Include\ Library= +Include\ Library=Erantsi liburutegia #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 -!Incorrect\ IDE\ installation\ folder= +Incorrect\ IDE\ installation\ folder=IDEaren instalazio karpeta okerra + +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Handitu letra-tamaina #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Handitu koska @@ -850,7 +892,7 @@ Increase\ Indent=Handitu koska Indonesian=Indonesiera #: ../../../../../app/src/processing/app/Base.java:295 -!Initializing\ packages...= +Initializing\ packages...=Paketeak hasieratzen... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 @@ -858,39 +900,48 @@ Indonesian=Indonesiera #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:78 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 -!Install= +Install=Instalatu #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 -!Installation\ completed\!= +Installation\ completed\!=Instalazioa amaitu da\! #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 -!Installed= +Installed=Instalatuta #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 -!Installing\ boards...= +Installing\ boards...=Plakak instalatzen... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +Installing\ library\:\ {0}\:{1}=Liburutegia instalatzen\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format -!Installing\ tools\ ({0}/{1})...= +Installing\ tools\ ({0}/{1})...=Tresnak instalatzen ({0}/{1})... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:239 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:172 -!Installing...= +Installing...=Instalatzen... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 -!Interface\ scale\:= +Interface\ scale\:=Interfazearen eskala\: #: ../../../processing/app/Base.java:1204 #, java-format -Invalid\ library\ found\ in\ {0}\:\ {1}=\ {0}\: {1}-etan aurkitutako liburutegi okerra +Invalid\ library\ found\ in\ {0}\:\ {1}=Liburutegi baliogabea aurkitu da {0}(e)n\: {1} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:66 #, java-format -!Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Komatxoen formatu baliogabea\: ez da topatu [{0}] itxiera karakterea. + +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Liburutegiaren '{0}' bertsio baliogabea hemen\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}={0} bertsio baliogabea #: Preferences.java:102 Italian=Italiera @@ -899,7 +950,7 @@ Italian=Italiera Japanese=Japoniera #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=Kazakhera #: Preferences.java:104 Korean=Koreera @@ -908,39 +959,39 @@ Korean=Koreera Latvian=Letoniera #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -!Library\ Manager= +Library\ Manager=Liburutegi kudeatzailea #: ../../../../../app/src/processing/app/Base.java:2349 -!Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu= +Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Liburutegia zure liburutegietara gehitua. Ikusi "Erantsi liburutegia" menua #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -!Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= +Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Liburutegiek ezin dute erabili 'src' eta 'utility' karpetak. Berrikusi {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +Library\ is\ already\ installed\:\ {0}\:{1}=Liburutegia instalatua dago dagoeneko\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 -!Line\ number\:= +Line\ number\:=Lerro-zenbakia\: #: Preferences.java:106 Lithuaninan=Lituaniera #: ../../../../../app/src/processing/app/Base.java:132 -!Loading\ configuration...= +Loading\ configuration...=Konfigurazioa kargatzen... #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format -!Looking\ for\ recipes\ like\ {0}*{1}= +Looking\ for\ recipes\ like\ {0}*{1}={0}*{1} bezalako prozeduren bila #: ../../../processing/app/Sketch.java:1684 -!Low\ memory\ available,\ stability\ problems\ may\ occur.= +Low\ memory\ available,\ stability\ problems\ may\ occur.=Memoria gutxi dago erabilgarri, egonkortasun arazoak gerta daitezke. #: ../../../../../app/src/processing/app/Base.java:1168 -!Manage\ Libraries...= +Manage\ Libraries...=Kudeatu liburutegiak... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 -!Manual\ proxy\ configuration= +Manual\ proxy\ configuration=Proxyaren eskuzko konfigurazioa #: Preferences.java:107 Marathi=Marathiera @@ -950,59 +1001,59 @@ Message=Mezua #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format -!Missing\ '{0}'\ from\ library\ in\ {1}= +Missing\ '{0}'\ from\ library\ in\ {1}='{0}'falta da liburutegitik {1}(e)n #: ../../../processing/app/BaseNoGui.java:455 -!Mode\ not\ supported= +Mode\ not\ supported=Modua ez da onartzen #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 -!More= +More=Gehiago #: Preferences.java:449 -More\ preferences\ can\ be\ edited\ directly\ in\ the\ file=Zuzenean fitxategian lehentasun gehiago editatu ahal dituzte +More\ preferences\ can\ be\ edited\ directly\ in\ the\ file=Hobespen gehiago editatu daitezke zuzenean fitxategian #: Editor.java:2156 -Moving=Mugitzen +Moving=Lekuz aldatzen #: ../../../processing/app/BaseNoGui.java:484 -!Multiple\ files\ not\ supported= +Multiple\ files\ not\ supported=Ez dago hainbat fitxategirentzako euskarririk #: ../../../processing/app/debug/Compiler.java:520 #, java-format -!Multiple\ libraries\ were\ found\ for\ "{0}"= +Multiple\ libraries\ were\ found\ for\ "{0}"="{0}"(r)entzat hainbat liburutegi aurkitu dira #: ../../../processing/app/Base.java:395 -Must\ specify\ exactly\ one\ sketch\ file=Zehaztu behar du sketch-fitxategi zehazki bat +Must\ specify\ exactly\ one\ sketch\ file=Programa fitxategi bat zehaztu behar duzu #: Sketch.java:282 -Name\ for\ new\ file\:=Fitxategi berriaren izena +Name\ for\ new\ file\:=Fitxategi berriaren izena\: #: ../../../../../app//src/processing/app/Editor.java:2809 -!Native\ serial\ port,\ can't\ obtain\ info= +Native\ serial\ port,\ can't\ obtain\ info=Serieko ataka natiboa, ezin da informaziorik eskuratu #: ../../../processing/app/Preferences.java:149 Nepali=Nepalera #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 -!Network= +Network=Sarea #: ../../../../../app//src/processing/app/Editor.java:2804 -!Network\ port,\ can't\ obtain\ info= +Network\ port,\ can't\ obtain\ info=Sareko ataka, ezin da informaziorik eskuratu #: ../../../../../app/src/processing/app/Editor.java:65 -!Network\ ports= +Network\ ports=Sareko atakak #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:51 -Network\ upload\ using\ programmer\ not\ supported=Laguntzarik ez dago artxibo-kargarako sarean programagailua erabiliz +Network\ upload\ using\ programmer\ not\ supported=Ez da onartzen sareko karga programatzailea erabiliz #: EditorToolbar.java:41 Editor.java:493 New=Berria #: EditorHeader.java:292 -New\ Tab=Fitxa berri +New\ Tab=Fitxa berria #: SerialMonitor.java:112 -Newline=Lerro-amaiera +Newline=Lerro berria #: EditorHeader.java:340 Next\ Tab=Hurrengo fitxa @@ -1011,95 +1062,95 @@ Next\ Tab=Hurrengo fitxa No=Ez #: ../../../processing/app/debug/Compiler.java:158 -!No\ authorization\ data\ found= +No\ authorization\ data\ found=Ez da baimenaren daturik aurkitu #: tools/format/src/AutoFormat.java:54 tools/AutoFormat.java:916 -No\ changes\ necessary\ for\ Auto\ Format.=Aldaketa bat ere beharrezko Auto Formaturako. +No\ changes\ necessary\ for\ Auto\ Format.=Formatu automatikorako ez da aldaketarik behar. #: ../../../processing/app/BaseNoGui.java:665 -!No\ command\ line\ parameters\ found= +No\ command\ line\ parameters\ found=Ez da komando lerroko parametrorik aurkitu #: ../../../processing/app/debug/Compiler.java:200 -!No\ compiled\ sketch\ found= +No\ compiled\ sketch\ found=Ez da fitxategi konpilaturik aurkitu #: Editor.java:373 -No\ files\ were\ added\ to\ the\ sketch.=Fitxategi bat ere ez zioten sketchari gehitu. +No\ files\ were\ added\ to\ the\ sketch.=Programari ez zaio fitxategirik gehitu. #: Platform.java:167 -No\ launcher\ available=Inongo jaurtitzailerik-Launcher ez dago +No\ launcher\ available=Ez dago abiarazlerik erabilgarri #: SerialMonitor.java:112 -No\ line\ ending=Ez lerro-bukaera +No\ line\ ending=Lerro amaierarik ez #: ../../../processing/app/BaseNoGui.java:665 -!No\ parameters= +No\ parameters=Parametrorik ez #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:453 -!No\ proxy= +No\ proxy=Proxy-rik ez #: Base.java:541 -No\ really,\ time\ for\ some\ fresh\ air\ for\ you.=Ez benetan, zuretzako aire freskoren baterako denbora. +No\ really,\ time\ for\ some\ fresh\ air\ for\ you.=Benetan, aire fresko pixka bat behar duzu. #: Editor.java:1872 #, java-format -No\ reference\ available\ for\ "{0}"=Aipamen erabilgarri bat ere {0} +No\ reference\ available\ for\ "{0}"=Ez dago erreferentziarik erabilgarri {0}(r)entzat #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 -!No\ sketch= +No\ sketch=Programarik ez #: ../../../processing/app/BaseNoGui.java:428 -!No\ sketchbook= +No\ sketchbook=Programa bildumarik ez #: ../../../processing/app/Sketch.java:204 -No\ valid\ code\ files\ found=Aurkitutako baliozko kode-fitxategi bat ere +No\ valid\ code\ files\ found=Ez da baliozko kode-fitxategirik aurkitu #: ../../../processing/app/debug/TargetPackage.java:63 #, java-format -No\ valid\ hardware\ definitions\ found\ in\ folder\ {0}.=Karpetan {0} aurkitutako baliozko hardware-definizio bat ere. +No\ valid\ hardware\ definitions\ found\ in\ folder\ {0}.=Ez da baliozko hardware-definiziorik aurkitu {0} karpetan. #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:184 -!None= +None=Bat ere ez #: ../../../processing/app/Preferences.java:108 -Norwegian\ Bokm\u00e5l=\ Norvegiera +Norwegian\ Bokm\u00e5l=Norvegiera (Bokm\u00e5l) #: ../../../processing/app/Sketch.java:1656 -Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=Memoria nahikorik ez dago ; bisita http\://www.arduino.cc/en/Guide/Troubleshooting\#size bere erabilera txikiagotzea bezala ikasteko. +Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=Ez dago memoria nahikorik; bisitatu http\://www.arduino.cc/en/Guide/Troubleshooting\#size memoria erabilera nola txikiagotu ikasteko. #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 -OK=OK +OK=Ados #: Sketch.java:992 Editor.java:376 -One\ file\ added\ to\ the\ sketch.=Sketcherako fitxategi bat gehitu da. +One\ file\ added\ to\ the\ sketch.=Programari fitxategi bat gehitu zaio. #: ../../../processing/app/BaseNoGui.java:455 -!Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported= +Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported=Soilik --verify, --upload eta --get-pref onartzen dira #: EditorToolbar.java:41 Open=Ireki #: ../../../../../app/src/processing/app/Editor.java:625 -!Open\ Recent= +Open\ Recent=Ireki azkenak #: Editor.java:2688 -Open\ URL=Ireki URLa. +Open\ URL=Ireki URLa #: Base.java:636 -Open\ an\ Arduino\ sketch...=Arduino sketcha ireki ezazu +Open\ an\ Arduino\ sketch...=Ireki Arduino programa... #: Base.java:903 Editor.java:501 -Open...=Ireki +Open...=Ireki... #: ../../../../../arduino-core/src/processing/app/I18n.java:37 -!Other= +Other=Bestea #: Editor.java:563 Page\ Setup=Prestatu orrialdea #: ../../../../../arduino-core/src/processing/app/I18n.java:25 -!Partner= +Partner=Bazkidea #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 Password\:=Pasahitza\: @@ -1115,29 +1166,29 @@ Persian\ (Iran)=Persiera (Iran) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 #, java-format -!Platform\ {0}\ (package\ {1})\ is\ unknown= +Platform\ {0}\ (package\ {1})\ is\ unknown={0} plataforma ({1} paketea) ezezaguna da #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 -!Please\ confirm\ boards\ deletion= +Please\ confirm\ boards\ deletion=Berretsi plaken ezabapena #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -!Please\ confirm\ library\ deletion= +Please\ confirm\ library\ deletion=Berretsi liburutegiaren ezabapena #: debug/Compiler.java:408 -Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Mesedez SPI-liburutegia Sketchetik inportatu ezazu > Inportazioko Liburutegiko menua. +Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Inportatu ezazu SPI-liburutegia Programa > Inportatu liburutegia menutik. #: ../../../processing/app/debug/Compiler.java:529 -Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Mesedez Wire liburutegia sketch > Import Library menutik inportatu ezazu. +Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Inportatu ezazu Wire liburutegia Programa > Inportatu liburutegia menutik. #: ../../../../../app//src/processing/app/Editor.java:2799 -!Please\ select\ a\ port\ to\ obtain\ board\ info= +Please\ select\ a\ port\ to\ obtain\ board\ info=Hautatu ataka bat plakaren informazioa eskuratzeko #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 -!Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu= +Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=Hautatu programatzaile bat Tresnak->Programatzailea menuan #: ../../../../../app/src/processing/app/Editor.java:2613 -!Plotter\ not\ available\ while\ serial\ monitor\ is\ open= +Plotter\ not\ available\ while\ serial\ monitor\ is\ open=Plotterra ez dago erabilgarri, serieko monitorea irekita dagoen bitartean #: Preferences.java:110 Polish=Poloniera @@ -1146,13 +1197,13 @@ Polish=Poloniera Port=Ataka #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:491 -!Port\ number\:= +Port\ number\:=Ataka zenbakia\: #: ../../../processing/app/Preferences.java:151 Portugese=Portugalera #: ../../../processing/app/Preferences.java:127 -Portuguese\ (Brazil)=Portugalera (Brazil) +Portuguese\ (Brazil)=Portugalera (Brasil) #: ../../../processing/app/Preferences.java:128 Portuguese\ (Portugal)=Portugalera (Portugal) @@ -1161,7 +1212,7 @@ Portuguese\ (Portugal)=Portugalera (Portugal) Preferences=Hobespenak #: ../../../../../app/src/processing/app/Base.java:297 -!Preparing\ boards...= +Preparing\ boards...=Plakak prestatzen... #: FindReplace.java:123 FindReplace.java:128 Previous=Aurrekoa @@ -1179,65 +1230,65 @@ Printing\ canceled.=Utzi inprimaketa. Printing...=Inprimatzen... #: Base.java:1957 -Problem\ Opening\ Folder=Arazoko Irekierako Karpeta +Problem\ Opening\ Folder=Arazoa karpeta irekitzean #: Base.java:1933 -Problem\ Opening\ URL=Arazoak URLa irekitzerakoan +Problem\ Opening\ URL=Arazoa URLa irekitzerakoan #: Base.java:227 -Problem\ Setting\ the\ Platform=Plataformaren Konfigurazio Arazoa +Problem\ Setting\ the\ Platform=Arazoa plataforma ezartzean #: ../../../cc/arduino/packages/uploaders/SSHUploader.java:136 -Problem\ accessing\ board\ folder\ /www/sd=Arazoa plakako karpeta sartzerakoan dago /www/sd +Problem\ accessing\ board\ folder\ /www/sd=Arazoa plakaren karpeta atzitzean /www/sd #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format -!Problem\ accessing\ files\ in\ folder\ "{0}"= +Problem\ accessing\ files\ in\ folder\ "{0}"=Atzipen-arazoa "{0}" karpetako fitxategietan #: Base.java:1673 -Problem\ getting\ data\ folder=Arazoak karpetaren datuak irakurtzerakoan +Problem\ getting\ data\ folder=Arazoa datuen karpeta irakurtzerakoan #: debug/Uploader.java:209 -Problem\ uploading\ to\ board.\ \ See\ http\://www.arduino.cc/en/Guide/Troubleshooting\#upload\ for\ suggestions.=Plakaratzeko upload arazoa. http\://www.arduino.cc/en/Guide/Troubleshooting\#upload ikusi ezazu iradokizunetarako. +Problem\ uploading\ to\ board.\ \ See\ http\://www.arduino.cc/en/Guide/Troubleshooting\#upload\ for\ suggestions.=Arazoa plakara kargatzean. Ikusi http\://www.arduino.cc/en/Guide/Troubleshooting\#upload iradokizunetarako. #: Sketch.java:355 Sketch.java:362 Sketch.java:373 -Problem\ with\ rename=Izen-aldaketarekiko arazoa +Problem\ with\ rename=Arazoa izena aldatzean #: ../../../processing/app/I18n.java:86 Processor=Prozesadorea #: Editor.java:704 -Programmer=Programatzaile +Programmer=Programatzailea #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:80 #, java-format -!Progress\ {0}= +Progress\ {0}=Aurrerapena {0} #: Base.java:783 Editor.java:593 -Quit=kentzea +Quit=Irten #: ../../../../../app/src/processing/app/Base.java:1233 -!RETIRED= +RETIRED=ERRETIRATUA #: ../../../../../arduino-core/src/processing/app/I18n.java:26 -!Recommended= +Recommended=Gomendatua #: Editor.java:1138 Editor.java:1140 Editor.java:1390 Redo=Berregin #: Editor.java:1078 -Reference=Aipamen +Reference=Erreferentzia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -!Remove= +Remove=Kendu -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +Removing\ library\:\ {0}\:{1}=Liburutegia kentzen\: {0}{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 -!Removing...= +Removing...=Kentzen... #: EditorHeader.java:300 Rename=Izena aldatu @@ -1246,31 +1297,34 @@ Rename=Izena aldatu Replace=Ordeztu #: FindReplace.java:122 FindReplace.java:129 -Replace\ &\ Find=Bilatu & Ordeztu +Replace\ &\ Find=Ordeztu & bilatu #: FindReplace.java:120 FindReplace.java:131 Replace\ All=Ordeztu guztiak #: Sketch.java:1043 #, java-format -Replace\ the\ existing\ version\ of\ {0}?={0}-aren oraingo bertsioa ordeztu ezazu ? +Replace\ the\ existing\ version\ of\ {0}?={0}-(r)en oraingo bertsioa ordeztu nahi duzu? #: FindReplace.java:81 -Replace\ with\:=Ordeztu honekin +Replace\ with\:=Ordeztu honekin\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 -!Retired= +Retired=Erretiratua + +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Berriro igo beste serie ataka baten bidez? #: Preferences.java:113 -Romanian=Erromaniko +Romanian=Errumaniera #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 #, java-format -!Running\ recipe\:\ {0}= +Running\ recipe\:\ {0}=Exekutatzen ari den prozedura\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:82 #, java-format -!Running\:\ {0}= +Running\:\ {0}=Exekutatzen\: {0} #: Preferences.java:114 Russian=Errusiera @@ -1283,166 +1337,173 @@ Save=Gorde Save\ As...=Gorde honela... #: Editor.java:2317 -Save\ Canceled.=Utzi gordeatzea +Save\ Canceled.=Gordetzea bertan behera utzi da. #: Editor.java:2020 #, java-format -Save\ changes\ to\ "{0}"?\ \ =Gorde aldaketak "{0}"an ? +Save\ changes\ to\ "{0}"?\ \ ="{0}"-(r)i egindako aldaketak gorde? #: Sketch.java:825 -Save\ sketch\ folder\ as...=Gorde sketch-karpeta honela +Save\ sketch\ folder\ as...=Gorde programaren karpeta honela... #: ../../../../../app/src/processing/app/Preferences.java:425 -!Save\ when\ verifying\ or\ uploading= +Save\ when\ verifying\ or\ uploading=Gorde egiaztatzean edo kargatzean #: Editor.java:2270 Editor.java:2308 -Saving...=Gordetzen +Saving...=Gordetzen... #: ../../../processing/app/FindReplace.java:131 -!Search\ all\ Sketch\ Tabs= +Search\ all\ Sketch\ Tabs=Bilatu programa fitxa guztietan #: Base.java:1909 -Select\ (or\ create\ new)\ folder\ for\ sketches...=Hautatu (edo sortu berri) esketcharako karpeta... +Select\ (or\ create\ new)\ folder\ for\ sketches...=Hautatu (edo sortu) programentzako karpeta... #: Editor.java:1198 Editor.java:2739 Select\ All=Hautatu dena #: Base.java:2636 -Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add=Hautatu ezazu zip-fitxategi bat edo gehitzea nahi izango zenukeen liburutegia edukiz karpeta bat +Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add=Hautatu gehitu nahi duzun liburutegia daukan zip fitxategi edo karpeta bat #: Sketch.java:975 -Select\ an\ image\ or\ other\ data\ file\ to\ copy\ to\ your\ sketch=Irudi edo fitxategi bat aukera ezazu zure schetchean kopiatzeko +Select\ an\ image\ or\ other\ data\ file\ to\ copy\ to\ your\ sketch=Hautatu irudi edo datu fitxategi bat zure programan kopiatzeko #: Preferences.java:330 -Select\ new\ sketchbook\ location=Lokalizazio berria aukeratzen du sketchbookerako +Select\ new\ sketchbook\ location=Hautatu kokaleku berria programen bildumarentzat #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 -!Select\ version= +Select\ version=Hautatu bertsioa #: ../../../processing/app/debug/Compiler.java:146 -Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=Aukeratutako plaka '{0}' nukleoaren mendean dago (ez dago instalatuta). +Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=Hautatutako plakak '{0}' nukleoaren mendekotasuna du (ez dago instalatuta). #: ../../../../../app/src/processing/app/Base.java:374 -!Selected\ board\ is\ not\ available= +Selected\ board\ is\ not\ available=Hautatutako plaka ez dago erabilgarri #: ../../../../../app/src/processing/app/Base.java:423 -!Selected\ library\ is\ not\ available= +Selected\ library\ is\ not\ available=Hautatutako liburutegia ez dago erabilgarri #: SerialMonitor.java:93 Send=Bidali #: ../../../../../arduino-core/src/processing/app/I18n.java:32 -!Sensors= +Sensors=Sentsoreak #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 Serial\ Monitor=Serieko monitorea #: ../../../../../app/src/processing/app/Editor.java:804 -!Serial\ Plotter= +Serial\ Plotter=Serieko plotterra #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=Bertsio honetan, serieko monitorea ez dago erabilgarri sareko ataketan. Adibidez, {1}-(r)en {0} #: ../../../../../app/src/processing/app/Editor.java:2516 -!Serial\ monitor\ not\ available\ while\ plotter\ is\ open= +Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Serieko monitorea ez dago erabilgarri, plotterra irekita dagoen bitartean #: Serial.java:194 #, java-format -Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Serieko ataka ''{0}'' ez aurkituta. Ongi aukeratu duzu era zuzenean menutik Erremintetatik > Serieko Ataka ? +Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Ez da aurkitu ''{0}'' serieko ataka. Tresnak > Serieko ataka menuan egokia hautatu duzu? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Ez da aukeratu serie ataka. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Ez aurkitutako serieko ataka {0}.\nBirsaioa beste serieko ataka batekin kargatu? +Serial\ port\ {0}\ not\ found.=Ez da aurkitu {0} serie ataka. #: ../../../../../app/src/processing/app/Editor.java:65 -!Serial\ ports= +Serial\ ports=Serieko atakak #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:84 #, java-format -!Setting\ build\ path\ to\ {0}= +Setting\ build\ path\ to\ {0}=Ezarritako konpilazio-bide berria\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -!Settings= +Settings=Ezarpenak #: Base.java:1681 -Settings\ issues=konfigurazioaren kontuak +Settings\ issues=Ezarpenen arazoak #: Editor.java:641 -Show\ Sketch\ Folder=Erakustaldiko Sketcheko Karpeta +Show\ Sketch\ Folder=Erakutsi programen karpeta + +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Erakutsi denbora-zigilua #: Preferences.java:387 -Show\ verbose\ output\ during\:\ =Irteera luzea erakusten duzu zehar\: +Show\ verbose\ output\ during\:\ =Erakutsi irteera xehatua honetan zehar\: #: ../../../../../arduino-core/src/processing/app/I18n.java:31 -!Signal\ Input/Output= +Signal\ Input/Output=Seinaleen Sarrera/Irteera #: Editor.java:607 -Sketch=Sketch +Sketch=Programa #: Sketch.java:1754 -Sketch\ Disappeared=Sketcha desagertu zen +Sketch\ Disappeared=Programa desagertu da #: Base.java:1411 -Sketch\ Does\ Not\ Exist=Sketcha ez da existitzen +Sketch\ Does\ Not\ Exist=Programa ez da existitzen #: Sketch.java:274 Sketch.java:303 Sketch.java:577 Sketch.java:966 -Sketch\ is\ Read-Only=Irakurtzeko soilik Sketch +Sketch\ is\ Read-Only=Programa irakurtzeko-soilik da #: Sketch.java:294 -Sketch\ is\ Untitled=Sketcha ez du izenik +Sketch\ is\ Untitled=Programak ez du izenik #: Sketch.java:720 -Sketch\ is\ read-only=Sketcha Irakurtzeko soilik\tda\n +Sketch\ is\ read-only=Programa irakurtzeko-soilik da #: Sketch.java:1653 -Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ it.=Sketcha handiegi; bisitatu http\://www.arduino.cc/en/Guide/Troubleshooting\#size tamaina txikiagotzea bezala jakiteko +Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ it.=Programa handiegia da; bisitatu http\://www.arduino.cc/en/Guide/Troubleshooting\#size tamaina txikiagotzeko gomendioak kontsultatzeko #: ../../../processing/app/Sketch.java:1639 #, java-format -Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.=Sketchak byteak darabiltza {0} ({2}%%-a) programako biltegiratzeko espazioaren. Maximoa byteak da {1}. +Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.=Programak biltegiratzeko espazioaren {0} byte ({2}%%-a) darabil. Maximoa {1} byte da. #: Editor.java:510 -Sketchbook=Sketchbook +Sketchbook=Programa bilduma #: Base.java:258 -Sketchbook\ folder\ disappeared=Sketchbook karpeta desagertu da +Sketchbook\ folder\ disappeared=Programa bildumaren karpeta desagertu da #: Preferences.java:315 -Sketchbook\ location\:=Sketchbook kokalekua +Sketchbook\ location\:=Programa bildumaren kokalekua\: #: ../../../processing/app/BaseNoGui.java:428 -!Sketchbook\ path\ not\ defined= +Sketchbook\ path\ not\ defined=Ez da definitu programa bildumaren bidea #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format -!Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:= +Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=Kolaborazio bidezko {0} indize-fitxategia ezin da erabili; errore sintaktiko hau gertatu da\: #: ../../../../../app/src/processing/app/Preferences.java:185 -!Slovak= +Slovak=Eslovakiera #: ../../../processing/app/Preferences.java:152 Slovenian=Esloveniera #: Sketch.java:275 Sketch.java:304 Sketch.java:578 Sketch.java:967 -Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=Fitxategi batzuk markatzen dituzte "Irakurtzeko-soilik ", hala egingo duzu\nsketch beste lokalizazio batean gorde behar izan ezazu,\neta berriro probatu ezazu. +Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=Fitxategi batzuk "irakurtzeko-soilik" gisa \nmarkatuta daude, programa beste kokagune batean \ngorde beharko duzu eta berriro saiatu beharko zara. #: Sketch.java:721 -Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ sketch\ to\ another\ location.=Fitxategi batzuk markatzen dituzte "irakurtzeko soilik", hala egingo duzu\nbeste lokalizazio baterako sketch hau gorde behar izan ezazu. +Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ sketch\ to\ another\ location.=Fitxategi batzuk "irakurtzeko-soilik" gisa markatuta daude,\n programa beste kokagune batean gorde beharko duzu. #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format -!Sorry,\ the\ folder\ "{0}"\ already\ exists.= +Sorry,\ the\ folder\ "{0}"\ already\ exists.=Barkatu, baina "{0}" karpeta existitzen da jadanik. #: Preferences.java:115 Spanish=Espainiera #: ../../../../../app/src/processing/app/Base.java:2333 -!Specified\ folder/zip\ file\ does\ not\ contain\ a\ valid\ library= +Specified\ folder/zip\ file\ does\ not\ contain\ a\ valid\ library=Zehaztutako karpetak/zip fitxategiak ez dauka liburutegi baliodunik #: ../../../../../app/src/processing/app/Base.java:466 -!Starting...= +Starting...=Abiatzen... #: Base.java:540 Sunshine=Eguzkia @@ -1454,97 +1515,104 @@ Swedish=Suediera System\ Default=Sistemako lehenetsia #: ../../../../../app/src/processing/app/Preferences.java:188 -!Talossan= +Talossan=Talossera #: Preferences.java:116 Tamil=Tamilera #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=Telugu #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 -!Thai= +Thai=Thailandiera #: debug/Compiler.java:414 -The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.=Jada 'BYTE' gako-hitza ez dute sostengatzen. +The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.='BYTE' gako-hitza ez da onartzen jada. #: ../../../processing/app/BaseNoGui.java:484 -!The\ --upload\ option\ supports\ only\ one\ file\ at\ a\ time= +The\ --upload\ option\ supports\ only\ one\ file\ at\ a\ time=--upload aukerak fitxategiak banaka onartzen ditu soilik #: debug/Compiler.java:426 -The\ Client\ class\ has\ been\ renamed\ EthernetClient.=Client klasea berrizendatu dute EthernetClient. +The\ Client\ class\ has\ been\ renamed\ EthernetClient.=Client klasea EthernetClient bezala berrizendatua izan da. #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -!The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?= +The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=IDEak {0} pakete eguneratua dauka, baina zaharrago bat erabiltzen ari zara.\n{0} bertsio-berritu nahi duzu? #: debug/Compiler.java:420 -The\ Server\ class\ has\ been\ renamed\ EthernetServer.=Server klasea berrizendatu dute EthernetServer. +The\ Server\ class\ has\ been\ renamed\ EthernetServer.=Server klasea EthernetServer bezala berrizendatua izan da. #: debug/Compiler.java:432 -The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp klasea berrizendatu dute EthernetUdp. +The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp klasea EthernetUdp bezala berrizendatua izan da. #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -!The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.= +The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=Unean hautatutako plakak '{0}' nukleoa behar du, eta ez dago instalatuta. #: Editor.java:2147 #, java-format -The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Fitxategiak {0} barruan egon behar du\n{1} izendatutako sketch-karpeta bat.\nKarpeta hau sortzen duzu, fitxategia mugitzen duzu, eta jarraitzen duzu? +The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?={0} fitxategiak {1} izendatutako programa karpeta \nbarruan egon behar du. \nSortu karpeta hau, eraman fitxategia eta jarraitu? + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.="{0}" liburutegia ezin da erabili.\nLiburutegi karpeten izenak letra edo zenbaki batekin hasi behar dute eta ondoren letra,\u00a0\nzenbakiak, marratxoak, puntuak eta azpimarrak erabili daitezke. Gehienez 63 karaktere erabili daitezke. #: Base.java:1054 Base.java:2674 #, java-format -The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Liburutegia {0} ezin dute erabili. Liburutegi-izenek bakarrik oinarrizko gutunak eta numbers. eduki behar dituzte. (ASCII-a bakarrik eta espazio bat ere, eta ezin da zenbaki batekin hasi) +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)={0} liburutegia ezin da erabili.\nLiburutegi-izenek oinarrizko letra eta zenbakiak soilik eduki ditzakete.\n(ASCII bakarrik eta zuriunerik ez, eta ezin dira zenbaki batekin hasi) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=Fitxategi nagusiak ezin du luzapenik erabili #: Sketch.java:356 -The\ name\ cannot\ start\ with\ a\ period.=Izena ezin da hasi puntuarekin. +The\ name\ cannot\ start\ with\ a\ period.=Izena ezin da puntuarekin hasi. #: Base.java:1412 -The\ selected\ sketch\ no\ longer\ exists.\nYou\ may\ need\ to\ restart\ Arduino\ to\ update\nthe\ sketchbook\ menu.=Jada hautatutako skettcha ez da existitzen.\nSketchbook-menua eguneratzeko Arduino berriz hasi behar dezakezu. +The\ selected\ sketch\ no\ longer\ exists.\nYou\ may\ need\ to\ restart\ Arduino\ to\ update\nthe\ sketchbook\ menu.=Hautatutako programa dagoeneko ez da existitzen.\nArduino berriz hasi beharko duzu programa bildumaren \nmenua eguneratzeko . #: Base.java:1430 #, java-format -The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic\ letters\ and\ numbers\n(ASCII-only\ with\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number).\nTo\ get\ rid\ of\ this\ message,\ remove\ the\ sketch\ from\n{1}=Sketch {0} ezin dute erabili.\nSketch-izenek bakarrik oinarrizko gutunak eta zenbakiak eduki behar dituzte\n(Espazio batekin erko ASCII-a, eta ezin da zenbaki batekin hasi).\nMezu honetaz libratzeko, eskema|esketxa kentzen duzu {1} +The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic\ letters\ and\ numbers\n(ASCII-only\ with\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number).\nTo\ get\ rid\ of\ this\ message,\ remove\ the\ sketch\ from\n{1}="{0}" programa ezin da erabili.\nPrograma izenek bakarrik oinarrizko letrak eta zenbakiak eduki behar dituzte\n(espaziorik gabeko ASCII karaktereak eta ezin da zenbaki batekin hasi).\nMezu hau berriro ez agertzeko, programa {1}-tik kendu #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format -!The\ sketch\ already\ contains\ a\ file\ named\ "{0}"= +The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Dagoeneko programak "{0}" izeneko fitxategi bat dauka #: Sketch.java:1755 -The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Sketch-karpeta desagertu da.\nSaiatuko da lokalizazio berean gorde,\nbaina kodeaz gain edozer galduko dute. +The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Programen karpeta desagertu da.\nKokagune berdinean berriro gordetzen saiatuko da,\nbaina kodea ez den guztia galduko da. -#: ../../../processing/app/Sketch.java:2028 -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.=Sketch-izena aldatu behar izan zuten. Bakarrik sketch-izenak izan daitezke\nASCII-karaktereen eta zenbakien (baina ezin da zenbaki batekin hasi).\n64 luzera-karaktere baino gutxiago izan behar ditu ere. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Programaren izena aldatu behar izan da.\nProgramen izenak letra edo zenbaki batekin hasi behar dute eta ondoren letra,\nzenbakiak, marratxoak, puntuak eta azpimarrak erabili daitezke. Gehienez 63 karaktere erabili daitezke. #: Base.java:259 -The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Ez du sketchbook karpeta aurkitzen. Arduinok lokalizazioari aldatuko dio lehenetsi, eta beharrezkoa bada, karpeta berria sor zezan. Arduinok bere burua buruz hitz egiten utziko du hirugarren pertsonarengan +The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Programa bildumaren karpeta ez da existitzen.\nArduino programa bilduma karpeta lehenetsira itzuliko da eta\nbeharrezkoa izanez gero, programa bilduma karpeta berria sortuko du.\nOrduan Arduinok bere buruari buruz hirugarren pertsonan hitz\negiteari utziko dio. #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 -!The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Zehaztutako programa bilduma karpetaren barruan garapen ingurunearen (IDE) kopia dago.\nAukeratu beste karpeta bat zure programa bilduma gordetzeko. + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Itxura\: #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 -!This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= +This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Liburutegi hau ez dago liburutegi kudeatzailean zerrendatua. Ezin izango duzu berrinstalatu hemendik.\nZiur zaude ezabatu nahi duzula? #: ../../../../../app/src/processing/app/EditorStatus.java:349 -!This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n= +This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Txosten honek informazio gehiago izango luke\nFitxategia -> Hobespenak-en "Erakutsi irteera zehaztuak konpilazioan\u00a0\nzehar" ezarpena gaitua egongo balitz.\n #: Base.java:535 Time\ for\ a\ Break=Atsedenerako denbora #: ../../../../../arduino-core/src/processing/app/I18n.java:34 -!Timing= +Timing=Sinkronizatzen #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format -!Tool\ {0}\ is\ not\ available\ for\ your\ operating\ system.= +Tool\ {0}\ is\ not\ available\ for\ your\ operating\ system.={0} tresna ez dago erabilgarri zure sistema eragilean. #: Editor.java:663 Tools=Tresnak #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:97 -!Topic= +Topic=Gaia #: Editor.java:1070 Troubleshooting=Arazoak konpontzen @@ -1554,296 +1622,296 @@ Turkish=Turkiera #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 -!Type= +Type=Mota #: ../../../processing/app/Editor.java:2507 -Type\ board\ password\ to\ access\ its\ console=Plakaren pasahitza idatz ezazu bere kontsolara sartzeko +Type\ board\ password\ to\ access\ its\ console=Idatzi plakaren pasahitza bere kontsolara sartzeko #: ../../../processing/app/Sketch.java:1673 -Type\ board\ password\ to\ upload\ a\ new\ sketch=Plakaren pasahitza idatz ezazu sketch berri bat kargatzeko +Type\ board\ password\ to\ upload\ a\ new\ sketch=Idatzi plakaren pasahitza programa berria kargatzeko #: ../../../processing/app/Preferences.java:118 Ukrainian=Ukrainera #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format -!Unable\ to\ connect\ to\ {0}= +Unable\ to\ connect\ to\ {0}=Ezin da konektatu {0}(e)ra #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 -Unable\ to\ connect\:\ is\ the\ sketch\ using\ the\ bridge?=Konektatu ezinezkoa da\: sketcha zubia erabiltzen ari da? +Unable\ to\ connect\:\ is\ the\ sketch\ using\ the\ bridge?=Ezin da konektatu\: programa zubia erabiltzen ari da? #: ../../../processing/app/NetworkMonitor.java:130 -Unable\ to\ connect\:\ retrying=Konektatu ezinezkoa da\: Saiatzen +Unable\ to\ connect\:\ retrying=Ezin da konektatu\: berriz saiatzen #: ../../../processing/app/Editor.java:2526 -Unable\ to\ connect\:\ wrong\ password?=Konektatu ezinezkoa da\: pasahitz okerra? +Unable\ to\ connect\:\ wrong\ password?=Ezin da konektatu\: pasahitz okerra? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 #, java-format -!Unable\ to\ find\ {0}\ in\ {1}= +Unable\ to\ find\ {0}\ in\ {1}=Ezin da {0} aurkitu {1}(e)n\: #: ../../../processing/app/Editor.java:2512 -Unable\ to\ open\ serial\ monitor=Serial-monitorea ireki ezinezkoa da. +Unable\ to\ open\ serial\ monitor=Ezin da serieko monitorea ireki #: ../../../../../app/src/processing/app/Editor.java:2709 -!Unable\ to\ open\ serial\ plotter= +Unable\ to\ open\ serial\ plotter=Ezin da serieko plotterra ireki #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -!Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.= +Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=Ezin da Arduino.cc atzitu, posible da sareko arazoengatik izatea #: ../../../../../arduino-core/src/processing/app/I18n.java:38 -!Uncategorized= +Uncategorized=Sailkatu gabea #: Editor.java:1133 Editor.java:1355 Undo=Desegin #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format -!Unhandled\ type\ {0}\ in\ context\ key\ {1}= +Unhandled\ type\ {0}\ in\ context\ key\ {1}=Kudeatu gabeko {0} mota {1} testuinguru gakoan #: ../../../../../app//src/processing/app/Editor.java:2818 -!Unknown\ board= +Unknown\ board=Plaka ezezaguna #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format -!Unknown\ sketch\ file\ extension\:\ {0}= +Unknown\ sketch\ file\ extension\:\ {0}=Programa fitxategi luzapen ezezaguna\: {0} #: Platform.java:168 -Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=Plataforma ezezaguna, Inongo jaurtitzailerik-Launcher ez dago.\nURLs-ak edo karpetak irekiz ahalbidetzeko, gaineratzen zara\n"launcher\=/path/to/app"-lerroa preferences.txt-etara +Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=Plataforma zehaztugabea, ez dago abiarazlerik erabilgarri.\nURLak edo karpetak irekitzea gaitzeko, gehitu\n"launcher\=/aplikaziorako/bidea" lerroa preferences.txt-en #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 -!Updatable= +Updatable=Eguneratu daiteke #: UpdateCheck.java:111 Update=Eguneratu #: Preferences.java:428 -Update\ sketch\ files\ to\ new\ extension\ on\ save\ (.pde\ ->\ .ino)=Eguneratze-sketchak hedadura berrira artxibatzen du gordetzen duenean (.pde -> .ino) +Update\ sketch\ files\ to\ new\ extension\ on\ save\ (.pde\ ->\ .ino)=Eguneratu luzapena (.pde -> .ino) programa fitxategiak gordetzean #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:88 #, java-format -!Updates\ available\ for\ some\ of\ your\ {0}boards{1}= +Updates\ available\ for\ some\ of\ your\ {0}boards{1}=Eguneraketak daude zure {0}plaketako{1} batzuentzat #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:90 #, java-format -!Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}= +Updates\ available\ for\ some\ of\ your\ {0}boards{1}\ and\ {2}libraries{3}=Eguneraketak daude zure {0}plaketako{1} eta {2}liburutegietako{3} batzuentzat #: ../../../../../app/src/cc/arduino/contributions/ContributionsSelfCheck.java:86 #, java-format -!Updates\ available\ for\ some\ of\ your\ {0}libraries{1}= +Updates\ available\ for\ some\ of\ your\ {0}libraries{1}=Eguneraketak daude zure {0}liburutegietako{1} batzuentzat #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:167 -!Updating\ list\ of\ installed\ libraries= +Updating\ list\ of\ installed\ libraries=Instalatutako liburutegien zerrenda eguneratzen #: EditorToolbar.java:41 Editor.java:545 Upload=Kargatu #: EditorToolbar.java:46 Editor.java:553 -Upload\ Using\ Programmer=Programagailu erabiliz kargatu +Upload\ Using\ Programmer=Kargatu programatzailea erabiliz #: ../../../../../app//src/processing/app/Editor.java:2814 -!Upload\ any\ sketch\ to\ obtain\ it= +Upload\ any\ sketch\ to\ obtain\ it=Kargatu edozein programa plakaren serie zenbakia lortzeko #: Editor.java:2403 Editor.java:2439 -Upload\ canceled.=Datu-karga bertan behera utzi da. +Upload\ canceled.=Kargatzea bertan behera utzi da. #: ../../../processing/app/Sketch.java:1678 -Upload\ cancelled=Utxi Kargaketa +Upload\ cancelled=Kargatzea bertan behera utzi da #: Editor.java:2378 -Uploading\ to\ I/O\ Board...=S/I Plakak Kargatzen ... +Uploading\ to\ I/O\ Board...=S/I plakara kargatzen ... #: Sketch.java:1622 Uploading...=Kargatzen... #: Editor.java:1269 -Use\ Selection\ For\ Find=Aurkikuntzarako Erabilera-Hautaketa +Use\ Selection\ For\ Find=Erabili hautapena bilatzeko #: Preferences.java:409 -Use\ external\ editor=Kanpoko editorea erabili ezazu +Use\ external\ editor=Erabili kanpoko editorea #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 -!Username\:= +Username\:=Erabiltzaile-izena\: #: ../../../processing/app/debug/Compiler.java:410 #, java-format -!Using\ library\ {0}\ at\ version\ {1}\ in\ folder\:\ {2}\ {3}= +Using\ library\ {0}\ at\ version\ {1}\ in\ folder\:\ {2}\ {3}={1} bertsioko {0} liburutegia {2} {3} karpetan erabiltzen #: ../../../processing/app/debug/Compiler.java:94 #, java-format -Using\ library\ {0}\ in\ folder\:\ {1}\ {2}={0} liburu-denda {1} {2} karpetan erabiliz\: +Using\ library\ {0}\ in\ folder\:\ {1}\ {2}={0} liburutegia {1} {2} karpetan erabiltzen #: ../../../processing/app/debug/Compiler.java:320 #, java-format -Using\ previously\ compiled\ file\:\ {0}=Erabili lehenago bildutako fitxategia\: {0} +Using\ previously\ compiled\ file\:\ {0}=Aurretik konpilatutako fitxategia erabiltzen\: {0} #: EditorToolbar.java:41 EditorToolbar.java:46 Verify=Egiaztatu #: Preferences.java:400 -Verify\ code\ after\ upload=Kodea egiaztatzen duzu geroago kargatu +Verify\ code\ after\ upload=Egiaztatu kodea kargatu ondoren #: ../../../../../app/src/processing/app/Editor.java:725 -!Verify/Compile= +Verify/Compile=Egiaztatu/Konpilatu #: ../../../../../app/src/processing/app/Base.java:451 -!Verifying\ and\ uploading...= +Verifying\ and\ uploading...=Egiaztatzen eta kargatzen... #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 -!Verifying\ archive\ integrity...= +Verifying\ archive\ integrity...=Artxiboaren osotasuna egiaztatzen... #: ../../../../../app/src/processing/app/Base.java:454 -!Verifying...= +Verifying...=Egiaztatzen... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 #, java-format -!Version\ {0}= +Version\ {0}={0} bertsioa #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:326 -!Version\ unknown= +Version\ unknown=Bertsio ezezaguna #: ../../../cc/arduino/contributions/libraries/ContributedLibrary.java:97 #, java-format -!Version\ {0}= +Version\ {0}={0} bertsioa #: ../../../processing/app/Preferences.java:154 Vietnamese=Vietnamera #: Editor.java:1105 -Visit\ Arduino.cc=Arduino.cc bisita +Visit\ Arduino.cc=Ikusi Arduino.cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format -!WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'= +WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2}'=ABISUA\: {1} liburutegiko '{0}' kategoria ez da baliozkoa. '{2}' ezarriko da. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format -!WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library= +WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library=ABISUA\: {0} karpeta faltsua '{1}' liburutegian #: ../../../processing/app/debug/Compiler.java:115 #, java-format -WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=OHARTARAZPENA\: {0} liburutegia {1} arkitekturan() funtzionatzen saiatzen da eta zure plakarekin, zeinek {2} arkitekturarekin() funtzionatzen duen, bateraezina izan liteke +WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=ABISUA\: {0} liburutegiak {1} arkitektur(et)an funtzionatzen duela dio eta baliteke {2} arkitektur(ar)ekin funtzionatzen duen zure uneko plakarekin bateraezina izatea. #: Base.java:2128 Warning=Abisua #: ../../../processing/app/debug/Compiler.java:1295 -!Warning\:\ This\ core\ does\ not\ support\ exporting\ sketches.\ Please\ consider\ upgrading\ it\ or\ contacting\ its\ author= +Warning\:\ This\ core\ does\ not\ support\ exporting\ sketches.\ Please\ consider\ upgrading\ it\ or\ contacting\ its\ author=Abisua\: nukleo honek ez du programarik esportatzen uzten. Saiatu bertsio-berritzen edo egilearekin harremanetan jartzen. #: ../../../cc/arduino/utils/ArchiveExtractor.java:197 #, java-format -!Warning\:\ file\ {0}\ links\ to\ an\ absolute\ path\ {1}= +Warning\:\ file\ {0}\ links\ to\ an\ absolute\ path\ {1}=Abisua\: {0} fitxategia bide absolutu batekin estekatuta dago\: {1} #: ../../../cc/arduino/contributions/packages/ContributionsIndexer.java:133 -!Warning\:\ forced\ trusting\ untrusted\ contributions= +Warning\:\ forced\ trusting\ untrusted\ contributions=Abisua\: ekarpen ez fidagarriak fidagarri izatera behartu dira. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:217 #, java-format -!Warning\:\ forced\ untrusted\ script\ execution\ ({0})= +Warning\:\ forced\ untrusted\ script\ execution\ ({0})=Abisua\: ({0}) script ez fidagarriaren exekuzioa behartu da. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:212 #, java-format -!Warning\:\ non\ trusted\ contribution,\ skipping\ script\ execution\ ({0})= +Warning\:\ non\ trusted\ contribution,\ skipping\ script\ execution\ ({0})=Abisua\: ekarpen ez fidagarria. Scripta ez da exekutatuko ({0}) #: ../../../processing/app/debug/LegacyTargetPlatform.java:158 #, java-format -!Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.= +Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.=Abisua\: '{0}' nukleoko platform.txt fitxategiak zaharkitutako {1} dauka, automatikoki {2}(e)ra bihurtu da. Nukleo hau bertsio-berritzea hausnartu beharko zenuke. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 -!Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.= +Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.=Abisua\: '{0}' nukleoaren platform.txt-ari '{1}' propietatea falta zaio eta '{2}' lehenetsitako balioa erabiliko da. Nukleo hau bertsio-berritzea hausnartu beharko zenuke. #: ../../../../../app/src/processing/app/Preferences.java:190 -!Western\ Frisian= +Western\ Frisian=Mendebaldeko frisiera #: debug/Compiler.java:444 -Wire.receive()\ has\ been\ renamed\ Wire.read().=Wire.receive() berrizendatu dute Wire.read(). +Wire.receive()\ has\ been\ renamed\ Wire.read().=Wire.receive() Wire.read() bezala berrizendatu da. #: debug/Compiler.java:438 -Wire.send()\ has\ been\ renamed\ Wire.write().=Wire.send() berrizendatu dute Wire.write(). +Wire.send()\ has\ been\ renamed\ Wire.write().=Wire.send() Wire.write() bezala berrizendatu da. #: FindReplace.java:105 Wrap\ Around=Egokitu #: debug/Uploader.java:213 -Wrong\ microcontroller\ found.\ \ Did\ you\ select\ the\ right\ board\ from\ the\ Tools\ >\ Board\ menu?=Mikrokontrolatzaile okerra. Plaka aukeratu duzu era zuzenean menutik Erremintetatik > Plaka ? +Wrong\ microcontroller\ found.\ \ Did\ you\ select\ the\ right\ board\ from\ the\ Tools\ >\ Board\ menu?=Mikrokontrolatzaile okerra aurkitu da. Tresnak > Plaka menuan plaka zuzena hautatu duzu? #: Preferences.java:77 UpdateCheck.java:108 Yes=Bai #: ../../../../../app/src/processing/app/Base.java:2312 -!You\ can't\ import\ a\ folder\ that\ contains\ your\ sketchbook= +You\ can't\ import\ a\ folder\ that\ contains\ your\ sketchbook=Ezin duzu inportatu zure programa bilduma barne duen karpeta #: Sketch.java:883 -You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ go\ on\ forever.=Ezin duzu sketcha gorde bere burua \nbarruan karpeta batean. Honek betiko jarraituko luke. +You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ go\ on\ forever.=Ezin duzu programa gorde programaren karpetaren \nazpiko karpeta batean. Etengabeko errekurtsibitate arazoa sortuko luke. #: Base.java:1888 -You\ forgot\ your\ sketchbook=Zure sketchbooka ahaztu zenuen +You\ forgot\ your\ sketchbook=Zure programa bilduma ahaztu zenuen #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Gorde gabeko aldaketak dituzu\!\nZure programa guztiak gorde behar dituzu aukera hau gaitzeko. #: ../../../processing/app/AbstractMonitor.java:92 -You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?={0} zapaldu duzu baina ezer ez zuten bidali. Lerro-bukaera bat hautatu behar izango zenuke? +You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?={0} sakatu duzu baina ezer ez da bidali. Lerro-bukaera bat hautatu beharko zenuke? #: Base.java:536 -You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day.\ How\ about\ going\ for\ a\ walk\ instead?=Programa-mugara heldu zara gaur era automatikoan esleitutako izenarekin. Paseo bat ematen baduzu iruditzen zaizula? +You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day.\ How\ about\ going\ for\ a\ walk\ instead?=Gaurkoz, programa berrietan izena automatikoki ezartzeko \nmekanismoaren mugara iritsi zara. Paseotxo bat eman nahi duzu? #: ../../../processing/app/BaseNoGui.java:768 -!Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ settings\ folder.\nPlease\ move\ the\ IDE\ to\ another\ folder.= +Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ settings\ folder.\nPlease\ move\ the\ IDE\ to\ another\ folder.=Zure ezarpenak gordetzeko karpetaren azpikarpeta batean instalatu da IDE-aren zure kopia. \nEraman IDE-a beste karpeta batera. #: ../../../processing/app/BaseNoGui.java:771 -!Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ sketchbook.\nPlease\ move\ the\ IDE\ to\ another\ folder.= +Your\ copy\ of\ the\ IDE\ is\ installed\ in\ a\ subfolder\ of\ your\ sketchbook.\nPlease\ move\ the\ IDE\ to\ another\ folder.=Zure garapen ingurunea (IDE) programa bildumaren azpikarpeta batean dago.\nMugitu IDE-a beste karpeta batera. #: Base.java:2638 -ZIP\ files\ or\ folders=ZIP-fitxategiak edo karpetak +ZIP\ files\ or\ folders=Zip fitxategiak edo karpetak #: Base.java:2661 -Zip\ doesn't\ contain\ a\ library=ZIP ez dauka liburutegi bat +Zip\ doesn't\ contain\ a\ library=Zip fitxategiak ez dauka liburutegirik #: Sketch.java:364 #, java-format -".{0}"\ is\ not\ a\ valid\ extension.=".{0}" ez da balio izandako luzapena. +".{0}"\ is\ not\ a\ valid\ extension.=".{0}" ez da baliozko luzapen bat. #: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 #, java-format -!"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.= +"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.="{0}"-(e)k karaktere ezezagunak ditu. Kodea Arduino bertsio zahar batekin sortu bazen, behar bada Tresnak->Konpondu kodeketa eta birkargatu programa erabili beharko duzu UTF-8ra bihurtzeko. Bestela, karaktere okerrak ezabatu beharko dituzu abisu hau berriro ez agertzeko. #: debug/Compiler.java:409 -\nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\n0019 Arduinotik aurrera, Ethernet-liburutegia SPI-liburutegiaren esku dago.\nHura erabiltzen ari izan iruditzen zara edo SPI-liburutegiaren esku dagoen beste liburutegi bat.\n +\nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nArduinotik 0019an Ethernet liburutegiak SPI liburutegiaren mendekotasuna du.\nHura edo SPI liburutegiaren mendekotasuna duen beste liburutegi bat erabiltzen ari zarela dirudi.\n\n #: debug/Compiler.java:415 -\nAs\ of\ Arduino\ 1.0,\ the\ 'BYTE'\ keyword\ is\ no\ longer\ supported.\nPlease\ use\ Serial.write()\ instead.\n\n=\n1.0 Arduino-tik aurrera, 'BYTE' gako-hitza ez da supported.\njada mesedez Serial.write() erabili ezazu.\n +\nAs\ of\ Arduino\ 1.0,\ the\ 'BYTE'\ keyword\ is\ no\ longer\ supported.\nPlease\ use\ Serial.write()\ instead.\n\n=\nArduino 1.0an, 'BYTE' gako-hitza jada ez da onartzen.\nErabili Serial.write() bere ordez.\n\n #: debug/Compiler.java:427 -\nAs\ of\ Arduino\ 1.0,\ the\ Client\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\n1.0 Arduino-tik aurrera, Ethernet-liburutegiko Client klasea berrizendatu dute EthernetClient.\n +\nAs\ of\ Arduino\ 1.0,\ the\ Client\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\nArduino 1.0an Ethernet liburutegiko Client klasea EthernetClient bezala berrizendatu da.\n\n #: debug/Compiler.java:421 -\nAs\ of\ Arduino\ 1.0,\ the\ Server\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetServer.\n\n=\n1.0 Arduino-tik aurrera, Ethernet-liburutegiko Server klasea berrizendatu dute EthernetServer .\n +\nAs\ of\ Arduino\ 1.0,\ the\ Server\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetServer.\n\n=\nArduino 1.0an Ethernet liburutegiko Server klasea EthernetServer bezala berrizendatu da.\n\n #: debug/Compiler.java:433 -\nAs\ of\ Arduino\ 1.0,\ the\ Udp\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetUdp.\n\n=\n1.0 Arduinotik aurrera, Ethernet-liburutegiko Udp klasea berrizendatu dute EthernetUdp.\n +\nAs\ of\ Arduino\ 1.0,\ the\ Udp\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetUdp.\n\n=\nArduino 1.0an Ethernet liburutegiko Udp klasea EthernetUdp bezala berrizendatu da.\n\n #: debug/Compiler.java:445 -\nAs\ of\ Arduino\ 1.0,\ the\ Wire.receive()\ function\ was\ renamed\ to\ Wire.read()\ for\ consistency\ with\ other\ libraries.\n\n=\n 1.0 Arduino-tik aurrera, Wire.receive() funtzioa, beste libraries batzuekiko funtserako Wire.read() etara berrizendatu zuten.\n +\nAs\ of\ Arduino\ 1.0,\ the\ Wire.receive()\ function\ was\ renamed\ to\ Wire.read()\ for\ consistency\ with\ other\ libraries.\n\n=\nArduino 1.0-tik aurrera, Wire.receive() funtzioa Wire.read()-ra aldatu zen beste liburutegi batzuekiko bateragarritasuna bermatzeko.\n\n #: debug/Compiler.java:439 -\nAs\ of\ Arduino\ 1.0,\ the\ Wire.send()\ function\ was\ renamed\ to\ Wire.write()\ for\ consistency\ with\ other\ libraries.\n\n=\n1.0 Arduinotik aurrera, Wire.send()-funtzioa, beste liburutegi batzuekiko funtserako Wire.write() -etara berrizendatu zuten\n +\nAs\ of\ Arduino\ 1.0,\ the\ Wire.send()\ function\ was\ renamed\ to\ Wire.write()\ for\ consistency\ with\ other\ libraries.\n\n=\n1.0 Arduinotik aurrera, Wire.send()-funtzioa, beste liburutegi batzuekiko funtserako Wire.write() -etara berrizendatu zuten\n\n #: SerialMonitor.java:130 SerialMonitor.java:133 baud=baud #: Preferences.java:389 -compilation\ =konpilazio +compilation\ =konpilazioa #: ../../../processing/app/NetworkMonitor.java:111 -connected\!=Konektatu \! +connected\!=konektatuta\! #: ../../../../../app/src/processing/app/Editor.java:1352 -!http\://www.arduino.cc/= +http\://www.arduino.cc/=http\://www.arduino.cc/ #: UpdateCheck.java:118 http\://www.arduino.cc/en/Main/Software=http\://www.arduino.cc/en/Main/Software @@ -1853,13 +1921,18 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Preferences.java:625 #, java-format -ignoring\ invalid\ font\ size\ {0}=Letra-tamaina elbarria {0} ez ikusi egin +ignoring\ invalid\ font\ size\ {0}={0} letra-tamaina baliogabeari ez ikusia egiten zaio #: Editor.java:936 Editor.java:943 -name\ is\ null=Izen nulu +name\ is\ null=izena nulua da + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=Ez da goiburu fitxategirik (.h) topatu {0}-(e)n #: Editor.java:932 -serialMenu\ is\ null=serialMenu-a nulua da +serialMenu\ is\ null=serialMenu nulua da #: debug/Uploader.java:195 #, java-format @@ -1874,44 +1947,44 @@ upload=Kargatu #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:324 #, java-format -!version\ {0}= +version\ {0}={0} bertsioa #: ../../../../../app/src/processing/app/Editor.java:2243 #, java-format -!{0}\ -\ {1}\ |\ Arduino\ {2}= +{0}\ -\ {1}\ |\ Arduino\ {2}={0} - {1} | Arduino {2} #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:39 #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:43 #, java-format -!{0}\ file\ signature\ verification\ failed= +{0}\ file\ signature\ verification\ failed={0} fitxategi-sinaduraren egiaztapenak huts egin du #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:310 #, java-format -!{0}\ file\ signature\ verification\ failed.\ File\ ignored.= +{0}\ file\ signature\ verification\ failed.\ File\ ignored.={0} fitxategi-sinaduraren egiaztapenak huts egin du. Fitxategia ez da aintzat hartuko. #: Editor.java:380 #, java-format -{0}\ files\ added\ to\ the\ sketch.={0} sketchari gehitutako fitxategiak. +{0}\ files\ added\ to\ the\ sketch.=Programari {0} fitxategi erantsi zaizkio. #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format -!{0}\ libraries= +{0}\ libraries={0} liburutegi #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format -!{0}\ must\ be\ a\ folder= +{0}\ must\ be\ a\ folder={0} -(e)k karpeta izan behar du #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format -!{0}\ on\ {1}= +{0}\ on\ {1}={0} {1}(e)n #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format -!{0}\ pattern\ is\ missing= +{0}\ pattern\ is\ missing=Ez da {0} eredurik topatzen #: debug/Compiler.java:365 #, java-format -{0}\ returned\ {1}={0} itzuli {1} +{0}\ returned\ {1}={0}(e)k {1} itzuli du #: Editor.java:2213 #, java-format @@ -1919,23 +1992,23 @@ upload=Kargatu #: ../../../processing/app/Base.java:519 #, java-format -{0}\:\ Invalid\ argument\ to\ --pref,\ should\ be\ of\ the\ form\ "pref\=value"={0}\: Argumentu elbarria --pref, "pref\=value" formaren izan behar izango litzateke +{0}\:\ Invalid\ argument\ to\ --pref,\ should\ be\ of\ the\ form\ "pref\=value"={0}\: Argumentu baliogabea --pref aukerarentzat, "pref\=balioa" modukoa izan behar du #: ../../../processing/app/Base.java:476 #, java-format -{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Plaka-izen elbarria, "package\:arch\:board" edo "package\:arch\:board\:options" izan behar izango litzateke formaren. - -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Aukera elbarria {1} plakarako {2} aukera +{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: plakaren izen baliogabea, "package\:arch\:board" edo "package\:arch\:board\:options" modukoa izan behar du #: ../../../processing/app/Base.java:507 #, java-format -{0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Plakarako {1} aukera elbarria +{0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: {1} plakarentzako aukera baliogabea #: ../../../processing/app/Base.java:502 #, java-format -{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Aukera elbarria, "name\=value" formaren izan behar izango litzateke. +{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Aukera baliogabea, "name\=value" modukoa izan behar du + +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: "{2}" plakaren "{1}" aukerarentzako balio ez onargarria #: ../../../processing/app/Base.java:486 #, java-format @@ -1951,4 +2024,4 @@ upload=Kargatu #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format -!{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board= +{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0}Instalatu pakete hau{1} zure {2} plaka erabiltzeko diff --git a/arduino-core/src/processing/app/i18n/Resources_fa.po b/arduino-core/src/processing/app/i18n/Resources_fa.po index e677a5e5a95..863fd9cd93c 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fa.po +++ b/arduino-core/src/processing/app/i18n/Resources_fa.po @@ -16,7 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Ardeshir Hakimi, 2020 # arminjavan , 2014 +# axzw tere , 2020 # Ebrahim Byagowi , 2012 # Mohammad Hamidi , 2017 msgid "" @@ -24,14 +30,14 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 19:46+0000\n" -"Last-Translator: Mohammad Hamidi \n" +"PO-Revision-Date: 2020-02-04 08:56+0000\n" +"Last-Translator: Ardeshir Hakimi\n" "Language-Team: Persian (http://www.transifex.com/mbanzi/arduino-ide-15/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" @@ -66,11 +72,11 @@ msgstr "پوشه \"arch\" دیگر پشتیبانی نمی شود. برای اط #: Preferences.java:478 msgid "(edit only when Arduino is not running)" -msgstr "(ویرایش Ùقط به هنگامی Ú©Ù‡ آردئینو درحال اجرا نیست)" +msgstr "(ویرایش Ùقط به هنگام عدم اجرای آردوینو)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "" +msgstr "(باقی‌مانده از Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± قبلی)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" @@ -170,7 +176,7 @@ msgstr "خطایی به عنوان اصلاح کدگذاری پرونده رخ #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "" +msgstr "بروز مشکل در به‌روز رسانی نمایه‌ی کتابخانه‌ها" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" @@ -212,6 +218,11 @@ msgstr "بایگانی‌کردن طرح به عنوان:" msgid "Archive sketch canceled." msgstr "بایگانی‌کردن طرح ÙØ³Ø®â€ŒÚ¯Ø±Ø¯ÛŒØ¯." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -234,7 +245,7 @@ msgstr "برد آردئینو ای ÙˆÛŒ آر (avr)" msgid "" "Arduino can only open its own sketches\n" "and other files ending in .ino or .pde" -msgstr "" +msgstr "Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± آردوینو Ùقط می‌تواند اسکچ‌های خود Ùˆ یا سایر ÙØ§ÛŒÙ„‌ها با پسوند ino. Ùˆ pde. را باز کند." #: Base.java:1682 msgid "" @@ -618,6 +629,11 @@ msgstr "نمی‌توان نسخهٔ قدیمی {0} را حذ٠نمود" msgid "Could not replace {0}" msgstr "نمی‌توان {0} را جایگزین نمود" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "نمی‌توان طرح را بایگانی نمود" @@ -661,6 +677,10 @@ msgstr "پردازش داده" msgid "Data Storage" msgstr "محل ذخیره سازی داده ها" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "کاهش ØªÙˆØ±ÙØªÚ¯ÛŒ" @@ -669,6 +689,10 @@ msgstr "کاهش ØªÙˆØ±ÙØªÚ¯ÛŒ" msgid "Default" msgstr "Ù¾ÛŒØ´ÙØ±Ø¶" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "حذÙ" @@ -788,7 +812,7 @@ msgstr "زبان ویرایشگر:" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 msgid "Enable Code Folding" -msgstr "" +msgstr "مخÙی‌سازی دستورها" #: Preferences.java:92 msgid "English" @@ -833,7 +857,7 @@ msgstr "خطای کامپایل" #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format msgid "Error downloading {0}" -msgstr "" +msgstr "خطا در دانلود٠{0}" #: Base.java:1674 msgid "Error getting the Arduino data folder." @@ -844,6 +868,11 @@ msgstr "خطای Ú¯Ø±ÙØªÙ† پوشه اطلاعات آردئینو" msgid "Error inside Serial.{0}()" msgstr "خطای درونی. {0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -863,6 +892,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "خطا در خواندن نمایه‌ کتابخانه‌ها: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "خطای خواندن ترجیحات" @@ -897,6 +945,10 @@ msgstr "خطای به هنگام سوزاندن بوت‌لودر." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -912,7 +964,7 @@ msgstr "" #: ../../../processing/app/BaseNoGui.java:528 msgid "Error while uploading" -msgstr "" +msgstr "خطای حین بارگذاری" #: ../../../processing/app/Editor.java:2409 #: ../../../processing/app/Editor.java:2449 @@ -923,27 +975,23 @@ msgstr "خطا حین بارگذاری: پارامتر پیکربندی '{0}' ا #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "Error while verifying" -msgstr "" +msgstr "خطای حین تایید" #: ../../../processing/app/BaseNoGui.java:521 msgid "Error while verifying/uploading" -msgstr "" +msgstr "خطای حین تایید/بارگذاری" #: Preferences.java:93 msgid "Estonian" msgstr "استونیایی" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "استونیایی (استونی)" - #: Editor.java:516 msgid "Examples" msgstr "نمونه‌ها" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "مثال‌هایی برای تمام بوردها" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 @@ -1140,9 +1188,9 @@ msgstr "" msgid "Ignore Case" msgstr "Ù†Ø§Ø¯ÛŒØ¯Ù‡â€ŒÚ¯Ø±ÙØªÙ† بزرگی/Ú©ÙˆÚ†Ú©ÛŒ" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "در نظر Ù†Ú¯Ø±ÙØªÙ† نام نامناسب کتابخانه" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1168,6 +1216,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Ø§ÙØ²Ø§ÛŒØ´ ØªÙˆØ±ÙØªÚ¯ÛŒ" @@ -1201,9 +1253,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1230,6 +1282,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "ایتالیایی" @@ -1262,9 +1325,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1282,7 +1345,7 @@ msgstr "" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format msgid "Looking for recipes like {0}*{1}" -msgstr "" +msgstr "جستجوی دستور العمل‌هایی مانند {0}*{1}" #: ../../../processing/app/Sketch.java:1684 msgid "Low memory available, stability problems may occur." @@ -1461,7 +1524,7 @@ msgstr "نروژی" msgid "" "Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size " "for tips on reducing your footprint." -msgstr "" +msgstr "Ø­Ø§ÙØ¸Ù‡ØŒ کاÙÛŒ نیست؛ مشاهده نکاتی درباره کاهش Ù…ØµØ±Ù ÙØ¶Ø§ در لینک زیر:\nhttp://www.arduino.cc/en/Guide/Troubleshooting#size" #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 @@ -1682,9 +1745,9 @@ msgstr "مرجع" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1721,6 +1784,10 @@ msgstr "جایگزین کردن:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "رومانیایی" @@ -1844,12 +1911,15 @@ msgid "" " Serial Port menu?" msgstr "درگاه سریال ''{0}'' ÛŒØ§ÙØª نشد. آیا شما درست آن را از منوی ابزارها > درگاه سریال انتخاب نموده‌اید؟" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "درگاه سریال {0} ÛŒØ§ÙØª نشد.\nانجام مجدد باگذاری با درگاه سریالی دیگر؟" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1872,6 +1942,10 @@ msgstr "مشکلات تنظیمات" msgid "Show Sketch Folder" msgstr "نمایش پوشهٔ طرح" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "نمایش خروجی پرگو به هنگام:" @@ -2043,6 +2117,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "پرونده \"{0}\" می‌بایست داخل یک\nپوشهٔ طرح به نام \"{1}\" ذخیره گردند.\nساختن این پوشه، انتقال پرونده Ùˆ ادامه؟" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2088,11 +2170,11 @@ msgid "" "but anything besides the code will be lost." msgstr "پوشهٔ طرح ناپدید شده‌است.\n تلاش خواهید Ú©Ù‡ آن را در محل مشابه ذخیره نمود\nولی به‌علاوهٔ آن کد Ù…Ùقود خواهد شد." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2110,6 +2192,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2602,6 +2688,12 @@ msgstr "درنظر Ù†Ú¯Ø±ÙØªÙ† اندازهٔ قلم نامناسب {0}" msgid "name is null" msgstr "name تهی است" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu تهی است" @@ -2689,11 +2781,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2704,6 +2791,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fa.properties b/arduino-core/src/processing/app/i18n/Resources_fa.properties index 0dfefe32d57..eec39cbc9ec 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fa.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fa.properties @@ -16,10 +16,16 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Ardeshir Hakimi, 2020 # arminjavan , 2014 +# axzw tere , 2020 # Ebrahim Byagowi , 2012 # Mohammad Hamidi , 2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 19\:46+0000\nLast-Translator\: Mohammad Hamidi \nLanguage-Team\: Persian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fa/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fa\nPlural-Forms\: nplurals\=1; plural\=0;\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2020-02-04 08\:56+0000\nLast-Translator\: Ardeshir Hakimi\nLanguage-Team\: Persian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fa/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fa\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (\u0646\u06cc\u0627\u0632\u0645\u0646\u062f \u0628\u0627\u0632\u06af\u0634\u0627\u06cc\u06cc \u0645\u062c\u062f\u062f \u0646\u0645\u0648\u062f\u0646 \u0622\u0631\u062f\u0626\u06cc\u0646\u0648) @@ -42,10 +48,10 @@ 'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information=\u067e\u0648\u0634\u0647 "arch" \u062f\u06cc\u06af\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0622\u062f\u0631\u0633 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f \: http\://goo.gl/gfFJzU #: Preferences.java:478 -(edit\ only\ when\ Arduino\ is\ not\ running)=(\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0642\u0637 \u0628\u0647 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0622\u0631\u062f\u0626\u06cc\u0646\u0648 \u062f\u0631\u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0646\u06cc\u0633\u062a) +(edit\ only\ when\ Arduino\ is\ not\ running)=(\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0642\u0637 \u0628\u0647 \u0647\u0646\u06af\u0627\u0645 \u0639\u062f\u0645 \u0627\u062c\u0631\u0627\u06cc \u0622\u0631\u062f\u0648\u06cc\u0646\u0648) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -!(legacy)= +(legacy)=(\u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u0627\u0632 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0642\u0628\u0644\u06cc) #: ../../../processing/app/helpers/CommandlineParser.java:149 --curdir\ no\ longer\ supported=--curdir \u062f\u06cc\u06af\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u0634\u0648\u062f. @@ -113,7 +119,7 @@ All=\u0647\u0645\u0647 An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=\u062e\u0637\u0627\u06cc\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0635\u0644\u0627\u062d \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u0631\u062e\u200c\u062f\u0627\u062f.\n\u0633\u0639\u06cc \u0646\u06a9\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0637\u0631\u062d \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0646\u0633\u062e\u0647\u0654 \u0642\u0628\u0644\u06cc \u0630\u062e\u06cc\u0631\u0647\u0654 \u06a9\u0646\u06cc\u062f.\n\u0627\u0632 \u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u0631\u0627 \u0628\u0627\u0632\u06a9\u0631\u062f\u0646 \u0645\u062c\u062f\u062f \u0637\u0631\u062d \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0633\u0639\u06cc \u0646\u0645\u0627\u06cc\u06cc\u062f.\n #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -!An\ error\ occurred\ while\ updating\ libraries\ index\!= +An\ error\ occurred\ while\ updating\ libraries\ index\!=\u0628\u0631\u0648\u0632 \u0645\u0634\u06a9\u0644 \u062f\u0631 \u0628\u0647\u200c\u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u0646\u0645\u0627\u06cc\u0647\u200c\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627 #: ../../../processing/app/BaseNoGui.java:528 An\ error\ occurred\ while\ uploading\ the\ sketch=\u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0622\u067e\u0644\u0648\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0637\u0627\u06cc\u06cc \u0631\u062e \u062f\u0627\u062f. @@ -144,6 +150,10 @@ Archive\ sketch\ as\:=\u0628\u0627\u06cc\u06af\u0627\u0646\u06cc\u200c\u06a9\u06 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0628\u0627\u06cc\u06af\u0627\u0646\u06cc\u200c\u06a9\u0631\u062f\u0646 \u0637\u0631\u062d \u0641\u0633\u062e\u200c\u06af\u0631\u062f\u06cc\u062f. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0628\u0627\u06cc\u06af\u0627\u0646\u06cc\u200c\u06a9\u0631\u062f\u0646 \u0637\u0631\u062d \u0641\u0633\u062e\u200c\u06af\u0631\u062f\u06cc\u062f \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0647\n\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0637\u0631\u062d \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0646\u0645\u0648\u062f. @@ -157,7 +167,7 @@ Arduino\ ARM\ (32-bits)\ Boards=\u0628\u0631\u062f \u0622\u0631\u062f\u0626\u06c Arduino\ AVR\ Boards=\u0628\u0631\u062f \u0622\u0631\u062f\u0626\u06cc\u0646\u0648 \u0627\u06cc \u0648\u06cc \u0622\u0631 (avr) #: Editor.java:2137 -!Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde= +Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde=\u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0622\u0631\u062f\u0648\u06cc\u0646\u0648 \u0641\u0642\u0637 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0633\u06a9\u0686\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0648 \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0627 \u067e\u0633\u0648\u0646\u062f ino. \u0648 pde. \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u062f. #: Base.java:1682 Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ settings.=\u0622\u0631\u062f\u0626\u06cc\u0646\u0648 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u062c\u0631\u0627 \u0634\u0648\u062f \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0647 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f\n\u067e\u0648\u0634\u0647\u200c\u0627\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u0654 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0634\u0645\u0627 \u0628\u0633\u0627\u0632\u062f. @@ -438,6 +448,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u0646\u0645\u06cc\u200c\u062a\u0648\u #, java-format Could\ not\ replace\ {0}=\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 {0} \u0631\u0627 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0646\u0645\u0648\u062f +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0637\u0631\u062d \u0631\u0627 \u0628\u0627\u06cc\u06af\u0627\u0646\u06cc \u0646\u0645\u0648\u062f @@ -468,12 +482,18 @@ Data\ Processing=\u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0627\u062f\u0647 #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u0645\u062d\u0644 \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u06a9\u0627\u0647\u0634 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u067e\u06cc\u0634\u0641\u0631\u0636 +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=\u062d\u0630\u0641 @@ -561,7 +581,7 @@ Editor\ font\ size\:\ =\u0627\u0646\u062f\u0627\u0632\u0647\u0654 \u0642\u0644\u Editor\ language\:\ =\u0632\u0628\u0627\u0646 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631\: #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 -!Enable\ Code\ Folding= +Enable\ Code\ Folding=\u0645\u062e\u0641\u06cc\u200c\u0633\u0627\u0632\u06cc \u062f\u0633\u062a\u0648\u0631\u0647\u0627 #: Preferences.java:92 English=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc @@ -596,7 +616,7 @@ Error\ compiling.=\u062e\u0637\u0627\u06cc \u06a9\u0627\u0645\u067e\u0627\u06cc\ #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format -!Error\ downloading\ {0}= +Error\ downloading\ {0}=\u062e\u0637\u0627 \u062f\u0631 \u062f\u0627\u0646\u0644\u0648\u062f\u0650 {0} #: Base.java:1674 Error\ getting\ the\ Arduino\ data\ folder.=\u062e\u0637\u0627\u06cc \u06af\u0631\u0641\u062a\u0646 \u067e\u0648\u0634\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0622\u0631\u062f\u0626\u06cc\u0646\u0648 @@ -605,6 +625,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=\u062e\u0637\u0627\u06cc \u06af\u063 #, java-format Error\ inside\ Serial.{0}()=\u062e\u0637\u0627\u06cc \u062f\u0631\u0648\u0646\u06cc. {0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -619,6 +643,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u062e\u0637\u0627 \u0628\u0647 \u0647\u0 #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=\u062e\u0637\u0627 \u062f\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0646\u0645\u0627\u06cc\u0647\u200c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=\u062e\u0637\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u062a\u0631\u062c\u06cc\u062d\u0627\u062a @@ -644,6 +680,9 @@ Error\ while\ burning\ bootloader.=\u062e\u0637\u0627\u06cc \u0628\u0647 \u0647\ #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -655,7 +694,7 @@ Error\ while\ printing.=\u062e\u0637\u0627 \u0647\u0646\u06af\u0627\u0645 \u0686 !Error\ while\ setting\ serial\ port\ parameters\:\ {0}\ {1}\ {2}\ {3}= #: ../../../processing/app/BaseNoGui.java:528 -!Error\ while\ uploading= +Error\ while\ uploading=\u062e\u0637\u0627\u06cc \u062d\u06cc\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc #: ../../../processing/app/Editor.java:2409 #: ../../../processing/app/Editor.java:2449 @@ -664,22 +703,19 @@ Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=\u062e\u0637 #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -!Error\ while\ verifying= +Error\ while\ verifying=\u062e\u0637\u0627\u06cc \u062d\u06cc\u0646 \u062a\u0627\u06cc\u06cc\u062f #: ../../../processing/app/BaseNoGui.java:521 -!Error\ while\ verifying/uploading= +Error\ while\ verifying/uploading=\u062e\u0637\u0627\u06cc \u062d\u06cc\u0646 \u062a\u0627\u06cc\u06cc\u062f/\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc #: Preferences.java:93 Estonian=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc (\u0627\u0633\u062a\u0648\u0646\u06cc) - #: Editor.java:516 Examples=\u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627 #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=\u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062a\u0645\u0627\u0645 \u0628\u0648\u0631\u062f\u0647\u0627 #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 @@ -825,8 +861,8 @@ Hungarian=\u0645\u062c\u0627\u0631 #: FindReplace.java:96 Ignore\ Case=\u0646\u0627\u062f\u06cc\u062f\u0647\u200c\u06af\u0631\u0641\u062a\u0646 \u0628\u0632\u0631\u06af\u06cc/\u06a9\u0648\u0686\u06a9\u06cc -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u062f\u0631 \u0646\u0638\u0631 \u0646\u06af\u0631\u0641\u062a\u0646 \u0646\u0627\u0645 \u0646\u0627\u0645\u0646\u0627\u0633\u0628 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0637\u0631\u062d \u0628\u0627 \u0646\u0627\u0645 \u0628\u062f @@ -841,6 +877,9 @@ Ignoring\ sketch\ with\ bad\ name=\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0 #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc @@ -867,9 +906,9 @@ Indonesian=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u0627\u06cc\u06cc #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -890,6 +929,15 @@ Indonesian=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u0627\u06cc\u06cc #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627\u06cc\u06cc @@ -914,9 +962,9 @@ Latvian=\u0644\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -929,7 +977,7 @@ Lithuaninan=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 #, java-format -!Looking\ for\ recipes\ like\ {0}*{1}= +Looking\ for\ recipes\ like\ {0}*{1}=\u062c\u0633\u062a\u062c\u0648\u06cc \u062f\u0633\u062a\u0648\u0631 \u0627\u0644\u0639\u0645\u0644\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f {0}*{1} #: ../../../processing/app/Sketch.java:1684 !Low\ memory\ available,\ stability\ problems\ may\ occur.= @@ -1063,7 +1111,7 @@ No\ valid\ code\ files\ found=\u067e\u0631\u0648\u0646\u062f\u0647 \u062d\u0627\ Norwegian\ Bokm\u00e5l=\u0646\u0631\u0648\u0698\u06cc #: ../../../processing/app/Sketch.java:1656 -!Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.= +Not\ enough\ memory;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ your\ footprint.=\u062d\u0627\u0641\u0638\u0647\u060c \u06a9\u0627\u0641\u06cc \u0646\u06cc\u0633\u062a\u061b \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u06a9\u0627\u062a\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u06a9\u0627\u0647\u0634 \u0645\u0635\u0631\u0641 \u0641\u0636\u0627 \u062f\u0631 \u0644\u06cc\u0646\u06a9 \u0632\u06cc\u0631\:\nhttp\://www.arduino.cc/en/Guide/Troubleshooting\#size #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 @@ -1229,9 +1277,9 @@ Reference=\u0645\u0631\u062c\u0639 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1259,6 +1307,9 @@ Replace\ with\:=\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0 #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc @@ -1350,9 +1401,13 @@ Serial\ Monitor=\u0646\u0645\u0627\u06cc\u0634\u06af\u0631 \u0633\u0631\u06cc\u0 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u062f\u0631\u06af\u0627\u0647 \u0633\u0631\u06cc\u0627\u0644 ''{0}'' \u06cc\u0627\u0641\u062a \u0646\u0634\u062f. \u0622\u06cc\u0627 \u0634\u0645\u0627 \u062f\u0631\u0633\u062a \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0645\u0646\u0648\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627 > \u062f\u0631\u06af\u0627\u0647 \u0633\u0631\u06cc\u0627\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0646\u0645\u0648\u062f\u0647\u200c\u0627\u06cc\u062f\u061f -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u062f\u0631\u06af\u0627\u0647 \u0633\u0631\u06cc\u0627\u0644 {0} \u06cc\u0627\u0641\u062a \u0646\u0634\u062f.\n\u0627\u0646\u062c\u0627\u0645 \u0645\u062c\u062f\u062f \u0628\u0627\u06af\u0630\u0627\u0631\u06cc \u0628\u0627 \u062f\u0631\u06af\u0627\u0647 \u0633\u0631\u06cc\u0627\u0644\u06cc \u062f\u06cc\u06af\u0631\u061f +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1370,6 +1425,9 @@ Settings\ issues=\u0645\u0634\u06a9\u0644\u0627\u062a \u062a\u0646\u0638\u06cc\u #: Editor.java:641 Show\ Sketch\ Folder=\u0646\u0645\u0627\u06cc\u0634 \u067e\u0648\u0634\u0647\u0654 \u0637\u0631\u062d +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u0646\u0645\u0627\u06cc\u0634 \u062e\u0631\u0648\u062c\u06cc \u067e\u0631\u06af\u0648 \u0628\u0647 \u0647\u0646\u06af\u0627\u0645\: @@ -1489,6 +1547,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=\u06a9\u0644\u0627\u0633 Udp \ #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u067e\u0631\u0648\u0646\u062f\u0647 "{0}" \u0645\u06cc\u200c\u0628\u0627\u06cc\u0633\u062a \u062f\u0627\u062e\u0644 \u06cc\u06a9\n\u067e\u0648\u0634\u0647\u0654 \u0637\u0631\u062d \u0628\u0647 \u0646\u0627\u0645 "{1}" \u0630\u062e\u06cc\u0631\u0647 \u06af\u0631\u062f\u0646\u062f.\n\u0633\u0627\u062e\u062a\u0646 \u0627\u06cc\u0646 \u067e\u0648\u0634\u0647\u060c \u0627\u0646\u062a\u0642\u0627\u0644 \u067e\u0631\u0648\u0646\u062f\u0647 \u0648 \u0627\u062f\u0627\u0645\u0647\u061f +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u0654 "{0}" \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06af\u0631\u062f\u062f.\n\u0646\u0627\u0645 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0641\u0642\u0637 \u0645\u06cc\u200c\u0628\u0627\u06cc\u0633\u062a \u0634\u0627\u0645\u0644 \u062d\u0631\u0648\u0641 \u0633\u0627\u062f\u0647 \u0648 \u0639\u062f\u062f \u0628\u0627\u0634\u062f.\n(\u0641\u0642\u0637 ASCII \u0648 \u0628\u062f\u0648\u0646 \u0641\u0627\u0635\u0644\u0647 \u0648 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u06cc\u06a9 \u0639\u062f\u062f \u0634\u0631\u0648\u0639 \u0634\u0648\u062f.) @@ -1513,8 +1575,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u067e\u0648\u0634\u0647\u0654 \u0637\u0631\u062d \u0646\u0627\u067e\u062f\u06cc\u062f \u0634\u062f\u0647\u200c\u0627\u0633\u062a.\n \u062a\u0644\u0627\u0634 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0645\u062d\u0644 \u0645\u0634\u0627\u0628\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0646\u0645\u0648\u062f\n\u0648\u0644\u06cc \u0628\u0647\u200c\u0639\u0644\u0627\u0648\u0647\u0654 \u0622\u0646 \u06a9\u062f \u0645\u0641\u0642\u0648\u062f \u062e\u0648\u0627\u0647\u062f \u0634\u062f. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u067e\u0648\u0634\u0647\u0654 \u06a9\u062a\u0627\u0628 \u0637\u0631\u062d \u062f\u06cc\u06af\u0631 \u0645\u0648\u062c\u0648\u062f \u0646\u06cc\u0633\u062a.\n\u0622\u0631\u062f\u0626\u0646\u0648 \u0645\u062d\u0644 \u06a9\u062a\u0627\u0628 \u0637\u0631\u062d \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f\n\u0648 \u067e\u0648\u0634\u0647\u0654 \u06a9\u062a\u0627\u0628 \u0637\u0631\u062d\u06cc \u062f\u0631\u0633\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f \u0627\u06af\u0631 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632\n\u0628\u0627\u0634\u062f. \u0622\u0631\u062f\u0626\u06cc\u0646\u0648 \u0635\u062d\u0628\u062a \u06a9\u0631\u062f\u0646 \u062f\u0631 \u0631\u0627\u0628\u0637\u0647 \u0628\u0627 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646\n\u0633\u0648\u0645 \u0634\u062e\u0635 \u0631\u0627 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f. @@ -1522,6 +1584,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1856,6 +1921,11 @@ ignoring\ invalid\ font\ size\ {0}=\u062f\u0631\u0646\u0638\u0631 \u0646\u06af\u #: Editor.java:936 Editor.java:943 name\ is\ null=name \u062a\u0647\u06cc \u0627\u0633\u062a +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu \u062a\u0647\u06cc \u0627\u0633\u062a @@ -1923,10 +1993,6 @@ upload=\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1935,6 +2001,10 @@ upload=\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u0645\u0639\u0645\u0627\u0631\u06cc \u0646\u0627\u0634\u0646\u0627\u062e\u062a\u0647 diff --git a/arduino-core/src/processing/app/i18n/Resources_fa_IR.po b/arduino-core/src/processing/app/i18n/Resources_fa_IR.po index 690b2bbe257..1a8f8cb310c 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fa_IR.po +++ b/arduino-core/src/processing/app/i18n/Resources_fa_IR.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Ali Mirjamali , 2013 # Seyyed Mohammad Amin Mousavi , 2017 msgid "" @@ -23,14 +27,14 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 22:28+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Persian (Iran) (http://www.transifex.com/mbanzi/arduino-ide-15/language/fa_IR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa_IR\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" @@ -211,6 +215,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -617,6 +626,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -660,6 +674,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -668,6 +686,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "حذÙ" @@ -843,6 +865,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -862,6 +889,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "خطا در خواندن تنظیمات برنامه" @@ -896,6 +942,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -932,10 +982,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "مثال‌ها" @@ -1139,8 +1185,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1167,6 +1213,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1200,9 +1250,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1229,6 +1279,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "ایتالیایی" @@ -1261,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1681,9 +1742,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1720,6 +1781,10 @@ msgstr "جایگزینی با:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "" @@ -1843,11 +1908,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1871,6 +1939,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2042,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2087,11 +2167,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2109,6 +2189,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2601,6 +2685,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2688,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2703,6 +2788,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fa_IR.properties b/arduino-core/src/processing/app/i18n/Resources_fa_IR.properties index 6a139c2b51d..848c6cd82c5 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fa_IR.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fa_IR.properties @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Ali Mirjamali , 2013 # Seyyed Mohammad Amin Mousavi , 2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 22\:28+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Persian (Iran) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fa_IR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fa_IR\nPlural-Forms\: nplurals\=1; plural\=0;\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Persian (Iran) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fa_IR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fa_IR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(\u0622\u0631\u062f\u0648\u06cc\u0646\u0648 \u0628\u0627\u06cc\u062f \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f \u0634\u0648\u062f) @@ -143,6 +147,10 @@ Arabic=\u0639\u0631\u0628\u06cc #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -437,6 +445,10 @@ Could\ not\ delete\ the\ existing\ ''{0}''\ file.=\u062d\u0630\u0641 \u0641\u062 #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -467,12 +479,18 @@ Couldn't\ do\ it=\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u0645\u06a9\u0646 #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=\u062d\u0630\u0641 @@ -604,6 +622,10 @@ Error\ compiling.=\u062e\u0637\u0627\u06cc \u06a9\u0627\u0645\u067e\u0627\u06cc\ #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -618,6 +640,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u062e\u0637\u0627 \u062f\u0631 \u0628\u0 #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=\u062e\u0637\u0627 \u062f\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647 @@ -643,6 +677,9 @@ Error\ touching\ serial\ port\ ''{0}''.=\u062e\u0637\u0627 \u062f\u0631 \u062f\u #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -671,9 +708,6 @@ Error\ while\ printing.=\u062e\u0637\u0627 \u062f\u0631 \u0647\u0646\u06af\u0627 #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=\u0645\u062b\u0627\u0644\u200c\u0647\u0627 @@ -824,8 +858,8 @@ Hindi=\u0647\u0646\u062f\u06cc #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -840,6 +874,9 @@ Hindi=\u0647\u0646\u062f\u06cc #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -866,9 +903,9 @@ Indonesian=\u0627\u0646\u062f\u0648\u0646\u0632\u0627\u06cc\u06cc #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -889,6 +926,15 @@ Indonesian=\u0627\u0646\u062f\u0648\u0646\u0632\u0627\u06cc\u06cc #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627\u06cc\u06cc @@ -913,9 +959,9 @@ Korean=\u06a9\u0631\u0647\u200c\u0627\u06cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1228,9 +1274,9 @@ Quit=\u062e\u0631\u0648\u062c #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1258,6 +1304,9 @@ Replace\ with\:=\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u0628\u0627\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 !Romanian= @@ -1349,9 +1398,13 @@ Send=\u0627\u0631\u0633\u0627\u0644 #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1369,6 +1422,9 @@ Send=\u0627\u0631\u0633\u0627\u0644 #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1488,6 +1544,10 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=The Server \u0628\u0647 #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1512,8 +1572,8 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=The Server \u0628\u0647 #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1521,6 +1581,9 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=The Server \u0628\u0647 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1855,6 +1918,11 @@ connected\!=\u0645\u062a\u0635\u0644 \u0634\u062f\! #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1922,10 +1990,6 @@ upload=\u0622\u067e\u0644\u0648\u062f #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1934,6 +1998,10 @@ upload=\u0622\u067e\u0644\u0648\u062f #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_fi.po b/arduino-core/src/processing/app/i18n/Resources_fi.po index 8b17cfc0743..8acacf7b1e7 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fi.po +++ b/arduino-core/src/processing/app/i18n/Resources_fi.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Jaakko Fagerlund , 2013 # Janne Ojala , 2017 # lotof , 2014 @@ -25,8 +29,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:52+0000\n" -"Last-Translator: Katajisto \n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" +"Last-Translator: Cristian Maglie \n" "Language-Team: Finnish (http://www.transifex.com/mbanzi/arduino-ide-15/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -213,6 +217,11 @@ msgstr "Arkistoi sketsi nimellä:" msgid "Archive sketch canceled." msgstr "Sketsin arkistointi peruttu." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -619,6 +628,11 @@ msgstr "{0}:n vanhaa versiota ei voitu poistaa" msgid "Could not replace {0}" msgstr "{0}:aa ei voitu korvata" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Luonnoksen arkistointi ei onnistunut" @@ -662,6 +676,10 @@ msgstr "Tiedon käsittely" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Vähennä sisennystä" @@ -670,6 +688,10 @@ msgstr "Vähennä sisennystä" msgid "Default" msgstr "Oletus" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Poista" @@ -845,6 +867,11 @@ msgstr "Arduinon datakansiota haettaessa tapahtui virhe." msgid "Error inside Serial.{0}()" msgstr "Virhe Serial.{0}() sisällä" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -864,6 +891,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Virhe luettaessa asetuksia" @@ -898,6 +944,10 @@ msgstr "Virhe polttaessa käynnistinlataajaa." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Virhe käynnistyslataajaa poltettaessa: puuttuva '{0}' asetusparametri" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -934,10 +984,6 @@ msgstr "" msgid "Estonian" msgstr "Eesti" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonia (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Esimerkit" @@ -1141,9 +1187,9 @@ msgstr "YHTEENSOPIMATON" msgid "Ignore Case" msgstr "Sivuuta koko" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Sivuutetaan huononniminen kirjasto" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1169,6 +1215,10 @@ msgstr "Sisällytä Kirjasto" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Lisää sisennystä" @@ -1202,10 +1252,10 @@ msgstr "Asennettu" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Asennetaan kirjastoa: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1231,6 +1281,17 @@ msgstr "Virheellinen kirjasto paikassa {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "italia" @@ -1263,9 +1324,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1683,10 +1744,10 @@ msgstr "Opas" msgid "Remove" msgstr "Poista" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Poistaa kirjastoa: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1722,6 +1783,10 @@ msgstr "Korvaa tällä:" msgid "Retired" msgstr "Vedetty pois" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "romania" @@ -1845,12 +1910,15 @@ msgid "" " Serial Port menu?" msgstr "Sarjaporttia ''{0}'' ei löydy. Valitsitko oikean valikosta Työkalut -> Sarjaportti?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Sarjaporttia {0} ei löydy.\nKokeile lähettämistä toisella sarjaportilla?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1873,6 +1941,10 @@ msgstr "Asetuksissa on ongelmia" msgid "Show Sketch Folder" msgstr "Näytä sketsikansio" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Näytä tarkemmat tiedot: " @@ -2044,6 +2116,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Tiedoston \"{0}\" tulee olla\nsketsikansion \"{1}\" sisällä.\nLuo tämä kansio, siirrä tiedosto ja jatka?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2089,11 +2169,11 @@ msgid "" "but anything besides the code will be lost." msgstr "Sketsikansio on hävinnyt.\nYritetään tallentaa uudelleen samaan paikkaan,\nmutta kaikki muu paitsi koodi häviää." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2111,6 +2191,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2603,6 +2687,12 @@ msgstr "sivuutetaan epäkelpo fonttikoko {0}" msgid "name is null" msgstr "nimi on tyhjä" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu on tyhjä" @@ -2690,11 +2780,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2705,6 +2790,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fi.properties b/arduino-core/src/processing/app/i18n/Resources_fi.properties index f9c8e2b0c4b..c93d8e82d51 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fi.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fi.properties @@ -16,11 +16,15 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Jaakko Fagerlund , 2013 # Janne Ojala , 2017 # lotof , 2014 # Katajisto , 2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:52+0000\nLast-Translator\: Katajisto \nLanguage-Team\: Finnish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fi/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fi\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Finnish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fi/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fi\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (vaatii Arduinon uudelleenk\u00e4ynnist\u00e4misen) @@ -145,6 +149,10 @@ Archive\ sketch\ as\:=Arkistoi sketsi nimell\u00e4\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Sketsin arkistointi peruttu. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Sketsin arkistointi peruttu, koska sketsi\u00e4\nei voitu tallentaa kunnolla. @@ -439,6 +447,10 @@ Could\ not\ remove\ old\ version\ of\ {0}={0}\:n vanhaa versiota ei voitu poista #, java-format Could\ not\ replace\ {0}={0}\:aa ei voitu korvata +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Luonnoksen\u00a0arkistointi ei onnistunut @@ -469,12 +481,18 @@ Data\ Processing=Tiedon k\u00e4sittely #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=V\u00e4henn\u00e4 sisennyst\u00e4 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Oletus +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Poista @@ -606,6 +624,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Arduinon datakansiota haettaessa tap #, java-format Error\ inside\ Serial.{0}()=Virhe Serial.{0}() sis\u00e4ll\u00e4 +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -620,6 +642,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Virhe avatessa sarjaporttia ''{0}''. #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Virhe luettaessa asetuksia @@ -645,6 +679,9 @@ Error\ while\ burning\ bootloader.=Virhe polttaessa k\u00e4ynnistinlataajaa. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Virhe k\u00e4ynnistyslataajaa poltettaessa\: puuttuva '{0}' asetusparametri +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -673,9 +710,6 @@ Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Virhe l\u00e #: Preferences.java:93 Estonian=Eesti -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonia (Estonia) - #: Editor.java:516 Examples=Esimerkit @@ -826,8 +860,8 @@ INCOMPATIBLE=YHTEENSOPIMATON #: FindReplace.java:96 Ignore\ Case=Sivuuta koko -#: Base.java:1058 -Ignoring\ bad\ library\ name=Sivuutetaan huononniminen kirjasto +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Sivuutetaan huononniminen ohjelma @@ -842,6 +876,9 @@ Include\ Library=Sis\u00e4llyt\u00e4 Kirjasto #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Lis\u00e4\u00e4 sisennyst\u00e4 @@ -868,9 +905,9 @@ Installed=Asennettu #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Asennetaan kirjastoa\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -891,6 +928,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Virheellinen kirjasto paikassa {0}\: {1} #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=italia @@ -915,9 +961,9 @@ Latvian=latvia #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Rivinumero\: @@ -1230,9 +1276,9 @@ Reference=Opas #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Poista -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Poistaa kirjastoa\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1260,6 +1306,9 @@ Replace\ with\:=Korvaa t\u00e4ll\u00e4\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Vedetty pois +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=romania @@ -1351,9 +1400,13 @@ Serial\ Monitor=Sarjamonitori #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Sarjaporttia ''{0}'' ei l\u00f6ydy. Valitsitko oikean valikosta Ty\u00f6kalut -> Sarjaportti? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Sarjaporttia {0} ei l\u00f6ydy.\nKokeile l\u00e4hett\u00e4mist\u00e4 toisella sarjaportilla? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1371,6 +1424,9 @@ Settings\ issues=Asetuksissa on ongelmia #: Editor.java:641 Show\ Sketch\ Folder=N\u00e4yt\u00e4 sketsikansio +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =N\u00e4yt\u00e4 tarkemmat tiedot\: @@ -1490,6 +1546,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp luokka on nimetty Ethernet #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Tiedoston "{0}" tulee olla\nsketsikansion "{1}" sis\u00e4ll\u00e4.\nLuo t\u00e4m\u00e4 kansio, siirr\u00e4 tiedosto ja jatka? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Kirjastoa "{0}" ei voida k\u00e4ytt\u00e4\u00e4.\nKirjaston nimess\u00e4 saa olla vain kirjaimia ja numeroita.\n(vain ASCII, ei v\u00e4lily\u00f6ntej\u00e4, eik\u00e4 se saa alkaa numerolla.) @@ -1514,8 +1574,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Sketsikansio on h\u00e4vinnyt.\nYritet\u00e4\u00e4n tallentaa uudelleen samaan paikkaan,\nmutta kaikki muu paitsi koodi h\u00e4vi\u00e4\u00e4. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Ohjelmakansiota ei en\u00e4\u00e4 ole olemassa. Arduino vaihtaa oletuskansioon, luo tarvittaessa uuden ja lopettaa itsest\u00e4\u00e4n puhumisen kolmannessa persoonassa. @@ -1523,6 +1583,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1857,6 +1920,11 @@ ignoring\ invalid\ font\ size\ {0}=sivuutetaan ep\u00e4kelpo fonttikoko {0} #: Editor.java:936 Editor.java:943 name\ is\ null=nimi on tyhj\u00e4 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu on tyhj\u00e4 @@ -1924,10 +1992,6 @@ upload=l\u00e4hett\u00e4ess\u00e4 #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1936,6 +2000,10 @@ upload=l\u00e4hett\u00e4ess\u00e4 #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Tuntematon arkkitehtuuri diff --git a/arduino-core/src/processing/app/i18n/Resources_fil.po b/arduino-core/src/processing/app/i18n/Resources_fil.po index 4f8ffc0e424..a313d392546 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fil.po +++ b/arduino-core/src/processing/app/i18n/Resources_fil.po @@ -16,13 +16,18 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # David A. Mellis <>, 2012 +# John Carl , 2018 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 19:54+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Filipino (http://www.transifex.com/mbanzi/arduino-ide-15/language/fil/)\n" "MIME-Version: 1.0\n" @@ -38,12 +43,12 @@ msgstr " (kinakailangang i-restart ang Arduino)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format msgid " Not used: {0}" -msgstr "" +msgstr "Hindi ginamit: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format msgid " Used: {0}" -msgstr "" +msgstr "Ginamit: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 msgid "" @@ -210,6 +215,11 @@ msgstr "I-archive ang sketch bilang:" msgid "Archive sketch canceled." msgstr "Nakansela ang pag-archive ng sketch" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +626,11 @@ msgstr "Hindi maaalis ang lumang bersyon na {0}" msgid "Could not replace {0}" msgstr "Hindi mapalitan ang {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Hindi mai-archive and sketch" @@ -659,6 +674,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Bawasan ang Indent" @@ -667,6 +686,10 @@ msgstr "Bawasan ang Indent" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Alisin" @@ -842,6 +865,11 @@ msgstr "May problema sa pagkuha ng Arduino data folder" msgid "Error inside Serial.{0}()" msgstr "May mali sa loob ng Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +889,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "May problema sa pagread ng preferences" @@ -895,6 +942,10 @@ msgstr "May mali habang naglalagay ng bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +982,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Mga Halimbawa" @@ -1138,9 +1185,9 @@ msgstr "" msgid "Ignore Case" msgstr "Ignore Case" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Hindi papansinin ang library na may maling pangalan" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1166,6 +1213,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Dagdagan ang Indent" @@ -1199,9 +1250,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1279,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italian" @@ -1260,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1680,9 +1742,9 @@ msgstr "Sanggunian" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1781,10 @@ msgstr "Palitan ng:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romanian" @@ -1842,12 +1908,15 @@ msgid "" " Serial Port menu?" msgstr "Hindi makita ang serial port na ''{0}''. Tama ba ang iyong napili sa Mga Kasangkapan > Serial Port menu?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Hindi makita ang serial port na {0}.\nSubukan muli ang pagupload gamit ang ibang serial port?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1870,6 +1939,10 @@ msgstr "May problema sa Settings" msgid "Show Sketch Folder" msgstr "Ipakita ang Sketch Folder" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Ipakita ang verbose na output: " @@ -2041,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Ang file \"{0}\" ay nararapat na nasa loob\nng sketch folder na \"{1}\".\nI-create ang folder, ilipat ang file at magpatuloy?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,11 +2167,11 @@ msgid "" "but anything besides the code will be lost." msgstr "Nawala ng folder ng sketch.\n Susubukang ire-save sa parehong lokasyon,\nsubalit lahat maliban sa code ay mawawala." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2108,6 +2189,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2685,12 @@ msgstr "hindi papansinin ang maling sukat ng font {0}" msgid "name is null" msgstr "ang pangalan ay null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu ay null" @@ -2687,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2788,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fil.properties b/arduino-core/src/processing/app/i18n/Resources_fil.properties index a4748d54140..c613fb8c74f 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fil.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fil.properties @@ -16,19 +16,24 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # David A. Mellis <>, 2012 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 19\:54+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Filipino (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fil/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fil\nPlural-Forms\: nplurals\=2; plural\=(n \=\= 1 || n\=\=2 || n\=\=3) || (n % 10 \!\= 4 || n % 10 \!\= 6 || n % 10 \!\= 9);\n +# John Carl , 2018 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Filipino (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fil/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fil\nPlural-Forms\: nplurals\=2; plural\=(n \=\= 1 || n\=\=2 || n\=\=3) || (n % 10 \!\= 4 || n % 10 \!\= 6 || n % 10 \!\= 9);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (kinakailangang i-restart ang Arduino) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -!\ Not\ used\:\ {0}= +\ Not\ used\:\ {0}=Hindi ginamit\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format -!\ Used\:\ {0}= +\ Used\:\ {0}=Ginamit\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 !'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= @@ -142,6 +147,10 @@ Archive\ sketch\ as\:=I-archive ang sketch bilang\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Nakansela ang pag-archive ng sketch +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Nakansela ang pag archive ng sketch sapagkat\nhindi ito mai-save ng tama. @@ -436,6 +445,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Hindi maaalis ang lumang bersyon na {0 #, java-format Could\ not\ replace\ {0}=Hindi mapalitan ang {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Hindi mai-archive and sketch @@ -466,12 +479,18 @@ Cut=I-Cut #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Bawasan ang Indent #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Alisin @@ -603,6 +622,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=May problema sa pagkuha ng Arduino d #, java-format Error\ inside\ Serial.{0}()=May mali sa loob ng Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +640,18 @@ Error\ opening\ serial\ port\ ''{0}''.=May mali sa pagbukas ng serial port ''{0} #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=May problema sa pagread ng preferences @@ -642,6 +677,9 @@ Error\ while\ burning\ bootloader.=May mali habang naglalagay ng bootloader. #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +708,6 @@ Error\ while\ printing.=May mali habang nagpi-print. #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Mga Halimbawa @@ -823,8 +858,8 @@ Hungarian=Hungarian #: FindReplace.java:96 Ignore\ Case=Ignore Case -#: Base.java:1058 -Ignoring\ bad\ library\ name=Hindi papansinin ang library na may maling pangalan +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Hindi papansin ang sketch na may maling pangalan @@ -839,6 +874,9 @@ Ignoring\ sketch\ with\ bad\ name=Hindi papansin ang sketch na may maling pangal #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Dagdagan ang Indent @@ -865,9 +903,9 @@ Increase\ Indent=Dagdagan ang Indent #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +926,15 @@ Increase\ Indent=Dagdagan ang Indent #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italian @@ -912,9 +959,9 @@ Latvian=Latvian #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1227,9 +1274,9 @@ Reference=Sanggunian #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1304,9 @@ Replace\ with\:=Palitan ng\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Romanian @@ -1348,9 +1398,13 @@ Serial\ Monitor=Serial Monitor #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Hindi makita ang serial port na ''{0}''. Tama ba ang iyong napili sa Mga Kasangkapan > Serial Port menu? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Hindi makita ang serial port na {0}.\nSubukan muli ang pagupload gamit ang ibang serial port? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1368,6 +1422,9 @@ Settings\ issues=May problema sa Settings #: Editor.java:641 Show\ Sketch\ Folder=Ipakita ang Sketch Folder +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Ipakita ang verbose na output\: @@ -1487,6 +1544,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Ang Udp class ay pinangalanang #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Ang file "{0}" ay nararapat na nasa loob\nng sketch folder na "{1}".\nI-create ang folder, ilipat ang file at magpatuloy? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Ang library "{0}" ay maaaring gamitin.\nAng pangalan ng library ay maaari lamang magkaron ng titik at numero.\n(ASCII lamang at walang spaces, at hindi ito maaaring magsimula sa numero) @@ -1511,8 +1572,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Nawala ng folder ng sketch.\n Susubukang ire-save sa parehong lokasyon,\nsubalit lahat maliban sa code ay mawawala. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Ang sketchbook folder ay hindi ko na makita.\nGagamitin ko na ang default lokasyon ng sketchbook \nat gagawa ng bagong sketchbook folder kung\nkinakailangan. At hindi ko na kakausapin\nang sarili ko. @@ -1520,6 +1581,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1918,11 @@ ignoring\ invalid\ font\ size\ {0}=hindi papansinin ang maling sukat ng font {0} #: Editor.java:936 Editor.java:943 name\ is\ null=ang pangalan ay null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu ay null @@ -1921,10 +1990,6 @@ upload=upload #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1998,10 @@ upload=upload #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_fr.po b/arduino-core/src/processing/app/i18n/Resources_fr.po index 7febb072747..df1ab8dd314 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fr.po +++ b/arduino-core/src/processing/app/i18n/Resources_fr.po @@ -16,7 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Alexis Morin , 2012 +# Aestan , 2018 # AntoineM , 2012 # Armel FAUVEAU , 2015 # BlueskyFR , 2015 @@ -25,6 +30,7 @@ # Cedric Octave , 2016 # Cristian Maglie , 2016 # dbarbier , 2012 +# a270031086f2a0d3514bc0cb507b48f6, 2019 # Simon , 2012 # Frederic Pillon , 2017 # Louis Bonicel , 2016 @@ -39,8 +45,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:37+0000\n" -"Last-Translator: Frederic Pillon \n" +"PO-Revision-Date: 2019-02-24 19:35+0000\n" +"Last-Translator: a270031086f2a0d3514bc0cb507b48f6\n" "Language-Team: French (http://www.transifex.com/mbanzi/arduino-ide-15/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -164,7 +170,7 @@ msgstr "Afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Mettre agressivement en cache le noyau compilé" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -227,6 +233,11 @@ msgstr "Archiver le croquis sous :" msgid "Archive sketch canceled." msgstr "Archivage du croquis annulé" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Archivage du noyau construit (mise en cache) dans : {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -633,6 +644,11 @@ msgstr "Impossible de retirer la vieille version de {0}" msgid "Could not replace {0}" msgstr "Impossible de remplacer {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Impossible d'écrire le fichier de préférences: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Impossible d'archiver le croquis" @@ -676,6 +692,10 @@ msgstr "Traitement des données" msgid "Data Storage" msgstr "Stockage de données" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Réduire la taille de la police" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Réduire l'indentation" @@ -684,6 +704,10 @@ msgstr "Réduire l'indentation" msgid "Default" msgstr "Défaut" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Thème par défaut" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Supprimer" @@ -859,6 +883,11 @@ msgstr "Problème d'obtention du dossier de données d'Arduino" msgid "Error inside Serial.{0}()" msgstr "Erreur dans Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Erreur lors du chargement du thème {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -878,6 +907,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Erreur durant l'ouverture du port série \"{0}'. Consultez la documentation: http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Erreur d'analyse de l'index des bibliothèques: {0}\nEssayez d'ouvrir le gestionnaire de bibliothèque pour mettre à jour l'index des bibliothèques." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Erreur de lecture de l'index des bibliothèques: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Erreur lors de la lecture du dossier des index de packages: {0}\n(peut-être un problème de permission?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Erreur pendant la lecture des préférences" @@ -912,6 +960,10 @@ msgstr "Erreur lors de la gravure de la séquence d'initialisation." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Erreur lors de la gravure de la séquence d'initialisation : le paramètre de configuration « {0} » est manquant" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Erreur lors de la gravure du chargeur de démarrage: veuillez sélectionner un port série." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Erreur lors de la compilation : le paramètre de configuration « {0} » est manquant" @@ -948,10 +1000,6 @@ msgstr "Erreur lors de la vérification et du transfert." msgid "Estonian" msgstr "estonien" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "estonien (Estonie)" - #: Editor.java:516 msgid "Examples" msgstr "Exemples" @@ -1155,9 +1203,9 @@ msgstr "INCOMPATIBLE" msgid "Ignore Case" msgstr "Ignorer la casse" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignore la bibliothèque mal nommée" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignorer la bibliothèque avec un mauvais nom" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1183,6 +1231,10 @@ msgstr "Inclure une bibliothèque" msgid "Incorrect IDE installation folder" msgstr "Dossier d'installation de l'IDE incorrect" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Augmenter la taille de la police" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Augmenter l'indentation" @@ -1216,10 +1268,10 @@ msgstr "Installé" msgid "Installing boards..." msgstr "Installation des cartes..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Installation de la biliothèque: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Installation de la bibliothèque: {0}: {1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1245,6 +1297,17 @@ msgstr "Bibliothèque non valide trouvée dans {0} : {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Guillement invalide: charactère [{0}] de fermeture non trouvé." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Version non valide '{0}' pour la bibliothèque dans: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Version non valide {0}" + #: Preferences.java:102 msgid "Italian" msgstr "italien" @@ -1277,10 +1340,10 @@ msgstr "La bibliothèque a été ajoutée à votre dossier de bibliothèques. Ve msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Une bibliothèque ne peut utiliser les dossiers 'src' et 'utility' en même temps. Double vérification {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "La bibliothèque est déja installé: {0} version {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "La bibliothèque est déjà installée: {0}: {1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1697,10 +1760,10 @@ msgstr "Référence" msgid "Remove" msgstr "Supprimer " -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Suppression de la bibliothèque: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Suppression de la bibliothèque: {0}: {1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1736,6 +1799,10 @@ msgstr "Remplacer par :" msgid "Retired" msgstr "Retiré" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Réessayez le téléverser/transférer/envoyer avec un autre port série?" + #: Preferences.java:113 msgid "Romanian" msgstr "roumain" @@ -1859,12 +1926,15 @@ msgid "" " Serial Port menu?" msgstr "Port série « {0} » non trouvé. L''avez-vous bien sélectionné dans le menu Outils > Port série ?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Port série non sélectionné." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Port série {0} introuvable.\nRéessayer le téléversement à partir d''un autre port série ?" +msgid "Serial port {0} not found." +msgstr "Port série {0} introuvable." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1887,6 +1957,10 @@ msgstr "Problèmes de paramètres" msgid "Show Sketch Folder" msgstr "Afficher le dossier des croquis" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Afficher l'horodatage" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Afficher les résultats détaillés pendant : " @@ -2058,6 +2132,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Le fichier « {0} » doit résider dans\nun dossier de croquis nommé « {1} ».\nCréer ce dossier, déplacer le fichier et continuer ?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "La bibliothèque \"{0}\" ne peut pas être utilisée.\nLes noms de dossier de bibliothèque doivent commencer par une lettre ou un chiffre suivi de lettres.\nchiffres, tirets, points et traits de soulignement. La longueur maximale est de 63 caractères." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2103,12 +2185,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Le dossier croquis a disparu.\nNous allons essayer de réenregistrer au même emplacement,\nmais seul le code sera conservé." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Le nom du croquis doit être changé. Les noms de croquis doivent consister\nde caractères ASCII et de chiffres (mais ne peuvent commencer par un chiffre).\nIls doivent aussi être plus courts que 64 caractères." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Le nom de croquis a dû être modifié.\nLes noms de croquis doivent commencer par une lettre ou un chiffre suivi de lettres.\nchiffres, tirets, points et traits de soulignement. La longueur maximale est de 63 caractères." #: Base.java:259 msgid "" @@ -2125,6 +2207,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Le dossier de votre carnet de croquis spécifié contiens votre IDE.\nVeuillez choisir un dossier différent." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Thème:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2617,6 +2703,12 @@ msgstr "ignore la taille de police invalide {0}" msgid "name is null" msgstr "nom est nul" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "aucun fichier d'en-tête (.h) trouvé dans {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu est nul" @@ -2704,11 +2796,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0} : nom de carte incorrect, il doit être de la forme \"paquet:arch:carte\" ou \"paquet:arch:carte:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0} : Paramètre incorrect de l''option « {1} » pour la carte « {2} »" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2719,6 +2806,11 @@ msgstr "{0} : Option incorrecte pour la carte « {1} »" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0} : Option incorrecte, elle doit être de la forme « nom=valeur »" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: valeur non valide pour l'option \"{1}\" du tableau \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fr.properties b/arduino-core/src/processing/app/i18n/Resources_fr.properties index de6c94e958c..fb581bee809 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fr.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fr.properties @@ -16,7 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Alexis Morin , 2012 +# Aestan , 2018 # AntoineM , 2012 # Armel FAUVEAU , 2015 # BlueskyFR , 2015 @@ -25,6 +30,7 @@ # Cedric Octave , 2016 # Cristian Maglie , 2016 # dbarbier , 2012 +# a270031086f2a0d3514bc0cb507b48f6, 2019 # Simon , 2012 # Frederic Pillon , 2017 # Louis Bonicel , 2016 @@ -34,7 +40,7 @@ # R D , 2012 # Simon , 2015 # Vincent Moulin , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:37+0000\nLast-Translator\: Frederic Pillon \nLanguage-Team\: French (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-02-24 19\:35+0000\nLast-Translator\: a270031086f2a0d3514bc0cb507b48f6\nLanguage-Team\: French (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (n\u00e9cessite un red\u00e9marrage d'Arduino) @@ -114,7 +120,7 @@ Additional\ Boards\ Manager\ URLs\:\ =URL de gestionnaire de cartes suppl\u00e9m Afrikaans=Afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Mettre agressivement en cache le noyau compil\u00e9 #: ../../../processing/app/Preferences.java:96 Albanian=albanais @@ -159,6 +165,10 @@ Archive\ sketch\ as\:=Archiver le croquis sous\u00a0\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivage du croquis annul\u00e9 +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Archivage du noyau construit (mise en cache) dans \: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=L'archivage du croquis a \u00e9t\u00e9 annul\u00e9 car\nle croquis n'a pu s'enregistrer correctement. @@ -453,6 +463,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Impossible de retirer la vieille versi #, java-format Could\ not\ replace\ {0}=Impossible de remplacer {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Impossible d'\u00e9crire le fichier de pr\u00e9f\u00e9rences\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Impossible d'archiver le croquis @@ -483,12 +497,18 @@ Data\ Processing=Traitement des donn\u00e9es #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Stockage de donn\u00e9es +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=R\u00e9duire la taille de la police + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=R\u00e9duire l'indentation #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=D\u00e9faut +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Th\u00e8me par d\u00e9faut + #: EditorHeader.java:314 Sketch.java:591 Delete=Supprimer @@ -620,6 +640,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Probl\u00e8me d'obtention du dossier #, java-format Error\ inside\ Serial.{0}()=Erreur dans Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Erreur lors du chargement du th\u00e8me {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -634,6 +658,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Erreur d''ouverture du port s\u00e9rie \u #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Erreur durant l'ouverture du port s\u00e9rie "{0}'. Consultez la documentation\: http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Erreur d'analyse de l'index des biblioth\u00e8ques\: {0}\nEssayez d'ouvrir le gestionnaire de biblioth\u00e8que pour mettre \u00e0 jour l'index des biblioth\u00e8ques. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Erreur de lecture de l'index des biblioth\u00e8ques\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Erreur lors de la lecture du dossier des index de packages\: {0}\n(peut-\u00eatre un probl\u00e8me de permission?) + #: Preferences.java:277 Error\ reading\ preferences=Erreur pendant la lecture des pr\u00e9f\u00e9rences @@ -659,6 +695,9 @@ Error\ while\ burning\ bootloader.=Erreur lors de la gravure de la s\u00e9quence #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Erreur lors de la gravure de la s\u00e9quence d'initialisation \: le param\u00e8tre de configuration \u00ab {0} \u00bb est manquant +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Erreur lors de la gravure du chargeur de d\u00e9marrage\: veuillez s\u00e9lectionner un port s\u00e9rie. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Erreur lors de la compilation \: le param\u00e8tre de configuration \u00ab {0} \u00bb est manquant @@ -687,9 +726,6 @@ Error\ while\ verifying/uploading=Erreur lors de la v\u00e9rification et du tran #: Preferences.java:93 Estonian=estonien -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=estonien (Estonie) - #: Editor.java:516 Examples=Exemples @@ -840,8 +876,8 @@ INCOMPATIBLE=INCOMPATIBLE #: FindReplace.java:96 Ignore\ Case=Ignorer la casse -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignore la biblioth\u00e8que mal nomm\u00e9e +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignorer la biblioth\u00e8que avec un mauvais nom #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignore un croquis mal nomm\u00e9 @@ -856,6 +892,9 @@ Include\ Library=Inclure une biblioth\u00e8que #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Dossier d'installation de l'IDE incorrect +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Augmenter la taille de la police + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Augmenter l'indentation @@ -882,9 +921,9 @@ Installed=Install\u00e9 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Installation des cartes... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Installation de la bilioth\u00e8que\: {0} +Installing\ library\:\ {0}\:{1}=Installation de la biblioth\u00e8que\: {0}\: {1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -905,6 +944,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Biblioth\u00e8que non valide trouv\u00e9 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Guillement invalide\: charact\u00e8re [{0}] de fermeture non trouv\u00e9. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Version non valide '{0}' pour la biblioth\u00e8que dans\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Version non valide {0} + #: Preferences.java:102 Italian=italien @@ -929,9 +977,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=La bibliot #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Une biblioth\u00e8que ne peut utiliser les dossiers 'src' et 'utility' en m\u00eame temps. Double v\u00e9rification {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=La biblioth\u00e8que est d\u00e9ja install\u00e9\: {0} version {1} +Library\ is\ already\ installed\:\ {0}\:{1}=La biblioth\u00e8que est d\u00e9j\u00e0 install\u00e9e\: {0}\: {1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Ligne num\u00e9ro \: @@ -1244,9 +1292,9 @@ Reference=R\u00e9f\u00e9rence #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Supprimer -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Suppression de la biblioth\u00e8que\: {0} +Removing\ library\:\ {0}\:{1}=Suppression de la biblioth\u00e8que\: {0}\: {1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1274,6 +1322,9 @@ Replace\ with\:=Remplacer par\u00a0\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Retir\u00e9 +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=R\u00e9essayez le t\u00e9l\u00e9verser/transf\u00e9rer/envoyer avec un autre port s\u00e9rie? + #: Preferences.java:113 Romanian=roumain @@ -1365,9 +1416,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Le moniteur s\u00e9rie #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Port s\u00e9rie \u00ab\u00a0{0}\u00a0\u00bb non trouv\u00e9. L''avez-vous bien s\u00e9lectionn\u00e9 dans le menu Outils > Port s\u00e9rie\u00a0? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Port s\u00e9rie non s\u00e9lectionn\u00e9. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Port s\u00e9rie {0} introuvable.\nR\u00e9essayer le t\u00e9l\u00e9versement \u00e0 partir d''un autre port s\u00e9rie\u00a0? +Serial\ port\ {0}\ not\ found.=Port s\u00e9rie {0} introuvable. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Ports s\u00e9rie @@ -1385,6 +1440,9 @@ Settings\ issues=Probl\u00e8mes de param\u00e8tres #: Editor.java:641 Show\ Sketch\ Folder=Afficher le dossier des croquis +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Afficher l'horodatage + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Afficher les r\u00e9sultats d\u00e9taill\u00e9s pendant\u00a0\: @@ -1504,6 +1562,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Le fichier \u00ab\u00a0{0}\u00a0\u00bb doit r\u00e9sider dans\nun dossier de croquis nomm\u00e9 \u00ab\u00a0{1}\u00a0\u00bb.\nCr\u00e9er ce dossier, d\u00e9placer le fichier et continuer\u00a0? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=La biblioth\u00e8que "{0}" ne peut pas \u00eatre utilis\u00e9e.\nLes noms de dossier de biblioth\u00e8que doivent commencer par une lettre ou un chiffre suivi de lettres.\nchiffres, tirets, points et traits de soulignement. La longueur maximale est de 63 caract\u00e8res. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La biblioth\u00e8que \u00ab\u00a0{0}\u00a0\u00bb ne peut \u00eatre utilis\u00e9e.\nLes noms de biblioth\u00e8ques ne doivent contenir que des lettres et des chiffres.\n(ASCII seulement sans espace, et ne peuvent commencer par un chiffre) @@ -1528,8 +1590,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Ce croquis contiens d\u00e #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Le dossier croquis a disparu.\nNous allons essayer de r\u00e9enregistrer au m\u00eame emplacement,\nmais seul le code sera conserv\u00e9. -#: ../../../processing/app/Sketch.java:2028 -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.=Le nom du croquis doit \u00eatre chang\u00e9. Les noms de croquis doivent consister\nde caract\u00e8res ASCII et de chiffres (mais ne peuvent commencer par un chiffre).\nIls doivent aussi \u00eatre plus courts que 64 caract\u00e8res. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Le nom de croquis a d\u00fb \u00eatre modifi\u00e9.\nLes noms de croquis doivent commencer par une lettre ou un chiffre suivi de lettres.\nchiffres, tirets, points et traits de soulignement. La longueur maximale est de 63 caract\u00e8res. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Le dossier contenant les croquis n'existe plus.\nArduino va aller \u00e0 l'emplacement\npar d\u00e9faut, et cr\u00e9er un nouveau dossier\nsi n\u00e9cessaire. Arduino cessera ensuite\nde parler de lui-m\u00eame \u00e0 la troisi\u00e8me personne. @@ -1537,6 +1599,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Le dossier de votre carnet de croquis sp\u00e9cifi\u00e9 contiens votre IDE.\nVeuillez choisir un dossier diff\u00e9rent. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Th\u00e8me\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Cette biblioth\u00e8que n'est pas list\u00e9 dans le gestionnaire de biblioth\u00e8que. Vous ne pourrez plus la r\u00e9installer.\nEtes-vous sur de la supprimer? @@ -1871,6 +1936,11 @@ ignoring\ invalid\ font\ size\ {0}=ignore la taille de police invalide {0} #: Editor.java:936 Editor.java:943 name\ is\ null=nom est nul +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=aucun fichier d'en-t\u00eate (.h) trouv\u00e9 dans {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu est nul @@ -1938,10 +2008,6 @@ version\ {0}=version {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0} \: nom de carte incorrect, il doit \u00eatre de la forme "paquet\:arch\:carte" ou "paquet\:arch\:carte\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0} \: Param\u00e8tre incorrect de l''option \u00ab {1} \u00bb pour la carte \u00ab {2} \u00bb - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0} \: Option incorrecte pour la carte \u00ab {1} \u00bb @@ -1950,6 +2016,10 @@ version\ {0}=version {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0} \: Option incorrecte, elle doit \u00eatre de la forme \u00ab nom\=valeur \u00bb +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: valeur non valide pour l'option "{1}" du tableau "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0} \: architecture inconnue diff --git a/arduino-core/src/processing/app/i18n/Resources_fr_CA.po b/arduino-core/src/processing/app/i18n/Resources_fr_CA.po index c48b9988fa2..00f8f1e719c 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fr_CA.po +++ b/arduino-core/src/processing/app/i18n/Resources_fr_CA.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Alexis Morin , 2015 # Alexis Morin , 2012 msgid "" @@ -23,7 +27,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:21+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: French (Canada) (http://www.transifex.com/mbanzi/arduino-ide-15/language/fr_CA/)\n" "MIME-Version: 1.0\n" @@ -211,6 +215,11 @@ msgstr "Archiver le croquis sous :" msgid "Archive sketch canceled." msgstr "Archivage du croquis annulé" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -617,6 +626,11 @@ msgstr "Impossible de retirer la vieille version de {0}" msgid "Could not replace {0}" msgstr "Impossible de remplacer {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Impossible d'archiver le croquis" @@ -660,6 +674,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Réduire l'indentation" @@ -668,6 +686,10 @@ msgstr "Réduire l'indentation" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Supprimer" @@ -843,6 +865,11 @@ msgstr "Problème d'obtention du dossier de données d'Arduino" msgid "Error inside Serial.{0}()" msgstr "Erreur dans Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -862,6 +889,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Erreur de lecture des préférences" @@ -896,6 +942,10 @@ msgstr "Erreur lors de la gravure de la séquence d'initialisation." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -932,10 +982,6 @@ msgstr "" msgid "Estonian" msgstr "Estonien" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Exemples" @@ -1139,9 +1185,9 @@ msgstr "" msgid "Ignore Case" msgstr "Ignorer la casse" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignore la bibliothèque mal nommée" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1167,6 +1213,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Augmenter l'indentation" @@ -1200,9 +1250,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1229,6 +1279,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italien" @@ -1261,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1681,9 +1742,9 @@ msgstr "Référence" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1720,6 +1781,10 @@ msgstr "Remplacer par:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Roumain" @@ -1843,12 +1908,15 @@ msgid "" " Serial Port menu?" msgstr "Port série « {0} » non trouvé. L'avez-vous bien sélectionné dans le menu \nOutils > Port série ?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Port série {0} introuvable.\nRéessayer le téléversement à partir d''un autre port série ?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1871,6 +1939,10 @@ msgstr "Problèmes de paramètres" msgid "Show Sketch Folder" msgstr "Afficher le dossier des croquis" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Afficher les résultats détaillés pendant: " @@ -2042,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Le fichier « {0} » doit résider dans\nun dossier de croquis nommé « {1} ».\nCréer ce dossier, déplacer le fichier et continuer ?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2087,11 +2167,11 @@ msgid "" "but anything besides the code will be lost." msgstr "Le dossier croquis a disparu.\n Nous allons essayer de ré-enregistrer au même emplacement,\nmais tout sauf le code sera perdu." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2109,6 +2189,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2601,6 +2685,12 @@ msgstr "ignore la taille de police invalide {0}" msgid "name is null" msgstr "nom est nul" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu est nul" @@ -2688,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2703,6 +2788,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fr_CA.properties b/arduino-core/src/processing/app/i18n/Resources_fr_CA.properties index 68fce641cb0..64d1a782f8b 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fr_CA.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fr_CA.properties @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Alexis Morin , 2015 # Alexis Morin , 2012 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:21+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: French (Canada) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fr_CA/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr_CA\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: French (Canada) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fr_CA/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fr_CA\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (n\u00e9cessite un red\u00e9marrage d'Arduino) @@ -143,6 +147,10 @@ Archive\ sketch\ as\:=Archiver le croquis sous \: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivage du croquis annul\u00e9 +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=L'archivage du croquis a \u00e9t\u00e9 annul\u00e9 car\nle croquis n'a pu s'enregistrer correctement. @@ -437,6 +445,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Impossible de retirer la vieille versi #, java-format Could\ not\ replace\ {0}=Impossible de remplacer {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Impossible d'archiver le croquis @@ -467,12 +479,18 @@ Cut=Couper #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=R\u00e9duire l'indentation #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Supprimer @@ -604,6 +622,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Probl\u00e8me d'obtention du dossier #, java-format Error\ inside\ Serial.{0}()=Erreur dans Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -618,6 +640,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Erreur d''ouverture du port s\u00e9rie \u #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Erreur de lecture des pr\u00e9f\u00e9rences @@ -643,6 +677,9 @@ Error\ while\ burning\ bootloader.=Erreur lors de la gravure de la s\u00e9quence #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -671,9 +708,6 @@ Error\ while\ printing.=Erreur d'impression. #: Preferences.java:93 Estonian=Estonien -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Exemples @@ -824,8 +858,8 @@ Hungarian=Hongrois #: FindReplace.java:96 Ignore\ Case=Ignorer la casse -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignore la biblioth\u00e8que mal nomm\u00e9e +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignore un croquis mal nomm\u00e9 @@ -840,6 +874,9 @@ Ignoring\ sketch\ with\ bad\ name=Ignore un croquis mal nomm\u00e9 #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Augmenter l'indentation @@ -866,9 +903,9 @@ Indonesian=Indon\u00e9sien #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -889,6 +926,15 @@ Indonesian=Indon\u00e9sien #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italien @@ -913,9 +959,9 @@ Latvian=Letton #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1228,9 +1274,9 @@ Reference=R\u00e9f\u00e9rence #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1258,6 +1304,9 @@ Replace\ with\:=Remplacer par\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Roumain @@ -1349,9 +1398,13 @@ Serial\ Monitor=Moniteur s\u00e9rie #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Port s\u00e9rie \u00ab {0} \u00bb non trouv\u00e9. L'avez-vous bien s\u00e9lectionn\u00e9 dans le menu \nOutils > Port s\u00e9rie ? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Port s\u00e9rie {0} introuvable.\nR\u00e9essayer le t\u00e9l\u00e9versement \u00e0 partir d''un autre port s\u00e9rie ? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1369,6 +1422,9 @@ Settings\ issues=Probl\u00e8mes de param\u00e8tres #: Editor.java:641 Show\ Sketch\ Folder=Afficher le dossier des croquis +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Afficher les r\u00e9sultats d\u00e9taill\u00e9s pendant\: @@ -1488,6 +1544,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=La classe Udp a \u00e9t\u00e9 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Le fichier \u00ab {0} \u00bb doit r\u00e9sider dans\nun dossier de croquis nomm\u00e9 \u00ab {1} \u00bb.\nCr\u00e9er ce dossier, d\u00e9placer le fichier et continuer ? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La biblioth\u00e8que \u00ab {0} \u00bb ne peut \u00eatre utilis\u00e9e.\nLes noms de biblioth\u00e8ques ne doivent contenir que des lettres et des chiffres.\n(ASCII seulement sans espace, et ne peuvent commencer par un chiffre) @@ -1512,8 +1572,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Le dossier croquis a disparu.\n Nous allons essayer de r\u00e9-enregistrer au m\u00eame emplacement,\nmais tout sauf le code sera perdu. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Le dossier des croquis n'existe plus.\nArduino va aller \u00e0 l'emplacement\npar d\u00e9faut, et cr\u00e9er un nouveau dossier\ncroquis si n\u00e9cessaire. Arduino cessera ensuite\nde parler de lui-m\u00eame \u00e0 la troisi\u00e8me personne. @@ -1521,6 +1581,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1855,6 +1918,11 @@ ignoring\ invalid\ font\ size\ {0}=ignore la taille de police invalide {0} #: Editor.java:936 Editor.java:943 name\ is\ null=nom est nul +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu est nul @@ -1922,10 +1990,6 @@ upload=t\u00e9l\u00e9versement #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1934,6 +1998,10 @@ upload=t\u00e9l\u00e9versement #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_fy.po b/arduino-core/src/processing/app/i18n/Resources_fy.po index 62977747e1a..52dae825908 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fy.po +++ b/arduino-core/src/processing/app/i18n/Resources_fy.po @@ -16,13 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Robin van der Vliet , 2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 20:52+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Western Frisian (http://www.transifex.com/mbanzi/arduino-ide-15/language/fy/)\n" "MIME-Version: 1.0\n" @@ -210,6 +214,11 @@ msgstr "Skets argivearje as:" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +625,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -659,6 +673,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -667,6 +685,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Fuortsmite" @@ -842,6 +864,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "Flater yn Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +888,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -895,6 +941,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +981,6 @@ msgstr "" msgid "Estonian" msgstr "Estysk" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estysk (Estlân)" - #: Editor.java:516 msgid "Examples" msgstr "Foarbylden" @@ -1138,8 +1184,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1166,6 +1212,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1199,9 +1249,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1278,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italjaansk" @@ -1260,9 +1321,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1680,9 +1741,9 @@ msgstr "Neislachwurk" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1780,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Roemeensk" @@ -1842,11 +1907,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1870,6 +1938,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2041,6 +2113,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,11 +2166,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2108,6 +2188,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2684,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2687,11 +2777,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2787,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_fy.properties b/arduino-core/src/processing/app/i18n/Resources_fy.properties index e9ef4e25515..c14b651ce19 100644 --- a/arduino-core/src/processing/app/i18n/Resources_fy.properties +++ b/arduino-core/src/processing/app/i18n/Resources_fy.properties @@ -16,8 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Robin van der Vliet , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 20\:52+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Western Frisian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fy/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fy\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Western Frisian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/fy/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: fy\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -142,6 +146,10 @@ Archive\ sketch\ as\:=Skets argivearje as\: #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -436,6 +444,10 @@ Copy\ as\ HTML=Kopiearje as HTML #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -466,12 +478,18 @@ Danish\ (Denmark)=Deensk (Denemark) #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Fuortsmite @@ -603,6 +621,10 @@ Error=Flater #, java-format Error\ inside\ Serial.{0}()=Flater yn Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +639,18 @@ Error\ inside\ Serial.{0}()=Flater yn Serial.{0}() #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -642,6 +676,9 @@ Error\ inside\ Serial.{0}()=Flater yn Serial.{0}() #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +707,6 @@ Error\ inside\ Serial.{0}()=Flater yn Serial.{0}() #: Preferences.java:93 Estonian=Estysk -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estysk (Estl\u00e2n) - #: Editor.java:516 Examples=Foarbylden @@ -823,8 +857,8 @@ Hungarian=Hongaarsk #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -839,6 +873,9 @@ Hungarian=Hongaarsk #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -865,9 +902,9 @@ Indonesian=Yndonezysk #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +925,15 @@ Indonesian=Yndonezysk #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italjaansk @@ -912,9 +958,9 @@ Latvian=Letsk #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1227,9 +1273,9 @@ Reference=Neislachwurk #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1303,9 @@ Replace\ &\ Find=Sykje en ferfange #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Roemeensk @@ -1348,9 +1397,13 @@ Serial\ Monitor=Seri\u00eble monitor #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Seri\u00eble poarten @@ -1368,6 +1421,9 @@ Serial\ ports=Seri\u00eble poarten #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1487,6 +1543,10 @@ Talossan=Talossaansk #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1511,8 +1571,8 @@ Talossan=Talossaansk #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1520,6 +1580,9 @@ Talossan=Talossaansk #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1917,11 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1921,10 +1989,6 @@ unknown\ option\:\ {0}=\u00fbnbekende opsje\: {0} #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1997,10 @@ unknown\ option\:\ {0}=\u00fbnbekende opsje\: {0} #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_gl.po b/arduino-core/src/processing/app/i18n/Resources_gl.po index c4502e67561..6bc2fc6ee1e 100644 --- a/arduino-core/src/processing/app/i18n/Resources_gl.po +++ b/arduino-core/src/processing/app/i18n/Resources_gl.po @@ -16,17 +16,22 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # ccpr1l , 2014 # Diego Prado Gesto <>, 2012 # Marce Villarino , 2013 # Marce Villarino , 2013 +# Suso Martínez , 2018,2020 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 15:20+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2020-05-12 18:30+0000\n" +"Last-Translator: Suso Martínez \n" "Language-Team: Galician (http://www.transifex.com/mbanzi/arduino-ide-15/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,33 +46,33 @@ msgstr " (require reiniciar Arduino)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format msgid " Not used: {0}" -msgstr "" +msgstr "Non usado: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format msgid " Used: {0}" -msgstr "" +msgstr "Usado: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "" +msgstr "Non se atopa 'Keyboard'. Tal vez esqueciches incluir a liña '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" "'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "" +msgstr "Non se atopa 'Mouse'. Tal vez esqueciches incluir a liña '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 msgid "" "'arch' folder is no longer supported! See http://goo.gl/gfFJzU for more " "information" -msgstr "" +msgstr "O cartafol 'arch' xa non está soportada! Máis información en http://goo.gl/gfFJzU" #: Preferences.java:478 msgid "(edit only when Arduino is not running)" -msgstr "(editar só cando Arduino non se esté a executar)" +msgstr "(editar só cando Arduino non se estea a executar)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" @@ -81,7 +86,7 @@ msgstr "" msgid "" "--verbose, --verbose-upload and --verbose-build can only be used together " "with --verify or --upload" -msgstr "" +msgstr "--verbose, --verbose-upload and --verbose-build só poden ser usados xuntos con --verify ou --upload" #: Sketch.java:746 msgid ".pde -> .ino" @@ -130,7 +135,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "" +msgstr "Engade biblioteca .ZIP..." #: Editor.java:650 msgid "Add File..." @@ -171,7 +176,7 @@ msgstr "Ocorreu un erro mentres se intentaba amaña-la codificación do\narquivo #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "" +msgstr "Ocorreu un erro durante a actualización do índice das librerías" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" @@ -213,6 +218,11 @@ msgstr "Arquivar o sketch como:" msgid "Archive sketch canceled." msgstr "Cancelouse o archivado do sketch." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -500,7 +510,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " -msgstr "" +msgstr "Avisos do compilador:" #: Sketch.java:1608 Editor.java:1890 msgid "Compiling sketch..." @@ -520,7 +530,7 @@ msgstr "Copiar como HTML" #: ../../../processing/app/EditorStatus.java:455 msgid "Copy error messages" -msgstr "" +msgstr "Copiar as mensaxes de erro" #: Editor.java:1165 Editor.java:2715 msgid "Copy for Forum" @@ -538,7 +548,7 @@ msgstr "Non se puido copiar a unha ubicación axeitada." #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "Non foi posible crear a carpeta \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -561,7 +571,7 @@ msgstr "Non se pode borrar o ficheiro existente ''{0}''." #: ../../../processing/app/debug/TargetPlatform.java:74 #, java-format msgid "Could not find boards.txt in {0}. Is it pre-1.5?" -msgstr "" +msgstr "Non se atopou boards.txt en {0}. É anterior á versión 1.5?" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:282 #, java-format @@ -619,6 +629,11 @@ msgstr "Non se pode eliminar a versión anterior de {0}" msgid "Could not replace {0}" msgstr "Non se pode reemplazar {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Non foi posíbel arquivar o sketch" @@ -648,11 +663,11 @@ msgstr "Cortar" #: ../../../../../app/src/processing/app/Preferences.java:119 msgid "Czech (Czech Republic)" -msgstr "" +msgstr "Checo (República Checa)" #: ../../../../../app/src/processing/app/Preferences.java:120 msgid "Danish (Denmark)" -msgstr "" +msgstr "Danés (Dinamarca)" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" @@ -662,6 +677,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Diminuír o tamaño da fonte" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Diminuír o sangrado" @@ -670,6 +689,10 @@ msgstr "Diminuír o sangrado" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Borrar" @@ -701,7 +724,7 @@ msgstr "" msgid "" "Do you want to remove {0}?\n" "If you do so you won't be able to use {0} any more." -msgstr "" +msgstr "Queres eliminar {0}?\nSe o fas non poderás volver a usar {0}." #: Editor.java:2064 msgid "Don't Save" @@ -718,7 +741,7 @@ msgstr "Rematado o grabado do cargador de inicio." #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 msgid "Done compiling" -msgstr "" +msgstr "Rematou a compilación" #: Editor.java:1911 Editor.java:1928 msgid "Done compiling." @@ -730,7 +753,7 @@ msgstr "Impresión rematada." #: ../../../processing/app/BaseNoGui.java:514 msgid "Done uploading" -msgstr "" +msgstr "Rematou a subida" #: Editor.java:2395 Editor.java:2431 msgid "Done uploading." @@ -739,7 +762,7 @@ msgstr "Carga rematada." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format msgid "Downloaded {0}kb of {1}kb." -msgstr "" +msgstr "Descargado {0}kb de {1}kb." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 msgid "Downloading boards definitions." @@ -834,7 +857,7 @@ msgstr "Erro compilando" #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format msgid "Error downloading {0}" -msgstr "" +msgstr "Erro descargando {0}" #: Base.java:1674 msgid "Error getting the Arduino data folder." @@ -845,6 +868,11 @@ msgstr "Error obtendo a carpeta de datos de Arduino" msgid "Error inside Serial.{0}()" msgstr "Erro dentro de Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -862,6 +890,25 @@ msgstr "Erro abrindo o porto serie ''{0}''." msgid "" "Error opening serial port ''{0}''. Try consulting the documentation at " "http://playground.arduino.cc/Linux/All#Permission" +msgstr "Erro abrindo o porto serie \"{0}\". Proba a consultar a documentación en http://playground.arduino.cc/Linux/All#Permission" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" msgstr "" #: Preferences.java:277 @@ -898,6 +945,10 @@ msgstr "Erro ao grabar o cargador de inicio." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -934,10 +985,6 @@ msgstr "" msgid "Estonian" msgstr "Estoniano" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Exemplos" @@ -1057,7 +1104,7 @@ msgstr "Galego" #: ../../../../../app/src/processing/app/Preferences.java:176 msgid "Galician (Spain)" -msgstr "" +msgstr "Galego (Galicia)" #: ../../../../../app/src/processing/app/Editor.java:1288 msgid "Galileo Help" @@ -1093,11 +1140,11 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 msgid "Go to line" -msgstr "" +msgstr "Ir á liña" #: ../../../../../app/src/processing/app/Editor.java:1460 msgid "Go to line..." -msgstr "" +msgstr "Ir á liña..." #: Preferences.java:98 msgid "Greek" @@ -1141,9 +1188,9 @@ msgstr "" msgid "Ignore Case" msgstr "Ignorar maiúsculas e minúsculas" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorando nome incorrecto de libraría" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1169,6 +1216,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Aumentar o tamaño da fonte" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Aumentar o sangrado" @@ -1188,23 +1239,23 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 msgid "Install" -msgstr "" +msgstr "Instalar" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 msgid "Installation completed!" -msgstr "" +msgstr "Instalación completada!" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 msgid "Installed" -msgstr "" +msgstr "Instalado" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1231,6 +1282,17 @@ msgstr "Encontrada unha biblioteca inválida en {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italiano" @@ -1263,9 +1325,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1683,9 +1745,9 @@ msgstr "Documentación" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1722,6 +1784,10 @@ msgstr "Reemplazar con:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romanés" @@ -1845,12 +1911,15 @@ msgid "" " Serial Port menu?" msgstr "Porto serie ''{0}'' non atopado. Estás seguro de que seleccionaches o porto correcto do menú Ferramentas > Porto Serie?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "O porto serie {0} non foi atopado\nVolver a tenta-la carga con outro porto serie?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1873,6 +1942,10 @@ msgstr "Problemas de configuración" msgid "Show Sketch Folder" msgstr "Mostrar a carpeta do Sketch" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Mostrar resultado detallado durante: " @@ -2044,6 +2117,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "O ficheiro \"{0}\" debe estar dentro\ndun cartafol de sketchs chamado «{1} x.\nCrear esta cartafol mover este ficheiro e continuar?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2089,11 +2170,11 @@ msgid "" "but anything besides the code will be lost." msgstr "O cartafol do sketch desapareceu.\nHase tentar gardar de novo no mesmo lugar,\npero calquera cousa aparte do código vaise perder." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2111,6 +2192,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2517,7 +2602,7 @@ msgid "" "older version of Arduino, you may need to use Tools -> Fix Encoding & Reload" " to update the sketch to use UTF-8 encoding. If not, you may need to delete " "the bad characters to get rid of this warning." -msgstr "" +msgstr "\"{0}\" contén caracteres non recoñecidos. Se este código foi creado cunha versión antigo de Arduino, pode que teñas que usar Ferramentas -> Arranxar a codificación e recargar para actualizar o sketch usando a codificación UTF-8. Se non, tal vez teñas que borrar os caracteres inválidos para evitar este aviso." #: debug/Compiler.java:409 msgid "" @@ -2580,7 +2665,7 @@ msgstr "compilación " #: ../../../processing/app/NetworkMonitor.java:111 msgid "connected!" -msgstr "" +msgstr "conectado!" #: ../../../../../app/src/processing/app/Editor.java:1352 msgid "http://www.arduino.cc/" @@ -2603,6 +2688,12 @@ msgstr "ignorando tamaño inválido de tipo de letra {0}" msgid "name is null" msgstr "nome é nulo" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu é nulo" @@ -2656,7 +2747,7 @@ msgstr "" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format msgid "{0} must be a folder" -msgstr "" +msgstr "{0} ten que ser unha carpeta" #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format @@ -2690,21 +2781,21 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" -msgstr "" +msgstr "{0}: Opción inválida para a placa \"{1}\"" #: ../../../processing/app/Base.java:502 #, java-format msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_gl.properties b/arduino-core/src/processing/app/i18n/Resources_gl.properties index 8f5c0ce7874..a23d732217a 100644 --- a/arduino-core/src/processing/app/i18n/Resources_gl.properties +++ b/arduino-core/src/processing/app/i18n/Resources_gl.properties @@ -16,34 +16,39 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # ccpr1l , 2014 # Diego Prado Gesto <>, 2012 # Marce Villarino , 2013 # Marce Villarino , 2013 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 15\:20+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Galician (http\://www.transifex.com/mbanzi/arduino-ide-15/language/gl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: gl\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +# Suso Mart\u00ednez , 2018,2020 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2020-05-12 18\:30+0000\nLast-Translator\: Suso Mart\u00ednez \nLanguage-Team\: Galician (http\://www.transifex.com/mbanzi/arduino-ide-15/language/gl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: gl\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (require reiniciar Arduino) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -!\ Not\ used\:\ {0}= +\ Not\ used\:\ {0}=Non usado\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format -!\ Used\:\ {0}= +\ Used\:\ {0}=Usado\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -!'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=Non se atopa 'Keyboard'. Tal vez esqueciches incluir a li\u00f1a '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -!'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?=Non se atopa 'Mouse'. Tal vez esqueciches incluir a li\u00f1a '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -!'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information= +'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information=O cartafol 'arch' xa non est\u00e1 soportada\! M\u00e1is informaci\u00f3n en http\://goo.gl/gfFJzU #: Preferences.java:478 -(edit\ only\ when\ Arduino\ is\ not\ running)=(editar s\u00f3 cando Arduino non se est\u00e9 a executar) +(edit\ only\ when\ Arduino\ is\ not\ running)=(editar s\u00f3 cando Arduino non se estea a executar) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 !(legacy)= @@ -52,7 +57,7 @@ !--curdir\ no\ longer\ supported= #: ../../../processing/app/Base.java:468 -!--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload= +--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload and --verbose-build s\u00f3 poden ser usados xuntos con --verify ou --upload #: Sketch.java:746 .pde\ ->\ .ino=.pde -> .ino @@ -85,7 +90,7 @@ About\ Arduino=Acerca de Arduino !Acoli= #: ../../../../../app/src/processing/app/Base.java:1177 -!Add\ .ZIP\ Library...= +Add\ .ZIP\ Library...=Engade biblioteca .ZIP... #: Editor.java:650 Add\ File...=Engadir un ficheiro... @@ -114,7 +119,7 @@ Add\ File...=Engadir un ficheiro... An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Ocorreu un erro mentres se intentaba ama\u00f1a-la codificaci\u00f3n do\narquivo. Non intentes gardar este sketch porque pode sobreescribir a\nversi\u00f3n anterior. Utiliza Abrir para volver a abrir o sketch e intentalo de novo.\n #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -!An\ error\ occurred\ while\ updating\ libraries\ index\!= +An\ error\ occurred\ while\ updating\ libraries\ index\!=Ocorreu un erro durante a actualizaci\u00f3n do \u00edndice das librer\u00edas #: ../../../processing/app/BaseNoGui.java:528 !An\ error\ occurred\ while\ uploading\ the\ sketch= @@ -145,6 +150,10 @@ Archive\ sketch\ as\:=Arquivar o sketch como\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Cancelouse o archivado do sketch. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Cancelouse o arquivado do sketch porque\nnon foi pos\u00edbel gardalo correctamente. @@ -354,7 +363,7 @@ Comment/Uncomment=Comentar/Descomentar !Communication= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -!Compiler\ warnings\:\ = +Compiler\ warnings\:\ =Avisos do compilador\: #: Sketch.java:1608 Editor.java:1890 Compiling\ sketch...=Estase a compilar o sketch... @@ -369,7 +378,7 @@ Copy=Copiar Copy\ as\ HTML=Copiar como HTML #: ../../../processing/app/EditorStatus.java:455 -!Copy\ error\ messages= +Copy\ error\ messages=Copiar as mensaxes de erro #: Editor.java:1165 Editor.java:2715 Copy\ for\ Forum=Copiar para o foro @@ -383,7 +392,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=Non se puido copiar a unha ubicaci\u0 #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=Non foi posible crear a carpeta "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=Non se puido crea-la carpeta do sketch. @@ -401,7 +410,7 @@ Could\ not\ delete\ the\ existing\ ''{0}''\ file.=Non se pode borrar o ficheiro #: ../../../processing/app/debug/TargetPlatform.java:74 #, java-format -!Could\ not\ find\ boards.txt\ in\ {0}.\ Is\ it\ pre-1.5?= +Could\ not\ find\ boards.txt\ in\ {0}.\ Is\ it\ pre-1.5?=Non se atopou boards.txt en {0}. \u00c9 anterior \u00e1 versi\u00f3n 1.5? #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:282 #, java-format @@ -439,6 +448,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Non se pode eliminar a versi\u00f3n an #, java-format Could\ not\ replace\ {0}=Non se pode reemplazar {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Non foi pos\u00edbel arquivar o sketch @@ -458,10 +471,10 @@ Croatian=Croata Cut=Cortar #: ../../../../../app/src/processing/app/Preferences.java:119 -!Czech\ (Czech\ Republic)= +Czech\ (Czech\ Republic)=Checo (Rep\u00fablica Checa) #: ../../../../../app/src/processing/app/Preferences.java:120 -!Danish\ (Denmark)= +Danish\ (Denmark)=Dan\u00e9s (Dinamarca) #: ../../../../../arduino-core/src/processing/app/I18n.java:36 !Data\ Processing= @@ -469,12 +482,18 @@ Cut=Cortar #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Diminu\u00edr o tama\u00f1o da fonte + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Diminu\u00edr o sangrado #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Borrar @@ -495,7 +514,7 @@ Discard\ all\ changes\ and\ reload\ sketch?=Descartar t\u00f3dolos cambios e rec #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format -!Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.= +Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.=Queres eliminar {0}?\nSe o fas non poder\u00e1s volver a usar {0}. #: Editor.java:2064 Don't\ Save=Non gardar @@ -508,7 +527,7 @@ Done\ burning\ bootloader.=Rematado o grabado do cargador de inicio. #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 -!Done\ compiling= +Done\ compiling=Rematou a compilaci\u00f3n #: Editor.java:1911 Editor.java:1928 Done\ compiling.=Rematouse a compilaci\u00f3n. @@ -517,14 +536,14 @@ Done\ compiling.=Rematouse a compilaci\u00f3n. Done\ printing.=Impresi\u00f3n rematada. #: ../../../processing/app/BaseNoGui.java:514 -!Done\ uploading= +Done\ uploading=Rematou a subida #: Editor.java:2395 Editor.java:2431 Done\ uploading.=Carga rematada. #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format -!Downloaded\ {0}kb\ of\ {1}kb.= +Downloaded\ {0}kb\ of\ {1}kb.=Descargado {0}kb de {1}kb. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 !Downloading\ boards\ definitions.= @@ -597,7 +616,7 @@ Error\ compiling.=Erro compilando #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format -!Error\ downloading\ {0}= +Error\ downloading\ {0}=Erro descargando {0} #: Base.java:1674 Error\ getting\ the\ Arduino\ data\ folder.=Error obtendo a carpeta de datos de Arduino @@ -606,6 +625,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Error obtendo a carpeta de datos de #, java-format Error\ inside\ Serial.{0}()=Erro dentro de Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -618,7 +641,19 @@ Error\ opening\ serial\ port\ ''{0}''.=Erro abrindo o porto serie ''{0}''. #: ../../../processing/app/Serial.java:119 #, java-format -!Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Erro abrindo o porto serie "{0}". Proba a consultar a documentaci\u00f3n en http\://playground.arduino.cc/Linux/All\#Permission + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= #: Preferences.java:277 Error\ reading\ preferences=Erro lendo as preferencias @@ -645,6 +680,9 @@ Error\ while\ burning\ bootloader.=Erro ao grabar o cargador de inicio. #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -673,9 +711,6 @@ Error\ while\ printing.=Erro na impresi\u00f3n. #: Preferences.java:93 Estonian=Estoniano -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Exemplos @@ -765,7 +800,7 @@ Frequently\ Asked\ Questions=Preguntas frecuentes Galician=Galego #: ../../../../../app/src/processing/app/Preferences.java:176 -!Galician\ (Spain)= +Galician\ (Spain)=Galego (Galicia) #: ../../../../../app/src/processing/app/Editor.java:1288 !Galileo\ Help= @@ -791,10 +826,10 @@ Getting\ Started=Comezando !Global\ variables\ use\ {0}\ bytes\ of\ dynamic\ memory.= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 -!Go\ to\ line= +Go\ to\ line=Ir \u00e1 li\u00f1a #: ../../../../../app/src/processing/app/Editor.java:1460 -!Go\ to\ line...= +Go\ to\ line...=Ir \u00e1 li\u00f1a... #: Preferences.java:98 Greek=Grego @@ -826,8 +861,8 @@ Hungarian=H\u00fangaro #: FindReplace.java:96 Ignore\ Case=Ignorar mai\u00fasculas e min\u00fasculas -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorando nome incorrecto de librar\u00eda +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorando sketch con nome incorrecto @@ -842,6 +877,9 @@ In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Aumentar o tama\u00f1o da fonte + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Aumentar o sangrado @@ -857,20 +895,20 @@ Indonesian=Indonesio #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:78 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 -!Install= +Install=Instalar #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 -!Installation\ completed\!= +Installation\ completed\!=Instalaci\u00f3n completada\! #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 -!Installed= +Installed=Instalado #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -891,6 +929,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Encontrada unha biblioteca inv\u00e1lida #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italiano @@ -915,9 +962,9 @@ Latvian=Let\u00f3n #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1230,9 +1277,9 @@ Reference=Documentaci\u00f3n #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1260,6 +1307,9 @@ Replace\ with\:=Reemplazar con\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Roman\u00e9s @@ -1351,9 +1401,13 @@ Serial\ Monitor=Monitor o porto serie #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Porto serie ''{0}'' non atopado. Est\u00e1s seguro de que seleccionaches o porto correcto do men\u00fa Ferramentas > Porto Serie? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=O porto serie {0} non foi atopado\nVolver a tenta-la carga con outro porto serie? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1371,6 +1425,9 @@ Settings\ issues=Problemas de configuraci\u00f3n #: Editor.java:641 Show\ Sketch\ Folder=Mostrar a carpeta do Sketch +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Mostrar resultado detallado durante\: @@ -1490,6 +1547,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=A clase Udp foi renomeada a Et #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=O ficheiro "{0}" debe estar dentro\ndun cartafol de sketchs chamado \u00ab{1} x.\nCrear esta cartafol mover este ficheiro e continuar? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=A librar\u00eda "{0}" non se pode usar.\nOs nomes de librar\u00eda deben conter soamente letras b\u00e1sicas e n\u00fameros\n(S\u00f3 ASCII sen espazos, e non pode comezar con un n\u00famero). @@ -1514,8 +1575,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=O cartafol do sketch desapareceu.\nHase tentar gardar de novo no mesmo lugar,\npero calquera cousa aparte do c\u00f3digo vaise perder. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=A carpeta Sketchbook xa non existe.\nArduino cambiar\u00e1 \u00e1 ubicaci\u00f3n predeterminada\ndo Sketchbook, e crear\u00e1 unha nova carpeta Sketchbook\nse fose necesario. Arduino despois deixar\u00e1 de falar de si mesmo\nen terceira persoa. @@ -1523,6 +1584,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1809,7 +1873,7 @@ Zip\ doesn't\ contain\ a\ library=O arquivo zip non cont\u00e9n unha biblioteca #: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 #, java-format -!"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.= +"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.="{0}" cont\u00e9n caracteres non reco\u00f1ecidos. Se este c\u00f3digo foi creado cunha versi\u00f3n antigo de Arduino, pode que te\u00f1as que usar Ferramentas -> Arranxar a codificaci\u00f3n e recargar para actualizar o sketch usando a codificaci\u00f3n UTF-8. Se non, tal vez te\u00f1as que borrar os caracteres inv\u00e1lidos para evitar este aviso. #: debug/Compiler.java:409 \nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nDesde Arduino 0019, a librar\u00eda de Ethernet depende da librar\u00eda SPI.\nParece que est\u00e1s a usar esa librar\u00eda ou algunha outra librar\u00eda que depende da librar\u00eda SPI.\n\n @@ -1839,7 +1903,7 @@ baud=baudio compilation\ =compilaci\u00f3n #: ../../../processing/app/NetworkMonitor.java:111 -!connected\!= +connected\!=conectado\! #: ../../../../../app/src/processing/app/Editor.java:1352 !http\://www.arduino.cc/= @@ -1857,6 +1921,11 @@ ignoring\ invalid\ font\ size\ {0}=ignorando tama\u00f1o inv\u00e1lido de tipo d #: Editor.java:936 Editor.java:943 name\ is\ null=nome \u00e9 nulo +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu \u00e9 nulo @@ -1898,7 +1967,7 @@ upload=carga #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format -!{0}\ must\ be\ a\ folder= +{0}\ must\ be\ a\ folder={0} ten que ser unha carpeta #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format @@ -1924,18 +1993,18 @@ upload=carga #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format -!{0}\:\ Invalid\ option\ for\ board\ "{1}"= +{0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Opci\u00f3n inv\u00e1lida para a placa "{1}" #: ../../../processing/app/Base.java:502 #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_gl_ES.po b/arduino-core/src/processing/app/i18n/Resources_gl_ES.po index 11cdd4f503a..99f16bb0838 100644 --- a/arduino-core/src/processing/app/i18n/Resources_gl_ES.po +++ b/arduino-core/src/processing/app/i18n/Resources_gl_ES.po @@ -16,16 +16,21 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Alejandro Dafonte , 2018-2019 # Nemigo Galiza , 2017 -# Onyrosgaming, 2016 -# Xurxo Guerra Perez , 2015,2017 +# 8f584766963ace0a9c30ccdf3426b35e_685a338, 2016 +# Xurxo Guerra Perez , 2015,2017-2018 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-22 00:56+0000\n" -"Last-Translator: Xurxo Guerra Perez \n" +"PO-Revision-Date: 2019-10-08 15:42+0000\n" +"Last-Translator: Alejandro Dafonte \n" "Language-Team: Galician (Spain) (http://www.transifex.com/mbanzi/arduino-ide-15/language/gl_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -97,12 +102,12 @@ msgstr " Do you " "want to save changes to this sketch
before closing?

If you don't " "save, your changes will be lost." -msgstr "" +msgstr " မပိá€á€ºá€á€„် သင် ဒီ ပုံကြမ်း á€á€½á€„် ပြောင်းလဲထားသည်များကို
သိမ်းဆည်းထားá€á€»á€„်ပါသလား?

အကယ်á သင်မသိမ်းဆည်းထားပါက သင့်ပြောင်းလဲထားမှုများမှာ ပျောက်ဆုံးသွားပါလိမ့်မည်á‹" #: Editor.java:2169 #, java-format msgid "A folder named \"{0}\" already exists. Can't open sketch." -msgstr "" +msgstr "\"{0}\" အမည်ရသော ဖိုင်á€á€½á€² á€á€…်á€á€½á€²á€™á€¾á€¬ ရှိပြီးဖြစ်သည်ዠပုံကြမ်း ကို ဖွင့်မရပါá‹" #: Base.java:2690 #, java-format msgid "A library named {0} already exists" -msgstr "" +msgstr "{0} အမည်ရသော library á€á€…်á€á€¯á€™á€¾á€¬ ရှိပြီးဖြစ်သည်" #: UpdateCheck.java:103 msgid "" "A new version of Arduino is available,\n" "would you like to visit the Arduino download page?" -msgstr "" +msgstr "Arduino ဗားရှင်းအသစ်ကို ရရှိနိုင်ပါပြီá‹\nArduino ဒေါင်းလုá€á€ºá€…ာမျက်နှာကို သင်သွားရောက်ကြည့်ရှုလိုပါသလား?" #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format msgid "A newer {0} package is available" -msgstr "" +msgstr "{0} အထုပ်သစ်ကို ရရှိနိုင်ပါပြီ" #: ../../../../../app/src/processing/app/Base.java:2307 msgid "A subfolder of your sketchbook is not a valid library" -msgstr "" +msgstr "သင့်ပုံကြမ်းစာအုပ် á ဖိုင်á€á€½á€²á€á€½á€² á€á€…်á€á€¯á€™á€¾á€¬Â á€™á€¾á€”်ကန်သော library မဟုá€á€ºá€•ါ" #: Editor.java:1116 msgid "About Arduino" -msgstr "" +msgstr "Arduino á အကြောင်း" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" @@ -127,19 +132,19 @@ msgstr "" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "" +msgstr ".ZIP Library ကို ထည့်ပါ..." #: Editor.java:650 msgid "Add File..." -msgstr "" +msgstr "ဖိုင် ကို ထည့်ပါ..." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "" +msgstr "အပိုဆောင်းဘုá€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ စီမံá€á€”့်á€á€½á€²á€žá€° á€á€€á€ºá€˜á€ºá€œá€­á€•်စာများ" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "" +msgstr "အပိုဆောင်းဘုá€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ စီမံá€á€”့်á€á€½á€²á€žá€° á€á€€á€ºá€˜á€ºá€œá€­á€•်စာများ:" #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" @@ -157,38 +162,38 @@ msgstr "အယ်လ်ဘာနီရမ်ဘာသာ" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 msgid "All" -msgstr "" +msgstr "အားလုံး" #: tools/FixEncoding.java:77 msgid "" "An error occurred while trying to fix the file encoding.\n" "Do not attempt to save this sketch as it may overwrite\n" "the old version. Use Open to re-open the sketch and try again.\n" -msgstr "" +msgstr "ဖိုင် သိမ်းဆည်းပုံကို ပြုပြင်ဖို့ကြိုးစားနေစဉ် အမှားá€á€½á€±á€·á€žá€Šá€ºá‹\nဒီ ပုံကြမ်း ကို သိမ်းဆည်းရန် မကြိုးပမ်းပါနှင့်ዠမဟုá€á€ºá€•ါက ဗားရှင်းအဟောင်းပေါ်á€á€½á€„် \nထပ်ရေးမိသွားပါမည်ዠဒီ ပုံကြမ်း ကို ပြန်ဖွင့်ဖို့အá€á€½á€€á€º အဖွင့်ကိုသုံးပြီး ထပ်မံကြိုးစားပါá‹\n" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "" +msgstr "libraries အညွှန်းကို ပြုပြင်မွမ်းမံနေစဉ် အမှားá€á€½á€±á€·á€žá€Šá€º!" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" -msgstr "" +msgstr "ပုံကြမ်း ကို အပ်လုဒ်လုပ်နေစဉ် အမှားá€á€½á€±á€·á€žá€Šá€º" #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "An error occurred while verifying the sketch" -msgstr "" +msgstr "ပုံကြမ်း ကို မှန်ကြောင်းအá€á€Šá€ºá€•ြုပေးနေစဉ် အမှားá€á€½á€±á€·á€žá€Šá€º" #: ../../../processing/app/BaseNoGui.java:521 msgid "An error occurred while verifying/uploading the sketch" -msgstr "" +msgstr "ပုံကြမ်း ကို မှန်ကြောင်းအá€á€Šá€ºá€•ြုပေး/အပ်လုဒ်လုပ်နေစဉ် အမှားá€á€½á€±á€·á€žá€Šá€º" #: Base.java:228 msgid "" "An unknown error occurred while trying to load\n" "platform-specific code for your machine." -msgstr "" +msgstr "စက်ယန္á€á€›á€¬á€¸á€¡á€á€½á€€á€º platform-specific ကုဒ် ကို\nကြိုးစားပြီးá€á€„်နေစဉ် အမည်မသိသောအမှားကို á€á€½á€±á€·á€žá€Šá€ºá‹" #: Preferences.java:85 msgid "Arabic" @@ -200,14 +205,19 @@ msgstr "အာရဂိုးဘာသာ" #: tools/Archiver.java:48 msgid "Archive Sketch" -msgstr "" +msgstr "ပုံကြမ်း ကို မှá€á€ºá€á€™á€ºá€¸á€á€„်သည်" #: tools/Archiver.java:109 msgid "Archive sketch as:" -msgstr "" +msgstr "ပုံကြမ်း မှá€á€ºá€á€™á€ºá€¸á€á€„်မှုမှာ အောက်ပါအá€á€­á€¯á€„်းဖြစ်သည် :" #: tools/Archiver.java:139 msgid "Archive sketch canceled." +msgstr "ပုံကြမ်း မှá€á€ºá€á€™á€ºá€¸á€á€„်မှုကို ပယ်ဖျက်သည်á‹" + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" msgstr "" #: tools/Archiver.java:75 @@ -218,15 +228,15 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" -msgstr "" +msgstr "အာဒူá€á€®á€¸á€”ို" #: ../../../processing/app/I18n.java:83 msgid "Arduino ARM (32-bits) Boards" -msgstr "" +msgstr "အာဒူá€á€®á€¸á€”ို ARM (32-bits) ဘုá€á€ºá€™á€»á€¬á€¸" #: ../../../processing/app/I18n.java:82 msgid "Arduino AVR Boards" -msgstr "" +msgstr "အာဒူá€á€®á€¸á€”ို AVR ဘုá€á€ºá€™á€»á€¬á€¸" #: Editor.java:2137 msgid "" @@ -248,38 +258,38 @@ msgstr "" #: ../../../processing/app/EditorStatus.java:471 msgid "Arduino: " -msgstr "အာဒူအီနို:" +msgstr "အာဒွီနို :" #: Sketch.java:588 #, java-format msgid "Are you sure you want to delete \"{0}\"?" -msgstr "" +msgstr "သင် \"{0}\" ကို ဖျက်ပစ်ရန် သေá€á€»á€¬á€•ါသလား?" #: Sketch.java:587 msgid "Are you sure you want to delete this sketch?" -msgstr "" +msgstr "သင် ဤ ပုံကြမ်း ကို ဖျက်ပစ်ရန် သေá€á€»á€¬á€•ါသလား?" #: ../../../processing/app/Base.java:356 msgid "Argument required for --board" -msgstr "" +msgstr "--ဘုá€á€º အá€á€½á€€á€º အဆိုပြုá€á€»á€€á€º လိုအပ်ပါသည်" #: ../../../processing/app/Base.java:363 msgid "Argument required for --port" -msgstr "" +msgstr "--port အá€á€½á€€á€º အဆိုပြုá€á€»á€€á€º လိုအပ်ပါသည်" #: ../../../processing/app/Base.java:377 msgid "Argument required for --pref" -msgstr "" +msgstr "--pref အá€á€½á€€á€º အဆိုပြုá€á€»á€€á€º လိုအပ်ပါသည်" #: ../../../processing/app/Base.java:384 msgid "Argument required for --preferences-file" -msgstr "" +msgstr "--á€á€»á€­á€”်ညှိá€á€»á€€á€ºá€™á€»á€¬á€¸-ဖိုင် အá€á€½á€€á€º အဆိုပြုá€á€»á€€á€º လိုအပ်ပါသည်" #: ../../../processing/app/helpers/CommandlineParser.java:76 #: ../../../processing/app/helpers/CommandlineParser.java:83 #, java-format msgid "Argument required for {0}" -msgstr "" +msgstr "{0} အá€á€½á€€á€º အဆိုပြုá€á€»á€€á€º လိုအပ်ပါသည်" #: ../../../processing/app/Preferences.java:137 msgid "Armenian" @@ -291,7 +301,7 @@ msgstr "အောက်စ်á€á€°á€›á€®á€›á€”်ဘာသာ" #: ../../../processing/app/debug/Compiler.java:145 msgid "Authorization required" -msgstr "" +msgstr "á€á€½á€„့်ပြုá€á€»á€€á€º လိုအပ်ပါသည်" #: tools/AutoFormat.java:91 msgid "Auto Format" @@ -303,7 +313,7 @@ msgstr "လိုလျောက်ပုံစံá€á€»á€•ြီးဆုံး #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 msgid "Auto-detect proxy settings" -msgstr "" +msgstr "လိုလျောက်ရှာá€á€½á€±á€· ကြားá€á€¶á€á€»á€­á€”်ညှိá€á€»á€€á€ºá€™á€»á€¬á€¸" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 msgid "Automatic" @@ -337,22 +347,22 @@ msgstr "ဘစ်လာရုစ်ဘာသာ" #: ../../../processing/app/Base.java:1433 #: ../../../processing/app/Editor.java:707 msgid "Board" -msgstr "အပြား" +msgstr "ဘုá€á€º" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "ဘုá€á€ºá€¡á€á€»á€€á€ºá€¡á€œá€€á€º" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "" +msgstr "{0} ရှိ ဘုá€á€ºá€™á€¾á€¬ မရရှိနိုင်á€á€±á€¬á€·á€•ါ" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format msgid "Board {0} (platform {1}, package {2}) is unknown" -msgstr "" +msgstr "{0} ဘုá€á€º (platform {1}, အထုပ် {2}) ကို မသိပါ" #: ../../../processing/app/debug/TargetBoard.java:42 #, java-format @@ -363,7 +373,7 @@ msgstr "" #: ../../../processing/app/EditorStatus.java:472 msgid "Board: " -msgstr "အပြား:" +msgstr "ဘုá€á€º :" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Boards Manager" @@ -513,42 +523,42 @@ msgstr "ကူးယူ" #: Editor.java:1177 Editor.java:2723 msgid "Copy as HTML" -msgstr "" +msgstr "HTML လို ကူးယူ" #: ../../../processing/app/EditorStatus.java:455 msgid "Copy error messages" -msgstr "" +msgstr "မက်ဆေ့á€á€»á€ºá€¡á€™á€¾á€¬á€¸á€™á€»á€¬á€¸á€€á€­á€¯ ကူးယူ" #: Editor.java:1165 Editor.java:2715 msgid "Copy for Forum" -msgstr "" +msgstr "ဖိုရမ်အá€á€½á€€á€º ကူးယူ" #: Sketch.java:1089 #, java-format msgid "Could not add ''{0}'' to the sketch." -msgstr "" +msgstr "\"{0}\" ကို ပုံကြမ်း ထဲသို့ မထည့်နိုင်á‹" #: Editor.java:2188 msgid "Could not copy to a proper location." -msgstr "" +msgstr "သင့်လျော်သောနေရာသို့ မကူးထည့်နိုင်á‹" #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "\"{0}\" လမ်းညွှန်ကို မဖန်á€á€®á€¸á€”ိုင်" #: Editor.java:2179 msgid "Could not create the sketch folder." -msgstr "" +msgstr "ပုံကြမ်း ဖိုင်á€á€½á€² ကို မဖန်á€á€®á€¸á€”ိုင်á‹" #: Editor.java:2206 msgid "Could not create the sketch." -msgstr "" +msgstr "ပုံကြမ်း ကို မဖန်á€á€®á€¸á€”ိုင်á‹" #: Sketch.java:617 #, java-format msgid "Could not delete \"{0}\"." -msgstr "" +msgstr "\"{0}\" ကို မဖျက်ပစ်နိုင်á‹" #: Sketch.java:1066 #, java-format @@ -616,6 +626,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -653,18 +668,26 @@ msgstr "ဒိန်းမá€á€º(ဒိန်းမá€á€º)ဘာသာ" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" -msgstr "" +msgstr "ဒေá€á€¬ ကိုင်á€á€½á€šá€ºá€‘ိန်းသိမ်းမှု" #: ../../../../../arduino-core/src/processing/app/I18n.java:35 msgid "Data Storage" -msgstr "" +msgstr "အá€á€»á€€á€ºá€¡á€œá€€á€º သိုလှောင်နိုင်မှု" + +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "ဖောင့်အရွယ်လျှော့" #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" -msgstr "" +msgstr "Indent လျှော့á€á€»á€žá€Šá€º" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 msgid "Default" +msgstr "မူလ" + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" msgstr "" #: EditorHeader.java:314 Sketch.java:591 @@ -687,78 +710,78 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:29 msgid "Display" -msgstr "" +msgstr "ပြသ" #: ../../../processing/app/Preferences.java:438 msgid "Display line numbers" -msgstr "" +msgstr "စာကြောင်းနံပါá€á€ºá€•ြ" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format msgid "" "Do you want to remove {0}?\n" "If you do so you won't be able to use {0} any more." -msgstr "" +msgstr "သင် {0} ကို ဖယ်ရှားá€á€»á€„်ပါသလား?\nလုပ်မည်ဆိုလျှင် သင် {0} ကို ဘယ်á€á€±á€¬á€·á€™á€¾á€žá€¯á€¶á€¸á€”ိုင်á€á€±á€¬á€·á€™á€Šá€º မဟုá€á€ºá€•ါá‹" #: Editor.java:2064 msgid "Don't Save" -msgstr "" +msgstr "မသိမ်းဆည်းပါ" #: Editor.java:2275 Editor.java:2311 msgid "Done Saving." -msgstr "" +msgstr "သိမ်းဆည်းပြီးá‹" #: Editor.java:2510 msgid "Done burning bootloader." -msgstr "" +msgstr "ဘုလုá€á€ºá€á€¬á€›á€­á€¯á€€á€ºá€žá€½á€„်းပြီး" #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 msgid "Done compiling" -msgstr "" +msgstr "ဘာသာပြန်ပြီး" #: Editor.java:1911 Editor.java:1928 msgid "Done compiling." -msgstr "" +msgstr "ဘာသာပြန်ပြီးá‹" #: Editor.java:2564 msgid "Done printing." -msgstr "" +msgstr "ပုံနှိပ်ပြီးá‹" #: ../../../processing/app/BaseNoGui.java:514 msgid "Done uploading" -msgstr "" +msgstr "အပ်လုဒ်ပြီး" #: Editor.java:2395 Editor.java:2431 msgid "Done uploading." -msgstr "" +msgstr "အပ်လုဒ်ပြီးá‹" #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format msgid "Downloaded {0}kb of {1}kb." -msgstr "" +msgstr "{1}ကီလိုဘိုက်á€á€½á€„် {0}ကီလိုဘိုက်ကို ဒေါင်းပြီးá‹" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 msgid "Downloading boards definitions." -msgstr "" +msgstr "ဘုá€á€ºá€™á€»á€¬á€¸áသá€á€ºá€™á€¾á€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ဒေါင်းလုá€á€ºá€†á€½á€²á€…ဉ်" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 msgid "Downloading libraries index..." -msgstr "" +msgstr "libraries အညွန်း ဒေါင်းလုá€á€ºá€†á€½á€²á€…ဉ်..." #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 #, java-format msgid "Downloading library: {0}" -msgstr "" +msgstr "library ဒေါင်းလုဒ်ဆွဲစဉ် : {0}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 msgid "Downloading platforms index..." -msgstr "" +msgstr "ပလက်ဖောင်းများအညွန်း ဒေါင်းလုá€á€ºá€†á€½á€²á€…ဉ်..." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:113 #, java-format msgid "Downloading tools ({0}/{1})." -msgstr "" +msgstr "ကိရိယာများဒေါင်းလုá€á€ºá€†á€½á€²á€…ဉ် ({0}/{1})á‹" #: Preferences.java:91 msgid "Dutch" @@ -770,7 +793,7 @@ msgstr "ဒá€á€ºá€á€»á€º(နယ်သာလန်)ဘာသာ" #: ../../../../../app/src/processing/app/Editor.java:1309 msgid "Edison Help" -msgstr "" +msgstr "အက်ဒီဆင် အကူအညီ" #: Editor.java:1130 msgid "Edit" @@ -778,15 +801,15 @@ msgstr "á€á€Šá€ºá€¸á€–ြá€á€º" #: Preferences.java:370 msgid "Editor font size: " -msgstr "" +msgstr "အယ်ဒီá€á€¬ ဖောင့်အရွယ် :" #: Preferences.java:353 msgid "Editor language: " -msgstr "" +msgstr "အယ်ဒီá€á€¬ ဘာသာစကား :" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 msgid "Enable Code Folding" -msgstr "" +msgstr "ကုဒ် Folding ပြုလုပ်နိုင်" #: Preferences.java:92 msgid "English" @@ -799,11 +822,11 @@ msgstr "အင်္ဂလိပ်(ယူကေ)ဘာသာ" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 msgid "Enter a comma separated list of urls" -msgstr "" +msgstr "á€á€€á€ºá€˜á€ºá€œá€­á€•်စာစာရင်းá€á€½á€„် ပုဒ်ကလေးá€á€¼á€¬á€¸á€•ါá‹" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 msgid "Enter additional URLs, one for each row" -msgstr "" +msgstr "á€á€…်á€á€”်းá€á€»á€„်းစီအလိုက် á€á€€á€ºá€˜á€ºá€œá€­á€•်စာထပ်á€á€­á€¯á€¸á€‘ည့်ပါ" #: Editor.java:1062 msgid "Environment" @@ -817,16 +840,16 @@ msgstr "အမှား" #: Sketch.java:1065 Sketch.java:1088 msgid "Error adding file" -msgstr "" +msgstr "ဖိုင် ထပ်á€á€­á€¯á€¸á€á€¼á€„်း အမှားပါသည်" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format msgid "Error compiling for board {0}." -msgstr "" +msgstr "ဘုá€á€º {0} အá€á€½á€€á€º ဘာသာပြန်á€á€¼á€„်းအမှားပါသည်á‹" #: debug/Compiler.java:369 msgid "Error compiling." -msgstr "" +msgstr "ဘာသာပြန်á€á€¼á€„်းအမှားပါသည်á‹" #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format @@ -842,17 +865,22 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 #, java-format msgid "Error loading {0}" -msgstr "" +msgstr "á€á€„်á€á€¼á€„်းအမှား {0}" #: Serial.java:181 #, java-format msgid "Error opening serial port ''{0}''." -msgstr "" +msgstr "serial port \"{0}\" ကို ဖွင့်á€á€¼á€„်းအမှားá‹" #: ../../../processing/app/Serial.java:119 #, java-format @@ -861,6 +889,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -895,6 +942,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +982,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "ဥပမာများ" @@ -1022,7 +1069,7 @@ msgstr "ရှာဖွေ:" #: ../../../processing/app/Preferences.java:147 msgid "Finnish" -msgstr "" +msgstr "ဖင်လန်ဘာသာ" #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 @@ -1046,7 +1093,7 @@ msgstr "ပြင်သစ်ဘာသာ" #: Editor.java:1097 msgid "Frequently Asked Questions" -msgstr "မကြာá€á€á€™á€±á€¸á€™á€±á€¸á€á€½á€”်းများ" +msgstr "မကြာá€á€á€™á€±á€¸á€žá€±á€¬á€™á€±á€¸á€á€½á€”်းများ" #: Preferences.java:96 msgid "Galician" @@ -1098,11 +1145,11 @@ msgstr "" #: Preferences.java:98 msgid "Greek" -msgstr "" +msgstr "ဂရိဘာသာ" #: ../../../processing/app/Preferences.java:95 msgid "Hebrew" -msgstr "" +msgstr "ဟီဘရူးဘာသာ" #: Editor.java:1015 msgid "Help" @@ -1110,7 +1157,7 @@ msgstr "ကူညီ" #: Preferences.java:99 msgid "Hindi" -msgstr "" +msgstr "ဟိန္ဒူဘာသာ" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 msgid "Host name:" @@ -1128,7 +1175,7 @@ msgstr "" #: Preferences.java:100 msgid "Hungarian" -msgstr "" +msgstr "ဟန်ဂေရီဘာသာ" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" @@ -1138,8 +1185,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1166,13 +1213,17 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" #: Preferences.java:101 msgid "Indonesian" -msgstr "" +msgstr "အင်ဒိုနီးရှားဘာသာ" #: ../../../../../app/src/processing/app/Base.java:295 msgid "Initializing packages..." @@ -1199,9 +1250,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,13 +1279,24 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" -msgstr "" +msgstr "အီá€á€œá€®á€˜á€¬á€žá€¬" #: Preferences.java:103 msgid "Japanese" -msgstr "" +msgstr "ဂျပန်ဘာသာ" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" @@ -1242,7 +1304,7 @@ msgstr "" #: Preferences.java:104 msgid "Korean" -msgstr "" +msgstr "ကိုရီးယားဘာသာ" #: Preferences.java:105 msgid "Latvian" @@ -1250,7 +1312,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "" +msgstr "Library မန်နေဂျာ" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" @@ -1260,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1300,12 +1362,12 @@ msgstr "" #: Base.java:2112 msgid "Message" -msgstr "" +msgstr "မက်ဆေ့á€á€»á€º" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format msgid "Missing '{0}' from library in {1}" -msgstr "" +msgstr "{1} ထဲရှိ library မှ '{0}' ပျောက်ဆုံး" #: ../../../processing/app/BaseNoGui.java:455 msgid "Mode not supported" @@ -1313,7 +1375,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 msgid "More" -msgstr "" +msgstr "နောက်ထပ်" #: Preferences.java:449 msgid "More preferences can be edited directly in the file" @@ -1321,7 +1383,7 @@ msgstr "" #: Editor.java:2156 msgid "Moving" -msgstr "" +msgstr "လှုပ်ရှား" #: ../../../processing/app/BaseNoGui.java:484 msgid "Multiple files not supported" @@ -1366,23 +1428,23 @@ msgstr "" #: EditorToolbar.java:41 Editor.java:493 msgid "New" -msgstr "" +msgstr "အသစ်" #: EditorHeader.java:292 msgid "New Tab" -msgstr "" +msgstr "Tab အသစ်" #: SerialMonitor.java:112 msgid "Newline" -msgstr "" +msgstr "လိုင်းအသစ်" #: EditorHeader.java:340 msgid "Next Tab" -msgstr "" +msgstr "Tab အသစ်" #: Preferences.java:78 UpdateCheck.java:108 msgid "No" -msgstr "" +msgstr "မဟုá€á€º" #: ../../../processing/app/debug/Compiler.java:158 msgid "No authorization data found" @@ -1432,11 +1494,11 @@ msgstr "" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 msgid "No sketch" -msgstr "" +msgstr "ပုံကြမ်း မဟုá€á€º" #: ../../../processing/app/BaseNoGui.java:428 msgid "No sketchbook" -msgstr "" +msgstr "ပုံကြမ်းစာအုပ် မဟုá€á€º" #: ../../../processing/app/Sketch.java:204 msgid "No valid code files found" @@ -1496,7 +1558,7 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:37 msgid "Other" -msgstr "" +msgstr "အá€á€¼á€¬á€¸" #: Editor.java:563 msgid "Page Setup" @@ -1516,11 +1578,11 @@ msgstr "" #: Preferences.java:109 msgid "Persian" -msgstr "" +msgstr "ပါရှန်းဘာသာ" #: ../../../processing/app/Preferences.java:161 msgid "Persian (Iran)" -msgstr "" +msgstr "ပါရှန်းဘာသာ (အီရန်)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 #, java-format @@ -1570,19 +1632,19 @@ msgstr "" #: ../../../processing/app/Preferences.java:151 msgid "Portugese" -msgstr "" +msgstr "ပေါ်á€á€°á€‚ီဘာသာ" #: ../../../processing/app/Preferences.java:127 msgid "Portuguese (Brazil)" -msgstr "" +msgstr "ပေါ်á€á€°á€‚ီဘာသာ (ဘရာဇီး)" #: ../../../processing/app/Preferences.java:128 msgid "Portuguese (Portugal)" -msgstr "" +msgstr "ပေါ်á€á€°á€‚ီဘာသာ (ပေါ်á€á€°á€‚ီ)" #: Preferences.java:295 Editor.java:583 msgid "Preferences" -msgstr "" +msgstr "á€á€»á€­á€”်ညှိá€á€»á€€á€ºá€™á€»á€¬á€¸" #: ../../../../../app/src/processing/app/Base.java:297 msgid "Preparing boards..." @@ -1598,7 +1660,7 @@ msgstr "" #: Editor.java:571 msgid "Print" -msgstr "" +msgstr "ပုံနှိပ်" #: Editor.java:2571 msgid "Printing canceled." @@ -1658,7 +1720,7 @@ msgstr "" #: Base.java:783 Editor.java:593 msgid "Quit" -msgstr "" +msgstr "ထွက်" #: ../../../../../app/src/processing/app/Base.java:1233 msgid "RETIRED" @@ -1674,29 +1736,29 @@ msgstr "" #: Editor.java:1078 msgid "Reference" -msgstr "" +msgstr "ကိုးကား" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 msgid "Remove" -msgstr "" +msgstr "ဖယ်ရှား" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 msgid "Removing..." -msgstr "" +msgstr "ဖယ်ရှားနေ..." #: EditorHeader.java:300 msgid "Rename" -msgstr "" +msgstr "အမည်ပြောင်း" #: FindReplace.java:121 FindReplace.java:130 Sketch.java:1046 msgid "Replace" -msgstr "" +msgstr "အစားထိုး" #: FindReplace.java:122 FindReplace.java:129 msgid "Replace & Find" @@ -1704,7 +1766,7 @@ msgstr "" #: FindReplace.java:120 FindReplace.java:131 msgid "Replace All" -msgstr "" +msgstr "အားလုံးအစားထိုး" #: Sketch.java:1043 #, java-format @@ -1717,11 +1779,15 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" +msgstr "အနားယူ" + +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" msgstr "" #: Preferences.java:113 msgid "Romanian" -msgstr "" +msgstr "ရိုမေးနီးယားဘာသာ" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 #, java-format @@ -1735,12 +1801,12 @@ msgstr "" #: Preferences.java:114 msgid "Russian" -msgstr "" +msgstr "ရုရှားဘာသာ" #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 #: Editor.java:2064 Editor.java:2468 msgid "Save" -msgstr "" +msgstr "သိမ်းဆည်း" #: Editor.java:537 msgid "Save As..." @@ -1765,7 +1831,7 @@ msgstr "" #: Editor.java:2270 Editor.java:2308 msgid "Saving..." -msgstr "" +msgstr "သိမ်းဆည်းနေ..." #: ../../../processing/app/FindReplace.java:131 msgid "Search all Sketch Tabs" @@ -1777,7 +1843,7 @@ msgstr "" #: Editor.java:1198 Editor.java:2739 msgid "Select All" -msgstr "" +msgstr "အားလုံးရွေး" #: Base.java:2636 msgid "Select a zip file or a folder containing the library you'd like to add" @@ -1794,7 +1860,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 msgid "Select version" -msgstr "" +msgstr "ဗားရှင်းရွေးပါ" #: ../../../processing/app/debug/Compiler.java:146 msgid "Selected board depends on '{0}' core (not installed)." @@ -1842,11 +1908,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1860,7 +1929,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 msgid "Settings" -msgstr "" +msgstr "á€á€»á€­á€”်ညှိá€á€»á€€á€ºá€™á€»á€¬á€¸" #: Base.java:1681 msgid "Settings issues" @@ -1870,6 +1939,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -1880,19 +1953,19 @@ msgstr "" #: Editor.java:607 msgid "Sketch" -msgstr "" +msgstr "ပုံကြမ်း" #: Sketch.java:1754 msgid "Sketch Disappeared" -msgstr "" +msgstr "ပုံကြမ်း ပျောက်ကွယ်" #: Base.java:1411 msgid "Sketch Does Not Exist" -msgstr "" +msgstr "ပုံကြမ်း မရှိပါ" #: Sketch.java:274 Sketch.java:303 Sketch.java:577 Sketch.java:966 msgid "Sketch is Read-Only" -msgstr "" +msgstr "ပုံကြမ်း သည် ဖá€á€ºá€›á€¯á€¶á€¡á€á€½á€€á€ºá€žá€¬" #: Sketch.java:294 msgid "Sketch is Untitled" @@ -1900,13 +1973,13 @@ msgstr "" #: Sketch.java:720 msgid "Sketch is read-only" -msgstr "" +msgstr "ပုံကြမ်း သည် ဖá€á€ºá€›á€¯á€¶á€¡á€á€½á€€á€ºá€žá€¬" #: Sketch.java:1653 msgid "" "Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for " "tips on reducing it." -msgstr "" +msgstr "ပုံကြမ်း ကြီးလွန်း ; http://www.arduino.cc/en/Guide/Troubleshooting#size á€á€½á€„် လျှော့á€á€»á€”ည်းလမ်းအá€á€½á€€á€º á€á€„်ရောက်ကြည့်ရှုပါá‹" #: ../../../processing/app/Sketch.java:1639 #, java-format @@ -2000,7 +2073,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" -msgstr "" +msgstr "ထိုင်းဘာသာ" #: debug/Compiler.java:414 msgid "The 'BYTE' keyword is no longer supported." @@ -2041,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,11 +2167,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2108,6 +2189,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2123,7 +2208,7 @@ msgstr "" #: Base.java:535 msgid "Time for a Break" -msgstr "" +msgstr "á€á€±á€á€¹á€á€”ားá€á€»á€­á€”်" #: ../../../../../arduino-core/src/processing/app/I18n.java:34 msgid "Timing" @@ -2347,16 +2432,16 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 #, java-format msgid "Version {0}" -msgstr "" +msgstr "ဗားရှင်း{0}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:326 msgid "Version unknown" -msgstr "" +msgstr "ဗားရှင်း မသိ" #: ../../../cc/arduino/contributions/libraries/ContributedLibrary.java:97 #, java-format msgid "Version {0}" -msgstr "" +msgstr "ဗားရှင်း {0}" #: ../../../processing/app/Preferences.java:154 msgid "Vietnamese" @@ -2600,6 +2685,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2687,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2788,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_my_MM.properties b/arduino-core/src/processing/app/i18n/Resources_my_MM.properties index 48313dfe8ee..d97242a8a1b 100644 --- a/arduino-core/src/processing/app/i18n/Resources_my_MM.properties +++ b/arduino-core/src/processing/app/i18n/Resources_my_MM.properties @@ -16,82 +16,87 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Salai Aung Myint Myat , 2018 # Yhal Htet Aung , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 16\:12+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Burmese (Myanmar) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/my_MM/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: my_MM\nPlural-Forms\: nplurals\=1; plural\=0;\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Burmese (Myanmar) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/my_MM/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: my_MM\nPlural-Forms\: nplurals\=1; plural\=0;\n #: Preferences.java:358 Preferences.java:374 -!\ \ (requires\ restart\ of\ Arduino)= +\ \ (requires\ restart\ of\ Arduino)=(Arduino \u1000\u102d\u102f \u1015\u103c\u1014\u103a\u1005\u1010\u1004\u103a\u101b\u1014\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u101e\u100a\u103a) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -!\ Not\ used\:\ {0}= +\ Not\ used\:\ {0}=\u1019\u101e\u102f\u1036\u1038\u101b\u101e\u1031\u1038\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format -!\ Used\:\ {0}= +\ Used\:\ {0}=\u1021\u101e\u102f\u1036\u1038\u1015\u103c\u102f\u1015\u103c\u102e\u1038\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -!'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='\u1000\u102e\u1038\u1018\u102f\u1010\u103a' \u1000\u102d\u102f \u101b\u103e\u102c\u1019\u1010\u103d\u1031\u1037\u1015\u102b\u104b \u101e\u1004\u103a\u104f \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1011\u1032\u1010\u103d\u1004\u103a '\#include' \u1005\u102c\u1000\u103c\u1031\u102c\u1004\u103a\u1038 \u1015\u102b\u101d\u1004\u103a\u1015\u102b\u101e\u101c\u102c\u1038? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -!'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='\u1019\u1031\u102c\u1000\u103a\u1005\u103a' \u1000\u102d\u102f \u101b\u103e\u102c\u1019\u1010\u103d\u1031\u1037\u1015\u102b\u104b \u101e\u1004\u103a\u104f \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1011\u1032\u1010\u103d\u1004\u103a '\#include' \u1005\u102c\u1000\u103c\u1031\u102c\u1004\u103a\u1038 \u1015\u102b\u101d\u1004\u103a\u1015\u102b\u101e\u101c\u102c\u1038? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -!'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information= +'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information='arch' \u1016\u102d\u102f\u1004\u103a\u1010\u103d\u1032\u1000\u102d\u102f \u1019\u1011\u1031\u102c\u1000\u103a\u1015\u1036\u1037\u1010\u1031\u102c\u1037\u1015\u102b\! \u1011\u1015\u103a\u1019\u1036\u101e\u102d\u101b\u103e\u102d\u101c\u102d\u102f\u1015\u102b\u1000 http\://goo.gl/gfFJzU \u1010\u103d\u1004\u103a \u101d\u1004\u103a\u101b\u1031\u102c\u1000\u103a\u1000\u103c\u100a\u103a\u101b\u103e\u102f\u1015\u102b #: Preferences.java:478 -!(edit\ only\ when\ Arduino\ is\ not\ running)= +(edit\ only\ when\ Arduino\ is\ not\ running)=(Arduino \u1021\u101c\u102f\u1015\u103a\u101b\u1015\u103a\u1010\u1014\u1037\u103a\u1019\u103e\u101e\u102c \u1010\u100a\u103a\u1038\u1016\u103c\u1010\u103a\u1015\u102b) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -!(legacy)= +(legacy)=(\u1001\u1031\u1010\u103a\u1019\u1019\u103e\u102e\u1010\u1031\u102c\u1037) #: ../../../processing/app/helpers/CommandlineParser.java:149 -!--curdir\ no\ longer\ supported= +--curdir\ no\ longer\ supported=--curdir \u1000\u102d\u102f \u1019\u1011\u1031\u102c\u1000\u103a\u1015\u1036\u1037\u1010\u1031\u102c\u1037\u1015\u102b #: ../../../processing/app/Base.java:468 !--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload= #: Sketch.java:746 -!.pde\ ->\ .ino= +.pde\ ->\ .ino=.pde -> .ino #: Editor.java:2053 -!\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= +\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= \u1019\u1015\u102d\u1010\u103a\u1001\u1004\u103a \u101e\u1004\u103a \u1012\u102e \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1010\u103d\u1004\u103a \u1015\u103c\u1031\u102c\u1004\u103a\u1038\u101c\u1032\u1011\u102c\u1038\u101e\u100a\u103a\u1019\u103b\u102c\u1038\u1000\u102d\u102f
\u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u1011\u102c\u1038\u1001\u103b\u1004\u103a\u1015\u102b\u101e\u101c\u102c\u1038?

\u1021\u1000\u101a\u103a\u104d \u101e\u1004\u103a\u1019\u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u1011\u102c\u1038\u1015\u102b\u1000 \u101e\u1004\u1037\u103a\u1015\u103c\u1031\u102c\u1004\u103a\u1038\u101c\u1032\u1011\u102c\u1038\u1019\u103e\u102f\u1019\u103b\u102c\u1038\u1019\u103e\u102c \u1015\u103b\u1031\u102c\u1000\u103a\u1006\u102f\u1036\u1038\u101e\u103d\u102c\u1038\u1015\u102b\u101c\u102d\u1019\u1037\u103a\u1019\u100a\u103a\u104b #: Editor.java:2169 #, java-format -!A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.= +A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.="{0}" \u1021\u1019\u100a\u103a\u101b\u101e\u1031\u102c \u1016\u102d\u102f\u1004\u103a\u1010\u103d\u1032 \u1010\u1005\u103a\u1010\u103d\u1032\u1019\u103e\u102c \u101b\u103e\u102d\u1015\u103c\u102e\u1038\u1016\u103c\u1005\u103a\u101e\u100a\u103a\u104b \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1016\u103d\u1004\u1037\u103a\u1019\u101b\u1015\u102b\u104b #: Base.java:2690 #, java-format -!A\ library\ named\ {0}\ already\ exists= +A\ library\ named\ {0}\ already\ exists={0} \u1021\u1019\u100a\u103a\u101b\u101e\u1031\u102c library \u1010\u1005\u103a\u1001\u102f\u1019\u103e\u102c \u101b\u103e\u102d\u1015\u103c\u102e\u1038\u1016\u103c\u1005\u103a\u101e\u100a\u103a #: UpdateCheck.java:103 -!A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?= +A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Arduino \u1017\u102c\u1038\u101b\u103e\u1004\u103a\u1038\u1021\u101e\u1005\u103a\u1000\u102d\u102f \u101b\u101b\u103e\u102d\u1014\u102d\u102f\u1004\u103a\u1015\u102b\u1015\u103c\u102e\u104b\nArduino \u1012\u1031\u102b\u1004\u103a\u1038\u101c\u102f\u1010\u103a\u1005\u102c\u1019\u103b\u1000\u103a\u1014\u103e\u102c\u1000\u102d\u102f \u101e\u1004\u103a\u101e\u103d\u102c\u1038\u101b\u1031\u102c\u1000\u103a\u1000\u103c\u100a\u1037\u103a\u101b\u103e\u102f\u101c\u102d\u102f\u1015\u102b\u101e\u101c\u102c\u1038? #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -!A\ newer\ {0}\ package\ is\ available= +A\ newer\ {0}\ package\ is\ available={0} \u1021\u1011\u102f\u1015\u103a\u101e\u1005\u103a\u1000\u102d\u102f \u101b\u101b\u103e\u102d\u1014\u102d\u102f\u1004\u103a\u1015\u102b\u1015\u103c\u102e #: ../../../../../app/src/processing/app/Base.java:2307 -!A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library= +A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=\u101e\u1004\u1037\u103a\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038\u1005\u102c\u1021\u102f\u1015\u103a \u104f \u1016\u102d\u102f\u1004\u103a\u1010\u103d\u1032\u1001\u103d\u1032 \u1010\u1005\u103a\u1001\u102f\u1019\u103e\u102c\u00a0\u1019\u103e\u1014\u103a\u1000\u1014\u103a\u101e\u1031\u102c library \u1019\u101f\u102f\u1010\u103a\u1015\u102b #: Editor.java:1116 -!About\ Arduino= +About\ Arduino=Arduino \u104f \u1021\u1000\u103c\u1031\u102c\u1004\u103a\u1038 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 !Acoli= #: ../../../../../app/src/processing/app/Base.java:1177 -!Add\ .ZIP\ Library...= +Add\ .ZIP\ Library...=.ZIP Library \u1000\u102d\u102f \u1011\u100a\u1037\u103a\u1015\u102b... #: Editor.java:650 -!Add\ File...= +Add\ File...=\u1016\u102d\u102f\u1004\u103a \u1000\u102d\u102f \u1011\u100a\u1037\u103a\u1015\u102b... #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -!Additional\ Boards\ Manager\ URLs= +Additional\ Boards\ Manager\ URLs=\u1021\u1015\u102d\u102f\u1006\u1031\u102c\u1004\u103a\u1038\u1018\u102f\u1010\u103a\u1019\u103b\u102c\u1038\u1000\u102d\u102f \u1005\u102e\u1019\u1036\u1001\u1014\u1037\u103a\u1001\u103d\u1032\u101e\u1030 \u101d\u1000\u103a\u1018\u103a\u101c\u102d\u1015\u103a\u1005\u102c\u1019\u103b\u102c\u1038 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -!Additional\ Boards\ Manager\ URLs\:\ = +Additional\ Boards\ Manager\ URLs\:\ =\u1021\u1015\u102d\u102f\u1006\u1031\u102c\u1004\u103a\u1038\u1018\u102f\u1010\u103a\u1019\u103b\u102c\u1038\u1000\u102d\u102f \u1005\u102e\u1019\u1036\u1001\u1014\u1037\u103a\u1001\u103d\u1032\u101e\u1030 \u101d\u1000\u103a\u1018\u103a\u101c\u102d\u1015\u103a\u1005\u102c\u1019\u103b\u102c\u1038\: #: ../../../../../app/src/processing/app/Preferences.java:161 Afrikaans=\u1021\u102c\u1016\u101b\u102d\u1000\u1014\u103a\u1018\u102c\u101e\u102c @@ -105,27 +110,27 @@ Albanian=\u1021\u101a\u103a\u101c\u103a\u1018\u102c\u1014\u102e\u101b\u1019\u103 #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -!All= +All=\u1021\u102c\u1038\u101c\u102f\u1036\u1038 #: tools/FixEncoding.java:77 -!An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n= +An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=\u1016\u102d\u102f\u1004\u103a \u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u1015\u102f\u1036\u1000\u102d\u102f \u1015\u103c\u102f\u1015\u103c\u1004\u103a\u1016\u102d\u102f\u1037\u1000\u103c\u102d\u102f\u1038\u1005\u102c\u1038\u1014\u1031\u1005\u1009\u103a \u1021\u1019\u103e\u102c\u1038\u1010\u103d\u1031\u1037\u101e\u100a\u103a\u104b\n\u1012\u102e \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u101b\u1014\u103a \u1019\u1000\u103c\u102d\u102f\u1038\u1015\u1019\u103a\u1038\u1015\u102b\u1014\u103e\u1004\u1037\u103a\u104b \u1019\u101f\u102f\u1010\u103a\u1015\u102b\u1000 \u1017\u102c\u1038\u101b\u103e\u1004\u103a\u1038\u1021\u101f\u1031\u102c\u1004\u103a\u1038\u1015\u1031\u102b\u103a\u1010\u103d\u1004\u103a \n\u1011\u1015\u103a\u101b\u1031\u1038\u1019\u102d\u101e\u103d\u102c\u1038\u1015\u102b\u1019\u100a\u103a\u104b \u1012\u102e \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1015\u103c\u1014\u103a\u1016\u103d\u1004\u1037\u103a\u1016\u102d\u102f\u1037\u1021\u1010\u103d\u1000\u103a \u1021\u1016\u103d\u1004\u1037\u103a\u1000\u102d\u102f\u101e\u102f\u1036\u1038\u1015\u103c\u102e\u1038 \u1011\u1015\u103a\u1019\u1036\u1000\u103c\u102d\u102f\u1038\u1005\u102c\u1038\u1015\u102b\u104b\n #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -!An\ error\ occurred\ while\ updating\ libraries\ index\!= +An\ error\ occurred\ while\ updating\ libraries\ index\!=libraries \u1021\u100a\u103d\u103e\u1014\u103a\u1038\u1000\u102d\u102f \u1015\u103c\u102f\u1015\u103c\u1004\u103a\u1019\u103d\u1019\u103a\u1038\u1019\u1036\u1014\u1031\u1005\u1009\u103a \u1021\u1019\u103e\u102c\u1038\u1010\u103d\u1031\u1037\u101e\u100a\u103a\! #: ../../../processing/app/BaseNoGui.java:528 -!An\ error\ occurred\ while\ uploading\ the\ sketch= +An\ error\ occurred\ while\ uploading\ the\ sketch=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1021\u1015\u103a\u101c\u102f\u1012\u103a\u101c\u102f\u1015\u103a\u1014\u1031\u1005\u1009\u103a \u1021\u1019\u103e\u102c\u1038\u1010\u103d\u1031\u1037\u101e\u100a\u103a #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -!An\ error\ occurred\ while\ verifying\ the\ sketch= +An\ error\ occurred\ while\ verifying\ the\ sketch=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1019\u103e\u1014\u103a\u1000\u103c\u1031\u102c\u1004\u103a\u1038\u1021\u1010\u100a\u103a\u1015\u103c\u102f\u1015\u1031\u1038\u1014\u1031\u1005\u1009\u103a \u1021\u1019\u103e\u102c\u1038\u1010\u103d\u1031\u1037\u101e\u100a\u103a #: ../../../processing/app/BaseNoGui.java:521 -!An\ error\ occurred\ while\ verifying/uploading\ the\ sketch= +An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1019\u103e\u1014\u103a\u1000\u103c\u1031\u102c\u1004\u103a\u1038\u1021\u1010\u100a\u103a\u1015\u103c\u102f\u1015\u1031\u1038/\u1021\u1015\u103a\u101c\u102f\u1012\u103a\u101c\u102f\u1015\u103a\u1014\u1031\u1005\u1009\u103a \u1021\u1019\u103e\u102c\u1038\u1010\u103d\u1031\u1037\u101e\u100a\u103a #: Base.java:228 -!An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.= +An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=\u1005\u1000\u103a\u101a\u1014\u1039\u1010\u101b\u102c\u1038\u1021\u1010\u103d\u1000\u103a platform-specific \u1000\u102f\u1012\u103a \u1000\u102d\u102f\n\u1000\u103c\u102d\u102f\u1038\u1005\u102c\u1038\u1015\u103c\u102e\u1038\u1010\u1004\u103a\u1014\u1031\u1005\u1009\u103a \u1021\u1019\u100a\u103a\u1019\u101e\u102d\u101e\u1031\u102c\u1021\u1019\u103e\u102c\u1038\u1000\u102d\u102f \u1010\u103d\u1031\u1037\u101e\u100a\u103a\u104b #: Preferences.java:85 Arabic=\u1021\u102c\u101b\u1017\u1005\u103a\u1018\u102c\u101e\u102c @@ -134,25 +139,29 @@ Arabic=\u1021\u102c\u101b\u1017\u1005\u103a\u1018\u102c\u101e\u102c Aragonese=\u1021\u102c\u101b\u1002\u102d\u102f\u1038\u1018\u102c\u101e\u102c #: tools/Archiver.java:48 -!Archive\ Sketch= +Archive\ Sketch=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1019\u103e\u1010\u103a\u1010\u1019\u103a\u1038\u1010\u1004\u103a\u101e\u100a\u103a #: tools/Archiver.java:109 -!Archive\ sketch\ as\:= +Archive\ sketch\ as\:=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1019\u103e\u1010\u103a\u1010\u1019\u103a\u1038\u1010\u1004\u103a\u1019\u103e\u102f\u1019\u103e\u102c \u1021\u1031\u102c\u1000\u103a\u1015\u102b\u1021\u1010\u102d\u102f\u1004\u103a\u1038\u1016\u103c\u1005\u103a\u101e\u100a\u103a \: #: tools/Archiver.java:139 -!Archive\ sketch\ canceled.= +Archive\ sketch\ canceled.=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1019\u103e\u1010\u103a\u1010\u1019\u103a\u1038\u1010\u1004\u103a\u1019\u103e\u102f\u1000\u102d\u102f \u1015\u101a\u103a\u1016\u103b\u1000\u103a\u101e\u100a\u103a\u104b + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= #: ../../../../../arduino-core/src/processing/app/I18n.java:24 -!Arduino= +Arduino=\u1021\u102c\u1012\u1030\u101d\u102e\u1038\u1014\u102d\u102f #: ../../../processing/app/I18n.java:83 -!Arduino\ ARM\ (32-bits)\ Boards= +Arduino\ ARM\ (32-bits)\ Boards=\u1021\u102c\u1012\u1030\u101d\u102e\u1038\u1014\u102d\u102f ARM (32-bits) \u1018\u102f\u1010\u103a\u1019\u103b\u102c\u1038 #: ../../../processing/app/I18n.java:82 -!Arduino\ AVR\ Boards= +Arduino\ AVR\ Boards=\u1021\u102c\u1012\u1030\u101d\u102e\u1038\u1014\u102d\u102f AVR \u1018\u102f\u1010\u103a\u1019\u103b\u102c\u1038 #: Editor.java:2137 !Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde= @@ -164,31 +173,31 @@ Aragonese=\u1021\u102c\u101b\u1002\u102d\u102f\u1038\u1018\u102c\u101e\u102c !Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.= #: ../../../processing/app/EditorStatus.java:471 -Arduino\:\ =\u1021\u102c\u1012\u1030\u1021\u102e\u1014\u102d\u102f\: +Arduino\:\ =\u1021\u102c\u1012\u103d\u102e\u1014\u102d\u102f \: #: Sketch.java:588 #, java-format -!Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?= +Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?=\u101e\u1004\u103a "{0}" \u1000\u102d\u102f \u1016\u103b\u1000\u103a\u1015\u1005\u103a\u101b\u1014\u103a \u101e\u1031\u1001\u103b\u102c\u1015\u102b\u101e\u101c\u102c\u1038? #: Sketch.java:587 -!Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?= +Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=\u101e\u1004\u103a \u1024 \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1016\u103b\u1000\u103a\u1015\u1005\u103a\u101b\u1014\u103a \u101e\u1031\u1001\u103b\u102c\u1015\u102b\u101e\u101c\u102c\u1038? #: ../../../processing/app/Base.java:356 -!Argument\ required\ for\ --board= +Argument\ required\ for\ --board=--\u1018\u102f\u1010\u103a \u1021\u1010\u103d\u1000\u103a \u1021\u1006\u102d\u102f\u1015\u103c\u102f\u1001\u103b\u1000\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u1015\u102b\u101e\u100a\u103a #: ../../../processing/app/Base.java:363 -!Argument\ required\ for\ --port= +Argument\ required\ for\ --port=--port \u1021\u1010\u103d\u1000\u103a \u1021\u1006\u102d\u102f\u1015\u103c\u102f\u1001\u103b\u1000\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u1015\u102b\u101e\u100a\u103a #: ../../../processing/app/Base.java:377 -!Argument\ required\ for\ --pref= +Argument\ required\ for\ --pref=--pref \u1021\u1010\u103d\u1000\u103a \u1021\u1006\u102d\u102f\u1015\u103c\u102f\u1001\u103b\u1000\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u1015\u102b\u101e\u100a\u103a #: ../../../processing/app/Base.java:384 -!Argument\ required\ for\ --preferences-file= +Argument\ required\ for\ --preferences-file=--\u1001\u103b\u102d\u1014\u103a\u100a\u103e\u102d\u1001\u103b\u1000\u103a\u1019\u103b\u102c\u1038-\u1016\u102d\u102f\u1004\u103a \u1021\u1010\u103d\u1000\u103a \u1021\u1006\u102d\u102f\u1015\u103c\u102f\u1001\u103b\u1000\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u1015\u102b\u101e\u100a\u103a #: ../../../processing/app/helpers/CommandlineParser.java:76 #: ../../../processing/app/helpers/CommandlineParser.java:83 #, java-format -!Argument\ required\ for\ {0}= +Argument\ required\ for\ {0}={0} \u1021\u1010\u103d\u1000\u103a \u1021\u1006\u102d\u102f\u1015\u103c\u102f\u1001\u103b\u1000\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u1015\u102b\u101e\u100a\u103a #: ../../../processing/app/Preferences.java:137 Armenian=\u1021\u102c\u1019\u1031\u1014\u102e\u101a\u1019\u103a\u1018\u102c\u101e\u102c @@ -197,7 +206,7 @@ Armenian=\u1021\u102c\u1019\u1031\u1014\u102e\u101a\u1019\u103a\u1018\u102c\u101 Asturian=\u1021\u1031\u102c\u1000\u103a\u1005\u103a\u1010\u1030\u101b\u102e\u101b\u1014\u103a\u1018\u102c\u101e\u102c #: ../../../processing/app/debug/Compiler.java:145 -!Authorization\ required= +Authorization\ required=\u1001\u103d\u1004\u1037\u103a\u1015\u103c\u102f\u1001\u103b\u1000\u103a \u101c\u102d\u102f\u1021\u1015\u103a\u1015\u102b\u101e\u100a\u103a #: tools/AutoFormat.java:91 Auto\ Format=\u101c\u102d\u102f\u101c\u103b\u1031\u102c\u1000\u103a\u1015\u102f\u1036\u1005\u1036\u1001\u103b @@ -206,7 +215,7 @@ Auto\ Format=\u101c\u102d\u102f\u101c\u103b\u1031\u102c\u1000\u103a\u1015\u102f\ Auto\ Format\ finished.=\u101c\u102d\u102f\u101c\u103b\u1031\u102c\u1000\u103a\u1015\u102f\u1036\u1005\u1036\u1001\u103b\u1015\u103c\u102e\u1038\u1006\u102f\u1036\u1038\u104b #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 -!Auto-detect\ proxy\ settings= +Auto-detect\ proxy\ settings=\u101c\u102d\u102f\u101c\u103b\u1031\u102c\u1000\u103a\u101b\u103e\u102c\u1010\u103d\u1031\u1037 \u1000\u103c\u102c\u1038\u1001\u1036\u1001\u103b\u102d\u1014\u103a\u100a\u103e\u102d\u1001\u103b\u1000\u103a\u1019\u103b\u102c\u1038 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 !Automatic= @@ -232,26 +241,26 @@ Belarusian=\u1018\u1005\u103a\u101c\u102c\u101b\u102f\u1005\u103a\u1018\u102c\u1 #: ../../../processing/app/Base.java:1433 #: ../../../processing/app/Editor.java:707 -Board=\u1021\u1015\u103c\u102c\u1038 +Board=\u1018\u102f\u1010\u103a #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=\u1018\u102f\u1010\u103a\u1021\u1001\u103b\u1000\u103a\u1021\u101c\u1000\u103a #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -!Board\ at\ {0}\ is\ not\ available= +Board\ at\ {0}\ is\ not\ available={0} \u101b\u103e\u102d \u1018\u102f\u1010\u103a\u1019\u103e\u102c \u1019\u101b\u101b\u103e\u102d\u1014\u102d\u102f\u1004\u103a\u1010\u1031\u102c\u1037\u1015\u102b #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format -!Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown= +Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown={0} \u1018\u102f\u1010\u103a (platform {1}, \u1021\u1011\u102f\u1015\u103a {2}) \u1000\u102d\u102f \u1019\u101e\u102d\u1015\u102b #: ../../../processing/app/debug/TargetBoard.java:42 #, java-format !Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}= #: ../../../processing/app/EditorStatus.java:472 -Board\:\ =\u1021\u1015\u103c\u102c\u1038\: +Board\:\ =\u1018\u102f\u1010\u103a \: #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 !Boards\ Manager= @@ -363,34 +372,34 @@ Comment/Uncomment=\u1019\u103e\u1010\u103a\u1001\u103b\u1000\u103a\u101b\u1031\u Copy=\u1000\u1030\u1038\u101a\u1030 #: Editor.java:1177 Editor.java:2723 -!Copy\ as\ HTML= +Copy\ as\ HTML=HTML \u101c\u102d\u102f \u1000\u1030\u1038\u101a\u1030 #: ../../../processing/app/EditorStatus.java:455 -!Copy\ error\ messages= +Copy\ error\ messages=\u1019\u1000\u103a\u1006\u1031\u1037\u1001\u103b\u103a\u1021\u1019\u103e\u102c\u1038\u1019\u103b\u102c\u1038\u1000\u102d\u102f \u1000\u1030\u1038\u101a\u1030 #: Editor.java:1165 Editor.java:2715 -!Copy\ for\ Forum= +Copy\ for\ Forum=\u1016\u102d\u102f\u101b\u1019\u103a\u1021\u1010\u103d\u1000\u103a \u1000\u1030\u1038\u101a\u1030 #: Sketch.java:1089 #, java-format -!Could\ not\ add\ ''{0}''\ to\ the\ sketch.= +Could\ not\ add\ ''{0}''\ to\ the\ sketch.="{0}" \u1000\u102d\u102f \u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1011\u1032\u101e\u102d\u102f\u1037 \u1019\u1011\u100a\u1037\u103a\u1014\u102d\u102f\u1004\u103a\u104b #: Editor.java:2188 -!Could\ not\ copy\ to\ a\ proper\ location.= +Could\ not\ copy\ to\ a\ proper\ location.=\u101e\u1004\u1037\u103a\u101c\u103b\u1031\u102c\u103a\u101e\u1031\u102c\u1014\u1031\u101b\u102c\u101e\u102d\u102f\u1037 \u1019\u1000\u1030\u1038\u1011\u100a\u1037\u103a\u1014\u102d\u102f\u1004\u103a\u104b #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"="{0}" \u101c\u1019\u103a\u1038\u100a\u103d\u103e\u1014\u103a\u1000\u102d\u102f \u1019\u1016\u1014\u103a\u1010\u102e\u1038\u1014\u102d\u102f\u1004\u103a #: Editor.java:2179 -!Could\ not\ create\ the\ sketch\ folder.= +Could\ not\ create\ the\ sketch\ folder.=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1016\u102d\u102f\u1004\u103a\u1010\u103d\u1032 \u1000\u102d\u102f \u1019\u1016\u1014\u103a\u1010\u102e\u1038\u1014\u102d\u102f\u1004\u103a\u104b #: Editor.java:2206 -!Could\ not\ create\ the\ sketch.= +Could\ not\ create\ the\ sketch.=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u102d\u102f \u1019\u1016\u1014\u103a\u1010\u102e\u1038\u1014\u102d\u102f\u1004\u103a\u104b #: Sketch.java:617 #, java-format -!Could\ not\ delete\ "{0}".= +Could\ not\ delete\ "{0}".="{0}" \u1000\u102d\u102f \u1019\u1016\u103b\u1000\u103a\u1015\u1005\u103a\u1014\u102d\u102f\u1004\u103a\u104b #: Sketch.java:1066 #, java-format @@ -436,6 +445,10 @@ Copy=\u1000\u1030\u1038\u101a\u1030 #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -461,16 +474,22 @@ Czech\ (Czech\ Republic)=\u1001\u103b\u1000\u103a(\u1001\u103b\u1000\u103a)\u101 Danish\ (Denmark)=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a(\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a)\u1018\u102c\u101e\u102c #: ../../../../../arduino-core/src/processing/app/I18n.java:36 -!Data\ Processing= +Data\ Processing=\u1012\u1031\u1010\u102c \u1000\u102d\u102f\u1004\u103a\u1010\u103d\u101a\u103a\u1011\u102d\u1014\u103a\u1038\u101e\u102d\u1019\u103a\u1038\u1019\u103e\u102f #: ../../../../../arduino-core/src/processing/app/I18n.java:35 -!Data\ Storage= +Data\ Storage=\u1021\u1001\u103b\u1000\u103a\u1021\u101c\u1000\u103a \u101e\u102d\u102f\u101c\u103e\u1031\u102c\u1004\u103a\u1014\u102d\u102f\u1004\u103a\u1019\u103e\u102f + +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u1016\u1031\u102c\u1004\u1037\u103a\u1021\u101b\u103d\u101a\u103a\u101c\u103b\u103e\u1031\u102c\u1037 #: Editor.java:1224 Editor.java:2765 -!Decrease\ Indent= +Decrease\ Indent=Indent \u101c\u103b\u103e\u1031\u102c\u1037\u1001\u103b\u101e\u100a\u103a #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 -!Default= +Default=\u1019\u1030\u101c + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= #: EditorHeader.java:314 Sketch.java:591 Delete=\u1016\u103b\u1000\u103a\u1015\u1005\u103a @@ -485,60 +504,60 @@ Delete=\u1016\u103b\u1000\u103a\u1015\u1005\u103a !Discard\ all\ changes\ and\ reload\ sketch?= #: ../../../../../arduino-core/src/processing/app/I18n.java:29 -!Display= +Display=\u1015\u103c\u101e #: ../../../processing/app/Preferences.java:438 -!Display\ line\ numbers= +Display\ line\ numbers=\u1005\u102c\u1000\u103c\u1031\u102c\u1004\u103a\u1038\u1014\u1036\u1015\u102b\u1010\u103a\u1015\u103c #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format -!Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.= +Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.=\u101e\u1004\u103a {0} \u1000\u102d\u102f \u1016\u101a\u103a\u101b\u103e\u102c\u1038\u1001\u103b\u1004\u103a\u1015\u102b\u101e\u101c\u102c\u1038?\n\u101c\u102f\u1015\u103a\u1019\u100a\u103a\u1006\u102d\u102f\u101c\u103b\u103e\u1004\u103a \u101e\u1004\u103a {0} \u1000\u102d\u102f \u1018\u101a\u103a\u1010\u1031\u102c\u1037\u1019\u103e\u101e\u102f\u1036\u1038\u1014\u102d\u102f\u1004\u103a\u1010\u1031\u102c\u1037\u1019\u100a\u103a \u1019\u101f\u102f\u1010\u103a\u1015\u102b\u104b #: Editor.java:2064 -!Don't\ Save= +Don't\ Save=\u1019\u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u1015\u102b #: Editor.java:2275 Editor.java:2311 -!Done\ Saving.= +Done\ Saving.=\u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u1015\u103c\u102e\u1038\u104b #: Editor.java:2510 -!Done\ burning\ bootloader.= +Done\ burning\ bootloader.=\u1018\u102f\u101c\u102f\u1010\u103a\u1010\u102c\u101b\u102d\u102f\u1000\u103a\u101e\u103d\u1004\u103a\u1038\u1015\u103c\u102e\u1038 #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 -!Done\ compiling= +Done\ compiling=\u1018\u102c\u101e\u102c\u1015\u103c\u1014\u103a\u1015\u103c\u102e\u1038 #: Editor.java:1911 Editor.java:1928 -!Done\ compiling.= +Done\ compiling.=\u1018\u102c\u101e\u102c\u1015\u103c\u1014\u103a\u1015\u103c\u102e\u1038\u104b #: Editor.java:2564 -!Done\ printing.= +Done\ printing.=\u1015\u102f\u1036\u1014\u103e\u102d\u1015\u103a\u1015\u103c\u102e\u1038\u104b #: ../../../processing/app/BaseNoGui.java:514 -!Done\ uploading= +Done\ uploading=\u1021\u1015\u103a\u101c\u102f\u1012\u103a\u1015\u103c\u102e\u1038 #: Editor.java:2395 Editor.java:2431 -!Done\ uploading.= +Done\ uploading.=\u1021\u1015\u103a\u101c\u102f\u1012\u103a\u1015\u103c\u102e\u1038\u104b #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format -!Downloaded\ {0}kb\ of\ {1}kb.= +Downloaded\ {0}kb\ of\ {1}kb.={1}\u1000\u102e\u101c\u102d\u102f\u1018\u102d\u102f\u1000\u103a\u1010\u103d\u1004\u103a {0}\u1000\u102e\u101c\u102d\u102f\u1018\u102d\u102f\u1000\u103a\u1000\u102d\u102f \u1012\u1031\u102b\u1004\u103a\u1038\u1015\u103c\u102e\u1038\u104b #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 -!Downloading\ boards\ definitions.= +Downloading\ boards\ definitions.=\u1018\u102f\u1010\u103a\u1019\u103b\u102c\u1038\u104f\u101e\u1010\u103a\u1019\u103e\u1010\u103a\u1001\u103b\u1000\u103a\u1019\u103b\u102c\u1038\u1000\u102d\u102f \u1012\u1031\u102b\u1004\u103a\u1038\u101c\u102f\u1010\u103a\u1006\u103d\u1032\u1005\u1009\u103a #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 -!Downloading\ libraries\ index...= +Downloading\ libraries\ index...=libraries \u1021\u100a\u103d\u1014\u103a\u1038 \u1012\u1031\u102b\u1004\u103a\u1038\u101c\u102f\u1010\u103a\u1006\u103d\u1032\u1005\u1009\u103a... #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:115 #, java-format -!Downloading\ library\:\ {0}= +Downloading\ library\:\ {0}=library \u1012\u1031\u102b\u1004\u103a\u1038\u101c\u102f\u1012\u103a\u1006\u103d\u1032\u1005\u1009\u103a \: {0} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:318 -!Downloading\ platforms\ index...= +Downloading\ platforms\ index...=\u1015\u101c\u1000\u103a\u1016\u1031\u102c\u1004\u103a\u1038\u1019\u103b\u102c\u1038\u1021\u100a\u103d\u1014\u103a\u1038 \u1012\u1031\u102b\u1004\u103a\u1038\u101c\u102f\u1010\u103a\u1006\u103d\u1032\u1005\u1009\u103a... #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:113 #, java-format -!Downloading\ tools\ ({0}/{1}).= +Downloading\ tools\ ({0}/{1}).=\u1000\u102d\u101b\u102d\u101a\u102c\u1019\u103b\u102c\u1038\u1012\u1031\u102b\u1004\u103a\u1038\u101c\u102f\u1010\u103a\u1006\u103d\u1032\u1005\u1009\u103a ({0}/{1})\u104b #: Preferences.java:91 Dutch=\u1012\u1010\u103a\u1001\u103b\u103a\u1018\u102c\u101e\u102c @@ -547,19 +566,19 @@ Dutch=\u1012\u1010\u103a\u1001\u103b\u103a\u1018\u102c\u101e\u102c Dutch\ (Netherlands)=\u1012\u1010\u103a\u1001\u103b\u103a(\u1014\u101a\u103a\u101e\u102c\u101c\u1014\u103a)\u1018\u102c\u101e\u102c #: ../../../../../app/src/processing/app/Editor.java:1309 -!Edison\ Help= +Edison\ Help=\u1021\u1000\u103a\u1012\u102e\u1006\u1004\u103a \u1021\u1000\u1030\u1021\u100a\u102e #: Editor.java:1130 Edit=\u1010\u100a\u103a\u1038\u1016\u103c\u1010\u103a #: Preferences.java:370 -!Editor\ font\ size\:\ = +Editor\ font\ size\:\ =\u1021\u101a\u103a\u1012\u102e\u1010\u102c \u1016\u1031\u102c\u1004\u1037\u103a\u1021\u101b\u103d\u101a\u103a \: #: Preferences.java:353 -!Editor\ language\:\ = +Editor\ language\:\ =\u1021\u101a\u103a\u1012\u102e\u1010\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038 \: #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 -!Enable\ Code\ Folding= +Enable\ Code\ Folding=\u1000\u102f\u1012\u103a Folding \u1015\u103c\u102f\u101c\u102f\u1015\u103a\u1014\u102d\u102f\u1004\u103a #: Preferences.java:92 English=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a\u1018\u102c\u101e\u102c @@ -569,10 +588,10 @@ English\ (United\ Kingdom)=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 -!Enter\ a\ comma\ separated\ list\ of\ urls= +Enter\ a\ comma\ separated\ list\ of\ urls=\u101d\u1000\u103a\u1018\u103a\u101c\u102d\u1015\u103a\u1005\u102c\u1005\u102c\u101b\u1004\u103a\u1038\u1010\u103d\u1004\u103a \u1015\u102f\u1012\u103a\u1000\u101c\u1031\u1038\u1001\u103c\u102c\u1038\u1015\u102b\u104b #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -!Enter\ additional\ URLs,\ one\ for\ each\ row= +Enter\ additional\ URLs,\ one\ for\ each\ row=\u1010\u1005\u103a\u1010\u1014\u103a\u1038\u1001\u103b\u1004\u103a\u1038\u1005\u102e\u1021\u101c\u102d\u102f\u1000\u103a \u101d\u1000\u103a\u1018\u103a\u101c\u102d\u1015\u103a\u1005\u102c\u1011\u1015\u103a\u1010\u102d\u102f\u1038\u1011\u100a\u1037\u103a\u1015\u102b #: Editor.java:1062 Environment=\u1015\u1010\u103a\u101d\u1014\u103a\u1038\u1000\u103b\u1004\u103a @@ -583,14 +602,14 @@ Environment=\u1015\u1010\u103a\u101d\u1014\u103a\u1038\u1000\u103b\u1004\u103a Error=\u1021\u1019\u103e\u102c\u1038 #: Sketch.java:1065 Sketch.java:1088 -!Error\ adding\ file= +Error\ adding\ file=\u1016\u102d\u102f\u1004\u103a \u1011\u1015\u103a\u1010\u102d\u102f\u1038\u1001\u103c\u1004\u103a\u1038 \u1021\u1019\u103e\u102c\u1038\u1015\u102b\u101e\u100a\u103a #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format -!Error\ compiling\ for\ board\ {0}.= +Error\ compiling\ for\ board\ {0}.=\u1018\u102f\u1010\u103a {0} \u1021\u1010\u103d\u1000\u103a \u1018\u102c\u101e\u102c\u1015\u103c\u1014\u103a\u1001\u103c\u1004\u103a\u1038\u1021\u1019\u103e\u102c\u1038\u1015\u102b\u101e\u100a\u103a\u104b #: debug/Compiler.java:369 -!Error\ compiling.= +Error\ compiling.=\u1018\u102c\u101e\u102c\u1015\u103c\u1014\u103a\u1001\u103c\u1004\u103a\u1038\u1021\u1019\u103e\u102c\u1038\u1015\u102b\u101e\u100a\u103a\u104b #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:113 #, java-format @@ -603,20 +622,36 @@ Error=\u1021\u1019\u103e\u102c\u1038 #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 #, java-format -!Error\ loading\ {0}= +Error\ loading\ {0}=\u1010\u1004\u103a\u1001\u103c\u1004\u103a\u1038\u1021\u1019\u103e\u102c\u1038 {0} #: Serial.java:181 #, java-format -!Error\ opening\ serial\ port\ ''{0}''.= +Error\ opening\ serial\ port\ ''{0}''.=serial port "{0}" \u1000\u102d\u102f \u1016\u103d\u1004\u1037\u103a\u1001\u103c\u1004\u103a\u1038\u1021\u1019\u103e\u102c\u1038\u104b #: ../../../processing/app/Serial.java:119 #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -642,6 +677,9 @@ Error=\u1021\u1019\u103e\u102c\u1038 #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +708,6 @@ Error=\u1021\u1019\u103e\u102c\u1038 #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=\u1025\u1015\u1019\u102c\u1019\u103b\u102c\u1038 @@ -739,7 +774,7 @@ Find...=\u101b\u103e\u102c\u1016\u103d\u1031... Find\:=\u101b\u103e\u102c\u1016\u103d\u1031\: #: ../../../processing/app/Preferences.java:147 -!Finnish= +Finnish=\u1016\u1004\u103a\u101c\u1014\u103a\u1018\u102c\u101e\u102c #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 @@ -756,7 +791,7 @@ Find\:=\u101b\u103e\u102c\u1016\u103d\u1031\: French=\u1015\u103c\u1004\u103a\u101e\u1005\u103a\u1018\u102c\u101e\u102c #: Editor.java:1097 -Frequently\ Asked\ Questions=\u1019\u1000\u103c\u102c\u1001\u100f\u1019\u1031\u1038\u1019\u1031\u1038\u1001\u103d\u1014\u103a\u1038\u1019\u103b\u102c\u1038 +Frequently\ Asked\ Questions=\u1019\u1000\u103c\u102c\u1001\u100f\u1019\u1031\u1038\u101e\u1031\u102c\u1019\u1031\u1038\u1001\u103d\u1014\u103a\u1038\u1019\u103b\u102c\u1038 #: Preferences.java:96 !Galician= @@ -794,16 +829,16 @@ Frequently\ Asked\ Questions=\u1019\u1000\u103c\u102c\u1001\u100f\u1019\u1031\u1 !Go\ to\ line...= #: Preferences.java:98 -!Greek= +Greek=\u1002\u101b\u102d\u1018\u102c\u101e\u102c #: ../../../processing/app/Preferences.java:95 -!Hebrew= +Hebrew=\u101f\u102e\u1018\u101b\u1030\u1038\u1018\u102c\u101e\u102c #: Editor.java:1015 Help=\u1000\u1030\u100a\u102e #: Preferences.java:99 -!Hindi= +Hindi=\u101f\u102d\u1014\u1039\u1012\u1030\u1018\u102c\u101e\u102c #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:489 !Host\ name\:= @@ -815,7 +850,7 @@ Help=\u1000\u1030\u100a\u102e !How\ very\ Borges\ of\ you= #: Preferences.java:100 -!Hungarian= +Hungarian=\u101f\u1014\u103a\u1002\u1031\u101b\u102e\u1018\u102c\u101e\u102c #: ../../../../../app/src/processing/app/Base.java:1319 !INCOMPATIBLE= @@ -823,8 +858,8 @@ Help=\u1000\u1030\u100a\u102e #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -839,11 +874,14 @@ Help=\u1000\u1030\u100a\u102e #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= #: Preferences.java:101 -!Indonesian= +Indonesian=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038\u1018\u102c\u101e\u102c #: ../../../../../app/src/processing/app/Base.java:295 !Initializing\ packages...= @@ -865,9 +903,9 @@ Help=\u1000\u1030\u100a\u102e #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,23 +926,32 @@ Help=\u1000\u1030\u100a\u102e #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 -!Italian= +Italian=\u1021\u102e\u1010\u101c\u102e\u1018\u102c\u101e\u102c #: Preferences.java:103 -!Japanese= +Japanese=\u1002\u103b\u1015\u1014\u103a\u1018\u102c\u101e\u102c #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 !Kazakh= #: Preferences.java:104 -!Korean= +Korean=\u1000\u102d\u102f\u101b\u102e\u1038\u101a\u102c\u1038\u1018\u102c\u101e\u102c #: Preferences.java:105 !Latvian= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -!Library\ Manager= +Library\ Manager=Library \u1019\u1014\u103a\u1014\u1031\u1002\u103b\u102c #: ../../../../../app/src/processing/app/Base.java:2349 !Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu= @@ -912,9 +959,9 @@ Help=\u1000\u1030\u100a\u102e #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -942,23 +989,23 @@ Help=\u1000\u1030\u100a\u102e !Marathi= #: Base.java:2112 -!Message= +Message=\u1019\u1000\u103a\u1006\u1031\u1037\u1001\u103b\u103a #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format -!Missing\ '{0}'\ from\ library\ in\ {1}= +Missing\ '{0}'\ from\ library\ in\ {1}={1} \u1011\u1032\u101b\u103e\u102d library \u1019\u103e '{0}' \u1015\u103b\u1031\u102c\u1000\u103a\u1006\u102f\u1036\u1038 #: ../../../processing/app/BaseNoGui.java:455 !Mode\ not\ supported= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 -!More= +More=\u1014\u1031\u102c\u1000\u103a\u1011\u1015\u103a #: Preferences.java:449 !More\ preferences\ can\ be\ edited\ directly\ in\ the\ file= #: Editor.java:2156 -!Moving= +Moving=\u101c\u103e\u102f\u1015\u103a\u101b\u103e\u102c\u1038 #: ../../../processing/app/BaseNoGui.java:484 !Multiple\ files\ not\ supported= @@ -992,19 +1039,19 @@ Help=\u1000\u1030\u100a\u102e !Network\ upload\ using\ programmer\ not\ supported= #: EditorToolbar.java:41 Editor.java:493 -!New= +New=\u1021\u101e\u1005\u103a #: EditorHeader.java:292 -!New\ Tab= +New\ Tab=Tab \u1021\u101e\u1005\u103a #: SerialMonitor.java:112 -!Newline= +Newline=\u101c\u102d\u102f\u1004\u103a\u1038\u1021\u101e\u1005\u103a #: EditorHeader.java:340 -!Next\ Tab= +Next\ Tab=Tab \u1021\u101e\u1005\u103a #: Preferences.java:78 UpdateCheck.java:108 -!No= +No=\u1019\u101f\u102f\u1010\u103a #: ../../../processing/app/debug/Compiler.java:158 !No\ authorization\ data\ found= @@ -1042,10 +1089,10 @@ Help=\u1000\u1030\u100a\u102e #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 -!No\ sketch= +No\ sketch=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1019\u101f\u102f\u1010\u103a #: ../../../processing/app/BaseNoGui.java:428 -!No\ sketchbook= +No\ sketchbook=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038\u1005\u102c\u1021\u102f\u1015\u103a \u1019\u101f\u102f\u1010\u103a #: ../../../processing/app/Sketch.java:204 !No\ valid\ code\ files\ found= @@ -1089,7 +1136,7 @@ Help=\u1000\u1030\u100a\u102e !Open...= #: ../../../../../arduino-core/src/processing/app/I18n.java:37 -!Other= +Other=\u1021\u1001\u103c\u102c\u1038 #: Editor.java:563 !Page\ Setup= @@ -1104,10 +1151,10 @@ Help=\u1000\u1030\u100a\u102e !Paste= #: Preferences.java:109 -!Persian= +Persian=\u1015\u102b\u101b\u103e\u1014\u103a\u1038\u1018\u102c\u101e\u102c #: ../../../processing/app/Preferences.java:161 -!Persian\ (Iran)= +Persian\ (Iran)=\u1015\u102b\u101b\u103e\u1014\u103a\u1038\u1018\u102c\u101e\u102c (\u1021\u102e\u101b\u1014\u103a) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:79 #, java-format @@ -1145,16 +1192,16 @@ Help=\u1000\u1030\u100a\u102e !Port\ number\:= #: ../../../processing/app/Preferences.java:151 -!Portugese= +Portugese=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e\u1018\u102c\u101e\u102c #: ../../../processing/app/Preferences.java:127 -!Portuguese\ (Brazil)= +Portuguese\ (Brazil)=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e\u1018\u102c\u101e\u102c (\u1018\u101b\u102c\u1007\u102e\u1038) #: ../../../processing/app/Preferences.java:128 -!Portuguese\ (Portugal)= +Portuguese\ (Portugal)=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e\u1018\u102c\u101e\u102c (\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e) #: Preferences.java:295 Editor.java:583 -!Preferences= +Preferences=\u1001\u103b\u102d\u1014\u103a\u100a\u103e\u102d\u1001\u103b\u1000\u103a\u1019\u103b\u102c\u1038 #: ../../../../../app/src/processing/app/Base.java:297 !Preparing\ boards...= @@ -1166,7 +1213,7 @@ Help=\u1000\u1030\u100a\u102e !Previous\ Tab= #: Editor.java:571 -!Print= +Print=\u1015\u102f\u1036\u1014\u103e\u102d\u1015\u103a #: Editor.java:2571 !Printing\ canceled.= @@ -1210,7 +1257,7 @@ Help=\u1000\u1030\u100a\u102e !Progress\ {0}= #: Base.java:783 Editor.java:593 -!Quit= +Quit=\u1011\u103d\u1000\u103a #: ../../../../../app/src/processing/app/Base.java:1233 !RETIRED= @@ -1222,30 +1269,30 @@ Help=\u1000\u1030\u100a\u102e !Redo= #: Editor.java:1078 -!Reference= +Reference=\u1000\u102d\u102f\u1038\u1000\u102c\u1038 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -!Remove= +Remove=\u1016\u101a\u103a\u101b\u103e\u102c\u1038 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 -!Removing...= +Removing...=\u1016\u101a\u103a\u101b\u103e\u102c\u1038\u1014\u1031... #: EditorHeader.java:300 -!Rename= +Rename=\u1021\u1019\u100a\u103a\u1015\u103c\u1031\u102c\u1004\u103a\u1038 #: FindReplace.java:121 FindReplace.java:130 Sketch.java:1046 -!Replace= +Replace=\u1021\u1005\u102c\u1038\u1011\u102d\u102f\u1038 #: FindReplace.java:122 FindReplace.java:129 !Replace\ &\ Find= #: FindReplace.java:120 FindReplace.java:131 -!Replace\ All= +Replace\ All=\u1021\u102c\u1038\u101c\u102f\u1036\u1038\u1021\u1005\u102c\u1038\u1011\u102d\u102f\u1038 #: Sketch.java:1043 #, java-format @@ -1255,10 +1302,13 @@ Help=\u1000\u1030\u100a\u102e !Replace\ with\:= #: ../../../../../arduino-core/src/processing/app/I18n.java:28 -!Retired= +Retired=\u1021\u1014\u102c\u1038\u101a\u1030 + +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= #: Preferences.java:113 -!Romanian= +Romanian=\u101b\u102d\u102f\u1019\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038\u1018\u102c\u101e\u102c #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:83 #, java-format @@ -1269,11 +1319,11 @@ Help=\u1000\u1030\u100a\u102e !Running\:\ {0}= #: Preferences.java:114 -!Russian= +Russian=\u101b\u102f\u101b\u103e\u102c\u1038\u1018\u102c\u101e\u102c #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 Editor.java:2064 #: Editor.java:2468 -!Save= +Save=\u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038 #: Editor.java:537 !Save\ As...= @@ -1292,7 +1342,7 @@ Help=\u1000\u1030\u100a\u102e !Save\ when\ verifying\ or\ uploading= #: Editor.java:2270 Editor.java:2308 -!Saving...= +Saving...=\u101e\u102d\u1019\u103a\u1038\u1006\u100a\u103a\u1038\u1014\u1031... #: ../../../processing/app/FindReplace.java:131 !Search\ all\ Sketch\ Tabs= @@ -1301,7 +1351,7 @@ Help=\u1000\u1030\u100a\u102e !Select\ (or\ create\ new)\ folder\ for\ sketches...= #: Editor.java:1198 Editor.java:2739 -!Select\ All= +Select\ All=\u1021\u102c\u1038\u101c\u102f\u1036\u1038\u101b\u103d\u1031\u1038 #: Base.java:2636 !Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add= @@ -1314,7 +1364,7 @@ Help=\u1000\u1030\u100a\u102e #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 -!Select\ version= +Select\ version=\u1017\u102c\u1038\u101b\u103e\u1004\u103a\u1038\u101b\u103d\u1031\u1038\u1015\u102b #: ../../../processing/app/debug/Compiler.java:146 !Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).= @@ -1348,9 +1398,13 @@ Help=\u1000\u1030\u100a\u102e #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1360,7 +1414,7 @@ Help=\u1000\u1030\u100a\u102e !Setting\ build\ path\ to\ {0}= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -!Settings= +Settings=\u1001\u103b\u102d\u1014\u103a\u100a\u103e\u102d\u1001\u103b\u1000\u103a\u1019\u103b\u102c\u1038 #: Base.java:1681 !Settings\ issues= @@ -1368,6 +1422,9 @@ Help=\u1000\u1030\u100a\u102e #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1375,25 +1432,25 @@ Help=\u1000\u1030\u100a\u102e !Signal\ Input/Output= #: Editor.java:607 -!Sketch= +Sketch=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 #: Sketch.java:1754 -!Sketch\ Disappeared= +Sketch\ Disappeared=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1015\u103b\u1031\u102c\u1000\u103a\u1000\u103d\u101a\u103a #: Base.java:1411 -!Sketch\ Does\ Not\ Exist= +Sketch\ Does\ Not\ Exist=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1019\u101b\u103e\u102d\u1015\u102b #: Sketch.java:274 Sketch.java:303 Sketch.java:577 Sketch.java:966 -!Sketch\ is\ Read-Only= +Sketch\ is\ Read-Only=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u101e\u100a\u103a \u1016\u1010\u103a\u101b\u102f\u1036\u1021\u1010\u103d\u1000\u103a\u101e\u102c #: Sketch.java:294 !Sketch\ is\ Untitled= #: Sketch.java:720 -!Sketch\ is\ read-only= +Sketch\ is\ read-only=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u101e\u100a\u103a \u1016\u1010\u103a\u101b\u102f\u1036\u1021\u1010\u103d\u1000\u103a\u101e\u102c #: Sketch.java:1653 -!Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ it.= +Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ it.=\u1015\u102f\u1036\u1000\u103c\u1019\u103a\u1038 \u1000\u103c\u102e\u1038\u101c\u103d\u1014\u103a\u1038 ; http\://www.arduino.cc/en/Guide/Troubleshooting\#size \u1010\u103d\u1004\u103a \u101c\u103b\u103e\u1031\u102c\u1037\u1001\u103b\u1014\u100a\u103a\u1038\u101c\u1019\u103a\u1038\u1021\u1010\u103d\u1000\u103a \u101d\u1004\u103a\u101b\u1031\u102c\u1000\u103a\u1000\u103c\u100a\u1037\u103a\u101b\u103e\u102f\u1015\u102b\u104b #: ../../../processing/app/Sketch.java:1639 #, java-format @@ -1459,7 +1516,7 @@ Tamil=\u1010\u1019\u102e\u1038\u1018\u102c\u101e\u102c !Telugu= #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 -!Thai= +Thai=\u1011\u102d\u102f\u1004\u103a\u1038\u1018\u102c\u101e\u102c #: debug/Compiler.java:414 !The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.= @@ -1487,6 +1544,10 @@ Tamil=\u1010\u1019\u102e\u1038\u1018\u102c\u101e\u102c #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1511,8 +1572,8 @@ Tamil=\u1010\u1019\u102e\u1038\u1018\u102c\u101e\u102c #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1520,6 +1581,9 @@ Tamil=\u1010\u1019\u102e\u1038\u1018\u102c\u101e\u102c #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1527,7 +1591,7 @@ Tamil=\u1010\u1019\u102e\u1038\u1018\u102c\u101e\u102c !This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n= #: Base.java:535 -!Time\ for\ a\ Break= +Time\ for\ a\ Break=\u1001\u1031\u1010\u1039\u1010\u1014\u102c\u1038\u1001\u103b\u102d\u1014\u103a #: ../../../../../arduino-core/src/processing/app/I18n.java:34 !Timing= @@ -1697,14 +1761,14 @@ Verify=\u1021\u1010\u100a\u103a\u1015\u103c\u102f\u1015\u103c\u102e\u1038 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:328 #, java-format -!Version\ {0}= +Version\ {0}=\u1017\u102c\u1038\u101b\u103e\u1004\u103a\u1038{0} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:326 -!Version\ unknown= +Version\ unknown=\u1017\u102c\u1038\u101b\u103e\u1004\u103a\u1038 \u1019\u101e\u102d #: ../../../cc/arduino/contributions/libraries/ContributedLibrary.java:97 #, java-format -!Version\ {0}= +Version\ {0}=\u1017\u102c\u1038\u101b\u103e\u1004\u103a\u1038 {0} #: ../../../processing/app/Preferences.java:154 Vietnamese=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a\u1018\u102c\u101e\u102c @@ -1854,6 +1918,11 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1921,10 +1990,6 @@ upload=\u1000\u1030\u1038\u1010\u1004\u103a #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1998,10 @@ upload=\u1000\u1030\u1038\u1010\u1004\u103a #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_nb_NO.po b/arduino-core/src/processing/app/i18n/Resources_nb_NO.po index f2d740b825d..cad6df9d0c1 100644 --- a/arduino-core/src/processing/app/i18n/Resources_nb_NO.po +++ b/arduino-core/src/processing/app/i18n/Resources_nb_NO.po @@ -16,10 +16,15 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Augustin Winther , 2019 # Bjørn Andreas, 2014 # Cristian Maglie , 2016 # Kaare Jenssen, 2015 -# lateralus, 2013 +# 81149148127a5edca7d06dcbfba79969, 2013 # Rune Fauske , 2013-2015 # Rune Fauske , 2012 msgid "" @@ -27,8 +32,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:20+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-01-28 17:36+0000\n" +"Last-Translator: Augustin Winther \n" "Language-Team: Norwegian BokmÃ¥l (Norway) (http://www.transifex.com/mbanzi/arduino-ide-15/language/nb_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -54,12 +59,12 @@ msgstr "I bruk: {0}" msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "" +msgstr "'Keyboard' ikke funnet. Har skissen din linjen '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" "'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "" +msgstr "'Mouse' ikke funnet. Har skissen din linjen '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 msgid "" @@ -128,7 +133,7 @@ msgstr "Om Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." @@ -152,7 +157,7 @@ msgstr "Afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Aggressivt hurtigbuffer kompilert kjerne" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -215,6 +220,11 @@ msgstr "Arkiver skissen som:" msgid "Archive sketch canceled." msgstr "Arkivering av skissen avbrutt." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Arkivering av bygget kjerne (hurtigbuffrer) i: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -223,7 +233,7 @@ msgstr "Arkivering av skissen ble avbrutt fordi\nskissen ikke kunne lagres." #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" -msgstr "" +msgstr "Arduino" #: ../../../processing/app/I18n.java:83 msgid "Arduino ARM (32-bits) Boards" @@ -312,7 +322,7 @@ msgstr "Automatiske proxy instillinger" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 msgid "Automatic" -msgstr "" +msgstr "Automatisk" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 msgid "Automatic proxy configuration URL:" @@ -346,13 +356,13 @@ msgstr "Kort" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "Kort info" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "" +msgstr "Kort ved {0} er ikke tilgjengelig" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -413,7 +423,7 @@ msgstr "Bulgarsk" #: ../../../processing/app/Preferences.java:141 msgid "Burmese (Myanmar)" -msgstr "" +msgstr "Burma (Myanmar)" #: Editor.java:708 msgid "Burn Bootloader" @@ -427,7 +437,7 @@ msgstr "Skriver oppstartslaster til I/O kort (dette kan ta et minutt..." msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "CRC stemmer ikke overens, filen er ødelagt. Det kan være et midlertidig problem, prøv igjen senere." #: ../../../processing/app/Base.java:379 #, java-format @@ -436,7 +446,7 @@ msgstr "Kan bare videresende en av: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Kan ikke aktivere eksternt redigeringsprogram" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -482,7 +492,7 @@ msgstr "Kinesisk (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Tom output" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -498,7 +508,7 @@ msgstr "Kommenter/Fjern kommentar" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" -msgstr "" +msgstr "Kommunikasjon" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " @@ -510,7 +520,7 @@ msgstr "Kompilerer skisse..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" -msgstr "" +msgstr "Bidratt" #: Editor.java:1157 Editor.java:2707 msgid "Copy" @@ -540,7 +550,7 @@ msgstr "Kunne ikke kopiere til en riktig plassering." #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "Kunne ikke opprette katalog \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -621,6 +631,11 @@ msgstr "Kunne ikke fjerne gammel versjon av {0}" msgid "Could not replace {0}" msgstr "Kunne ikke erstatte {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Klarte ikke Ã¥ skrive innstillinger fil: {0} " + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Kunne ikke arkivere skisse" @@ -658,11 +673,15 @@ msgstr "Dansk (Danmark)" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" -msgstr "" +msgstr "Databehandling" #: ../../../../../arduino-core/src/processing/app/I18n.java:35 msgid "Data Storage" -msgstr "" +msgstr "Datalagring" + +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Reduser skriftstørrelse" #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" @@ -672,13 +691,17 @@ msgstr "Mindre innrykk" msgid "Default" msgstr "Standard" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Standard tema" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Slett" #: ../../../../../arduino-core/src/processing/app/I18n.java:33 msgid "Device Control" -msgstr "" +msgstr "Enhetskontroll" #: debug/Uploader.java:199 msgid "" @@ -692,7 +715,7 @@ msgstr "Forkast alle endringer og last skissen pÃ¥ nytt?" #: ../../../../../arduino-core/src/processing/app/I18n.java:29 msgid "Display" -msgstr "" +msgstr "Skjerm" #: ../../../processing/app/Preferences.java:438 msgid "Display line numbers" @@ -827,7 +850,7 @@ msgstr "Feil ved tillegging av fil" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format msgid "Error compiling for board {0}." -msgstr "" +msgstr "Feil ved kompilering for kort {0}." #: debug/Compiler.java:369 msgid "Error compiling." @@ -847,6 +870,11 @@ msgstr "Feil oppstod ved henting av datamappe for Arduino" msgid "Error inside Serial.{0}()" msgstr "Feil i Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Feil ved innlasting av tema {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -866,6 +894,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Feil under Ã¥pning av serieport \"{0}\". Undersøk rÃ¥dene i dokumentasjonen her http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Feil ved analyse av biblioteksindeks: {0}\nPrøv Ã¥ Ã¥pne Bibliotek Administrasjon for Ã¥ oppdatere bibliotekets indeks." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Feil ved avlesning av biblioteksindeks: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Feil ved avlesning av pakkeindeks-mappen: {0}\n(kanskje et tillatelsesproblem?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Feil under lesing av innstillinger" @@ -900,6 +947,10 @@ msgstr "Feil oppstod under skriving av oppstartslaster." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Feil under skriving av oppstartslaster: mangler konfigurasjonsparameter '{0}" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Feil under skriving av oppstartslaster: Vennligst velg en seriell port." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Feil under kompilering: mangler '{0}' konfigurasjons parameter " @@ -911,7 +962,7 @@ msgstr "Feil under utskrift." #: ../../../../../arduino-core/src/processing/app/Serial.java:117 #, java-format msgid "Error while setting serial port parameters: {0} {1} {2} {3}" -msgstr "" +msgstr "Feil under oppsett av serielle portparametere: {0} {1} {2} {3}" #: ../../../processing/app/BaseNoGui.java:528 msgid "Error while uploading" @@ -936,23 +987,19 @@ msgstr "Feil under verifisering/opplasting" msgid "Estonian" msgstr "Estisk" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estlandsk (Estland)" - #: Editor.java:516 msgid "Examples" msgstr "Eksempler" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "Eksempler for hvilket som helst kort" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "Eksempler for {0}" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" @@ -960,7 +1007,7 @@ msgstr "Eksempler fra Egendefinerte Bibliotek" #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" -msgstr "" +msgstr "Eksempler fra andre biblioteker" #: ../../../../../app/src/processing/app/Editor.java:753 msgid "Export canceled, changes must first be saved." @@ -978,11 +1025,11 @@ msgstr "Klarte ikke Ã¥pne skissen: \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "Kunne ikke gi nytt navn til \"{0}\" til \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "Kunne ikke gi nytt navn til skissemappen" #: Editor.java:491 msgid "File" @@ -991,7 +1038,7 @@ msgstr "Fil" #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format msgid "File name {0} is invalid: ignored" -msgstr "" +msgstr "Filnavnet {0} er ugyldig: ignorert" #: Preferences.java:94 msgid "Filipino" @@ -1059,7 +1106,7 @@ msgstr "Galisisk" #: ../../../../../app/src/processing/app/Preferences.java:176 msgid "Galician (Spain)" -msgstr "" +msgstr "Galisisk (Spania)" #: ../../../../../app/src/processing/app/Editor.java:1288 msgid "Galileo Help" @@ -1075,7 +1122,7 @@ msgstr "Tysk" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "FÃ¥ Kort info" #: Editor.java:1054 msgid "Getting Started" @@ -1137,15 +1184,15 @@ msgstr "Ungarsk" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" -msgstr "" +msgstr "UFORENLIG" #: FindReplace.java:96 msgid "Ignore Case" msgstr "Ikke skill mellom store og smÃ¥ bokstaver" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Overser ugyldig biblioteksnavn" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignorerer bibliotek med dÃ¥rlig navn" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1171,6 +1218,10 @@ msgstr "Inkluder Bibliotek" msgid "Incorrect IDE installation folder" msgstr "Feil IDE installasjons mappe" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Øk skriftstørrelse" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Mer innrykk" @@ -1204,10 +1255,10 @@ msgstr "Installert" msgid "Installing boards..." msgstr "Installerer kort..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Installerer bibliotek: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Installere bibliotek: {0}: {1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1221,7 +1272,7 @@ msgstr "Installerer..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 msgid "Interface scale:" -msgstr "" +msgstr "Grensesnitt størrelse:" #: ../../../processing/app/Base.java:1204 #, java-format @@ -1233,6 +1284,17 @@ msgstr "Ugyldig bibliotek i {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Ugyldig tegnbruk: Ingen lukking av [{0}] funnet." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Ugyldig versjon '{0}' for biblioteket i: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Ugyldig versjon {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italiensk" @@ -1243,7 +1305,7 @@ msgstr "Japansk" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "Kazakh" #: Preferences.java:104 msgid "Korean" @@ -1263,12 +1325,12 @@ msgstr "Biblioteket er lagt til i dine bibliotek. Sjekk \"Inkluder Bibliotek\" m #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" -msgstr "" +msgstr "Biblioteket kan ikke bruke bÃ¥de 'src' og 'utility' mapper. Dobbeltsjekk {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Biblioteket er allerede installert: {0} versjon {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Biblioteket er allerede installert: {0}: {1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1347,7 +1409,7 @@ msgstr "Navn pÃ¥ ny fil:" #: ../../../../../app//src/processing/app/Editor.java:2809 msgid "Native serial port, can't obtain info" -msgstr "" +msgstr "Nativ seriell port, kan ikke hente informasjon" #: ../../../processing/app/Preferences.java:149 msgid "Nepali" @@ -1359,7 +1421,7 @@ msgstr "Nettverk" #: ../../../../../app//src/processing/app/Editor.java:2804 msgid "Network port, can't obtain info" -msgstr "" +msgstr "Nettverksport, kan ikke hente informasjon" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Network ports" @@ -1501,7 +1563,7 @@ msgstr "Ã…pne..." #: ../../../../../arduino-core/src/processing/app/I18n.java:37 msgid "Other" -msgstr "" +msgstr "Annen" #: Editor.java:563 msgid "Page Setup" @@ -1509,7 +1571,7 @@ msgstr "Sideoppsett" #: ../../../../../arduino-core/src/processing/app/I18n.java:25 msgid "Partner" -msgstr "" +msgstr "Partner" #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 msgid "Password:" @@ -1550,7 +1612,7 @@ msgstr "Vennligst importer Wire biblioteket fra Skisse -> Importer Bibliotek men #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" -msgstr "" +msgstr "Vennligst velg en port for Ã¥ fÃ¥ informasjon om kort" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 @@ -1559,7 +1621,7 @@ msgstr "Vennligst velg en programmerer (ISP) fra Verktøy -> Programmerer menyen #: ../../../../../app/src/processing/app/Editor.java:2613 msgid "Plotter not available while serial monitor is open" -msgstr "" +msgstr "Plotter er ikke tilgjengelig mens seriell monitor er Ã¥pen" #: Preferences.java:110 msgid "Polish" @@ -1579,11 +1641,11 @@ msgstr "Portugisisk" #: ../../../processing/app/Preferences.java:127 msgid "Portuguese (Brazil)" -msgstr "" +msgstr "Portugisisk (Brasil)" #: ../../../processing/app/Preferences.java:128 msgid "Portuguese (Portugal)" -msgstr "" +msgstr "Portugisisk (Portugal) " #: Preferences.java:295 Editor.java:583 msgid "Preferences" @@ -1632,7 +1694,7 @@ msgstr "Problemer med tilgang til kort-mappen /www/sd" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format msgid "Problem accessing files in folder \"{0}\"" -msgstr "" +msgstr "Problemer med Ã¥ fÃ¥ tilgang til filer i mappen \"{0}\"" #: Base.java:1673 msgid "Problem getting data folder" @@ -1671,7 +1733,7 @@ msgstr "UTE AV PRODUKSJON" #: ../../../../../arduino-core/src/processing/app/I18n.java:26 msgid "Recommended" -msgstr "" +msgstr "Anbefalt" #: Editor.java:1138 Editor.java:1140 Editor.java:1390 msgid "Redo" @@ -1685,10 +1747,10 @@ msgstr "Referanse" msgid "Remove" msgstr "Fjern" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Fjern bibliotek: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Fjerner bibliotek: {0}: {1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1722,7 +1784,11 @@ msgstr "Erstatt med:" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" -msgstr "" +msgstr "Ute av produksjon" + +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Prøv pÃ¥ nytt med en annen seriell port?" #: Preferences.java:113 msgid "Romanian" @@ -1819,7 +1885,7 @@ msgstr "Send" #: ../../../../../arduino-core/src/processing/app/I18n.java:32 msgid "Sensors" -msgstr "" +msgstr "Sensorer" #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 msgid "Serial Monitor" @@ -1834,11 +1900,11 @@ msgstr "Seriell Plotter" msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "Seriell monitor støttes ikke pÃ¥ nettverksporter som {0} for {1} i denne versjonen" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" -msgstr "" +msgstr "Seriell monitor er ikke tilgjengelig mens plotteren er Ã¥pen" #: Serial.java:194 #, java-format @@ -1847,12 +1913,15 @@ msgid "" " Serial Port menu?" msgstr "Fant ikke serieporten ''{0}''. Valgte du den riktige fra Verktøy > Serieport menyen?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Seriell port ikke valgt." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Fant ikke serieporten {0}.\nLast opp pÃ¥ nytt med en anne serieport?" +msgid "Serial port {0} not found." +msgstr "Seriell port {0} ikke funnet." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1875,13 +1944,17 @@ msgstr "Problemer med innstillinger" msgid "Show Sketch Folder" msgstr "Vis skissemappe" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Vis tidsstempel" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Vis detaljert informasjon under: " #: ../../../../../arduino-core/src/processing/app/I18n.java:31 msgid "Signal Input/Output" -msgstr "" +msgstr "Signal Inngang/Utgang" #: Editor.java:607 msgid "Sketch" @@ -1939,7 +2012,7 @@ msgstr "Skissebok mappen er ikke definert" #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format msgid "Skipping contributed index file {0}, parsing error occured:" -msgstr "" +msgstr "Hopper over bidratt indeksfil {0}, det oppstod en analysefeil:" #: ../../../../../app/src/processing/app/Preferences.java:185 msgid "Slovak" @@ -1965,7 +2038,7 @@ msgstr "Fordi noen filer er merket \"skrivebeskyttet\", mÃ¥ \ndenne skissen lagr #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format msgid "Sorry, the folder \"{0}\" already exists." -msgstr "" +msgstr "Beklager, mappen \"{0}\" eksisterer allerede." #: Preferences.java:115 msgid "Spanish" @@ -1993,7 +2066,7 @@ msgstr "System standardverdi" #: ../../../../../app/src/processing/app/Preferences.java:188 msgid "Talossan" -msgstr "" +msgstr "Talossan" #: Preferences.java:116 msgid "Tamil" @@ -2001,11 +2074,11 @@ msgstr "Tamilsk" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" -msgstr "" +msgstr "Thailandsk" #: debug/Compiler.java:414 msgid "The 'BYTE' keyword is no longer supported." @@ -2036,7 +2109,7 @@ msgstr "Udp klassen har blitt omdøpt til EthernetUdp" #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "" +msgstr "Det valgte kortet trenger kjernen '{0}' som ikke er installert." #: Editor.java:2147 #, java-format @@ -2046,6 +2119,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Filen \"{0}\" mÃ¥ ligge i en skissemappe\nmed følgende navn \"{1}\".\nOpprett denne mappen, flytt filen og fortsett?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Biblioteket \"{0}\" kan ikke brukes.\nBibliotekmappenavn mÃ¥ starte med en bokstav eller et nummer, etterfulgt av bokstaver,\ntall, bindestreker, punktum og understreker. Maksimum lengde er 63 tegn." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2056,7 +2137,7 @@ msgstr "Biblioteket \"{0}\" kan ikke benyttes.\nBiblioteksnavn kan kun inneholde #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "Hovedfilen kan ikke bruke en utvidelse" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2082,7 +2163,7 @@ msgstr "Skissen \"{0}\" kan ikke benyttes.\nSkissenavn kan kun inneholde bokstav #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format msgid "The sketch already contains a file named \"{0}\"" -msgstr "" +msgstr "Skissen inneholder allerede en fil med navnet \"{0}\"" #: Sketch.java:1755 msgid "" @@ -2091,12 +2172,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Skissemappen har forsvunnet.\n Vil forsøke Ã¥ lagre pÃ¥ nytt i samme lokasjon,\nmen alt utenom kildekoden vil gÃ¥ tapt." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Skissenavnet mÃ¥tte endres. Skissenavn kan kun inneholde\nASCII karakterer og tall (men ikke starte med tall).\nDet mÃ¥ ogsÃ¥ være kortere enn 64 tegn." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Skissens navn mÃ¥tte endres.\nSkisse navn mÃ¥ starte med en bokstav eller et tall, etterfulgt av bokstaver,\ntall, bindestreker, punktum og understreker. Maksimum lengde er 63 tegn." #: Base.java:259 msgid "" @@ -2113,6 +2194,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Den spesifiserte skissebok-mappen inneholder din kopi av IDE'en.\nVennligst velg en annen mappe som din skissebok." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Tema:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2124,7 +2209,7 @@ msgid "" "This report would have more information with\n" "\"Show verbose output during compilation\"\n" "option enabled in File -> Preferences.\n" -msgstr "" +msgstr "Denne rapporten ville hatt mer informasjon med\n\"Vis detaljert informasjon under kompilering\"\nalternativet aktivert i Fil -> Innstillinger.\n" #: Base.java:535 msgid "Time for a Break" @@ -2132,7 +2217,7 @@ msgstr "Tid for pause" #: ../../../../../arduino-core/src/processing/app/I18n.java:34 msgid "Timing" -msgstr "" +msgstr "Timing" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -2175,7 +2260,7 @@ msgstr "Ukrainsk" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format msgid "Unable to connect to {0}" -msgstr "" +msgstr "Kan ikke koble til {0}" #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 @@ -2210,7 +2295,7 @@ msgstr "Kan ikke nÃ¥ arduino.cc grunnet mulige nettverksproblemer." #: ../../../../../arduino-core/src/processing/app/I18n.java:38 msgid "Uncategorized" -msgstr "" +msgstr "Ukategorisert" #: Editor.java:1133 Editor.java:1355 msgid "Undo" @@ -2223,7 +2308,7 @@ msgstr "Ubehandlet type {0} i context key {1}" #: ../../../../../app//src/processing/app/Editor.java:2818 msgid "Unknown board" -msgstr "" +msgstr "Ukjent kort " #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -2279,7 +2364,7 @@ msgstr "Last opp med en Programmerer" #: ../../../../../app//src/processing/app/Editor.java:2814 msgid "Upload any sketch to obtain it" -msgstr "" +msgstr "Last opp en hvilket som helst skisse for Ã¥ skaffe den" #: Editor.java:2403 Editor.java:2439 msgid "Upload canceled." @@ -2379,7 +2464,7 @@ msgstr "ADVARSEL: Kategori '{0}' i bibliotek {1} er ikke gyldig. Innstiller til #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format msgid "WARNING: Spurious {0} folder in '{1}' library" -msgstr "" +msgstr "ADVARSEL: Falsk {0} mappe i '{1}' biblioteket" #: ../../../processing/app/debug/Compiler.java:115 #, java-format @@ -2422,13 +2507,13 @@ msgstr "Advarsel: Ukjent kontributør, hopper over kjøring av skript ({0})" msgid "" "Warning: platform.txt from core '{0}' contains deprecated {1}, automatically" " converted to {2}. Consider upgrading this core." -msgstr "" +msgstr "Advarsel: platform.txt fra kjernen '{0}' inneholder utdatert {1}, automatisk konvertert til {2}. Vurder Ã¥ oppgradere denne kjernen." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 msgid "" "Warning: platform.txt from core '{0}' misses property '{1}', using default " "value '{2}'. Consider upgrading this core." -msgstr "" +msgstr "Advarsel: platform.txt fra kjernen '{0}' mangler egenskapen '{1}', med standardverdien '{2}'. Vurder Ã¥ oppgradere denne kjernen." #: ../../../../../app/src/processing/app/Preferences.java:190 msgid "Western Frisian" @@ -2474,7 +2559,7 @@ msgstr "Du glemte skisseboken din" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "Du har ulagrede endringer!\nDu mÃ¥ lagre alle skissene dine for Ã¥ aktivere dette alternativet." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2519,7 +2604,7 @@ msgid "" "older version of Arduino, you may need to use Tools -> Fix Encoding & Reload" " to update the sketch to use UTF-8 encoding. If not, you may need to delete " "the bad characters to get rid of this warning." -msgstr "" +msgstr "\"{0}\" inneholder ukjente tegn. Hvis denne koden ble opprettet med en eldre versjon av Arduino, kan det hende du mÃ¥ bruke Verktøy -> Reparer tekstkoding & Last pÃ¥ nytt for Ã¥ oppdatere skissen til Ã¥ benytte UTF-8 tekstkoding. Hvis ikke, mÃ¥ du kanskje slette de ukjente tegnene for Ã¥ bli kvitt advarselen. " #: debug/Compiler.java:409 msgid "" @@ -2605,6 +2690,12 @@ msgstr "ser bort fra ugyldig skriftstørrelse {0}" msgid "name is null" msgstr "name er null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "ingen 'header' filer (.h) funnet i {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu er null" @@ -2663,7 +2754,7 @@ msgstr "{0} mÃ¥ være en mappe" #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format msgid "{0} on {1}" -msgstr "" +msgstr "{0} pÃ¥ {1}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format @@ -2692,11 +2783,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Ugyldig navn pÃ¥ kort, det bør ha formen \"pakke:arkitektur:kort\" eller \"pakke:arkitektur:kort:opsjon\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Ugyldig opsjon for \"{1}\" opsjon for kortet \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2707,6 +2793,11 @@ msgstr "{0}: Ugyldig opsjon for kort \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Ugyldig opsjon, mÃ¥ ha formen \"navn=verdi\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Ugyldig verdi for alternativ \"{1}\" for kortet \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" @@ -2725,4 +2816,4 @@ msgstr "{0}: Ukjent pakke" #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format msgid "{0}Install this package{1} to use your {2} board" -msgstr "" +msgstr "{0}Installer denne pakken{1} for Ã¥ bruke {2} kortet ditt" diff --git a/arduino-core/src/processing/app/i18n/Resources_nb_NO.properties b/arduino-core/src/processing/app/i18n/Resources_nb_NO.properties index 1657c0294d6..d00dc881e18 100644 --- a/arduino-core/src/processing/app/i18n/Resources_nb_NO.properties +++ b/arduino-core/src/processing/app/i18n/Resources_nb_NO.properties @@ -16,13 +16,18 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Augustin Winther , 2019 # Bj\u00f8rn Andreas, 2014 # Cristian Maglie , 2016 # Kaare Jenssen, 2015 -# lateralus, 2013 +# 81149148127a5edca7d06dcbfba79969, 2013 # Rune Fauske , 2013-2015 # Rune Fauske , 2012 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:20+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Norwegian Bokm\u00e5l (Norway) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/nb_NO/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: nb_NO\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-01-28 17\:36+0000\nLast-Translator\: Augustin Winther \nLanguage-Team\: Norwegian Bokm\u00e5l (Norway) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/nb_NO/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: nb_NO\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (krever omstart av Arduino) @@ -36,10 +41,10 @@ \ Used\:\ {0}=I bruk\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -!'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Keyboard' ikke funnet. Har skissen din linjen '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -!'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Mouse' ikke funnet. Har skissen din linjen '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information='arch' mappen er ikke lenger st\u00f8ttet\! Se http\://goo.gl/gfFJzU for mer informasjon. @@ -84,7 +89,7 @@ A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=En underkatalog a About\ Arduino=Om Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=Acoli #: ../../../../../app/src/processing/app/Base.java:1177 Add\ .ZIP\ Library...=Legg til .ZIP Bibliotek... @@ -102,7 +107,7 @@ Additional\ Boards\ Manager\ URLs\:\ =Flere 'Boards Manager' URLer\: Afrikaans=Afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Aggressivt hurtigbuffer kompilert kjerne #: ../../../processing/app/Preferences.java:96 Albanian=Albansk @@ -147,11 +152,15 @@ Archive\ sketch\ as\:=Arkiver skissen som\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arkivering av skissen avbrutt. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Arkivering av bygget kjerne (hurtigbuffrer) i\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Arkivering av skissen ble avbrutt fordi\nskissen ikke kunne lagres. #: ../../../../../arduino-core/src/processing/app/I18n.java:24 -!Arduino= +Arduino=Arduino #: ../../../processing/app/I18n.java:83 Arduino\ ARM\ (32-bits)\ Boards=Arduino ARM (32-bits) Kort @@ -214,7 +223,7 @@ Auto\ Format\ finished.=Autoformatering ferdig. Auto-detect\ proxy\ settings=Automatiske proxy instillinger #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 -!Automatic= +Automatic=Automatisk #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 Automatic\ proxy\ configuration\ URL\:=Automatisk proxy konfigurasjons URL\: @@ -240,12 +249,12 @@ Belarusian=Hviterussisk Board=Kort #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=Kort info #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -!Board\ at\ {0}\ is\ not\ available= +Board\ at\ {0}\ is\ not\ available=Kort ved {0} er ikke tilgjengelig #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -290,7 +299,7 @@ Built-in\ Examples=Innebygde Eksempler Bulgarian=Bulgarsk #: ../../../processing/app/Preferences.java:141 -!Burmese\ (Myanmar)= +Burmese\ (Myanmar)=Burma (Myanmar) #: Editor.java:708 Burn\ Bootloader=Skriv oppstartslaster @@ -299,14 +308,14 @@ Burn\ Bootloader=Skriv oppstartslaster Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Skriver oppstartslaster til I/O kort (dette kan ta et minutt... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC stemmer ikke overens, filen er \u00f8delagt. Det kan v\u00e6re et midlertidig problem, pr\u00f8v igjen senere. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}=Kan bare videresende en av\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=Kan ikke aktivere eksternt redigeringsprogram #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -341,7 +350,7 @@ Chinese\ (Taiwan)=Kinesisk (Taiwan) Chinese\ (Taiwan)\ (Big5)=Kinesisk (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Tom output #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Klikk for en liste med linker til st\u00f8ttesider for uoffisielle kort @@ -353,7 +362,7 @@ Close=Lukk Comment/Uncomment=Kommenter/Fjern kommentar #: ../../../../../arduino-core/src/processing/app/I18n.java:30 -!Communication= +Communication=Kommunikasjon #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 Compiler\ warnings\:\ =Kompilatoradvarsler\: @@ -362,7 +371,7 @@ Compiler\ warnings\:\ =Kompilatoradvarsler\: Compiling\ sketch...=Kompilerer skisse... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 -!Contributed= +Contributed=Bidratt #: Editor.java:1157 Editor.java:2707 Copy=Kopier @@ -385,7 +394,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=Kunne ikke kopiere til en riktig plas #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=Kunne ikke opprette katalog "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=Kunne ikke opprette skissemappen. @@ -441,6 +450,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Kunne ikke fjerne gammel versjon av {0 #, java-format Could\ not\ replace\ {0}=Kunne ikke erstatte {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Klarte ikke \u00e5 skrive innstillinger fil\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Kunne ikke arkivere skisse @@ -466,10 +479,13 @@ Czech\ (Czech\ Republic)=Tsjekkisk (Tsjekkisk Republikk) Danish\ (Denmark)=Dansk (Danmark) #: ../../../../../arduino-core/src/processing/app/I18n.java:36 -!Data\ Processing= +Data\ Processing=Databehandling #: ../../../../../arduino-core/src/processing/app/I18n.java:35 -!Data\ Storage= +Data\ Storage=Datalagring + +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Reduser skriftst\u00f8rrelse #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Mindre innrykk @@ -477,11 +493,14 @@ Decrease\ Indent=Mindre innrykk #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Standard +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Standard tema + #: EditorHeader.java:314 Sketch.java:591 Delete=Slett #: ../../../../../arduino-core/src/processing/app/I18n.java:33 -!Device\ Control= +Device\ Control=Enhetskontroll #: debug/Uploader.java:199 Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=Enheten svarer ikke, sjekk at riktig serieport er valgt eller RESET kortet like f\u00f8r eksportering @@ -490,7 +509,7 @@ Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ Discard\ all\ changes\ and\ reload\ sketch?=Forkast alle endringer og last skissen p\u00e5 nytt? #: ../../../../../arduino-core/src/processing/app/I18n.java:29 -!Display= +Display=Skjerm #: ../../../processing/app/Preferences.java:438 Display\ line\ numbers=Vis linjenummer @@ -592,7 +611,7 @@ Error\ adding\ file=Feil ved tillegging av fil #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format -!Error\ compiling\ for\ board\ {0}.= +Error\ compiling\ for\ board\ {0}.=Feil ved kompilering for kort {0}. #: debug/Compiler.java:369 Error\ compiling.=Feil ved kompilering. @@ -608,6 +627,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Feil oppstod ved henting av datamapp #, java-format Error\ inside\ Serial.{0}()=Feil i Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Feil ved innlasting av tema {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -622,6 +645,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Feil ved \u00e5pning av serieport ''{0}'' #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Feil under \u00e5pning av serieport "{0}". Unders\u00f8k r\u00e5dene i dokumentasjonen her http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Feil ved analyse av biblioteksindeks\: {0}\nPr\u00f8v \u00e5 \u00e5pne Bibliotek Administrasjon for \u00e5 oppdatere bibliotekets indeks. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Feil ved avlesning av biblioteksindeks\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Feil ved avlesning av pakkeindeks-mappen\: {0}\n(kanskje et tillatelsesproblem?) + #: Preferences.java:277 Error\ reading\ preferences=Feil under lesing av innstillinger @@ -647,6 +682,9 @@ Error\ while\ burning\ bootloader.=Feil oppstod under skriving av oppstartslaste #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Feil under skriving av oppstartslaster\: mangler konfigurasjonsparameter '{0} +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Feil under skriving av oppstartslaster\: Vennligst velg en seriell port. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Feil under kompilering\: mangler '{0}' konfigurasjons parameter @@ -655,7 +693,7 @@ Error\ while\ printing.=Feil under utskrift. #: ../../../../../arduino-core/src/processing/app/Serial.java:117 #, java-format -!Error\ while\ setting\ serial\ port\ parameters\:\ {0}\ {1}\ {2}\ {3}= +Error\ while\ setting\ serial\ port\ parameters\:\ {0}\ {1}\ {2}\ {3}=Feil under oppsett av serielle portparametere\: {0} {1} {2} {3} #: ../../../processing/app/BaseNoGui.java:528 Error\ while\ uploading=Det oppstod en feil under opplastingen @@ -675,25 +713,22 @@ Error\ while\ verifying/uploading=Feil under verifisering/opplasting #: Preferences.java:93 Estonian=Estisk -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estlandsk (Estland) - #: Editor.java:516 Examples=Eksempler #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=Eksempler for hvilket som helst kort #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}=Eksempler for {0} #: ../../../../../app/src/processing/app/Base.java:1244 Examples\ from\ Custom\ Libraries=Eksempler fra Egendefinerte Bibliotek #: ../../../../../app/src/processing/app/Base.java:1329 -!Examples\ from\ Other\ Libraries= +Examples\ from\ Other\ Libraries=Eksempler fra andre biblioteker #: ../../../../../app/src/processing/app/Editor.java:753 Export\ canceled,\ changes\ must\ first\ be\ saved.=Eksportering-kansellert, endringer m\u00e5 f\u00f8rst lagres. @@ -707,17 +742,17 @@ Failed\ to\ open\ sketch\:\ "{0}"=Klarte ikke \u00e5pne skissen\: "{0}" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=Kunne ikke gi nytt navn til "{0}" til "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=Kunne ikke gi nytt navn til skissemappen #: Editor.java:491 File=Fil #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format -!File\ name\ {0}\ is\ invalid\:\ ignored= +File\ name\ {0}\ is\ invalid\:\ ignored=Filnavnet {0} er ugyldig\: ignorert #: Preferences.java:94 Filipino=Filippinsk @@ -767,7 +802,7 @@ Frequently\ Asked\ Questions=Ofte spurte sp\u00f8rsm\u00e5l Galician=Galisisk #: ../../../../../app/src/processing/app/Preferences.java:176 -!Galician\ (Spain)= +Galician\ (Spain)=Galisisk (Spania) #: ../../../../../app/src/processing/app/Editor.java:1288 Galileo\ Help=Galileo Hjelp @@ -779,7 +814,7 @@ Georgian=Georgisk German=Tysk #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=F\u00e5 Kort info #: Editor.java:1054 Getting\ Started=Kom i Gang @@ -823,13 +858,13 @@ How\ very\ Borges\ of\ you=Dette var surrealistisk Hungarian=Ungarsk #: ../../../../../app/src/processing/app/Base.java:1319 -!INCOMPATIBLE= +INCOMPATIBLE=UFORENLIG #: FindReplace.java:96 Ignore\ Case=Ikke skill mellom store og sm\u00e5 bokstaver -#: Base.java:1058 -Ignoring\ bad\ library\ name=Overser ugyldig biblioteksnavn +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignorerer bibliotek med d\u00e5rlig navn #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Overser skisse med ugyldig navn @@ -844,6 +879,9 @@ Include\ Library=Inkluder Bibliotek #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Feil IDE installasjons mappe +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u00d8k skriftst\u00f8rrelse + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Mer innrykk @@ -870,9 +908,9 @@ Installed=Installert #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Installerer kort... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Installerer bibliotek\: {0} +Installing\ library\:\ {0}\:{1}=Installere bibliotek\: {0}\: {1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -883,7 +921,7 @@ Installing\ tools\ ({0}/{1})...=Installerer verkt\u00f8y ({0}/{1})... Installing...=Installerer... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 -!Interface\ scale\:= +Interface\ scale\:=Grensesnitt st\u00f8rrelse\: #: ../../../processing/app/Base.java:1204 #, java-format @@ -893,6 +931,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Ugyldig bibliotek i {0}\: {1} #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Ugyldig tegnbruk\: Ingen lukking av [{0}] funnet. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Ugyldig versjon '{0}' for biblioteket i\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Ugyldig versjon {0} + #: Preferences.java:102 Italian=Italiensk @@ -900,7 +947,7 @@ Italian=Italiensk Japanese=Japansk #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=Kazakh #: Preferences.java:104 Korean=Koreansk @@ -915,11 +962,11 @@ Library\ Manager=Bibliotek Administrasjon Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Biblioteket er lagt til i dine bibliotek. Sjekk "Inkluder Bibliotek" menyen #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -!Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= +Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Biblioteket kan ikke bruke b\u00e5de 'src' og 'utility' mapper. Dobbeltsjekk {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Biblioteket er allerede installert\: {0} versjon {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Biblioteket er allerede installert\: {0}\: {1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Linje nummer\: @@ -979,7 +1026,7 @@ Must\ specify\ exactly\ one\ sketch\ file=Du m\u00e5 spesifisere n\u00f8yaktig - Name\ for\ new\ file\:=Navn p\u00e5 ny fil\: #: ../../../../../app//src/processing/app/Editor.java:2809 -!Native\ serial\ port,\ can't\ obtain\ info= +Native\ serial\ port,\ can't\ obtain\ info=Nativ seriell port, kan ikke hente informasjon #: ../../../processing/app/Preferences.java:149 Nepali=Nepalsk @@ -988,7 +1035,7 @@ Nepali=Nepalsk Network=Nettverk #: ../../../../../app//src/processing/app/Editor.java:2804 -!Network\ port,\ can't\ obtain\ info= +Network\ port,\ can't\ obtain\ info=Nettverksport, kan ikke hente informasjon #: ../../../../../app/src/processing/app/Editor.java:65 Network\ ports=Nettverks-porter @@ -1094,13 +1141,13 @@ Open\ an\ Arduino\ sketch...=\u00c5pne en Arduino skisse... Open...=\u00c5pne... #: ../../../../../arduino-core/src/processing/app/I18n.java:37 -!Other= +Other=Annen #: Editor.java:563 Page\ Setup=Sideoppsett #: ../../../../../arduino-core/src/processing/app/I18n.java:25 -!Partner= +Partner=Partner #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 Password\:=Passord\: @@ -1131,14 +1178,14 @@ Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.= Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Vennligst importer Wire biblioteket fra Skisse -> Importer Bibliotek menyen #: ../../../../../app//src/processing/app/Editor.java:2799 -!Please\ select\ a\ port\ to\ obtain\ board\ info= +Please\ select\ a\ port\ to\ obtain\ board\ info=Vennligst velg en port for \u00e5 f\u00e5 informasjon om kort #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=Vennligst velg en programmerer (ISP) fra Verkt\u00f8y -> Programmerer menyen #: ../../../../../app/src/processing/app/Editor.java:2613 -!Plotter\ not\ available\ while\ serial\ monitor\ is\ open= +Plotter\ not\ available\ while\ serial\ monitor\ is\ open=Plotter er ikke tilgjengelig mens seriell monitor er \u00e5pen #: Preferences.java:110 Polish=Polsk @@ -1153,10 +1200,10 @@ Port\ number\:=Port nummer\: Portugese=Portugisisk #: ../../../processing/app/Preferences.java:127 -!Portuguese\ (Brazil)= +Portuguese\ (Brazil)=Portugisisk (Brasil) #: ../../../processing/app/Preferences.java:128 -!Portuguese\ (Portugal)= +Portuguese\ (Portugal)=Portugisisk (Portugal) #: Preferences.java:295 Editor.java:583 Preferences=Innstillinger @@ -1193,7 +1240,7 @@ Problem\ accessing\ board\ folder\ /www/sd=Problemer med tilgang til kort-mappen #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format -!Problem\ accessing\ files\ in\ folder\ "{0}"= +Problem\ accessing\ files\ in\ folder\ "{0}"=Problemer med \u00e5 f\u00e5 tilgang til filer i mappen "{0}" #: Base.java:1673 Problem\ getting\ data\ folder=Problem ved henting av datamappe @@ -1221,7 +1268,7 @@ Quit=Avslutt RETIRED=UTE AV PRODUKSJON #: ../../../../../arduino-core/src/processing/app/I18n.java:26 -!Recommended= +Recommended=Anbefalt #: Editor.java:1138 Editor.java:1140 Editor.java:1390 Redo=Gj\u00f8r om @@ -1232,9 +1279,9 @@ Reference=Referanse #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Fjern -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Fjern bibliotek\: {0} +Removing\ library\:\ {0}\:{1}=Fjerner bibliotek\: {0}\: {1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1260,7 +1307,10 @@ Replace\ the\ existing\ version\ of\ {0}?=Erstatt den eksisterende versjonen av Replace\ with\:=Erstatt med\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 -!Retired= +Retired=Ute av produksjon + +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Pr\u00f8v p\u00e5 nytt med en annen seriell port? #: Preferences.java:113 Romanian=Rumensk @@ -1334,7 +1384,7 @@ Selected\ library\ is\ not\ available=Valg bibliotek er ikke tilgjengelig Send=Send #: ../../../../../arduino-core/src/processing/app/I18n.java:32 -!Sensors= +Sensors=Sensorer #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 Serial\ Monitor=Seriell overv\u00e5ker @@ -1344,18 +1394,22 @@ Serial\ Plotter=Seriell Plotter #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=Seriell monitor st\u00f8ttes ikke p\u00e5 nettverksporter som {0} for {1} i denne versjonen #: ../../../../../app/src/processing/app/Editor.java:2516 -!Serial\ monitor\ not\ available\ while\ plotter\ is\ open= +Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Seriell monitor er ikke tilgjengelig mens plotteren er \u00e5pen #: Serial.java:194 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Fant ikke serieporten ''{0}''. Valgte du den riktige fra Verkt\u00f8y > Serieport menyen? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Seriell port ikke valgt. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Fant ikke serieporten {0}.\nLast opp p\u00e5 nytt med en anne serieport? +Serial\ port\ {0}\ not\ found.=Seriell port {0} ikke funnet. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Seriell porter @@ -1373,11 +1427,14 @@ Settings\ issues=Problemer med innstillinger #: Editor.java:641 Show\ Sketch\ Folder=Vis skissemappe +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Vis tidsstempel + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Vis detaljert informasjon under\: #: ../../../../../arduino-core/src/processing/app/I18n.java:31 -!Signal\ Input/Output= +Signal\ Input/Output=Signal Inngang/Utgang #: Editor.java:607 Sketch=Skisse @@ -1418,7 +1475,7 @@ Sketchbook\ path\ not\ defined=Skissebok mappen er ikke definert #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format -!Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:= +Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=Hopper over bidratt indeksfil {0}, det oppstod en analysefeil\: #: ../../../../../app/src/processing/app/Preferences.java:185 Slovak=Slovak @@ -1434,7 +1491,7 @@ Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ ske #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format -!Sorry,\ the\ folder\ "{0}"\ already\ exists.= +Sorry,\ the\ folder\ "{0}"\ already\ exists.=Beklager, mappen "{0}" eksisterer allerede. #: Preferences.java:115 Spanish=Spansk @@ -1455,16 +1512,16 @@ Swedish=Svenska bror System\ Default=System standardverdi #: ../../../../../app/src/processing/app/Preferences.java:188 -!Talossan= +Talossan=Talossan #: Preferences.java:116 Tamil=Tamilsk #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=Telugu #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 -!Thai= +Thai=Thailandsk #: debug/Compiler.java:414 The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.='BYTE' n\u00f8kkelordet er ikke st\u00f8ttet lenger. @@ -1486,18 +1543,22 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=Server klassen har blitt The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp klassen har blitt omd\u00f8pt til EthernetUdp #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -!The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.= +The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=Det valgte kortet trenger kjernen '{0}' som ikke er installert. #: Editor.java:2147 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Filen "{0}" m\u00e5 ligge i en skissemappe\nmed f\u00f8lgende navn "{1}".\nOpprett denne mappen, flytt filen og fortsett? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Biblioteket "{0}" kan ikke brukes.\nBibliotekmappenavn m\u00e5 starte med en bokstav eller et nummer, etterfulgt av bokstaver,\ntall, bindestreker, punktum og understreker. Maksimum lengde er 63 tegn. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Biblioteket "{0}" kan ikke benyttes.\nBiblioteksnavn kan kun inneholde bokstaver og tall.\n(kun ASCII, ingen mellomrom, og kan ikke starte med et tall) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=Hovedfilen kan ikke bruke en utvidelse #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=Navnet kan ikke starte med punktum. @@ -1511,13 +1572,13 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format -!The\ sketch\ already\ contains\ a\ file\ named\ "{0}"= +The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Skissen inneholder allerede en fil med navnet "{0}" #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Skissemappen har forsvunnet.\n Vil fors\u00f8ke \u00e5 lagre p\u00e5 nytt i samme lokasjon,\nmen alt utenom kildekoden vil g\u00e5 tapt. -#: ../../../processing/app/Sketch.java:2028 -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.=Skissenavnet m\u00e5tte endres. Skissenavn kan kun inneholde\nASCII karakterer og tall (men ikke starte med tall).\nDet m\u00e5 ogs\u00e5 v\u00e6re kortere enn 64 tegn. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Skissens navn m\u00e5tte endres.\nSkisse navn m\u00e5 starte med en bokstav eller et tall, etterfulgt av bokstaver,\ntall, bindestreker, punktum og understreker. Maksimum lengde er 63 tegn. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Mappen for skisser eksisterer ikke lenger.\nArduino vil n\u00e5 g\u00e5 over til \u00e5 bruke standard mappe for\nskisser, og hvis n\u00f8dvendig opprette en ny mappe\n. Etterp\u00e5 vil Arduino slutte \u00e5 omtale seg selv i\ntredje person. @@ -1525,17 +1586,20 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Den spesifiserte skissebok-mappen inneholder din kopi av IDE'en.\nVennligst velg en annen mappe som din skissebok. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Tema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Dette biblioteket er ikke listet i Bibliotek Administrasjonen. Du vil ikke kunne reinstallere det fra her.\nEr du sikker p\u00e5 at du \u00f8nsker \u00e5 slette det? #: ../../../../../app/src/processing/app/EditorStatus.java:349 -!This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n= +This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Denne rapporten ville hatt mer informasjon med\n"Vis detaljert informasjon under kompilering"\nalternativet aktivert i Fil -> Innstillinger.\n #: Base.java:535 Time\ for\ a\ Break=Tid for pause #: ../../../../../arduino-core/src/processing/app/I18n.java:34 -!Timing= +Timing=Timing #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -1568,7 +1632,7 @@ Ukrainian=Ukrainsk #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format -!Unable\ to\ connect\ to\ {0}= +Unable\ to\ connect\ to\ {0}=Kan ikke koble til {0} #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 @@ -1595,7 +1659,7 @@ Unable\ to\ open\ serial\ plotter=Kan ikke \u00e5pne seriell plotteren Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=Kan ikke n\u00e5 arduino.cc grunnet mulige nettverksproblemer. #: ../../../../../arduino-core/src/processing/app/I18n.java:38 -!Uncategorized= +Uncategorized=Ukategorisert #: Editor.java:1133 Editor.java:1355 Undo=Angre @@ -1605,7 +1669,7 @@ Undo=Angre Unhandled\ type\ {0}\ in\ context\ key\ {1}=Ubehandlet type {0} i context key {1} #: ../../../../../app//src/processing/app/Editor.java:2818 -!Unknown\ board= +Unknown\ board=Ukjent kort #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -1646,7 +1710,7 @@ Upload=last opp Upload\ Using\ Programmer=Last opp med en Programmerer #: ../../../../../app//src/processing/app/Editor.java:2814 -!Upload\ any\ sketch\ to\ obtain\ it= +Upload\ any\ sketch\ to\ obtain\ it=Last opp en hvilket som helst skisse for \u00e5 skaffe den #: Editor.java:2403 Editor.java:2439 Upload\ canceled.=Opplasting avbrutt. @@ -1723,7 +1787,7 @@ WARNING\:\ Category\ '{0}'\ in\ library\ {1}\ is\ not\ valid.\ Setting\ to\ '{2} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:93 #, java-format -!WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library= +WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library=ADVARSEL\: Falsk {0} mappe i '{1}' biblioteket #: ../../../processing/app/debug/Compiler.java:115 #, java-format @@ -1752,10 +1816,10 @@ Warning\:\ non\ trusted\ contribution,\ skipping\ script\ execution\ ({0})=Advar #: ../../../processing/app/debug/LegacyTargetPlatform.java:158 #, java-format -!Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.= +Warning\:\ platform.txt\ from\ core\ '{0}'\ contains\ deprecated\ {1},\ automatically\ converted\ to\ {2}.\ Consider\ upgrading\ this\ core.=Advarsel\: platform.txt fra kjernen '{0}' inneholder utdatert {1}, automatisk konvertert til {2}. Vurder \u00e5 oppgradere denne kjernen. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:91 -!Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.= +Warning\:\ platform.txt\ from\ core\ '{0}'\ misses\ property\ '{1}',\ using\ default\ value\ '{2}'.\ Consider\ upgrading\ this\ core.=Advarsel\: platform.txt fra kjernen '{0}' mangler egenskapen '{1}', med standardverdien '{2}'. Vurder \u00e5 oppgradere denne kjernen. #: ../../../../../app/src/processing/app/Preferences.java:190 Western\ Frisian=Vestfrisisk @@ -1785,7 +1849,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=Du glemte skisseboken din #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Du har ulagrede endringer\!\nDu m\u00e5 lagre alle skissene dine for \u00e5 aktivere dette alternativet. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=Du har trykket {0}, men ingenting ble sendt. Burde du valgt et linjeskift? @@ -1811,7 +1875,7 @@ Zip\ doesn't\ contain\ a\ library=Zipfilen inneholder ikke noe bibliotek #: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 #, java-format -!"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.= +"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.="{0}" inneholder ukjente tegn. Hvis denne koden ble opprettet med en eldre versjon av Arduino, kan det hende du m\u00e5 bruke Verkt\u00f8y -> Reparer tekstkoding & Last p\u00e5 nytt for \u00e5 oppdatere skissen til \u00e5 benytte UTF-8 tekstkoding. Hvis ikke, m\u00e5 du kanskje slette de ukjente tegnene for \u00e5 bli kvitt advarselen. #: debug/Compiler.java:409 \nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nFra Arduino 0019, er Ethernet bilioteket avhengig av SPI biblioteket.\nDet ser ut som du benytter et bibliotek som er avhangig av SPI biblioteket.\n\n @@ -1859,6 +1923,11 @@ ignoring\ invalid\ font\ size\ {0}=ser bort fra ugyldig skriftst\u00f8rrelse {0} #: Editor.java:936 Editor.java:943 name\ is\ null=name er null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=ingen 'header' filer (.h) funnet i {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu er null @@ -1904,7 +1973,7 @@ version\ {0}=versjon {0} #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format -!{0}\ on\ {1}= +{0}\ on\ {1}={0} p\u00e5 {1} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format @@ -1926,10 +1995,6 @@ version\ {0}=versjon {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Ugyldig navn p\u00e5 kort, det b\u00f8r ha formen "pakke\:arkitektur\:kort" eller "pakke\:arkitektur\:kort\:opsjon" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Ugyldig opsjon for "{1}" opsjon for kortet "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Ugyldig opsjon for kort "{1}" @@ -1938,6 +2003,10 @@ version\ {0}=versjon {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Ugyldig opsjon, m\u00e5 ha formen "navn\=verdi" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Ugyldig verdi for alternativ "{1}" for kortet "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Ukjent arkitektur @@ -1952,4 +2021,4 @@ version\ {0}=versjon {0} #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format -!{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board= +{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0}Installer denne pakken{1} for \u00e5 bruke {2} kortet ditt diff --git a/arduino-core/src/processing/app/i18n/Resources_ne.po b/arduino-core/src/processing/app/i18n/Resources_ne.po index 238a3506675..cfdefddd815 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ne.po +++ b/arduino-core/src/processing/app/i18n/Resources_ne.po @@ -16,13 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Paras Nath Chaudhary , 2013,2016 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:46+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Nepali (http://www.transifex.com/mbanzi/arduino-ide-15/language/ne/)\n" "MIME-Version: 1.0\n" @@ -210,6 +214,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +625,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -659,6 +673,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -667,6 +685,10 @@ msgstr "" msgid "Default" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "मेटाउन" @@ -842,6 +864,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +888,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -895,6 +941,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -931,10 +981,6 @@ msgstr "" msgid "Estonian" msgstr "इसà¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¾à¤²à¥€" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "उदाहरणहरà¥" @@ -1138,8 +1184,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1166,6 +1212,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1199,9 +1249,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1228,6 +1278,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "इटालियन " @@ -1260,9 +1321,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1680,9 +1741,9 @@ msgstr "सनà¥à¤¦à¤°à¥à¤­" msgid "Remove" msgstr "हटाउनà¥" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1719,6 +1780,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "रोमानियाली" @@ -1842,11 +1907,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1870,6 +1938,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2041,6 +2113,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,11 +2166,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2108,6 +2188,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2684,12 @@ msgstr "" msgid "name is null" msgstr "नाम खाली छ" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "सिरियल मेनॠखाली छ" @@ -2687,11 +2777,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2787,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_ne.properties b/arduino-core/src/processing/app/i18n/Resources_ne.properties index 99a125e5a0a..d4d629b63a9 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ne.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ne.properties @@ -16,8 +16,12 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Paras Nath Chaudhary , 2013,2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:46+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Nepali (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ne/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ne\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Nepali (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ne/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ne\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -142,6 +146,10 @@ Arabic=\u0905\u0930\u092c\u0940 #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -436,6 +444,10 @@ Could\ not\ delete\ the\ existing\ ''{0}''\ file.=\u0935\u093f\u0926\u094d\u092f #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -466,12 +478,18 @@ Danish\ (Denmark)=\u0921\u0947\u0928\u093f\u0938 (\u0921\u0947\u0928\u092e\u093e #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u092a\u0942\u0930\u094d\u0935\u0928\u093f\u0930\u094d\u0927\u093e\u0930\u093f\u0924 +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=\u092e\u0947\u091f\u093e\u0909\u0928 @@ -603,6 +621,10 @@ Error=\u0924\u094d\u0930\u0941\u091f\u0940 #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +639,18 @@ Error=\u0924\u094d\u0930\u0941\u091f\u0940 #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -642,6 +676,9 @@ Error=\u0924\u094d\u0930\u0941\u091f\u0940 #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -670,9 +707,6 @@ Error=\u0924\u094d\u0930\u0941\u091f\u0940 #: Preferences.java:93 Estonian=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e\u0932\u0940 -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=\u0909\u0926\u093e\u0939\u0930\u0923\u0939\u0930\u0941 @@ -823,8 +857,8 @@ Hungarian=\u0939\u0902\u0917\u0947\u0930\u0940 #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -839,6 +873,9 @@ Hungarian=\u0939\u0902\u0917\u0947\u0930\u0940 #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -865,9 +902,9 @@ Indonesian=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0938\u093f\u092f\u093e\u0 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +925,15 @@ Indonesian=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0938\u093f\u092f\u093e\u0 #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=\u0907\u091f\u093e\u0932\u093f\u092f\u0928 @@ -912,9 +958,9 @@ Korean=\u0915\u094b\u0930\u093f\u092f\u0928 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u0932\u093e\u0907\u0928 \u0928\u092e\u094d\u092c\u0930\: @@ -1227,9 +1273,9 @@ Reference=\u0938\u0928\u094d\u0926\u0930\u094d\u092d #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u0939\u091f\u093e\u0909\u0928\u0941 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1303,9 @@ Rename=\u092a\u0941\u0928\: \u0928\u093e\u092e\u0915\u0930\u0923 \u0917\u0930\u0 #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0932\u0940 @@ -1348,9 +1397,13 @@ Send=\u092a\u0920\u093e\u0909\u0928\u0941 #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1368,6 +1421,9 @@ Send=\u092a\u0920\u093e\u0909\u0928\u0941 #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1487,6 +1543,10 @@ The\ --upload\ option\ supports\ only\ one\ file\ at\ a\ time=\u092f\u094b --upl #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1511,8 +1571,8 @@ The\ name\ cannot\ start\ with\ a\ period.=\u0928\u093e\u092e '.' \u0932\u0947 \ #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1520,6 +1580,9 @@ The\ name\ cannot\ start\ with\ a\ period.=\u0928\u093e\u092e '.' \u0932\u0947 \ #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1854,6 +1917,11 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Editor.java:936 Editor.java:943 name\ is\ null=\u0928\u093e\u092e \u0916\u093e\u0932\u0940 \u091b +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=\u0938\u093f\u0930\u093f\u092f\u0932 \u092e\u0947\u0928\u0941 \u0916\u093e\u0932\u0940 \u091b @@ -1921,10 +1989,6 @@ version\ {0}=\u0938\u0902\u0938\u094d\u0915\u0930\u0923 {0} #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1933,6 +1997,10 @@ version\ {0}=\u0938\u0902\u0938\u094d\u0915\u0930\u0923 {0} #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_nl.po b/arduino-core/src/processing/app/i18n/Resources_nl.po index fd1ad3e517b..aab1be1c685 100644 --- a/arduino-core/src/processing/app/i18n/Resources_nl.po +++ b/arduino-core/src/processing/app/i18n/Resources_nl.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # MrWhammy , 2013,2015 # MrWhammy , 2012 # Chris van Marle , 2016 @@ -23,7 +27,7 @@ # devMaeb , 2014 # Jan Verheijen , 2014 # johan vdp , 2017 -# jkf , 2012 +# 8f962edc6407b2438550bf5bbf17c02a_66902c3 , 2012 # Robin van der Vliet , 2015 # Wesley Deblaere , 2016 msgid "" @@ -31,8 +35,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:21+0000\n" -"Last-Translator: johan vdp \n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" +"Last-Translator: Cristian Maglie \n" "Language-Team: Dutch (http://www.transifex.com/mbanzi/arduino-ide-15/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -219,6 +223,11 @@ msgstr "Schets archiveren als:" msgid "Archive sketch canceled." msgstr "Het archiveren van de schets is geannuleerd." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -625,6 +634,11 @@ msgstr "Kan de oude versie van {0} niet verwijderen" msgid "Could not replace {0}" msgstr "Kan {0} niet vervangen" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Kan de schets niet archiveren" @@ -668,6 +682,10 @@ msgstr "Gegevens verwerking" msgid "Data Storage" msgstr "Data opslag" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Insprong verkleinen" @@ -676,6 +694,10 @@ msgstr "Insprong verkleinen" msgid "Default" msgstr "Standaard" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Verwijderen" @@ -851,6 +873,11 @@ msgstr "Fout bij het openen van de Arduino datamap." msgid "Error inside Serial.{0}()" msgstr "Fout in Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -870,6 +897,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Probleem bij het openen van de seriële poort ''{0}''. Bekijk de documentatie op http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Fout bij het inlezen van de voorkeuren" @@ -904,6 +950,10 @@ msgstr "Fout bij het branden van de bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Fout bij het branden van de bootloader: configuratie-parameter '{0}' ontbreekt" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Fout bij het compileren: ontbrekende configuratieparameter '{0}'" @@ -940,10 +990,6 @@ msgstr "Fout bij het verifiëren/uploaden" msgid "Estonian" msgstr "Estisch" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estisch (Estland)" - #: Editor.java:516 msgid "Examples" msgstr "Voorbeelden" @@ -1147,9 +1193,9 @@ msgstr "ONVERENIGBAAR" msgid "Ignore Case" msgstr "Hoofdletters negeren" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Een foutieve bibliotheeknaam wordt genegeerd" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1175,6 +1221,10 @@ msgstr "Bibliotheek gebruiken" msgid "Incorrect IDE installation folder" msgstr "Foutieve IDE installatiemap" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Insprong vergroten" @@ -1208,10 +1258,10 @@ msgstr "Geïnstalleerd" msgid "Installing boards..." msgstr "Boards installeren..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Bibliotheek installeren: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1237,6 +1287,17 @@ msgstr "Ongeldige bibliotheek gevonden in {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Ongeldige citatie: afsluitend karakter [{0}] niet gevonden." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italiaans" @@ -1269,10 +1330,10 @@ msgstr "Bibliotheek toegevoegd aan uw bibliotheken. Controleer het menu 'Bibliot msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Bibliotheek kan niet beide 'scr' en 'utility' mappen gebruiken. Controleer dubbel {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "De bibliotheek is reeds geïnstalleerd: {0} versie {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1689,10 +1750,10 @@ msgstr "Naslagwerk" msgid "Remove" msgstr "Verwijderen" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Bibliotheek verwijderen: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1728,6 +1789,10 @@ msgstr "Vervangen door:" msgid "Retired" msgstr "Verouderd" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Roemeens" @@ -1851,12 +1916,15 @@ msgid "" " Serial Port menu?" msgstr "Seriële poort \"{0}\" is niet gevonden. Hebt u de juiste gekozen in het menu Hulpmiddelen > Poort?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Seriële poort {0} is niet gevonden.\nProbeer de upload met een andere seriële poort." +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1879,6 +1947,10 @@ msgstr "Problemen met de instellingen" msgid "Show Sketch Folder" msgstr "Schetsmap weergeven" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Uitgebreide uitvoer weergeven tijdens:" @@ -2050,6 +2122,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Het bestand {0} moet zich in een\nschetsmap met de naam \"{1}\" bevinden.\nDeze map aanmaken, het bestand verplaatsen en doorgaan?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2095,12 +2175,12 @@ msgid "" "but anything besides the code will be lost." msgstr "De map met schetsen is verdwenen.\nEr wordt geprobeerd opnieuw op dezelfde locatie op te slaan,\nmaar alles behalve de code zal verloren zijn." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "De naam van de schets moet gewijzigd worden.\nNamen van schetsen mogen alleen ASCII-tekens en cijfers\nbevatten (maar mogen niet met een cijfer beginnen).\nZe mogen maximaal 63 tekens lang zijn." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2117,6 +2197,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "De map voor uw schetsboek bevat uw kopie van de IDE.\nGelieve een andere map te kiezen voor uw schetsboek." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2609,6 +2693,12 @@ msgstr "Ongeldige lettertypegrootte {0} wordt genegeerd" msgid "name is null" msgstr "naam is leeg" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu is leeg" @@ -2696,11 +2786,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Ongeldige board naam. Het moet de vorm \"package:arch:board\" of \"package:arch:board:options\" hebben." -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Ongeldige optie voor \"{1}\" optie voor board \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2711,6 +2796,11 @@ msgstr "{0}: Ongeldige optie voor board \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Ongeldige optie. Het moet de vorm \"name=waarde\" hebben." +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_nl.properties b/arduino-core/src/processing/app/i18n/Resources_nl.properties index 4c3de7ca4c3..7940483f424 100644 --- a/arduino-core/src/processing/app/i18n/Resources_nl.properties +++ b/arduino-core/src/processing/app/i18n/Resources_nl.properties @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # MrWhammy , 2013,2015 # MrWhammy , 2012 # Chris van Marle , 2016 @@ -23,10 +27,10 @@ # devMaeb , 2014 # Jan Verheijen , 2014 # johan vdp , 2017 -# jkf , 2012 +# 8f962edc6407b2438550bf5bbf17c02a_66902c3 , 2012 # Robin van der Vliet , 2015 # Wesley Deblaere , 2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:21+0000\nLast-Translator\: johan vdp \nLanguage-Team\: Dutch (http\://www.transifex.com/mbanzi/arduino-ide-15/language/nl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: nl\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Dutch (http\://www.transifex.com/mbanzi/arduino-ide-15/language/nl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: nl\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(herstart van Arduino nodig) @@ -151,6 +155,10 @@ Archive\ sketch\ as\:=Schets archiveren als\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Het archiveren van de schets is geannuleerd. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Het archiveren van de schets is geannuleerd, omdat\nde schets niet goed kon worden opgeslagen. @@ -445,6 +453,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Kan de oude versie van {0} niet verwij #, java-format Could\ not\ replace\ {0}=Kan {0} niet vervangen +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Kan de schets niet archiveren @@ -475,12 +487,18 @@ Data\ Processing=Gegevens verwerking #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Data opslag +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Insprong verkleinen #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Standaard +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Verwijderen @@ -612,6 +630,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Fout bij het openen van de Arduino d #, java-format Error\ inside\ Serial.{0}()=Fout in Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -626,6 +648,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Fout bij het openen van de seri\u00eble p #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Probleem bij het openen van de seri\u00eble poort ''{0}''. Bekijk de documentatie op http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Fout bij het inlezen van de voorkeuren @@ -651,6 +685,9 @@ Error\ while\ burning\ bootloader.=Fout bij het branden van de bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Fout bij het branden van de bootloader\: configuratie-parameter '{0}' ontbreekt +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Fout bij het compileren\: ontbrekende configuratieparameter '{0}' @@ -679,9 +716,6 @@ Error\ while\ verifying/uploading=Fout bij het verifi\u00ebren/uploaden #: Preferences.java:93 Estonian=Estisch -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estisch (Estland) - #: Editor.java:516 Examples=Voorbeelden @@ -832,8 +866,8 @@ INCOMPATIBLE=ONVERENIGBAAR #: FindReplace.java:96 Ignore\ Case=Hoofdletters negeren -#: Base.java:1058 -Ignoring\ bad\ library\ name=Een foutieve bibliotheeknaam wordt genegeerd +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=De schets met slechte naam wordt genegeerd @@ -848,6 +882,9 @@ Include\ Library=Bibliotheek gebruiken #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Foutieve IDE installatiemap +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Insprong vergroten @@ -874,9 +911,9 @@ Installed=Ge\u00efnstalleerd #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Boards installeren... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Bibliotheek installeren\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -897,6 +934,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Ongeldige bibliotheek gevonden in {0}\: #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Ongeldige citatie\: afsluitend karakter [{0}] niet gevonden. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italiaans @@ -921,9 +967,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Bibliothee #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Bibliotheek kan niet beide 'scr' en 'utility' mappen gebruiken. Controleer dubbel {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=De bibliotheek is reeds ge\u00efnstalleerd\: {0} versie {1} +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Lijn nummer\: @@ -1236,9 +1282,9 @@ Reference=Naslagwerk #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Verwijderen -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Bibliotheek verwijderen\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1266,6 +1312,9 @@ Replace\ with\:=Vervangen door\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Verouderd +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Roemeens @@ -1357,9 +1406,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Seri\u00eble monitor i #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Seri\u00eble poort "{0}" is niet gevonden. Hebt u de juiste gekozen in het menu Hulpmiddelen > Poort? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Seri\u00eble poort {0} is niet gevonden.\nProbeer de upload met een andere seri\u00eble poort. +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Seri\u00eble poorten @@ -1377,6 +1430,9 @@ Settings\ issues=Problemen met de instellingen #: Editor.java:641 Show\ Sketch\ Folder=Schetsmap weergeven +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Uitgebreide uitvoer weergeven tijdens\: @@ -1496,6 +1552,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Het bestand {0} moet zich in een\nschetsmap met de naam "{1}" bevinden.\nDeze map aanmaken, het bestand verplaatsen en doorgaan? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Bibliotheek "{0}" kan niet worden gebruikt.\nBibliotheeknamen mogen alleen eenvoudige letters en cijfers bevatten.\n(Alleen ASCII en geen spaties en een naam mag niet met een cijfer beginnen) @@ -1520,8 +1580,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=De schets bevat al een bes #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=De map met schetsen is verdwenen.\nEr wordt geprobeerd opnieuw op dezelfde locatie op te slaan,\nmaar alles behalve de code zal verloren zijn. -#: ../../../processing/app/Sketch.java:2028 -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.=De naam van de schets moet gewijzigd worden.\nNamen van schetsen mogen alleen ASCII-tekens en cijfers\nbevatten (maar mogen niet met een cijfer beginnen).\nZe mogen maximaal 63 tekens lang zijn. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=De schetsboekmap bestaat niet meer.\nArduino zal overschakelen naar de standaard schetsboeklocatie,\nen, indien nodig, een nieuwe schetsboekmap aanmaken.\nArduino zal daarna ophouden over zichzelf te\npraten in de derde persoon. @@ -1529,6 +1589,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=De map voor uw schetsboek bevat uw kopie van de IDE.\nGelieve een andere map te kiezen voor uw schetsboek. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Deze bibliotheek word niet genoemd in Bibliotheek Beheer. Je kan niet opnieuw installeren vanaf daar. Weet je zeker dat je deze wilt verwijderen? @@ -1863,6 +1926,11 @@ ignoring\ invalid\ font\ size\ {0}=Ongeldige lettertypegrootte {0} wordt genegee #: Editor.java:936 Editor.java:943 name\ is\ null=naam is leeg +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu is leeg @@ -1930,10 +1998,6 @@ version\ {0}=versie {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Ongeldige board naam. Het moet de vorm "package\:arch\:board" of "package\:arch\:board\:options" hebben. -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Ongeldige optie voor "{1}" optie voor board "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Ongeldige optie voor board "{1}" @@ -1942,6 +2006,10 @@ version\ {0}=versie {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Ongeldige optie. Het moet de vorm "name\=waarde" hebben. +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Onbekende architectuur diff --git a/arduino-core/src/processing/app/i18n/Resources_nl_NL.po b/arduino-core/src/processing/app/i18n/Resources_nl_NL.po index b540469e332..af967667416 100644 --- a/arduino-core/src/processing/app/i18n/Resources_nl_NL.po +++ b/arduino-core/src/processing/app/i18n/Resources_nl_NL.po @@ -16,14 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Jeroen Doggen , 2012 # TheRevMan , 2014 +# Rob Tillaart , 2017 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:21+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/mbanzi/arduino-ide-15/language/nl_NL/)\n" "MIME-Version: 1.0\n" @@ -34,52 +39,52 @@ msgstr "" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" -msgstr "" +msgstr "(behoeft een herstart van Arduino)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format msgid " Not used: {0}" -msgstr "" +msgstr "Niet gebruikt: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format msgid " Used: {0}" -msgstr "" +msgstr "Gebruikt: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "" +msgstr "'Keyboard' niet gevonden. Heeft uw schets de regel '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" "'Mouse' not found. Does your sketch include the line '#include '?" -msgstr "" +msgstr "'Mouse' niet gevonden. Heeft uw schets de regel '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 msgid "" "'arch' folder is no longer supported! See http://goo.gl/gfFJzU for more " "information" -msgstr "" +msgstr "'arch' map is niet langer ondersteund. Zie http://goo.gl/gfFJzU voor meer informatie." #: Preferences.java:478 msgid "(edit only when Arduino is not running)" -msgstr "" +msgstr "(alleen aanpassen als Arduino niet draait)." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "" +msgstr "(historisch)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" -msgstr "" +msgstr "--curdir wordt niet meer ondersteund" #: ../../../processing/app/Base.java:468 msgid "" "--verbose, --verbose-upload and --verbose-build can only be used together " "with --verify or --upload" -msgstr "" +msgstr "--verbose, --verbose-upload en --verbose-build kunnen alleen gezamelijk gebruikt worden met --verify of --upload." #: Sketch.java:746 msgid ".pde -> .ino" @@ -91,12 +96,12 @@ msgid "" " font: 11pt \"Lucida Grande\"; margin-top: 8px } Do you " "want to save changes to this sketch
before closing?

If you don't " "save, your changes will be lost." -msgstr "" +msgstr "Wil je de wijzigingen van deze schets opslaan
voordat u afsluit?

Als u niet opslaat, zullen de wijzigingen verloren gaan." #: Editor.java:2169 #, java-format msgid "A folder named \"{0}\" already exists. Can't open sketch." -msgstr "" +msgstr "Er bestaat al een bibliotheek met de naam {0}. Kan de schets niet openen." #: Base.java:2690 #, java-format @@ -107,16 +112,16 @@ msgstr "Er bestaat al een bibliotheek met de naam {0}" msgid "" "A new version of Arduino is available,\n" "would you like to visit the Arduino download page?" -msgstr "" +msgstr "Een nieuwe versie van de Arduino is beschikbaar.\nWil je de Arduino download pagina bezoeken?" #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format msgid "A newer {0} package is available" -msgstr "" +msgstr "Een nieuwere versie van package {0} is beschikbaar." #: ../../../../../app/src/processing/app/Base.java:2307 msgid "A subfolder of your sketchbook is not a valid library" -msgstr "" +msgstr "Een map van je schetsboek is een niet correcte bibliotheek." #: Editor.java:1116 msgid "About Arduino" @@ -124,27 +129,27 @@ msgstr "Over Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "" +msgstr "Voeg .ZIP bibliotheek toe..." #: Editor.java:650 msgid "Add File..." -msgstr "" +msgstr "Voeg bestand toe..." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "" +msgstr "Meer Board Managers URL's" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "" +msgstr "Meer Board Managers URL's:" #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" -msgstr "" +msgstr "Afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" @@ -152,13 +157,13 @@ msgstr "" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" -msgstr "" +msgstr "Albanees" #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 msgid "All" -msgstr "" +msgstr "Allemaal" #: tools/FixEncoding.java:77 msgid "" @@ -169,21 +174,21 @@ msgstr "" #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "" +msgstr "Er trad een error op gedurende bijwerken van de bibliotheek index." #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" -msgstr "" +msgstr "Er trad een error op gedurende laden van de schets" #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "An error occurred while verifying the sketch" -msgstr "" +msgstr "Er trad een error op gedurende verifieren van de schets" #: ../../../processing/app/BaseNoGui.java:521 msgid "An error occurred while verifying/uploading the sketch" -msgstr "" +msgstr "Er trad een error op gedurende verifieren/laden van de schets" #: Base.java:228 msgid "" @@ -201,14 +206,19 @@ msgstr "Aragonees" #: tools/Archiver.java:48 msgid "Archive Sketch" -msgstr "" +msgstr "Sla schets op" #: tools/Archiver.java:109 msgid "Archive sketch as:" -msgstr "" +msgstr "Sla schets op als:" #: tools/Archiver.java:139 msgid "Archive sketch canceled." +msgstr "Opslaan schets afgebroken." + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" msgstr "" #: tools/Archiver.java:75 @@ -219,15 +229,15 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" -msgstr "" +msgstr "Arduino" #: ../../../processing/app/I18n.java:83 msgid "Arduino ARM (32-bits) Boards" -msgstr "" +msgstr "Arduino ARM (32-bits) Boards" #: ../../../processing/app/I18n.java:82 msgid "Arduino AVR Boards" -msgstr "" +msgstr "Arduino AVR Boards" #: Editor.java:2137 msgid "" @@ -249,7 +259,7 @@ msgstr "" #: ../../../processing/app/EditorStatus.java:471 msgid "Arduino: " -msgstr "" +msgstr "Arduino:" #: Sketch.java:588 #, java-format @@ -617,6 +627,11 @@ msgstr "Kon de oude versie van {0} niet verwijderen" msgid "Could not replace {0}" msgstr "Kon {0} niet vervangen" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -660,6 +675,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -668,6 +687,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "" @@ -843,6 +866,11 @@ msgstr "Probleem bij het verkrijgen van de Arduino data-map." msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -862,6 +890,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Fout bij het lezen van de voorkeuren" @@ -896,6 +943,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -932,10 +983,6 @@ msgstr "" msgid "Estonian" msgstr "Ests" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Voorbeelden" @@ -1139,9 +1186,9 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Foute bibliotheeknaam negeren" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1167,6 +1214,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1200,9 +1251,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1229,6 +1280,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italiaans" @@ -1261,9 +1323,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1681,9 +1743,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1720,6 +1782,10 @@ msgstr "Vervang met:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Roemeens" @@ -1843,11 +1909,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1871,6 +1940,10 @@ msgstr "Problemen met instellingen" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2042,6 +2115,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2087,11 +2168,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2109,6 +2190,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2299,12 +2384,12 @@ msgstr "" #: Preferences.java:409 msgid "Use external editor" -msgstr "" +msgstr "Gebruik externe editor" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 msgid "Username:" -msgstr "" +msgstr "Gebruikersnaam:" #: ../../../processing/app/debug/Compiler.java:410 #, java-format @@ -2327,15 +2412,15 @@ msgstr "Verifiëer" #: Preferences.java:400 msgid "Verify code after upload" -msgstr "" +msgstr "Verifieer code na laden" #: ../../../../../app/src/processing/app/Editor.java:725 msgid "Verify/Compile" -msgstr "" +msgstr "Verifieer/Compileer" #: ../../../../../app/src/processing/app/Base.java:451 msgid "Verifying and uploading..." -msgstr "" +msgstr "Verifieren en laden..." #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 msgid "Verifying archive integrity..." @@ -2601,6 +2686,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2688,11 +2779,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2703,6 +2789,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_nl_NL.properties b/arduino-core/src/processing/app/i18n/Resources_nl_NL.properties index c59cac13b10..1c994b7bd08 100644 --- a/arduino-core/src/processing/app/i18n/Resources_nl_NL.properties +++ b/arduino-core/src/processing/app/i18n/Resources_nl_NL.properties @@ -16,114 +16,119 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Jeroen Doggen , 2012 # TheRevMan , 2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:21+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Dutch (Netherlands) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/nl_NL/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: nl_NL\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +# Rob Tillaart , 2017 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Dutch (Netherlands) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/nl_NL/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: nl_NL\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 -!\ \ (requires\ restart\ of\ Arduino)= +\ \ (requires\ restart\ of\ Arduino)=(behoeft een herstart van Arduino) #: ../../../processing/app/debug/Compiler.java:529 #, java-format -!\ Not\ used\:\ {0}= +\ Not\ used\:\ {0}=Niet gebruikt\: {0} #: ../../../processing/app/debug/Compiler.java:525 #, java-format -!\ Used\:\ {0}= +\ Used\:\ {0}=Gebruikt\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -!'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Keyboard' niet gevonden. Heeft uw schets de regel '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 -!'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Mouse' niet gevonden. Heeft uw schets de regel '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:61 -!'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information= +'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information='arch' map is niet langer ondersteund. Zie http\://goo.gl/gfFJzU voor meer informatie. #: Preferences.java:478 -!(edit\ only\ when\ Arduino\ is\ not\ running)= +(edit\ only\ when\ Arduino\ is\ not\ running)=(alleen aanpassen als Arduino niet draait). #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 -!(legacy)= +(legacy)=(historisch) #: ../../../processing/app/helpers/CommandlineParser.java:149 -!--curdir\ no\ longer\ supported= +--curdir\ no\ longer\ supported=--curdir wordt niet meer ondersteund #: ../../../processing/app/Base.java:468 -!--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload= +--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload en --verbose-build kunnen alleen gezamelijk gebruikt worden met --verify of --upload. #: Sketch.java:746 .pde\ ->\ .ino=.pde -> .ino #: Editor.java:2053 -!\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= +\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.=Wil je de wijzigingen van deze schets opslaan
voordat u afsluit?

Als u niet opslaat, zullen de wijzigingen verloren gaan. #: Editor.java:2169 #, java-format -!A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.= +A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=Er bestaat al een bibliotheek met de naam {0}. Kan de schets niet openen. #: Base.java:2690 #, java-format A\ library\ named\ {0}\ already\ exists=Er bestaat al een bibliotheek met de naam {0} #: UpdateCheck.java:103 -!A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?= +A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Een nieuwe versie van de Arduino is beschikbaar.\nWil je de Arduino download pagina bezoeken? #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -!A\ newer\ {0}\ package\ is\ available= +A\ newer\ {0}\ package\ is\ available=Een nieuwere versie van package {0} is beschikbaar. #: ../../../../../app/src/processing/app/Base.java:2307 -!A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library= +A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Een map van je schetsboek is een niet correcte bibliotheek. #: Editor.java:1116 About\ Arduino=Over Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=Acoli #: ../../../../../app/src/processing/app/Base.java:1177 -!Add\ .ZIP\ Library...= +Add\ .ZIP\ Library...=Voeg .ZIP bibliotheek toe... #: Editor.java:650 -!Add\ File...= +Add\ File...=Voeg bestand toe... #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -!Additional\ Boards\ Manager\ URLs= +Additional\ Boards\ Manager\ URLs=Meer Board Managers URL's #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -!Additional\ Boards\ Manager\ URLs\:\ = +Additional\ Boards\ Manager\ URLs\:\ =Meer Board Managers URL's\: #: ../../../../../app/src/processing/app/Preferences.java:161 -!Afrikaans= +Afrikaans=Afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 !Aggressively\ cache\ compiled\ core= #: ../../../processing/app/Preferences.java:96 -!Albanian= +Albanian=Albanees #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -!All= +All=Allemaal #: tools/FixEncoding.java:77 !An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n= #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -!An\ error\ occurred\ while\ updating\ libraries\ index\!= +An\ error\ occurred\ while\ updating\ libraries\ index\!=Er trad een error op gedurende bijwerken van de bibliotheek index. #: ../../../processing/app/BaseNoGui.java:528 -!An\ error\ occurred\ while\ uploading\ the\ sketch= +An\ error\ occurred\ while\ uploading\ the\ sketch=Er trad een error op gedurende laden van de schets #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -!An\ error\ occurred\ while\ verifying\ the\ sketch= +An\ error\ occurred\ while\ verifying\ the\ sketch=Er trad een error op gedurende verifieren van de schets #: ../../../processing/app/BaseNoGui.java:521 -!An\ error\ occurred\ while\ verifying/uploading\ the\ sketch= +An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=Er trad een error op gedurende verifieren/laden van de schets #: Base.java:228 An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=Een onbekende fout is opgetreden tijdens het laden van platform-specifieke code voor jouw apparaat. @@ -135,25 +140,29 @@ Arabic=Arabisch Aragonese=Aragonees #: tools/Archiver.java:48 -!Archive\ Sketch= +Archive\ Sketch=Sla schets op #: tools/Archiver.java:109 -!Archive\ sketch\ as\:= +Archive\ sketch\ as\:=Sla schets op als\: #: tools/Archiver.java:139 -!Archive\ sketch\ canceled.= +Archive\ sketch\ canceled.=Opslaan schets afgebroken. + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= #: ../../../../../arduino-core/src/processing/app/I18n.java:24 -!Arduino= +Arduino=Arduino #: ../../../processing/app/I18n.java:83 -!Arduino\ ARM\ (32-bits)\ Boards= +Arduino\ ARM\ (32-bits)\ Boards=Arduino ARM (32-bits) Boards #: ../../../processing/app/I18n.java:82 -!Arduino\ AVR\ Boards= +Arduino\ AVR\ Boards=Arduino AVR Boards #: Editor.java:2137 !Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde= @@ -165,7 +174,7 @@ Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ you !Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.= #: ../../../processing/app/EditorStatus.java:471 -!Arduino\:\ = +Arduino\:\ =Arduino\: #: Sketch.java:588 #, java-format @@ -437,6 +446,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Kon de oude versie van {0} niet verwij #, java-format Could\ not\ replace\ {0}=Kon {0} niet vervangen +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -467,12 +480,18 @@ Cut=Knippen #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 !Delete= @@ -604,6 +623,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Probleem bij het verkrijgen van de A #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -618,6 +641,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Fout bij het openen van seri\u00eble poor #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Fout bij het lezen van de voorkeuren @@ -643,6 +678,9 @@ Error\ reading\ preferences=Fout bij het lezen van de voorkeuren #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -671,9 +709,6 @@ Error\ reading\ preferences=Fout bij het lezen van de voorkeuren #: Preferences.java:93 Estonian=Ests -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Voorbeelden @@ -824,8 +859,8 @@ Hungarian=Hongaars #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -Ignoring\ bad\ library\ name=Foute bibliotheeknaam negeren +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Sketch met foutieve naam negeren @@ -840,6 +875,9 @@ Ignoring\ sketch\ with\ bad\ name=Sketch met foutieve naam negeren #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -866,9 +904,9 @@ Indonesian=Indonesisch #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -889,6 +927,15 @@ Indonesian=Indonesisch #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italiaans @@ -913,9 +960,9 @@ Latvian=Lets #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1228,9 +1275,9 @@ Quit=Afsluiten #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1258,6 +1305,9 @@ Replace\ with\:=Vervang met\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Roemeens @@ -1349,9 +1399,13 @@ Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1369,6 +1423,9 @@ Settings\ issues=Problemen met instellingen #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1488,6 +1545,10 @@ The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.=Het "BYTE" keyword wordt niet l #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=De bibliotheek "{0}" kan niet gebruikt worden.\nBibliotheeknamen mogen enkel letters en cijfers bevatten.\n(Enkel ASCII en geen spaties, en hij mag niet met een cijfer beginnen) @@ -1512,8 +1573,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=De sketchbookmap bestaat niet meer.\nArduino zal overschakelen naar de standaardlocatie en zal zo nodig een nieuwe sketchbookmap aanmaken. Daarna zal Arduino ophouden met over zichzelf te praten in de derde persoon. @@ -1521,6 +1582,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1660,11 +1724,11 @@ Uploading...=Aan het uploaden... !Use\ Selection\ For\ Find= #: Preferences.java:409 -!Use\ external\ editor= +Use\ external\ editor=Gebruik externe editor #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 -!Username\:= +Username\:=Gebruikersnaam\: #: ../../../processing/app/debug/Compiler.java:410 #, java-format @@ -1682,13 +1746,13 @@ Uploading...=Aan het uploaden... Verify=Verifi\u00eber #: Preferences.java:400 -!Verify\ code\ after\ upload= +Verify\ code\ after\ upload=Verifieer code na laden #: ../../../../../app/src/processing/app/Editor.java:725 -!Verify/Compile= +Verify/Compile=Verifieer/Compileer #: ../../../../../app/src/processing/app/Base.java:451 -!Verifying\ and\ uploading...= +Verifying\ and\ uploading...=Verifieren en laden... #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:71 !Verifying\ archive\ integrity...= @@ -1855,6 +1919,11 @@ Zip\ doesn't\ contain\ a\ library=Zip bevat geen bibliotheek #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1922,10 +1991,6 @@ Zip\ doesn't\ contain\ a\ library=Zip bevat geen bibliotheek #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1934,6 +1999,10 @@ Zip\ doesn't\ contain\ a\ library=Zip bevat geen bibliotheek #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_pl.po b/arduino-core/src/processing/app/i18n/Resources_pl.po index 0e849d46a5d..7b80e48ef23 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pl.po +++ b/arduino-core/src/processing/app/i18n/Resources_pl.po @@ -16,24 +16,28 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cristian Maglie , 2016 -# Grzegorz Wielgoszewski , 2016 +# Grzegorz Wielgoszewski , 2016,2018 # Jan Bielak , 2013-2014,2016-2017 # Krzysztof Zbudniewek , 2015 # Maciej Wójciga , 2016 -# Mateusz Å»ochowski , 2015 +# f4026438bc140eb8251ee8a7e846d473, 2015 # Michal , 2015 # Szymon Borecki , 2015 -# Tomasz PudÅ‚o , 2015-2017 -# Tomasz PudÅ‚o , 2015 +# tombox , 2015-2019 +# tombox , 2015 # Voltinus , 2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 19:12+0000\n" -"Last-Translator: Tomasz PudÅ‚o \n" +"PO-Revision-Date: 2019-02-27 09:35+0000\n" +"Last-Translator: tombox \n" "Language-Team: Polish (http://www.transifex.com/mbanzi/arduino-ide-15/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -220,6 +224,11 @@ msgstr "Archiwizuj szkic jako:" msgid "Archive sketch canceled." msgstr "Archiwizacja szkicu anulowana" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Archiwizowanie budowanego rdzenia (buforowanie) w: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -487,7 +496,7 @@ msgstr "chiÅ„ski (Tajwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "Czyste wyjÅ›cie" +msgstr "Wyczyść okno" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -626,6 +635,11 @@ msgstr "Nie można usunąć starej wersji {0}" msgid "Could not replace {0}" msgstr "Nie można zastÄ…pić {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Nie można zapisać pliku preferencji: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Nie można zaarchiwizować szkicu" @@ -669,6 +683,10 @@ msgstr "Przetwarzanie danych" msgid "Data Storage" msgstr "Przechowywanie danych" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Zmniejsz rozmiar czcionki" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Zmniejsz wciÄ™cie" @@ -677,6 +695,10 @@ msgstr "Zmniejsz wciÄ™cie" msgid "Default" msgstr "DomyÅ›lne" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Motyw domyÅ›lny" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "UsuÅ„" @@ -852,6 +874,11 @@ msgstr "Błąd w dostÄ™pie do folderu danych Arduino." msgid "Error inside Serial.{0}()" msgstr "Błąd w funkcji Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Błąd Å‚adowania motywu {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -871,6 +898,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Błąd otwierania portu szeregowego ''{0}''. Spróbuj sprawdzić w dokumentacji na http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Błąd przy analizie indeksu bibliotek: {0}\nSpróbuj otworzyć Menedżera Bibliotek aby uaktualnić indeks bibliotek." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Błąd odczytu indeksu bibliotek: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Błąd odczytu katalogu z indeksami pakietów: {0}\n(może problem z uprawnieniami?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Błąd przy czytaniu ustawieÅ„" @@ -905,6 +951,10 @@ msgstr "Błąd przy wgrywaniu bootloadera." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Błąd przy wgrywaniu bootloadera: brak '{0}' parametru konfiguracji" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Błąd przy wgrywaniu bootloadera: proszÄ™ wybrać port szeregowy." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Błąd kompilacji: brak '{0}' parametru konfiguracji" @@ -941,10 +991,6 @@ msgstr "Błąd przy weryfikacji/wgrywaniu" msgid "Estonian" msgstr "estoÅ„ski" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "estoÅ„ski (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "PrzykÅ‚ady" @@ -1148,9 +1194,9 @@ msgstr "NIEZGODNY" msgid "Ignore Case" msgstr "Zignoruj przypadek" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorowanie błędnej nazwy biblioteki" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignorowanie biblioteki z błędnÄ… nazwÄ…" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1176,6 +1222,10 @@ msgstr "Dołącz bibliotekÄ™" msgid "Incorrect IDE installation folder" msgstr "NieprawidÅ‚owy folder instalacji Å›rodowiska" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "ZwiÄ™ksz rozmiar czcionki" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "PowiÄ™ksz wciÄ™cie" @@ -1209,10 +1259,10 @@ msgstr "Zainstalowany" msgid "Installing boards..." msgstr "Instalowanie pÅ‚ytek..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Instalowanie biblioteki: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Instalowanie biblioteki: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1238,6 +1288,17 @@ msgstr "Błędna biblioteka znaleziona w {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "NieprawidÅ‚owe cytowanie: nie znaleziono zamykajÄ…cego znaku [{0}]." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "NieprawidÅ‚owa wersja '{0}' dla biblioteki w: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Błędna wersja {0}" + #: Preferences.java:102 msgid "Italian" msgstr "wÅ‚oski" @@ -1270,10 +1331,10 @@ msgstr "Biblioteka zostaÅ‚a dodana do bibliotek. Sprawdź menu \"Załącz biblio msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Biblioteka nie może jednoczeÅ›nie używać folderów 'src' oraz 'utility'. Sprawdź ponownie {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Biblioteka jest już zainstalowana: {0} wersja {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Biblioteka jest już zainstalowana: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1690,10 +1751,10 @@ msgstr "Referencje" msgid "Remove" msgstr "UsuÅ„" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Usuwanie biblioteki: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Usuwanie biblioteki: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1729,6 +1790,10 @@ msgstr "ZastÄ…p:" msgid "Retired" msgstr "Wycofane" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Powtórzyć wgrywanie na innym porcie szeregowym?" + #: Preferences.java:113 msgid "Romanian" msgstr "rumuÅ„ski" @@ -1852,12 +1917,15 @@ msgid "" " Serial Port menu?" msgstr "Nie znaleziono portu szeregowego ''{0}''. Czy wybraÅ‚eÅ› wÅ‚aÅ›ciwy z menu NarzÄ™dzia > Port?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Nie wybrano portu szeregowego." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Nie znaleziono portu szeregowego {0}.\nPonowić próbÄ™ wgrywania przez inny port?" +msgid "Serial port {0} not found." +msgstr "Port szeregowy {0} nie istnieje." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1880,6 +1948,10 @@ msgstr "Błędy ustawieÅ„" msgid "Show Sketch Folder" msgstr "Pokaż folder szkicu" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "pokaż znacznik czasu" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Pokaż szczegółowe informacje podczas:" @@ -2051,6 +2123,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Plik \"{0}\" musi być wewnÄ…trz\nfolderu szkicu nazwanego \"{1}\".\nUtworzyć folder, przenieść plik i kontynować ?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Biblioteka \"{0}\" nie może być użyta.\nNazwy katalogów bibliotek muszÄ… zaczynać siÄ™ literÄ… lub cyfrÄ…, a nastÄ™pnie\nskÅ‚adać siÄ™ z liter, cyfr, myÅ›lników, kropek i podkreÅ›leÅ„. Maksymalna dÅ‚ugość to 63 znaki." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2096,12 +2176,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Folder szkicu znikÅ‚.\nSpróbujÄ™ zapisać ponownie w tej samej lokalizacji,,\nale wszystko oprócz kodu zniknie." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Nazwa szkicu musiaÅ‚a zostać zmodyfikowana. Nazwy szkiców mogÄ… skÅ‚adać siÄ™ tylko\nz znaków ASCII i liczb (ale nie mogÄ… siÄ™ od liczb zaczynać)\nPowinny też być krótsze niż 64 znaki." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Nazwa szkicu musiaÅ‚a zostać zmodyfikowana.\nNazwy szkiców muszÄ… zaczynać siÄ™ literÄ… lub cyfrÄ…, a nastÄ™pnie\nskÅ‚adać siÄ™ z liter, cyfr, myÅ›lników, kropek i podkreÅ›leÅ„. Maksymalna dÅ‚ugość to 63 znaki" #: Base.java:259 msgid "" @@ -2118,6 +2198,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Podany katalog na szkice zawiera twojÄ… kopiÄ™ Å›rodowiska programistycznego.\nProszÄ™ wybrać inny katalog na twoje szkice." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Motyw:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2479,7 +2563,7 @@ msgstr "ZapomniaÅ‚eÅ› swojego szkicownika" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "Masz niezapisane zmiany\nMusisz zapisać wszystkie szkice aby włączyć tÄ… opcjÄ™." +msgstr "Masz niezapisane zmiany.\nMusisz zapisać wszystkie szkice aby włączyć tÄ™ opcjÄ™." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2610,6 +2694,12 @@ msgstr "ignoruj nieprawidÅ‚owÄ… wielkość czcionki {0}" msgid "name is null" msgstr "name jest puste" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "brak plików nagłówkowych (.h) w {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu jest puste" @@ -2697,11 +2787,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: NiewÅ‚aÅ›ciwa nazwa pÅ‚ytki, powinna mieć format \"package:arch:board\" lub \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: NiewÅ‚aÅ›ciwa opcja dla \"{1}\" opcji dla pÅ‚ytki \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2712,6 +2797,11 @@ msgstr "{0}: NiewÅ‚aÅ›ciwa opcja dla pÅ‚ytki \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: NiewÅ‚aÅ›ciwa opcja, powinna być formatu \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: błędna wartość w opcji \"{1}\" dla pÅ‚ytki \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_pl.properties b/arduino-core/src/processing/app/i18n/Resources_pl.properties index 5599acfda1e..e626a6f7187 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pl.properties +++ b/arduino-core/src/processing/app/i18n/Resources_pl.properties @@ -16,18 +16,22 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cristian Maglie , 2016 -# Grzegorz Wielgoszewski , 2016 +# Grzegorz Wielgoszewski , 2016,2018 # Jan Bielak , 2013-2014,2016-2017 # Krzysztof Zbudniewek , 2015 # Maciej W\u00f3jciga , 2016 -# Mateusz \u017bochowski , 2015 +# f4026438bc140eb8251ee8a7e846d473, 2015 # Michal , 2015 # Szymon Borecki , 2015 -# Tomasz Pud\u0142o , 2015-2017 -# Tomasz Pud\u0142o , 2015 +# tombox , 2015-2019 +# tombox , 2015 # Voltinus , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 19\:12+0000\nLast-Translator\: Tomasz Pud\u0142o \nLanguage-Team\: Polish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pl\nPlural-Forms\: nplurals\=4; plural\=(n\=\=1 ? 0 \: (n%10>\=2 && n%10<\=4) && (n%100<12 || n%100>14) ? 1 \: n\!\=1 && (n%10>\=0 && n%10<\=1) || (n%10>\=5 && n%10<\=9) || (n%100>\=12 && n%100<\=14) ? 2 \: 3);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-02-27 09\:35+0000\nLast-Translator\: tombox \nLanguage-Team\: Polish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pl\nPlural-Forms\: nplurals\=4; plural\=(n\=\=1 ? 0 \: (n%10>\=2 && n%10<\=4) && (n%100<12 || n%100>14) ? 1 \: n\!\=1 && (n%10>\=0 && n%10<\=1) || (n%10>\=5 && n%10<\=9) || (n%100>\=12 && n%100<\=14) ? 2 \: 3);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(wymagany restart Arduino) @@ -152,6 +156,10 @@ Archive\ sketch\ as\:=Archiwizuj szkic jako\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archiwizacja szkicu anulowana +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Archiwizowanie budowanego rdzenia (buforowanie) w\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Archiwizacja szkicu zosta\u0142a anulowana poniewa\u017c\nszkic nie zapisa\u0142 si\u0119 prawid\u0142owo. @@ -346,7 +354,7 @@ Chinese\ (Taiwan)=chi\u0144ski (Tajwan) Chinese\ (Taiwan)\ (Big5)=chi\u0144ski (Tajwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -Clear\ output=Czyste wyj\u015bcie +Clear\ output=Wyczy\u015b\u0107 okno #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Sprawd\u017a list\u0119 nieoficjalnych adres\u00f3w URL p\u0142ytek @@ -446,6 +454,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Nie mo\u017cna usun\u0105\u0107 starej #, java-format Could\ not\ replace\ {0}=Nie mo\u017cna zast\u0105pi\u0107 {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Nie mo\u017cna zapisa\u0107 pliku preferencji\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Nie mo\u017cna zaarchiwizowa\u0107 szkicu @@ -476,12 +488,18 @@ Data\ Processing=Przetwarzanie danych #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Przechowywanie danych +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Zmniejsz rozmiar czcionki + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Zmniejsz wci\u0119cie #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Domy\u015blne +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Motyw domy\u015blny + #: EditorHeader.java:314 Sketch.java:591 Delete=Usu\u0144 @@ -613,6 +631,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=B\u0142\u0105d w dost\u0119pie do fo #, java-format Error\ inside\ Serial.{0}()=B\u0142\u0105d w funkcji Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=B\u0142\u0105d \u0142adowania motywu {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -627,6 +649,18 @@ Error\ opening\ serial\ port\ ''{0}''.=B\u0142\u0105d otwarcia portu szeregowego #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=B\u0142\u0105d otwierania portu szeregowego ''{0}''. Spr\u00f3buj sprawdzi\u0107 w dokumentacji na http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=B\u0142\u0105d przy analizie indeksu bibliotek\: {0}\nSpr\u00f3buj otworzy\u0107 Mened\u017cera Bibliotek aby uaktualni\u0107 indeks bibliotek. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=B\u0142\u0105d odczytu indeksu bibliotek\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=B\u0142\u0105d odczytu katalogu z indeksami pakiet\u00f3w\: {0}\n(mo\u017ce problem z uprawnieniami?) + #: Preferences.java:277 Error\ reading\ preferences=B\u0142\u0105d przy czytaniu ustawie\u0144 @@ -652,6 +686,9 @@ Error\ while\ burning\ bootloader.=B\u0142\u0105d przy wgrywaniu bootloadera. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=B\u0142\u0105d przy wgrywaniu bootloadera\: brak '{0}' parametru konfiguracji +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=B\u0142\u0105d przy wgrywaniu bootloadera\: prosz\u0119 wybra\u0107 port szeregowy. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=B\u0142\u0105d kompilacji\: brak '{0}' parametru konfiguracji @@ -680,9 +717,6 @@ Error\ while\ verifying/uploading=B\u0142\u0105d przy weryfikacji/wgrywaniu #: Preferences.java:93 Estonian=esto\u0144ski -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=esto\u0144ski (Estonia) - #: Editor.java:516 Examples=Przyk\u0142ady @@ -833,8 +867,8 @@ INCOMPATIBLE=NIEZGODNY #: FindReplace.java:96 Ignore\ Case=Zignoruj przypadek -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorowanie b\u0142\u0119dnej nazwy biblioteki +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignorowanie biblioteki z b\u0142\u0119dn\u0105 nazw\u0105 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignoruj szkic ze z\u0142\u0105 nazw\u0105 @@ -849,6 +883,9 @@ Include\ Library=Do\u0142\u0105cz bibliotek\u0119 #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Nieprawid\u0142owy folder instalacji \u015brodowiska +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Zwi\u0119ksz rozmiar czcionki + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Powi\u0119ksz wci\u0119cie @@ -875,9 +912,9 @@ Installed=Zainstalowany #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Instalowanie p\u0142ytek... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Instalowanie biblioteki\: {0} +Installing\ library\:\ {0}\:{1}=Instalowanie biblioteki\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -898,6 +935,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=B\u0142\u0119dna biblioteka znaleziona w #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Nieprawid\u0142owe cytowanie\: nie znaleziono zamykaj\u0105cego znaku [{0}]. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Nieprawid\u0142owa wersja '{0}' dla biblioteki w\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=B\u0142\u0119dna wersja {0} + #: Preferences.java:102 Italian=w\u0142oski @@ -922,9 +968,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Biblioteka #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Biblioteka nie mo\u017ce jednocze\u015bnie u\u017cywa\u0107 folder\u00f3w 'src' oraz 'utility'. Sprawd\u017a ponownie {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Biblioteka jest ju\u017c zainstalowana\: {0} wersja {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Biblioteka jest ju\u017c zainstalowana\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Numer linii\: @@ -1237,9 +1283,9 @@ Reference=Referencje #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Usu\u0144 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Usuwanie biblioteki\: {0} +Removing\ library\:\ {0}\:{1}=Usuwanie biblioteki\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1267,6 +1313,9 @@ Replace\ with\:=Zast\u0105p\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Wycofane +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Powt\u00f3rzy\u0107 wgrywanie na innym porcie szeregowym? + #: Preferences.java:113 Romanian=rumu\u0144ski @@ -1358,9 +1407,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Monitor portu szeregow #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Nie znaleziono portu szeregowego ''{0}''. Czy wybra\u0142e\u015b w\u0142a\u015bciwy z menu Narz\u0119dzia > Port? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Nie wybrano portu szeregowego. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Nie znaleziono portu szeregowego {0}.\nPonowi\u0107 pr\u00f3b\u0119 wgrywania przez inny port? +Serial\ port\ {0}\ not\ found.=Port szeregowy {0} nie istnieje. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Porty szeregowe @@ -1378,6 +1431,9 @@ Settings\ issues=B\u0142\u0119dy ustawie\u0144 #: Editor.java:641 Show\ Sketch\ Folder=Poka\u017c folder szkicu +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=poka\u017c znacznik czasu + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Poka\u017c szczeg\u00f3\u0142owe informacje podczas\: @@ -1497,6 +1553,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Plik "{0}" musi by\u0107 wewn\u0105trz\nfolderu szkicu nazwanego "{1}".\nUtworzy\u0107 folder, przenie\u015b\u0107 plik i kontynowa\u0107 ? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Biblioteka "{0}" nie mo\u017ce by\u0107 u\u017cyta.\nNazwy katalog\u00f3w bibliotek musz\u0105 zaczyna\u0107 si\u0119 liter\u0105 lub cyfr\u0105, a nast\u0119pnie\nsk\u0142ada\u0107 si\u0119 z liter, cyfr, my\u015blnik\u00f3w, kropek i podkre\u015ble\u0144. Maksymalna d\u0142ugo\u015b\u0107 to 63 znaki. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Biblioteka "{0}" nie mo\u017ce by\u0107 u\u017cyta.\nNazwy bibliotek mog\u0105 zawiera\u0107 tylko podstawowe litery i cyfry.\n(Tylko ASCII bez spacji, ponadto nie mo\u017ce zaczyna\u0107 si\u0119 cyfr\u0105). @@ -1521,8 +1581,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Szkic zawiera ju\u017c pli #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Folder szkicu znik\u0142.\nSpr\u00f3buj\u0119 zapisa\u0107 ponownie w tej samej lokalizacji,,\nale wszystko opr\u00f3cz kodu zniknie. -#: ../../../processing/app/Sketch.java:2028 -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.=Nazwa szkicu musia\u0142a zosta\u0107 zmodyfikowana. Nazwy szkic\u00f3w mog\u0105 sk\u0142ada\u0107 si\u0119 tylko\nz znak\u00f3w ASCII i liczb (ale nie mog\u0105 si\u0119 od liczb zaczyna\u0107)\nPowinny te\u017c by\u0107 kr\u00f3tsze ni\u017c 64 znaki. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Nazwa szkicu musia\u0142a zosta\u0107 zmodyfikowana.\nNazwy szkic\u00f3w musz\u0105 zaczyna\u0107 si\u0119 liter\u0105 lub cyfr\u0105, a nast\u0119pnie\nsk\u0142ada\u0107 si\u0119 z liter, cyfr, my\u015blnik\u00f3w, kropek i podkre\u015ble\u0144. Maksymalna d\u0142ugo\u015b\u0107 to 63 znaki #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Folder szkicownika nie istnieje.\nArduino prze\u0142\u0105czy si\u0119 na domy\u015blny szkicownik,\noraz utworzy nowy szkicownik je\u015bli potrzeba.\nPotem Arduino przestanie m\u00f3wi\u0107 o sobie \nw trzeciej osobie. @@ -1530,6 +1590,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Podany katalog na szkice zawiera twoj\u0105 kopi\u0119 \u015brodowiska programistycznego.\nProsz\u0119 wybra\u0107 inny katalog na twoje szkice. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Motyw\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Ta biblioteka nie jest widoczna w mened\u017cerze bibliotek. Nie b\u0119dziesz m\u00f3g\u0142 jej st\u0105d przeinstalowa\u0107.\nCzy na pewno chcesz j\u0105 usun\u0105\u0107? @@ -1790,7 +1853,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=Zapomnia\u0142e\u015b swojego szkicownika #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Masz niezapisane zmiany\nMusisz zapisa\u0107 wszystkie szkice aby w\u0142\u0105czy\u0107 t\u0105 opcj\u0119. +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Masz niezapisane zmiany.\nMusisz zapisa\u0107 wszystkie szkice aby w\u0142\u0105czy\u0107 t\u0119 opcj\u0119. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=Wcisn\u0105\u0142e\u015b {0} ale nic nie zosta\u0142o wys\u0142ane. Mo\u017ce powiniene\u015b wybra\u0107 zako\u0144czenie linii? @@ -1864,6 +1927,11 @@ ignoring\ invalid\ font\ size\ {0}=ignoruj nieprawid\u0142ow\u0105 wielko\u015b\ #: Editor.java:936 Editor.java:943 name\ is\ null=name jest puste +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=brak plik\u00f3w nag\u0142\u00f3wkowych (.h) w {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu jest puste @@ -1931,10 +1999,6 @@ version\ {0}=wersja {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Niew\u0142a\u015bciwa nazwa p\u0142ytki, powinna mie\u0107 format "package\:arch\:board" lub "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Niew\u0142a\u015bciwa opcja dla "{1}" opcji dla p\u0142ytki "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Niew\u0142a\u015bciwa opcja dla p\u0142ytki "{1}" @@ -1943,6 +2007,10 @@ version\ {0}=wersja {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Niew\u0142a\u015bciwa opcja, powinna by\u0107 formatu "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: b\u0142\u0119dna warto\u015b\u0107 w opcji "{1}" dla p\u0142ytki "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Nieznana architektura diff --git a/arduino-core/src/processing/app/i18n/Resources_pt.po b/arduino-core/src/processing/app/i18n/Resources_pt.po index a36c33fec03..fb785aad2d6 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pt.po +++ b/arduino-core/src/processing/app/i18n/Resources_pt.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Luis Correia , 2012 # n3okill , 2014 # nelsonduvall , 2012,2014 @@ -25,13 +29,14 @@ # Paulo Monteiro , 2012 # Pedro Santos , 2012 # renatose , 2012,2015 +# Rui , 2019 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 15:37+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-02-05 20:06+0000\n" +"Last-Translator: Rui \n" "Language-Team: Portuguese (http://www.transifex.com/mbanzi/arduino-ide-15/language/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -57,7 +62,7 @@ msgstr "Utilizado: {0}" msgid "" "'Keyboard' not found. Does your sketch include the line '#include " "'?" -msgstr "" +msgstr "'Keyboard' não foi encontrado. O seu rascunho inclui a linha '#include '?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 msgid "" @@ -218,6 +223,11 @@ msgstr "Arquivar o rascunho como:" msgid "Archive sketch canceled." msgstr "Cancelado o arquivo do rascunho." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -624,6 +634,11 @@ msgstr "Não foi possível apagar a versão antiga de {0}" msgid "Could not replace {0}" msgstr "Não foi possível substituir {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Não foi possível arquivar o Rascunho" @@ -667,6 +682,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Reduzir Indentação" @@ -675,6 +694,10 @@ msgstr "Reduzir Indentação" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Apagar" @@ -850,6 +873,11 @@ msgstr "Erro ao obter a directoria de dados do Arduino" msgid "Error inside Serial.{0}()" msgstr "Erro na porta Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -869,6 +897,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Erro ao ler as preferências" @@ -903,6 +950,10 @@ msgstr "Erro ao gravar o bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Erro ao gravar o bootloader: parâmetro de configuração '{0}' não encontrado" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Erro a compilar: o parâmetro de configuração '{0}' está em falta" @@ -939,10 +990,6 @@ msgstr "Erro a verificar/enviar" msgid "Estonian" msgstr "Estónio" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estónio (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Exemplos" @@ -1146,9 +1193,9 @@ msgstr "" msgid "Ignore Case" msgstr "Ignorar capitalização" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorei nome de biblioteca inválido" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1174,6 +1221,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Aumentar indentação" @@ -1207,9 +1258,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1236,6 +1287,17 @@ msgstr "Biblioteca inválida encontrada em {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italiano" @@ -1268,9 +1330,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1688,9 +1750,9 @@ msgstr "Referência" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1727,6 +1789,10 @@ msgstr "Substituir com:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romeno" @@ -1850,12 +1916,15 @@ msgid "" " Serial Port menu?" msgstr "Porta série \"{0}\" já não encontrada. Selecionou a porta certa no menu Ferramentas > Porta Série ?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Porta série {0} não encontrada.\nRepetir o carregamento com outra porta série?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1878,6 +1947,10 @@ msgstr "Problemas com as configurações" msgid "Show Sketch Folder" msgstr "Ver directoria do Rascunho" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Mostrar mensagens detalhadas durante:" @@ -2049,6 +2122,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "O ficheiro \"{0}\" tem de estar dentro\nde uma directoria de rascunhos chamada \"{1}\".\nCriar esta directoria, mover o ficheiro e continuar?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2094,12 +2175,12 @@ msgid "" "but anything besides the code will be lost." msgstr "A directoria de rascunhos desapareceu.\nVou tentar guardar novamente no mesmo sítio,\nmas tudo para além do código será perdido." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "O nome do rascunho teve de ser modificado. Nomes de rascunho apenas\npodem ser constituidos por caracteres ASCII e numeros (mas podem começar\ncom um numero): Devem também ter menos de 64 caracteres." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2116,6 +2197,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2608,6 +2693,12 @@ msgstr "Ignorando o tamanho da fonte inválido {0}" msgid "name is null" msgstr "nome é nulo" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu é nulo" @@ -2695,11 +2786,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Nome de placa inválido, o nome deve ser da forma \"pacote:arquitectura:placa\" ou \"pacote:arquitectura:placa:opções\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opção inválida para a opção \"{1}\" para a placa \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2710,6 +2796,11 @@ msgstr "{0}: Opção inválida para a placa \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opção inválida, deve ser da forma \"nome=valor\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_pt.properties b/arduino-core/src/processing/app/i18n/Resources_pt.properties index 744b805d694..5bf6fbe3f9e 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pt.properties +++ b/arduino-core/src/processing/app/i18n/Resources_pt.properties @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Luis Correia , 2012 # n3okill , 2014 # nelsonduvall , 2012,2014 @@ -25,7 +29,8 @@ # Paulo Monteiro , 2012 # Pedro Santos , 2012 # renatose , 2012,2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 15\:37+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Portuguese (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pt/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +# Rui , 2019 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-02-05 20\:06+0000\nLast-Translator\: Rui \nLanguage-Team\: Portuguese (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pt/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(requer rein\u00edcio do Arduino) @@ -39,7 +44,7 @@ \ Used\:\ {0}=Utilizado\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 -!'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= +'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Keyboard' n\u00e3o foi encontrado. O seu rascunho inclui a linha '\#include '? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:553 !'Mouse'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?= @@ -150,6 +155,10 @@ Archive\ sketch\ as\:=Arquivar o rascunho como\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Cancelado o arquivo do rascunho. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=O arquivamento do rascunho foi cancelado porque n\u00e3o\nfoi poss\u00edvel guardar o rascunho em condi\u00e7\u00f5es. @@ -444,6 +453,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=N\u00e3o foi poss\u00edvel apagar a ve #, java-format Could\ not\ replace\ {0}=N\u00e3o foi poss\u00edvel substituir {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=N\u00e3o foi poss\u00edvel arquivar o Rascunho @@ -474,12 +487,18 @@ Danish\ (Denmark)=Dinamarq\u00eas (Dinamarca) #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Reduzir Indenta\u00e7\u00e3o #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Apagar @@ -611,6 +630,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Erro ao obter a directoria de dados #, java-format Error\ inside\ Serial.{0}()=Erro na porta Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -625,6 +648,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Erro ao abrir a porta s\u00e9rie "{0}". #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Erro ao ler as prefer\u00eancias @@ -650,6 +685,9 @@ Error\ while\ burning\ bootloader.=Erro ao gravar o bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Erro ao gravar o bootloader\: par\u00e2metro de configura\u00e7\u00e3o '{0}' n\u00e3o encontrado +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Erro a compilar\: o par\u00e2metro de configura\u00e7\u00e3o '{0}' est\u00e1 em falta @@ -678,9 +716,6 @@ Error\ while\ verifying/uploading=Erro a verificar/enviar #: Preferences.java:93 Estonian=Est\u00f3nio -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Est\u00f3nio (Estonia) - #: Editor.java:516 Examples=Exemplos @@ -831,8 +866,8 @@ Hungarian=H\u00fangaro #: FindReplace.java:96 Ignore\ Case=Ignorar capitaliza\u00e7\u00e3o -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorei nome de biblioteca inv\u00e1lido +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorei o rascunho com nome inv\u00e1lido @@ -847,6 +882,9 @@ In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Aumentar indenta\u00e7\u00e3o @@ -873,9 +911,9 @@ Indonesian=Indon\u00e9sio #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -896,6 +934,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Biblioteca inv\u00e1lida encontrada em { #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italiano @@ -920,9 +967,9 @@ Latvian=Let\u00e3o #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1235,9 +1282,9 @@ Reference=Refer\u00eancia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1265,6 +1312,9 @@ Replace\ with\:=Substituir com\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Romeno @@ -1356,9 +1406,13 @@ Serial\ Monitor=Monitor S\u00e9rie #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Porta s\u00e9rie "{0}" j\u00e1 n\u00e3o encontrada. Selecionou a porta certa no menu Ferramentas > Porta S\u00e9rie ? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Porta s\u00e9rie {0} n\u00e3o encontrada.\nRepetir o carregamento com outra porta s\u00e9rie? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Portas s\u00e9rie @@ -1376,6 +1430,9 @@ Settings\ issues=Problemas com as configura\u00e7\u00f5es #: Editor.java:641 Show\ Sketch\ Folder=Ver directoria do Rascunho +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Mostrar mensagens detalhadas durante\: @@ -1495,6 +1552,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=O nome da classe Udp foi mudad #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=O ficheiro "{0}" tem de estar dentro\nde uma directoria de rascunhos chamada "{1}".\nCriar esta directoria, mover o ficheiro e continuar? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=A biblioteca "{0}" n\u00e3o pode ser usada.\u23ce Os nomes das bibliotecas s\u00f3 podem ter n\u00fameros e letras b\u00e1sicas\u23ce (apenas ASCII, sem espa\u00e7os e n\u00e3o podem come\u00e7ar por digito) @@ -1519,8 +1580,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=A directoria de rascunhos desapareceu.\nVou tentar guardar novamente no mesmo s\u00edtio,\nmas tudo para al\u00e9m do c\u00f3digo ser\u00e1 perdido. -#: ../../../processing/app/Sketch.java:2028 -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.=O nome do rascunho teve de ser modificado. Nomes de rascunho apenas\npodem ser constituidos por caracteres ASCII e numeros (mas podem come\u00e7ar\ncom um numero)\: Devem tamb\u00e9m ter menos de 64 caracteres. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=A directoria do bloco de rascunhos j\u00e1 n\u00e3o existe.\nO Arduino ir\u00e1 mudar para a localiza\u00e7\u00e3o por defeito, e\ncriar uma nova directoria de bloco de rascunhos, caso necess\u00e1rio.\nDepois disto o Arduino dever\u00e1 parar de\nfalar de si mesmo na terceira pessoa. @@ -1528,6 +1589,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1862,6 +1926,11 @@ ignoring\ invalid\ font\ size\ {0}=Ignorando o tamanho da fonte inv\u00e1lido {0 #: Editor.java:936 Editor.java:943 name\ is\ null=nome \u00e9 nulo +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu \u00e9 nulo @@ -1929,10 +1998,6 @@ upload=upload #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nome de placa inv\u00e1lido, o nome deve ser da forma "pacote\:arquitectura\:placa" ou "pacote\:arquitectura\:placa\:op\u00e7\u00f5es" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Op\u00e7\u00e3o inv\u00e1lida para a op\u00e7\u00e3o "{1}" para a placa "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Op\u00e7\u00e3o inv\u00e1lida para a placa "{1}" @@ -1941,6 +2006,10 @@ upload=upload #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Op\u00e7\u00e3o inv\u00e1lida, deve ser da forma "nome\=valor" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arquitetura desconhecida diff --git a/arduino-core/src/processing/app/i18n/Resources_pt_BR.po b/arduino-core/src/processing/app/i18n/Resources_pt_BR.po index 487106ed330..1e45848be52 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pt_BR.po +++ b/arduino-core/src/processing/app/i18n/Resources_pt_BR.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # andre graes , 2012 # Cristian Maglie , 2016 # Erick Simões , 2014-2015 @@ -28,16 +32,18 @@ # Philipe Rabelo , 2013 # Radamés Ajna , 2016 # Rafael H L Moretti , 2014 +# Rui , 2019 # sergio mazzotti , 2017 # Tiago G. Sala, 2014 +# Tiago G. Sala, 2018 # Walter Souza , 2016 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" -"Last-Translator: sergio mazzotti \n" +"PO-Revision-Date: 2019-01-31 20:49+0000\n" +"Last-Translator: Rui \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/mbanzi/arduino-ide-15/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -161,7 +167,7 @@ msgstr "Afrikaans" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Núcleo compilado em cache agressivamente" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -224,6 +230,11 @@ msgstr "Arquivar sketch como:" msgid "Archive sketch canceled." msgstr "Arquivo do sketch cancelado." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Arquivando núcleo compilado (cacheando) em: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -630,6 +641,11 @@ msgstr "Não foi possível remover a versão antiga de {0}" msgid "Could not replace {0}" msgstr "Não foi possível substituir {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Não foi possível arquivar sketch" @@ -673,6 +689,10 @@ msgstr "Processamento de Dados" msgid "Data Storage" msgstr "Armazenamento de Dados" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Diminuir Tamanho da Fonte" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Diminuir indentação" @@ -681,6 +701,10 @@ msgstr "Diminuir indentação" msgid "Default" msgstr "Padrão" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Apagar" @@ -856,6 +880,11 @@ msgstr "Erro ao obter a pasta de dados do Arduino." msgid "Error inside Serial.{0}()" msgstr "Erro dentro de Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -875,6 +904,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Erro abrindo a porta serial \"{0}\". Tente consultar a documentação em http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Erro lendo preferências" @@ -909,6 +957,10 @@ msgstr "Erro ao gravar o bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Erro ao gravar bootloader: faltando o parâmetro de configuração '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Erro durante a compilação: necessário configurar '{0}' parâmetros" @@ -945,10 +997,6 @@ msgstr "Erro durante a verificação/carregamento" msgid "Estonian" msgstr "Estoniano" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estoniano (Estônia)" - #: Editor.java:516 msgid "Examples" msgstr "Exemplos" @@ -987,7 +1035,7 @@ msgstr "Falha ao abrir o rascunho: \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "Falha ao renomear \"{0}\" to \"{1}\"" +msgstr "Falha ao renomear \"{0}\" para \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" @@ -1152,9 +1200,9 @@ msgstr "IMCOMPATÃVEL" msgid "Ignore Case" msgstr "Ignorar maiúsculização" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorando nome incorreto para biblioteca" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1180,6 +1228,10 @@ msgstr "Incluir Biblioteca" msgid "Incorrect IDE installation folder" msgstr "Pasta de instalação da IDE incorreta" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Aumentar Tamanho da Fonte" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Aumentar indentação" @@ -1213,10 +1265,10 @@ msgstr "Instalado" msgid "Installing boards..." msgstr "Instalando placas..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Instalando biblioteca: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1242,6 +1294,17 @@ msgstr "Biblioteca inválida encontrada em {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Referência inválida: encontrado o char [{0}] não fechado." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italiano" @@ -1274,10 +1337,10 @@ msgstr "Biblioteca adicionada às suas bibliotecas. Veja o menu \"Incluir biblio msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Bibliotecas não podem usar as pastas 'src' e 'utility' ao mesmo tempo. Verifique {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "A biblioteca já está instalada: {0} versão {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1694,10 +1757,10 @@ msgstr "Referência" msgid "Remove" msgstr "Remover" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Removendo biblioteca: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1733,6 +1796,10 @@ msgstr "Substituir com:" msgid "Retired" msgstr "Descontinuado" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Tentar carregar novamente com outra porta série?" + #: Preferences.java:113 msgid "Romanian" msgstr "Romeno" @@ -1856,12 +1923,15 @@ msgid "" " Serial Port menu?" msgstr "Porta Serial \"{0}\" não encontrada. Você selecionou corretamente em Ferramentas > Porta Serial?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Porta serial {0} não encontrada.\nTentar carregar usando outra porta serial?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1884,6 +1954,10 @@ msgstr "Definições de problemas" msgid "Show Sketch Folder" msgstr "Mostrar a página do Sketch" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Mostrar mensagens de saída durante:" @@ -2055,6 +2129,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "O arquivo \"{0}\" precisa estar dentro\nde uma pasta de sketch chamada \"{1}\".\nCriar esta pasta, mover o arquivo e continuar?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2100,12 +2182,12 @@ msgid "" "but anything besides the code will be lost." msgstr "A pasta do sketch desapareceu.\nTentarei salvar novamente no mesmo local,\nmas qualquer coisa além do código será perdida." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "O nome do sketch teve de ser modificado. Nomes de sketch podem conter apenas\ncaracteres ASCII e números (mas não podem começar com um número).\nEles devem também ter menos de 64 caracteres de tamanho." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2122,6 +2204,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "A pasta de sketchbook especificada contém sua cópia da IDE.\nPor favor escolha uma pasta diferente para seu sketchbook." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2614,6 +2700,12 @@ msgstr "ignorando tamanho de fonte inválido {0}" msgid "name is null" msgstr "nome é nulo" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu é nulo" @@ -2701,11 +2793,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Nome inválido de placa, deveria ser na forma \"pacote:arqu:placa\" ou \"pacote:arqu:placa:opções\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opção inválida para a opção \"{1}\" para a placa \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2716,6 +2803,11 @@ msgstr "{0}: Opção inválida para a placa \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opção iválida, deve estar na forma \"nome=valor\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_pt_BR.properties b/arduino-core/src/processing/app/i18n/Resources_pt_BR.properties index 2e8dfc77dfd..bd9b70777c1 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pt_BR.properties +++ b/arduino-core/src/processing/app/i18n/Resources_pt_BR.properties @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # andre graes , 2012 # Cristian Maglie , 2016 # Erick Sim\u00f5es , 2014-2015 @@ -28,10 +32,12 @@ # Philipe Rabelo , 2013 # Radam\u00e9s Ajna , 2016 # Rafael H L Moretti , 2014 +# Rui , 2019 # sergio mazzotti , 2017 # Tiago G. Sala, 2014 +# Tiago G. Sala, 2018 # Walter Souza , 2016 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: sergio mazzotti \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-01-31 20\:49+0000\nLast-Translator\: Rui \nLanguage-Team\: Portuguese (Brazil) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pt_BR/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_BR\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(requer reinicializa\u00e7\u00e3o do Arduino) @@ -111,7 +117,7 @@ Additional\ Boards\ Manager\ URLs\:\ =URLs Adicionais para Gerenciadores de Plac Afrikaans=Afrikaans #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=N\u00facleo compilado em cache agressivamente #: ../../../processing/app/Preferences.java:96 Albanian=Alban\u00eas @@ -156,6 +162,10 @@ Archive\ sketch\ as\:=Arquivar sketch como\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arquivo do sketch cancelado. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Arquivando n\u00facleo compilado (cacheando) em\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Arquivo do sketch foi cancelado porque\no sketch n\u00e3o p\u00f4de ser salvo corretamente. @@ -450,6 +460,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=N\u00e3o foi poss\u00edvel remover a v #, java-format Could\ not\ replace\ {0}=N\u00e3o foi poss\u00edvel substituir {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=N\u00e3o foi poss\u00edvel arquivar sketch @@ -480,12 +494,18 @@ Data\ Processing=Processamento de Dados #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Armazenamento de Dados +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Diminuir Tamanho da Fonte + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Diminuir indenta\u00e7\u00e3o #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Padr\u00e3o +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Apagar @@ -617,6 +637,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Erro ao obter a pasta de dados do Ar #, java-format Error\ inside\ Serial.{0}()=Erro dentro de Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -631,6 +655,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Erro ao abrir porta serial "{0}". #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Erro abrindo a porta serial "{0}". Tente consultar a documenta\u00e7\u00e3o em http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Erro lendo prefer\u00eancias @@ -656,6 +692,9 @@ Error\ while\ burning\ bootloader.=Erro ao gravar o bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Erro ao gravar bootloader\: faltando o par\u00e2metro de configura\u00e7\u00e3o '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Erro durante a compila\u00e7\u00e3o\: necess\u00e1rio configurar '{0}' par\u00e2metros @@ -684,9 +723,6 @@ Error\ while\ verifying/uploading=Erro durante a verifica\u00e7\u00e3o/carregame #: Preferences.java:93 Estonian=Estoniano -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estoniano (Est\u00f4nia) - #: Editor.java:516 Examples=Exemplos @@ -716,7 +752,7 @@ Failed\ to\ open\ sketch\:\ "{0}"=Falha ao abrir o rascunho\: "{0}" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -Failed\ to\ rename\ "{0}"\ to\ "{1}"=Falha ao renomear "{0}" to "{1}" +Failed\ to\ rename\ "{0}"\ to\ "{1}"=Falha ao renomear "{0}" para "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 Failed\ to\ rename\ sketch\ folder=Falha ao renomear pasta do sketch @@ -837,8 +873,8 @@ INCOMPATIBLE=IMCOMPAT\u00cdVEL #: FindReplace.java:96 Ignore\ Case=Ignorar mai\u00fasculiza\u00e7\u00e3o -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorando nome incorreto para biblioteca +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorando sketch com nome incorreto @@ -853,6 +889,9 @@ Include\ Library=Incluir Biblioteca #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Pasta de instala\u00e7\u00e3o da IDE incorreta +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Aumentar Tamanho da Fonte + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Aumentar indenta\u00e7\u00e3o @@ -879,9 +918,9 @@ Installed=Instalado #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Instalando placas... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Instalando biblioteca\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -902,6 +941,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Biblioteca inv\u00e1lida encontrada em { #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Refer\u00eancia inv\u00e1lida\: encontrado o char [{0}] n\u00e3o fechado. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italiano @@ -926,9 +974,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Biblioteca #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Bibliotecas n\u00e3o podem usar as pastas 'src' e 'utility' ao mesmo tempo. Verifique {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=A biblioteca j\u00e1 est\u00e1 instalada\: {0} vers\u00e3o {1} +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=N\u00famero da linha\: @@ -1241,9 +1289,9 @@ Reference=Refer\u00eancia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Remover -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Removendo biblioteca\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1271,6 +1319,9 @@ Replace\ with\:=Substituir com\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Descontinuado +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Tentar carregar novamente com outra porta s\u00e9rie? + #: Preferences.java:113 Romanian=Romeno @@ -1362,9 +1413,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Monitor serial n\u00e3 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Porta Serial "{0}" n\u00e3o encontrada. Voc\u00ea selecionou corretamente em Ferramentas > Porta Serial? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Porta serial {0} n\u00e3o encontrada.\nTentar carregar usando outra porta serial? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Portas seriais @@ -1382,6 +1437,9 @@ Settings\ issues=Defini\u00e7\u00f5es de problemas #: Editor.java:641 Show\ Sketch\ Folder=Mostrar a p\u00e1gina do Sketch +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Mostrar mensagens de sa\u00edda durante\: @@ -1501,6 +1559,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=O arquivo "{0}" precisa estar dentro\nde uma pasta de sketch chamada "{1}".\nCriar esta pasta, mover o arquivo e continuar? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=A Biblioteca "{0}" n\u00e3o pode ser usada. Os nomes de Biblioteca devem conter apenas letras b\u00e1sicas e n\u00fameros. \\n(Apenas ASCII, sem espa\u00e7os. N\u00e3o pode come\u00e7ar com um n\u00famero) @@ -1525,8 +1587,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=O sketch j\u00e1 cont\u00e #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=A pasta do sketch desapareceu.\nTentarei salvar novamente no mesmo local,\nmas qualquer coisa al\u00e9m do c\u00f3digo ser\u00e1 perdida. -#: ../../../processing/app/Sketch.java:2028 -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.=O nome do sketch teve de ser modificado. Nomes de sketch podem conter apenas\ncaracteres ASCII e n\u00fameros (mas n\u00e3o podem come\u00e7ar com um n\u00famero).\nEles devem tamb\u00e9m ter menos de 64 caracteres de tamanho. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=A pasta do sketchbook n\u00e3o existe mais.\nO Arduino ir\u00e1 alternar para o local padr\u00e3o\ndo sketchbook e criar uma nova pasta de\nsketchbook, se necess\u00e1rio. E ent\u00e3o, o\nArduino ir\u00e1 parar de falar sobre si mesmo\nna terceira pessoa. @@ -1534,6 +1596,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=A pasta de sketchbook especificada cont\u00e9m sua c\u00f3pia da IDE.\nPor favor escolha uma pasta diferente para seu sketchbook. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Esta biblioteca n\u00e3o est\u00e1 listada no Gerenciador de Bibliotecas. N\u00e3o ser\u00e1 poss\u00edvel reinstal\u00e1-a a partir daqui.\nTem certeza que deseja remov\u00ea-la? @@ -1868,6 +1933,11 @@ ignoring\ invalid\ font\ size\ {0}=ignorando tamanho de fonte inv\u00e1lido {0} #: Editor.java:936 Editor.java:943 name\ is\ null=nome \u00e9 nulo +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu \u00e9 nulo @@ -1935,10 +2005,6 @@ version\ {0}=vers\u00e3o {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nome inv\u00e1lido de placa, deveria ser na forma "pacote\:arqu\:placa" ou "pacote\:arqu\:placa\:op\u00e7\u00f5es" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Op\u00e7\u00e3o inv\u00e1lida para a op\u00e7\u00e3o "{1}" para a placa "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Op\u00e7\u00e3o inv\u00e1lida para a placa "{1}" @@ -1947,6 +2013,10 @@ version\ {0}=vers\u00e3o {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Op\u00e7\u00e3o iv\u00e1lida, deve estar na forma "nome\=valor" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arquitetura n\u00e3o identificada diff --git a/arduino-core/src/processing/app/i18n/Resources_pt_PT.po b/arduino-core/src/processing/app/i18n/Resources_pt_PT.po index c2cfa01911f..dfbe326c3ac 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pt_PT.po +++ b/arduino-core/src/processing/app/i18n/Resources_pt_PT.po @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Paulo Monteiro , 2012 # Luis Correia , 2012 -# Manuel Menezes de Sequeira , 2016 +# Manuel Menezes de Sequeira , 2016,2019 # n3okill , 2014 # nelsonduvall , 2014 # nelsonduvall , 2012 @@ -26,6 +30,7 @@ # Nuno Santos , 2012 # renatose , 2015 # renatose , 2012 +# Rui , 2019 # Pedro Santos , 2012 # nuno407 , 2014 msgid "" @@ -33,8 +38,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" -"Last-Translator: Nigel Randsley \n" +"PO-Revision-Date: 2019-05-11 14:19+0000\n" +"Last-Translator: Manuel Menezes de Sequeira \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/mbanzi/arduino-ide-15/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -158,7 +163,7 @@ msgstr "Africânder" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Colocar em cache de forma agressiva o núcleo compilado" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -221,6 +226,11 @@ msgstr "Arquivar o rascunho como:" msgid "Archive sketch canceled." msgstr "Cancelado o arquivo do rascunho." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "A arquivar o núcleo construído (a colocar em cache) em: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -433,7 +443,7 @@ msgstr "A gravar o bootloader na Placa E/S (isto pode demorar um minuto)..." msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "O CRC não coincide, o ficheiro está corrompido. Pode ser um problema temporário, tente novamente mais tarde." #: ../../../processing/app/Base.java:379 #, java-format @@ -442,7 +452,7 @@ msgstr "Só pode passar um de: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Não é possível ativar o editor externo" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -488,7 +498,7 @@ msgstr "Chinês (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Limpar saída" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -546,7 +556,7 @@ msgstr "Não foi possível copiar para uma localização correta. " #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "Não foi possível criar a pasta \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -627,6 +637,11 @@ msgstr "Não foi possível apagar a versão antiga de {0}" msgid "Could not replace {0}" msgstr "Não foi possível substituir {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Não foi possível gravar o ficheiro de preferências: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Não foi possível arquivar o Rascunho" @@ -670,6 +685,10 @@ msgstr "Processamento de Dados" msgid "Data Storage" msgstr "Armazenamento de Dados" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Diminuir tamanho da fonte" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Reduzir Indentação" @@ -678,6 +697,10 @@ msgstr "Reduzir Indentação" msgid "Default" msgstr "Por omissão" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Tema padrão" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Apagar" @@ -853,6 +876,11 @@ msgstr "Erro ao obter a directoria de dados do Arduino" msgid "Error inside Serial.{0}()" msgstr "Erro na porta Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Surgiu um erro ao carregar o tema {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -872,6 +900,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Erro ao abrir a porta série ''{0}''. Tente consultar a documentação em http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Erro ao processar o índice das bibliotecas: {0}\nTente abri o Gestor de Bibliotecas para atualizar o índice de bibliotecas." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Surgiu um erro ao ler o índice das bibliotecas: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Erro ao ler o a pasta dos índices do pacote: {0}\n(talvez seja um problema de permissões)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Erro ao ler as preferências" @@ -906,6 +953,10 @@ msgstr "Erro ao gravar o bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Erro ao gravar o bootloader: parâmetro de configuração '{0}' não encontrado" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Erro ao gravar o carregador de inicialização (bootloader): por favor selecione uma porta série." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Erro a compilar: o parâmetro de configuração '{0}' está em falta" @@ -942,23 +993,19 @@ msgstr "Erro a verificar/enviar" msgid "Estonian" msgstr "Estónio" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estónio (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Exemplos" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "Exemplos para qualquer placa" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "Exemplos para {0}" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" @@ -984,11 +1031,11 @@ msgstr "Falhou a abertura do rascunho: \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "Falha ao alterar o nome \"{0}\" para \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "Falha ao renomear pasta do rascunho" #: Editor.java:491 msgid "File" @@ -1149,9 +1196,9 @@ msgstr "INCOMPATÃVEL" msgid "Ignore Case" msgstr "Ignorar capitalização" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorei nome de biblioteca inválido" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "A ignorar a biblioteca com um nome inválido" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1177,6 +1224,10 @@ msgstr "Incluir Biblioteca" msgid "Incorrect IDE installation folder" msgstr "Pasta de instalação do IDE inválida" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Aumentar tamanho da fonte" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Aumentar indentação" @@ -1210,10 +1261,10 @@ msgstr "Instalado" msgid "Installing boards..." msgstr "Instalando placas…" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "A instalar biblioteca: {0}" +msgid "Installing library: {0}:{1}" +msgstr "A instalar a biblioteca: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1239,6 +1290,17 @@ msgstr "Biblioteca inválida encontrada em {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Aspas inválidas: não foi encontrado o character de fecho [{0}]." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Versão '{0}' inválida da biblioteca em: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Versão inválida {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italiano" @@ -1271,10 +1333,10 @@ msgstr "Biblioteca adicionada às suas bibliotecas. Confirme no menu «Incluir b msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "A biblioteca não pode usar simultaneamente as pastas «src» e «utility». Verifique de novo {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "A biblioteca já está instalada: {0} versão {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "A biblioteca já está instalada: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1691,10 +1753,10 @@ msgstr "Referência" msgid "Remove" msgstr "Remover" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "A remover biblioteca: {0}" +msgid "Removing library: {0}:{1}" +msgstr "A remover a biblioteca: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1730,6 +1792,10 @@ msgstr "Substituir com:" msgid "Retired" msgstr "Reformado" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Tentar enviar novamente com outra porta série?" + #: Preferences.java:113 msgid "Romanian" msgstr "Romeno" @@ -1840,7 +1906,7 @@ msgstr "Plotter Série" msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "O monitor de série não é compatível com portas de rede, tais como {0} para {1} nesta versão" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" @@ -1853,12 +1919,15 @@ msgid "" " Serial Port menu?" msgstr "Porta série \"{0}\" já não encontrada. Selecionou a porta certa no menu Ferramentas > Porta Série ?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Porta série não selecionada" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Porta série {0} não encontrada.\nRepetir o carregamento com outra porta série?" +msgid "Serial port {0} not found." +msgstr "Porta série {0} não encontrada." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1881,6 +1950,10 @@ msgstr "Problemas com as configurações" msgid "Show Sketch Folder" msgstr "Ver directoria do Rascunho" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Mostrar marca de tempo" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Mostrar mensagens detalhadas durante:" @@ -1971,7 +2044,7 @@ msgstr "Alguns ficheiros estão \"leitura-apenas\", por isso \\n terá que grava #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format msgid "Sorry, the folder \"{0}\" already exists." -msgstr "" +msgstr "A pasta \"{0}\" já existe." #: Preferences.java:115 msgid "Spanish" @@ -2042,7 +2115,7 @@ msgstr "O nome da classe Udp foi mudado para EthernetUdp." #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "" +msgstr "A placa selecionada atualmente precisa do núcleo '{0}' que não está instalado." #: Editor.java:2147 #, java-format @@ -2052,6 +2125,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "O ficheiro \"{0}\" tem de estar dentro\nde uma directoria de rascunhos chamada \"{1}\".\nCriar esta directoria, mover o ficheiro e continuar?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "A biblioteca \"{0}\" não pode ser usada.\nOs nomes das pastas de bibliotecas têm de começar com uma letra ou número,\nseguido por letras, números, traços, pontos ou traços inferiores.\nO comprimento máximo é de 63 caracteres." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2062,7 +2143,7 @@ msgstr "A biblioteca \"{0}\" não pode ser usada.⎠Os nomes das bibliotecas s #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "O ficheiro principal não pode usar uma extensão" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2088,7 +2169,7 @@ msgstr "O rascunho \"{0}\" não pode ser usado.⎠Os nomes dos rascunhos devem #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format msgid "The sketch already contains a file named \"{0}\"" -msgstr "" +msgstr "O rascunho já contém ficheiro com o nome \"{0}\"" #: Sketch.java:1755 msgid "" @@ -2097,12 +2178,12 @@ msgid "" "but anything besides the code will be lost." msgstr "A directoria de rascunhos desapareceu.\nVou tentar guardar novamente no mesmo sítio,\nmas tudo para além do código será perdido." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "O nome do rascunho teve de ser modificado. Nomes de rascunho apenas\npodem ser constituidos por caracteres ASCII e numeros (mas podem começar\ncom um numero): Devem também ter menos de 64 caracteres." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "O nome do rascunho teve de ser alterado.\nOs nomes de rascunhos têm de começar com uma letra ou número,\nseguido por letras, números, traços, pontos ou traços inferiores.\nO comprimento máximo é de 63 caracteres." #: Base.java:259 msgid "" @@ -2119,6 +2200,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "A pasta de bloco de rascunhos especificada contém a sua cópia do IDE.\nPor favor escolha uma outra pasta para o seu bloco de rascunhos." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Tema: " + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2480,7 +2565,7 @@ msgstr "Esqueceste-te do teu bloco de rascunhos" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "Tem alterações por guardar!\nDeve guardar todos os seus rascunhos para ativar essa opção." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2611,6 +2696,12 @@ msgstr "Ignorando o tamanho da fonte inválido {0}" msgid "name is null" msgstr "nome é nulo" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "não foram encontrados ficheiros de cabeçalho (.h) em {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu é nulo" @@ -2698,11 +2789,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Nome de placa inválido, o nome deve ser da forma \"pacote:arquitectura:placa\" ou \"pacote:arquitectura:placa:opções\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opção inválida para a opção \"{1}\" para a placa \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2713,6 +2799,11 @@ msgstr "{0}: Opção inválida para a placa \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opção inválida, deve ser da forma \"nome=valor\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: valor inválido para a opção \"{1}\" na placa \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" @@ -2731,4 +2822,4 @@ msgstr "{0}: Pacote desconhecido" #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format msgid "{0}Install this package{1} to use your {2} board" -msgstr "" +msgstr "{0}Instalar este pacote{1} para usar a placa {2}" diff --git a/arduino-core/src/processing/app/i18n/Resources_pt_PT.properties b/arduino-core/src/processing/app/i18n/Resources_pt_PT.properties index 8835af496d0..6b5b2b39c54 100644 --- a/arduino-core/src/processing/app/i18n/Resources_pt_PT.properties +++ b/arduino-core/src/processing/app/i18n/Resources_pt_PT.properties @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Paulo Monteiro , 2012 # Luis Correia , 2012 -# Manuel Menezes de Sequeira , 2016 +# Manuel Menezes de Sequeira , 2016,2019 # n3okill , 2014 # nelsonduvall , 2014 # nelsonduvall , 2012 @@ -26,9 +30,10 @@ # Nuno Santos , 2012 # renatose , 2015 # renatose , 2012 +# Rui , 2019 # Pedro Santos , 2012 # nuno407 , 2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: Nigel Randsley \nLanguage-Team\: Portuguese (Portugal) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pt_PT/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_PT\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-05-11 14\:19+0000\nLast-Translator\: Manuel Menezes de Sequeira \nLanguage-Team\: Portuguese (Portugal) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/pt_PT/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: pt_PT\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(requer rein\u00edcio do Arduino) @@ -108,7 +113,7 @@ Additional\ Boards\ Manager\ URLs\:\ =URL Adicionais do Gestor de Placas\: Afrikaans=Afric\u00e2nder #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Colocar em cache de forma agressiva o n\u00facleo compilado #: ../../../processing/app/Preferences.java:96 Albanian=Alban\u00eas @@ -153,6 +158,10 @@ Archive\ sketch\ as\:=Arquivar o rascunho como\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Cancelado o arquivo do rascunho. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=A arquivar o n\u00facleo constru\u00eddo (a colocar em cache) em\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=O arquivamento do rascunho foi cancelado porque n\u00e3o\nfoi poss\u00edvel guardar o rascunho em condi\u00e7\u00f5es. @@ -305,14 +314,14 @@ Burn\ Bootloader=Gravar bootloader Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=A gravar o bootloader na Placa E/S (isto pode demorar um minuto)... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=O CRC n\u00e3o coincide, o ficheiro est\u00e1 corrompido. Pode ser um problema tempor\u00e1rio, tente novamente mais tarde. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}=S\u00f3 pode passar um de\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=N\u00e3o \u00e9 poss\u00edvel ativar o editor externo #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -347,7 +356,7 @@ Chinese\ (Taiwan)=Chin\u00eas (Taiwan) Chinese\ (Taiwan)\ (Big5)=Chin\u00eas (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Limpar sa\u00edda #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Clique para uma lista de URL de suporte de placas n\u00e3o oficiais @@ -391,7 +400,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=N\u00e3o foi poss\u00edvel copiar par #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=N\u00e3o foi poss\u00edvel criar a pasta "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=N\u00e3o \u00e9 poss\u00edvel criar a directoria do rascunho. @@ -447,6 +456,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=N\u00e3o foi poss\u00edvel apagar a ve #, java-format Could\ not\ replace\ {0}=N\u00e3o foi poss\u00edvel substituir {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=N\u00e3o foi poss\u00edvel gravar o ficheiro de prefer\u00eancias\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=N\u00e3o foi poss\u00edvel arquivar o Rascunho @@ -477,12 +490,18 @@ Data\ Processing=Processamento de Dados #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Armazenamento de Dados +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Diminuir tamanho da fonte + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Reduzir Indenta\u00e7\u00e3o #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Por omiss\u00e3o +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Tema padr\u00e3o + #: EditorHeader.java:314 Sketch.java:591 Delete=Apagar @@ -614,6 +633,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Erro ao obter a directoria de dados #, java-format Error\ inside\ Serial.{0}()=Erro na porta Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Surgiu um erro ao carregar o tema {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -628,6 +651,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Erro ao abrir a porta s\u00e9rie "{0}". #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Erro ao abrir a porta s\u00e9rie ''{0}''. Tente consultar a documenta\u00e7\u00e3o em http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Erro ao processar o \u00edndice das bibliotecas\: {0}\nTente abri o Gestor de Bibliotecas para atualizar o \u00edndice de bibliotecas. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Surgiu um erro ao ler o \u00edndice das bibliotecas\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Erro ao ler o a pasta dos \u00edndices do pacote\: {0}\n(talvez seja um problema de permiss\u00f5es) + #: Preferences.java:277 Error\ reading\ preferences=Erro ao ler as prefer\u00eancias @@ -653,6 +688,9 @@ Error\ while\ burning\ bootloader.=Erro ao gravar o bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Erro ao gravar o bootloader\: par\u00e2metro de configura\u00e7\u00e3o '{0}' n\u00e3o encontrado +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Erro ao gravar o carregador de inicializa\u00e7\u00e3o (bootloader)\: por favor selecione uma porta s\u00e9rie. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Erro a compilar\: o par\u00e2metro de configura\u00e7\u00e3o '{0}' est\u00e1 em falta @@ -681,19 +719,16 @@ Error\ while\ verifying/uploading=Erro a verificar/enviar #: Preferences.java:93 Estonian=Est\u00f3nio -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Est\u00f3nio (Estonia) - #: Editor.java:516 Examples=Exemplos #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=Exemplos para qualquer placa #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}=Exemplos para {0} #: ../../../../../app/src/processing/app/Base.java:1244 Examples\ from\ Custom\ Libraries=Exemplos das Bibliotecas Contribu\u00eddas @@ -713,10 +748,10 @@ Failed\ to\ open\ sketch\:\ "{0}"=Falhou a abertura do rascunho\: "{0}" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=Falha ao alterar o nome "{0}" para "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=Falha ao renomear pasta do rascunho #: Editor.java:491 File=Ficheiro @@ -834,8 +869,8 @@ INCOMPATIBLE=INCOMPAT\u00cdVEL #: FindReplace.java:96 Ignore\ Case=Ignorar capitaliza\u00e7\u00e3o -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorei nome de biblioteca inv\u00e1lido +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=A ignorar a biblioteca com um nome inv\u00e1lido #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorei o rascunho com nome inv\u00e1lido @@ -850,6 +885,9 @@ Include\ Library=Incluir Biblioteca #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Pasta de instala\u00e7\u00e3o do IDE inv\u00e1lida +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Aumentar tamanho da fonte + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Aumentar indenta\u00e7\u00e3o @@ -876,9 +914,9 @@ Installed=Instalado #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Instalando placas\u2026 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=A instalar biblioteca\: {0} +Installing\ library\:\ {0}\:{1}=A instalar a biblioteca\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -899,6 +937,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Biblioteca inv\u00e1lida encontrada em { #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Aspas inv\u00e1lidas\: n\u00e3o foi encontrado o character de fecho [{0}]. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Vers\u00e3o '{0}' inv\u00e1lida da biblioteca em\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Vers\u00e3o inv\u00e1lida {0} + #: Preferences.java:102 Italian=Italiano @@ -923,9 +970,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Biblioteca #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=A biblioteca n\u00e3o pode usar simultaneamente as pastas \u00absrc\u00bb e \u00abutility\u00bb. Verifique de novo {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=A biblioteca j\u00e1 est\u00e1 instalada\: {0} vers\u00e3o {1} +Library\ is\ already\ installed\:\ {0}\:{1}=A biblioteca j\u00e1 est\u00e1 instalada\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=N\u00famero de linha\: @@ -1238,9 +1285,9 @@ Reference=Refer\u00eancia #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Remover -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=A remover biblioteca\: {0} +Removing\ library\:\ {0}\:{1}=A remover a biblioteca\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1268,6 +1315,9 @@ Replace\ with\:=Substituir com\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Reformado +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Tentar enviar novamente com outra porta s\u00e9rie? + #: Preferences.java:113 Romanian=Romeno @@ -1350,7 +1400,7 @@ Serial\ Plotter=Plotter S\u00e9rie #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=O monitor de s\u00e9rie n\u00e3o \u00e9 compat\u00edvel com portas de rede, tais como {0} para {1} nesta vers\u00e3o #: ../../../../../app/src/processing/app/Editor.java:2516 Serial\ monitor\ not\ available\ while\ plotter\ is\ open=O monitor s\u00e9rie n\u00e3o est\u00e1 dispon\u00edvel enquanto o plotter estiver aberto @@ -1359,9 +1409,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=O monitor s\u00e9rie n #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Porta s\u00e9rie "{0}" j\u00e1 n\u00e3o encontrada. Selecionou a porta certa no menu Ferramentas > Porta S\u00e9rie ? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Porta s\u00e9rie n\u00e3o selecionada + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Porta s\u00e9rie {0} n\u00e3o encontrada.\nRepetir o carregamento com outra porta s\u00e9rie? +Serial\ port\ {0}\ not\ found.=Porta s\u00e9rie {0} n\u00e3o encontrada. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Portas s\u00e9rie @@ -1379,6 +1433,9 @@ Settings\ issues=Problemas com as configura\u00e7\u00f5es #: Editor.java:641 Show\ Sketch\ Folder=Ver directoria do Rascunho +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Mostrar marca de tempo + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Mostrar mensagens detalhadas durante\: @@ -1440,7 +1497,7 @@ Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ ske #: ../../../../../arduino-core/src/processing/app/Sketch.java:246 #, java-format -!Sorry,\ the\ folder\ "{0}"\ already\ exists.= +Sorry,\ the\ folder\ "{0}"\ already\ exists.=A pasta "{0}" j\u00e1 existe. #: Preferences.java:115 Spanish=Espanhol @@ -1492,18 +1549,22 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=O nome da classe Server The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=O nome da classe Udp foi mudado para EthernetUdp. #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -!The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.= +The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=A placa selecionada atualmente precisa do n\u00facleo '{0}' que n\u00e3o est\u00e1 instalado. #: Editor.java:2147 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=O ficheiro "{0}" tem de estar dentro\nde uma directoria de rascunhos chamada "{1}".\nCriar esta directoria, mover o ficheiro e continuar? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=A biblioteca "{0}" n\u00e3o pode ser usada.\nOs nomes das pastas de bibliotecas t\u00eam de come\u00e7ar com uma letra ou n\u00famero,\nseguido por letras, n\u00fameros, tra\u00e7os, pontos ou tra\u00e7os inferiores.\nO comprimento m\u00e1ximo \u00e9 de 63 caracteres. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=A biblioteca "{0}" n\u00e3o pode ser usada.\u23ce Os nomes das bibliotecas s\u00f3 podem ter n\u00fameros e letras b\u00e1sicas\u23ce (apenas ASCII, sem espa\u00e7os e n\u00e3o podem come\u00e7ar por digito) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=O ficheiro principal n\u00e3o pode usar uma extens\u00e3o #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=O nome n\u00e3o pode come\u00e7ar com um ponto. @@ -1517,13 +1578,13 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format -!The\ sketch\ already\ contains\ a\ file\ named\ "{0}"= +The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=O rascunho j\u00e1 cont\u00e9m ficheiro com o nome "{0}" #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=A directoria de rascunhos desapareceu.\nVou tentar guardar novamente no mesmo s\u00edtio,\nmas tudo para al\u00e9m do c\u00f3digo ser\u00e1 perdido. -#: ../../../processing/app/Sketch.java:2028 -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.=O nome do rascunho teve de ser modificado. Nomes de rascunho apenas\npodem ser constituidos por caracteres ASCII e numeros (mas podem come\u00e7ar\ncom um numero)\: Devem tamb\u00e9m ter menos de 64 caracteres. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=O nome do rascunho teve de ser alterado.\nOs nomes de rascunhos t\u00eam de come\u00e7ar com uma letra ou n\u00famero,\nseguido por letras, n\u00fameros, tra\u00e7os, pontos ou tra\u00e7os inferiores.\nO comprimento m\u00e1ximo \u00e9 de 63 caracteres. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=A directoria do bloco de rascunhos j\u00e1 n\u00e3o existe.\nO Arduino ir\u00e1 mudar para a localiza\u00e7\u00e3o por defeito, e\ncriar uma nova directoria de bloco de rascunhos, caso necess\u00e1rio.\nDepois disto o Arduino dever\u00e1 parar de\nfalar de si mesmo na terceira pessoa. @@ -1531,6 +1592,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=A pasta de bloco de rascunhos especificada cont\u00e9m a sua c\u00f3pia do IDE.\nPor favor escolha uma outra pasta para o seu bloco de rascunhos. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Tema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Esta biblioteca n\u00e3o est\u00e1 listada no Gestor de Bibliotecas. N\u00e3o conseguir\u00e1 reinstal\u00e1-la a partir daqui.\nQuer mesmo apag\u00e1-la? @@ -1791,7 +1855,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=Esqueceste-te do teu bloco de rascunhos #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Tem altera\u00e7\u00f5es por guardar\!\nDeve guardar todos os seus rascunhos para ativar essa op\u00e7\u00e3o. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=Pressionou {0} mas nada foi enviado. N\u00e3o deveria seleccionar um caracter de fim de linha? @@ -1865,6 +1929,11 @@ ignoring\ invalid\ font\ size\ {0}=Ignorando o tamanho da fonte inv\u00e1lido {0 #: Editor.java:936 Editor.java:943 name\ is\ null=nome \u00e9 nulo +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=n\u00e3o foram encontrados ficheiros de cabe\u00e7alho (.h) em {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu \u00e9 nulo @@ -1932,10 +2001,6 @@ version\ {0}=vers\u00e3o {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Nome de placa inv\u00e1lido, o nome deve ser da forma "pacote\:arquitectura\:placa" ou "pacote\:arquitectura\:placa\:op\u00e7\u00f5es" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Op\u00e7\u00e3o inv\u00e1lida para a op\u00e7\u00e3o "{1}" para a placa "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Op\u00e7\u00e3o inv\u00e1lida para a placa "{1}" @@ -1944,6 +2009,10 @@ version\ {0}=vers\u00e3o {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Op\u00e7\u00e3o inv\u00e1lida, deve ser da forma "nome\=valor" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: valor inv\u00e1lido para a op\u00e7\u00e3o "{1}" na placa "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arquitetura desconhecida @@ -1958,4 +2027,4 @@ version\ {0}=vers\u00e3o {0} #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format -!{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board= +{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0}Instalar este pacote{1} para usar a placa {2} diff --git a/arduino-core/src/processing/app/i18n/Resources_ro.po b/arduino-core/src/processing/app/i18n/Resources_ro.po index 3a277b37cff..a5f80c93a43 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ro.po +++ b/arduino-core/src/processing/app/i18n/Resources_ro.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # corneliu.e , 2013-2014 # Cristian Maglie , 2016 # kobalt , 2012 @@ -23,15 +27,17 @@ # micuadriandanut , 2015 # Pop Gheorghe , 2013 # Popescu Robert , 2017 -# Pop Gheorghe , 2013-2015 -# VlăduÅ£ Ilie , 2015 +# Pop Gheorghe , 2013-2015,2017,2019 +# Sorin Bancila , 2018 +# VlăduÈ› Ilie , 2015 +# VlăduÈ› Ilie , 2018 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:39+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-07-24 12:14+0000\n" +"Last-Translator: Pop Gheorghe \n" "Language-Team: Romanian (http://www.transifex.com/mbanzi/arduino-ide-15/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -131,7 +137,7 @@ msgstr "Despre Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." @@ -155,7 +161,7 @@ msgstr "Africană" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Salvarea agresivă în cache a nucleului compilat" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -218,6 +224,11 @@ msgstr "Arhivez schiÅ£a ca:" msgid "Archive sketch canceled." msgstr "Arhivarea schiÅ£ei a fost anulată" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Se stochează nucleul compilat (caching) în: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -315,7 +326,7 @@ msgstr "Auto detectare setări proxy" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 msgid "Automatic" -msgstr "" +msgstr "Automat" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 msgid "Automatic proxy configuration URL:" @@ -355,7 +366,7 @@ msgstr "Info despre placă" #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "" +msgstr "La {0} nu este disponibilă nici o placa" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -430,7 +441,7 @@ msgstr "Se încarcă bootloader-ul în placa de dezvoltare (acest lucru o sa dur msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "CRC-ul nu se potriveÈ™te, fiÈ™ierul este corupt. Poate fi o problemă temporară, aÈ™a că vă rugăm să încercaÈ›i mai târziu." #: ../../../processing/app/Base.java:379 #, java-format @@ -439,7 +450,7 @@ msgstr "Poate trece doar una din: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Nu se poate activa editorul extern" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -485,7 +496,7 @@ msgstr "Chineză (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Curăță output" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -501,7 +512,7 @@ msgstr "Pune comentariu/Elimină comentariu" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" -msgstr "" +msgstr "Comunicare" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " @@ -513,7 +524,7 @@ msgstr "Compilez schiÅ£a..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" -msgstr "" +msgstr "Contribuit" #: Editor.java:1157 Editor.java:2707 msgid "Copy" @@ -543,7 +554,7 @@ msgstr "Nu am putut copia către locaÅ£ia adecvată." #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "Nu am putut crea directorul \"{0}\"" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -624,6 +635,11 @@ msgstr "Nu se poate înlătura vechea versiune pentru {0}" msgid "Could not replace {0}" msgstr "Nu se poate înlocui {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Nu se pot scrie preferinÈ›ele fiÈ™ierului: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Nu am putut arhiva schiÅ£a" @@ -661,11 +677,15 @@ msgstr "Daneză (Danemarca)" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" -msgstr "" +msgstr "Procesare date" #: ../../../../../arduino-core/src/processing/app/I18n.java:35 msgid "Data Storage" -msgstr "" +msgstr "Stocare date" + +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Redu mărime font" #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" @@ -675,13 +695,17 @@ msgstr "Redu spaÅ£iere" msgid "Default" msgstr "Implicit" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Temă implicită" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Åžtergere" #: ../../../../../arduino-core/src/processing/app/I18n.java:33 msgid "Device Control" -msgstr "" +msgstr "Control dispozitiv" #: debug/Uploader.java:199 msgid "" @@ -830,7 +854,7 @@ msgstr "Eroare la adăugarea fiÅŸierului" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format msgid "Error compiling for board {0}." -msgstr "" +msgstr "Eroare de compilare pentru placa {0}." #: debug/Compiler.java:369 msgid "Error compiling." @@ -850,6 +874,11 @@ msgstr "Eroare la preluarea directorului cu date pentru Arduino" msgid "Error inside Serial.{0}()" msgstr "Eroare în Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Eroare la încărcarea temei {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -869,6 +898,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Eroare la deschiderea portului serial ''{0}''. ÃŽncercaÈ›i să consultaÈ›i documentaÈ›ia la http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Eroare la analizarea index-ului bibliotecii: {0}\nIncearca sa actualizezi indexul bibliotecilor in Manager biblioteci:" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Eroare la citirea indexului bibliotecilor: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Eroare la citirea indexului dosarului pachetelor: {0}\n(poate o problemă de permisiune?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Eroare la citirea preferinÅ£elor" @@ -903,6 +951,10 @@ msgstr "Eroare în timpul încărcării bootloader-ului." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Eroare în timpul încărcării bootloader-ului: lipseÅŸte parametrul de configurare '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Eroare la scrierea bootloader-ului: te rog alege un port serial." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Eroare în timpul încărcării: lipseÅŸte parametrul de configurare '{0}'" @@ -939,10 +991,6 @@ msgstr "Eroare în timpul verificării/încărcării." msgid "Estonian" msgstr "Estoniană" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonă (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Exemple" @@ -955,7 +1003,7 @@ msgstr "Exemple pentru orice placă" #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "Exemple pentru {0}" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" @@ -963,7 +1011,7 @@ msgstr "Exemple din librării realizate de comunitate" #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" -msgstr "" +msgstr "Exemple din alte biblioteci" #: ../../../../../app/src/processing/app/Editor.java:753 msgid "Export canceled, changes must first be saved." @@ -981,11 +1029,11 @@ msgstr "Nu am reuÈ™it să deschid schiÈ›a : \"{0}\"" #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format msgid "Failed to rename \"{0}\" to \"{1}\"" -msgstr "" +msgstr "Nu a fost redenumit \"{0}\" la \"{1}\"" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "Nu a putut fi redenumit directorul schiÈ›ei" #: Editor.java:491 msgid "File" @@ -994,7 +1042,7 @@ msgstr "FiÅŸier" #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format msgid "File name {0} is invalid: ignored" -msgstr "" +msgstr "Numele fiÈ™ierului {0} este nevalid: ignorat" #: Preferences.java:94 msgid "Filipino" @@ -1078,7 +1126,7 @@ msgstr "Germană" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "Preia info despre placă" #: Editor.java:1054 msgid "Getting Started" @@ -1146,9 +1194,9 @@ msgstr "Incompatibil(ă)" msgid "Ignore Case" msgstr "Ignora majuscule" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Se ignora biblioteca cu numele greÅŸit" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Se ignora biblioteca cu nume greÈ™it" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1174,6 +1222,10 @@ msgstr "ÃŽncărcare bibliotecă" msgid "Incorrect IDE installation folder" msgstr "Director de instalare a IDE-ului greÈ™it" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "CreÅŸte mărime font" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "CreÅŸte spaÅ£iere" @@ -1207,10 +1259,10 @@ msgstr "Instalat" msgid "Installing boards..." msgstr "Instalare plăci..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Instalare bibliotecă: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Instalare bibliotecă: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1224,7 +1276,7 @@ msgstr "Instalare..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 msgid "Interface scale:" -msgstr "" +msgstr "Scalare interfață:" #: ../../../processing/app/Base.java:1204 #, java-format @@ -1236,6 +1288,17 @@ msgstr "Bibliotecă invalidă în {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Bloc invalid: caracterul [{0}] de închidere nu a fost găsit." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Versiunea '{0}' este invalidă pentru bibliotecă în: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Versiune invalida {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italiană" @@ -1246,7 +1309,7 @@ msgstr "Japoneză" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "Kazakh" #: Preferences.java:104 msgid "Korean" @@ -1258,7 +1321,7 @@ msgstr "Letonă" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "Manager Librari" +msgstr "Manager Biblioteci" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" @@ -1266,12 +1329,12 @@ msgstr "FiÈ™ier adăugat în bibliotecă. Verifică meniul \"Include biblioteca\ #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" -msgstr "" +msgstr "Biblioteca nu poate utiliza folderele \"src\" È™i \"utility\". ConfirmaÈ›i {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Biblioteca este deja instalată: {0} versiunea {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Biblioteca este deja instalată: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1313,7 +1376,7 @@ msgstr "Mesaj" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format msgid "Missing '{0}' from library in {1}" -msgstr "Lipsă '{0}' din librărie in {1}" +msgstr "Lipsă '{0}' din biblioteca in {1}" #: ../../../processing/app/BaseNoGui.java:455 msgid "Mode not supported" @@ -1362,7 +1425,7 @@ msgstr "ReÈ›ea" #: ../../../../../app//src/processing/app/Editor.java:2804 msgid "Network port, can't obtain info" -msgstr "" +msgstr "Portul de reÈ›ea, nu se pot obÈ›ine informaÈ›ii" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Network ports" @@ -1504,7 +1567,7 @@ msgstr "Deschide..." #: ../../../../../arduino-core/src/processing/app/I18n.java:37 msgid "Other" -msgstr "" +msgstr "Altul" #: Editor.java:563 msgid "Page Setup" @@ -1553,7 +1616,7 @@ msgstr "Te rog importă biblioteca Wire din meniul Schiţă > Imporă bibliotec #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" -msgstr "Va rog selectaÅ£i un port pnetru a obÅ£ine informaÅ£ii despre placă" +msgstr "Va rog selectaÅ£i un port pentru a obÅ£ine informaÅ£ii despre placă" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 @@ -1562,7 +1625,7 @@ msgstr "Te rog selectează un programator din Instrumente->Meniu programator" #: ../../../../../app/src/processing/app/Editor.java:2613 msgid "Plotter not available while serial monitor is open" -msgstr "" +msgstr "Vizualizarea grafică nu este disponibilă în timp ce monitorul serial este deschis" #: Preferences.java:110 msgid "Polish" @@ -1635,7 +1698,7 @@ msgstr "Nu se poate accesa folderul /www/sd" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format msgid "Problem accessing files in folder \"{0}\"" -msgstr "" +msgstr "Problemă de accesare a fiÈ™ierelor din dosarul \"{0}\"" #: Base.java:1673 msgid "Problem getting data folder" @@ -1688,10 +1751,10 @@ msgstr "InstrucÅ£iuni" msgid "Remove" msgstr "ÃŽnlătură" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "ÃŽnlăturare bibliotecă: {0}" +msgid "Removing library: {0}:{1}" +msgstr "ÃŽnlăturare bibliotecă: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1727,6 +1790,10 @@ msgstr "ÃŽnlocuire cu:" msgid "Retired" msgstr "Retras" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Incerci incarcarea pe un alt port serial?" + #: Preferences.java:113 msgid "Romanian" msgstr "Română" @@ -1837,11 +1904,11 @@ msgstr "Serial Plotter" msgid "" "Serial monitor is not supported on network ports such as {0} for the {1} in " "this release" -msgstr "" +msgstr "Monitorul serial nu este disponibil pentru porturile Ä‘in reÈ›ea, cum ar fi {0} pentru {1} în această versiune." #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" -msgstr "" +msgstr "Monitorul serial nu este disponibilă în timp ce este deschisă vizualizarea grafică" #: Serial.java:194 #, java-format @@ -1850,12 +1917,15 @@ msgid "" " Serial Port menu?" msgstr "Nu am găsit portul serial ''{0}''. Ai făcut corect selecÅ£ia în meniul Instrumente> Port serial?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Port serial nedetectat" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Portul serial {0} nu a fost găsit.\nDoreÅŸti sa utilizezi un alt port serial?" +msgid "Serial port {0} not found." +msgstr "Portul serial {0} negasit." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1878,6 +1948,10 @@ msgstr "Probleme la setări" msgid "Show Sketch Folder" msgstr "Deschide directorul schiÅ£ei" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Arată marcajul de timp" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Detaliază informaÅ£iile de ieÅŸire a compilatorului:" @@ -1942,7 +2016,7 @@ msgstr "Calea către documentaÅ£ia schiÅ£ei nu este definită" #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format msgid "Skipping contributed index file {0}, parsing error occured:" -msgstr "" +msgstr "Sar peste fisierul index {0}, a aparut o eroare la analiza acestuia:" #: ../../../../../app/src/processing/app/Preferences.java:185 msgid "Slovak" @@ -2004,7 +2078,7 @@ msgstr "Tamilă" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" @@ -2039,7 +2113,7 @@ msgstr "Clasa Udp a fost redenumită în EthernetUdp." #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." -msgstr "" +msgstr "Placa de dezvoltare selectată are nevoie de nucleul '{0}', care nu este instalat." #: Editor.java:2147 #, java-format @@ -2049,6 +2123,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "FiÅŸierul \"{0}\" trebuie sa fie în interiorul\nunui director numit \"{1}\".\nDoreÅŸti să creez directorul să mut fiÅŸierul ÅŸi să continui?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Biblioteca \\\"{0}\\\" nu poate fi folosită.\nNumele bibliotecii trebuie să inceapa cu o litera sau un numar, urmat de litere,\nnumere,lini, puncte sau underline. Lungimea maxima e de 63 de caractere." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2059,7 +2141,7 @@ msgstr "Biblioteca \\\"{0}\\\" nu poate fi folosită.\nNumele bibliotecii trebui #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "FiÈ™ierul principal nu poate utiliza o extensie" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2085,7 +2167,7 @@ msgstr "Schita \\\"{0}\\\" nu poate fi folosită.\nNumele schiÅ£ei trebuie să c #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format msgid "The sketch already contains a file named \"{0}\"" -msgstr "" +msgstr "SchiÈ›a conÈ›ine deja un fiÈ™ier numit \"{0}\"" #: Sketch.java:1755 msgid "" @@ -2094,12 +2176,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Directorul schiÅ£ei a dispărut.\nVoi încerca să salvez din nou în aceiaÅŸi locaÅ£ie,\ndar se vor pierde orice alte informaÅ£ii, mai puÅ£in codul." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "A fost necesar să modific numele schiÅ£ei. Numele unei schiÅ£e poate conÅ£ine\ndoar caractere ASCII ÅŸi numere (dar nu poate începe cu un număr).\nDe asemenea nu poate avea mai mult de 64 caractere." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Numele scitei a trebuit modificat.\nNumele schitei trebuie sa inceapa cu o litera sau un numar, urmat de o litera,\nnumar, liniuta,punct sau underline. Lungimea maxima este de 63 caractere." #: Base.java:259 msgid "" @@ -2108,7 +2190,7 @@ msgid "" "location, and create a new sketchbook folder if\n" "necessary. Arduino will then stop talking about\n" "himself in the third person." -msgstr "Dosarul cu schiÅ£e nu mai exista.\nArduino v-a comuta pe locaÅ£ia implicită a directorului\nde schiÅ£e, ÅŸi dacă e necesar v-a crea un nou dosar cu schiÅ£e.\nArduino nu va mai vorbi despre el la persoana a trei-a." +msgstr "Dosarul cu schiÅ£e nu mai exista.\nArduino v-a comuta pe locaÅ£ia implicită a directorului\nde schiÅ£e, ÅŸi dacă e necesar v-a crea un nou dosar cu schiÅ£e." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 msgid "" @@ -2116,6 +2198,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Directorul de schiÈ›e specificat conÈ›ine o copie a IDE-ului.\nVă rugăm să alegeÈ›i un alt folder pentru schiÈ›a dumneavoastră." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Tema: " + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2127,7 +2213,7 @@ msgid "" "This report would have more information with\n" "\"Show verbose output during compilation\"\n" "option enabled in File -> Preferences.\n" -msgstr "" +msgstr "Acest raport poate contine mai multe informatii daca\nselectati optiunea \"Detaliază informaÅ£iile de ieÅŸire a compilatorului\"\nin Fisier -> Preferinte.\n" #: Base.java:535 msgid "Time for a Break" @@ -2135,7 +2221,7 @@ msgstr "E timpul pentru o pauză" #: ../../../../../arduino-core/src/processing/app/I18n.java:34 msgid "Timing" -msgstr "" +msgstr "Sincronizare" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -2178,7 +2264,7 @@ msgstr "Ucrainiană" #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format msgid "Unable to connect to {0}" -msgstr "" +msgstr "Nu se poate conecta la {0}" #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 @@ -2213,7 +2299,7 @@ msgstr "Nu se poate accesa Arduino.cc din cauza unei posibile probleme de reÈ›ea #: ../../../../../arduino-core/src/processing/app/I18n.java:38 msgid "Uncategorized" -msgstr "" +msgstr "Fără categorie" #: Editor.java:1133 Editor.java:1355 msgid "Undo" @@ -2477,7 +2563,7 @@ msgstr "Ai uitat dosarul cu schiÅ£e" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "AveÈ›i modificări nesalvate!\nTrebuie să salvaÈ›i toate schiÈ›ele pentru a activa această opÈ›iune." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2522,7 +2608,7 @@ msgid "" "older version of Arduino, you may need to use Tools -> Fix Encoding & Reload" " to update the sketch to use UTF-8 encoding. If not, you may need to delete " "the bad characters to get rid of this warning." -msgstr "" +msgstr "\"{0}\" conÈ›ine caracterele nerecunoscute. Dacă acest cod a fost creat utilizând o versiune mai veche de editorului Arduino, puteÈ›i să utilizaÈ›i Unelte -> Corectare codare & reîncărcare pentru a actualiza sketch-ul în codarea UTF-8. ÃŽn caz contrar, trebuie să È™tergeÈ›i caracterele nerecunoscute pentru a elimina această atenÈ›ionare." #: debug/Compiler.java:409 msgid "" @@ -2608,6 +2694,12 @@ msgstr "ignoră dimensiunea incorectă pentru fontul {0}" msgid "name is null" msgstr "numele este inexistent" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "fisierele header (.h) nu au fost gasite in {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu este inexistent" @@ -2666,7 +2758,7 @@ msgstr "{0} trebuie să fie un director" #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format msgid "{0} on {1}" -msgstr "" +msgstr "{0} pe {1}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format @@ -2695,11 +2787,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: nume board incorect, ar trebui să fie de forma \"package:arch:board\" sau \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: opÈ›iune nevalidă pentru opÈ›iunea \"{1}\" pentru board \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2710,6 +2797,11 @@ msgstr "{0}: OpÈ›iune invalidă pentru board \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: OpÈ›iune invalidă, ar trebuii să fie de forma \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Valoare invalida pentru optiunea \"{1}\" la placa \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_ro.properties b/arduino-core/src/processing/app/i18n/Resources_ro.properties index a686dd97e9a..0f67befeab2 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ro.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ro.properties @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # corneliu.e , 2013-2014 # Cristian Maglie , 2016 # kobalt , 2012 @@ -23,9 +27,11 @@ # micuadriandanut , 2015 # Pop Gheorghe , 2013 # Popescu Robert , 2017 -# Pop Gheorghe , 2013-2015 -# Vl\u0103du\u0163 Ilie , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:39+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Romanian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ro/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ro\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1?0\:(((n%100>19)||((n%100\=\=0)&&(n\!\=0)))?2\:1));\n +# Pop Gheorghe , 2013-2015,2017,2019 +# Sorin Bancila , 2018 +# Vl\u0103du\u021b Ilie , 2015 +# Vl\u0103du\u021b Ilie , 2018 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-07-24 12\:14+0000\nLast-Translator\: Pop Gheorghe \nLanguage-Team\: Romanian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ro/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ro\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1?0\:(((n%100>19)||((n%100\=\=0)&&(n\!\=0)))?2\:1));\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(este necesar\u0103 repornirea editorului Arduino) @@ -87,7 +93,7 @@ A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Un subdirector de About\ Arduino=Despre Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=Acoli #: ../../../../../app/src/processing/app/Base.java:1177 Add\ .ZIP\ Library...=Adaug\u0103 bibliotec\u0103 .zip @@ -105,7 +111,7 @@ Additional\ Boards\ Manager\ URLs\:\ =Alte adrese URL Boards Manager\: Afrikaans=African\u0103 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Salvarea agresiv\u0103 \u00een cache a nucleului compilat #: ../../../processing/app/Preferences.java:96 Albanian=Albanez\u0103 @@ -150,6 +156,10 @@ Archive\ sketch\ as\:=Arhivez schi\u0163a ca\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arhivarea schi\u0163ei a fost anulat\u0103 +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Se stocheaz\u0103 nucleul compilat (caching) \u00een\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Arhivarea schi\u0163ei a fost anulat\u0103 deoarece\nschi\u0163a nu a putut fi salvat\u0103. @@ -217,7 +227,7 @@ Auto\ Format\ finished.=Auto formatare terminat\u0103 Auto-detect\ proxy\ settings=Auto detectare set\u0103ri proxy #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 -!Automatic= +Automatic=Automat #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 Automatic\ proxy\ configuration\ URL\:=URL de configurare proxy automat\u0103\: @@ -248,7 +258,7 @@ Board\ Info=Info despre plac\u0103 #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -!Board\ at\ {0}\ is\ not\ available= +Board\ at\ {0}\ is\ not\ available=La {0} nu este disponibil\u0103 nici o placa #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -302,14 +312,14 @@ Burn\ Bootloader=\u00cenc\u0103rc\u0103 Bootloader Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Se \u00eencarc\u0103 bootloader-ul \u00een placa de dezvoltare (acest lucru o sa dureze un pic)... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC-ul nu se potrive\u0219te, fi\u0219ierul este corupt. Poate fi o problem\u0103 temporar\u0103, a\u0219a c\u0103 v\u0103 rug\u0103m s\u0103 \u00eencerca\u021bi mai t\u00e2rziu. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}=Poate trece doar una din\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=Nu se poate activa editorul extern #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -344,7 +354,7 @@ Chinese\ (Taiwan)=Chinez\u0103 (Taiwan) Chinese\ (Taiwan)\ (Big5)=Chinez\u0103 (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=Cur\u0103\u021b\u0103 output #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Click pentru o list\u0103 de URL-uri neoficiale pentru placi. @@ -356,7 +366,7 @@ Close=\u00cenchide Comment/Uncomment=Pune comentariu/Elimin\u0103 comentariu #: ../../../../../arduino-core/src/processing/app/I18n.java:30 -!Communication= +Communication=Comunicare #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 Compiler\ warnings\:\ =Aten\u021bion\u0103ri la compilare\: @@ -365,7 +375,7 @@ Compiler\ warnings\:\ =Aten\u021bion\u0103ri la compilare\: Compiling\ sketch...=Compilez schi\u0163a... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 -!Contributed= +Contributed=Contribuit #: Editor.java:1157 Editor.java:2707 Copy=Copiaz\u0103 @@ -388,7 +398,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=Nu am putut copia c\u0103tre loca\u01 #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"=Nu am putut crea directorul "{0}" #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=Nu pot crea directorul pentru schi\u0163e. @@ -444,6 +454,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Nu se poate \u00eenl\u0103tura vechea #, java-format Could\ not\ replace\ {0}=Nu se poate \u00eenlocui {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Nu se pot scrie preferin\u021bele fi\u0219ierului\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Nu am putut arhiva schi\u0163a @@ -469,10 +483,13 @@ Czech\ (Czech\ Republic)=Ceh\u0103 (Republica Ceh\u0103) Danish\ (Denmark)=Danez\u0103 (Danemarca) #: ../../../../../arduino-core/src/processing/app/I18n.java:36 -!Data\ Processing= +Data\ Processing=Procesare date #: ../../../../../arduino-core/src/processing/app/I18n.java:35 -!Data\ Storage= +Data\ Storage=Stocare date + +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Redu m\u0103rime font #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Redu spa\u0163iere @@ -480,11 +497,14 @@ Decrease\ Indent=Redu spa\u0163iere #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Implicit +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Tem\u0103 implicit\u0103 + #: EditorHeader.java:314 Sketch.java:591 Delete=\u015etergere #: ../../../../../arduino-core/src/processing/app/I18n.java:33 -!Device\ Control= +Device\ Control=Control dispozitiv #: debug/Uploader.java:199 Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=Dispozitivul nu r\u0103spunde, verific\u0103 dac\u0103 ai selectat portul serial corect sau apas\u0103 RESET \u00eenainte de a realiza exportul @@ -595,7 +615,7 @@ Error\ adding\ file=Eroare la ad\u0103ugarea fi\u015fierului #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format -!Error\ compiling\ for\ board\ {0}.= +Error\ compiling\ for\ board\ {0}.=Eroare de compilare pentru placa {0}. #: debug/Compiler.java:369 Error\ compiling.=Eroare de compilare @@ -611,6 +631,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Eroare la preluarea directorului cu #, java-format Error\ inside\ Serial.{0}()=Eroare \u00een Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Eroare la \u00eenc\u0103rcarea temei {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -625,6 +649,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Eroare la deschiderea portului serial ''{ #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Eroare la deschiderea portului serial ''{0}''. \u00cencerca\u021bi s\u0103 consulta\u021bi documenta\u021bia la http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Eroare la analizarea index-ului bibliotecii\: {0}\nIncearca sa actualizezi indexul bibliotecilor in Manager biblioteci\: + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Eroare la citirea indexului bibliotecilor\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Eroare la citirea indexului dosarului pachetelor\: {0}\n(poate o problem\u0103 de permisiune?) + #: Preferences.java:277 Error\ reading\ preferences=Eroare la citirea preferin\u0163elor @@ -650,6 +686,9 @@ Error\ while\ burning\ bootloader.=Eroare \u00een timpul \u00eenc\u0103rc\u0103r #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Eroare \u00een timpul \u00eenc\u0103rc\u0103rii bootloader-ului\: lipse\u015fte parametrul de configurare '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Eroare la scrierea bootloader-ului\: te rog alege un port serial. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Eroare \u00een timpul \u00eenc\u0103rc\u0103rii\: lipse\u015fte parametrul de configurare '{0}' @@ -678,9 +717,6 @@ Error\ while\ verifying/uploading=Eroare \u00een timpul verific\u0103rii/\u00een #: Preferences.java:93 Estonian=Estonian\u0103 -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Eston\u0103 (Estonia) - #: Editor.java:516 Examples=Exemple @@ -690,13 +726,13 @@ Examples\ for\ any\ board=Exemple pentru orice plac\u0103 #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}=Exemple pentru {0} #: ../../../../../app/src/processing/app/Base.java:1244 Examples\ from\ Custom\ Libraries=Exemple din libr\u0103rii realizate de comunitate #: ../../../../../app/src/processing/app/Base.java:1329 -!Examples\ from\ Other\ Libraries= +Examples\ from\ Other\ Libraries=Exemple din alte biblioteci #: ../../../../../app/src/processing/app/Editor.java:753 Export\ canceled,\ changes\ must\ first\ be\ saved.=Exportul a fost anulat, modific\u0103rile trebuiesc \u00eent\u00e2i salvate. @@ -710,17 +746,17 @@ Failed\ to\ open\ sketch\:\ "{0}"=Nu am reu\u0219it s\u0103 deschid schi\u021ba #: ../../../../../arduino-core/src/processing/app/SketchFile.java:183 #, java-format -!Failed\ to\ rename\ "{0}"\ to\ "{1}"= +Failed\ to\ rename\ "{0}"\ to\ "{1}"=Nu a fost redenumit "{0}" la "{1}" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=Nu a putut fi redenumit directorul schi\u021bei #: Editor.java:491 File=Fi\u015fier #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format -!File\ name\ {0}\ is\ invalid\:\ ignored= +File\ name\ {0}\ is\ invalid\:\ ignored=Numele fi\u0219ierului {0} este nevalid\: ignorat #: Preferences.java:94 Filipino=Filipinez\u0103 @@ -782,7 +818,7 @@ Georgian=Georgian\u0103 German=German\u0103 #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=Preia info despre plac\u0103 #: Editor.java:1054 Getting\ Started=Primi pa\u015fi @@ -831,8 +867,8 @@ INCOMPATIBLE=Incompatibil(\u0103) #: FindReplace.java:96 Ignore\ Case=Ignora majuscule -#: Base.java:1058 -Ignoring\ bad\ library\ name=Se ignora biblioteca cu numele gre\u015fit +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Se ignora biblioteca cu nume gre\u0219it #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Se ignora schi\u0163a cu nume gre\u015fit @@ -847,6 +883,9 @@ Include\ Library=\u00cenc\u0103rcare bibliotec\u0103 #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Director de instalare a IDE-ului gre\u0219it +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Cre\u015fte m\u0103rime font + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Cre\u015fte spa\u0163iere @@ -873,9 +912,9 @@ Installed=Instalat #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Instalare pl\u0103ci... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Instalare bibliotec\u0103\: {0} +Installing\ library\:\ {0}\:{1}=Instalare bibliotec\u0103\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -886,7 +925,7 @@ Installing\ tools\ ({0}/{1})...=Instalare instrumente ({0}/{1})... Installing...=Instalare... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 -!Interface\ scale\:= +Interface\ scale\:=Scalare interfa\u021b\u0103\: #: ../../../processing/app/Base.java:1204 #, java-format @@ -896,6 +935,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Bibliotec\u0103 invalid\u0103 \u00een {0 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Bloc invalid\: caracterul [{0}] de \u00eenchidere nu a fost g\u0103sit. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Versiunea '{0}' este invalid\u0103 pentru bibliotec\u0103 \u00een\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Versiune invalida {0} + #: Preferences.java:102 Italian=Italian\u0103 @@ -903,7 +951,7 @@ Italian=Italian\u0103 Japanese=Japonez\u0103 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=Kazakh #: Preferences.java:104 Korean=Corean\u0103 @@ -912,17 +960,17 @@ Korean=Corean\u0103 Latvian=Leton\u0103 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -Library\ Manager=Manager Librari +Library\ Manager=Manager Biblioteci #: ../../../../../app/src/processing/app/Base.java:2349 Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Fi\u0219ier ad\u0103ugat \u00een bibliotec\u0103. Verific\u0103 meniul "Include biblioteca" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 -!Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= +Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Biblioteca nu poate utiliza folderele "src" \u0219i "utility". Confirma\u021bi {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Biblioteca este deja instalat\u0103\: {0} versiunea {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Biblioteca este deja instalat\u0103\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Num\u0103r linie\: @@ -954,7 +1002,7 @@ Message=Mesaj #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:81 #, java-format -Missing\ '{0}'\ from\ library\ in\ {1}=Lips\u0103 '{0}' din libr\u0103rie in {1} +Missing\ '{0}'\ from\ library\ in\ {1}=Lips\u0103 '{0}' din biblioteca in {1} #: ../../../processing/app/BaseNoGui.java:455 Mode\ not\ supported=Mod nesuportat @@ -991,7 +1039,7 @@ Nepali=Nepalez\u0103 Network=Re\u021bea #: ../../../../../app//src/processing/app/Editor.java:2804 -!Network\ port,\ can't\ obtain\ info= +Network\ port,\ can't\ obtain\ info=Portul de re\u021bea, nu se pot ob\u021bine informa\u021bii #: ../../../../../app/src/processing/app/Editor.java:65 Network\ ports=Porturi de re\u0163ea @@ -1097,7 +1145,7 @@ Open\ an\ Arduino\ sketch...=Deschide\u021bi o schi\u021b\u0103 Arduino... Open...=Deschide... #: ../../../../../arduino-core/src/processing/app/I18n.java:37 -!Other= +Other=Altul #: Editor.java:563 Page\ Setup=Ini\u0163ializare pagin\u0103 @@ -1134,14 +1182,14 @@ Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.= Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Te rog import\u0103 biblioteca Wire din meniul Schi\u0163\u0103 > Impor\u0103 bibliotec\u0103 #: ../../../../../app//src/processing/app/Editor.java:2799 -Please\ select\ a\ port\ to\ obtain\ board\ info=Va rog selecta\u0163i un port pnetru a ob\u0163ine informa\u0163ii despre plac\u0103 +Please\ select\ a\ port\ to\ obtain\ board\ info=Va rog selecta\u0163i un port pentru a ob\u0163ine informa\u0163ii despre plac\u0103 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=Te rog selecteaz\u0103 un programator din Instrumente->Meniu programator #: ../../../../../app/src/processing/app/Editor.java:2613 -!Plotter\ not\ available\ while\ serial\ monitor\ is\ open= +Plotter\ not\ available\ while\ serial\ monitor\ is\ open=Vizualizarea grafic\u0103 nu este disponibil\u0103 \u00een timp ce monitorul serial este deschis #: Preferences.java:110 Polish=Polonez\u0103 @@ -1196,7 +1244,7 @@ Problem\ accessing\ board\ folder\ /www/sd=Nu se poate accesa folderul /www/sd #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:206 #, java-format -!Problem\ accessing\ files\ in\ folder\ "{0}"= +Problem\ accessing\ files\ in\ folder\ "{0}"=Problem\u0103 de accesare a fi\u0219ierelor din dosarul "{0}" #: Base.java:1673 Problem\ getting\ data\ folder=Problema la preluarea directorului de date @@ -1235,9 +1283,9 @@ Reference=Instruc\u0163iuni #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u00cenl\u0103tur\u0103 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=\u00cenl\u0103turare bibliotec\u0103\: {0} +Removing\ library\:\ {0}\:{1}=\u00cenl\u0103turare bibliotec\u0103\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1265,6 +1313,9 @@ Replace\ with\:=\u00cenlocuire cu\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Retras +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Incerci incarcarea pe un alt port serial? + #: Preferences.java:113 Romanian=Rom\u00e2n\u0103 @@ -1347,18 +1398,22 @@ Serial\ Plotter=Serial Plotter #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format -!Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= +Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release=Monitorul serial nu este disponibil pentru porturile \u0111in re\u021bea, cum ar fi {0} pentru {1} \u00een aceast\u0103 versiune. #: ../../../../../app/src/processing/app/Editor.java:2516 -!Serial\ monitor\ not\ available\ while\ plotter\ is\ open= +Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Monitorul serial nu este disponibil\u0103 \u00een timp ce este deschis\u0103 vizualizarea grafic\u0103 #: Serial.java:194 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Nu am g\u0103sit portul serial ''{0}''. Ai f\u0103cut corect selec\u0163ia \u00een meniul Instrumente> Port serial? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Port serial nedetectat + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Portul serial {0} nu a fost g\u0103sit.\nDore\u015fti sa utilizezi un alt port serial? +Serial\ port\ {0}\ not\ found.=Portul serial {0} negasit. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Porturi seriale @@ -1376,6 +1431,9 @@ Settings\ issues=Probleme la set\u0103ri #: Editor.java:641 Show\ Sketch\ Folder=Deschide directorul schi\u0163ei +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Arat\u0103 marcajul de timp + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Detaliaz\u0103 informa\u0163iile de ie\u015fire a compilatorului\: @@ -1421,7 +1479,7 @@ Sketchbook\ path\ not\ defined=Calea c\u0103tre documenta\u0163ia schi\u0163ei n #: ../../../../../arduino-core//src/cc/arduino/contributions/packages/ContributionsIndexer.java:96 #, java-format -!Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:= +Skipping\ contributed\ index\ file\ {0},\ parsing\ error\ occured\:=Sar peste fisierul index {0}, a aparut o eroare la analiza acestuia\: #: ../../../../../app/src/processing/app/Preferences.java:185 Slovak=Slovac\u0103 @@ -1464,7 +1522,7 @@ Talossan=Talossan Tamil=Tamil\u0103 #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=Telugu #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 Thai=Tailandez\u0103 @@ -1489,18 +1547,22 @@ The\ Server\ class\ has\ been\ renamed\ EthernetServer.=Clasa Server a fost rede The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Clasa Udp a fost redenumit\u0103 \u00een EthernetUdp. #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 -!The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.= +The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=Placa de dezvoltare selectat\u0103 are nevoie de nucleul '{0}', care nu este instalat. #: Editor.java:2147 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Fi\u015fierul "{0}" trebuie sa fie \u00een interiorul\nunui director numit "{1}".\nDore\u015fti s\u0103 creez directorul s\u0103 mut fi\u015fierul \u015fi s\u0103 continui? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Biblioteca \\"{0}\\" nu poate fi folosit\u0103.\nNumele bibliotecii trebuie s\u0103 inceapa cu o litera sau un numar, urmat de litere,\nnumere,lini, puncte sau underline. Lungimea maxima e de 63 de caractere. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Biblioteca \\"{0}\\" nu poate fi folosit\u0103.\nNumele bibliotecii trebuie s\u0103 con\u0163in\u0103 doar litere \u015fi numere.\n(ASCII-f\u0103r\u0103 spatii, \u015fi numele nu poate \u00eencepe cu un num\u0103r) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=Fi\u0219ierul principal nu poate utiliza o extensie #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=Numele nu poate \u00eencepe cu un spa\u0163iu @@ -1514,31 +1576,34 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: ../../../../../arduino-core/src/processing/app/Sketch.java:272 #, java-format -!The\ sketch\ already\ contains\ a\ file\ named\ "{0}"= +The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Schi\u021ba con\u021bine deja un fi\u0219ier numit "{0}" #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Directorul schi\u0163ei a disp\u0103rut.\nVoi \u00eencerca s\u0103 salvez din nou \u00een aceia\u015fi loca\u0163ie,\ndar se vor pierde orice alte informa\u0163ii, mai pu\u0163in codul. -#: ../../../processing/app/Sketch.java:2028 -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.=A fost necesar s\u0103 modific numele schi\u0163ei. Numele unei schi\u0163e poate con\u0163ine\ndoar caractere ASCII \u015fi numere (dar nu poate \u00eencepe cu un num\u0103r).\nDe asemenea nu poate avea mai mult de 64 caractere. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Numele scitei a trebuit modificat.\nNumele schitei trebuie sa inceapa cu o litera sau un numar, urmat de o litera,\nnumar, liniuta,punct sau underline. Lungimea maxima este de 63 caractere. #: Base.java:259 -The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Dosarul cu schi\u0163e nu mai exista.\nArduino v-a comuta pe loca\u0163ia implicit\u0103 a directorului\nde schi\u0163e, \u015fi dac\u0103 e necesar v-a crea un nou dosar cu schi\u0163e.\nArduino nu va mai vorbi despre el la persoana a trei-a. +The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Dosarul cu schi\u0163e nu mai exista.\nArduino v-a comuta pe loca\u0163ia implicit\u0103 a directorului\nde schi\u0163e, \u015fi dac\u0103 e necesar v-a crea un nou dosar cu schi\u0163e. #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Directorul de schi\u021be specificat con\u021bine o copie a IDE-ului.\nV\u0103 rug\u0103m s\u0103 alege\u021bi un alt folder pentru schi\u021ba dumneavoastr\u0103. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Tema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Aceast\u0103 bibliotec\u0103 nu este listat \u00een managerul de bibliotec\u0103. Nu ve\u021bi putea s\u0103-l reinstala\u021bi de aici.\nE\u0219ti sigur c\u0103 dore\u0219ti s\u0103-l \u0219tergi? #: ../../../../../app/src/processing/app/EditorStatus.java:349 -!This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n= +This\ report\ would\ have\ more\ information\ with\n"Show\ verbose\ output\ during\ compilation"\noption\ enabled\ in\ File\ ->\ Preferences.\n=Acest raport poate contine mai multe informatii daca\nselectati optiunea "Detaliaz\u0103 informa\u0163iile de ie\u015fire a compilatorului"\nin Fisier -> Preferinte.\n #: Base.java:535 Time\ for\ a\ Break=E timpul pentru o pauz\u0103 #: ../../../../../arduino-core/src/processing/app/I18n.java:34 -!Timing= +Timing=Sincronizare #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -1571,7 +1636,7 @@ Ukrainian=Ucrainian\u0103 #: ../../../../../arduino-core/src/cc/arduino/packages/uploaders/SSHUploader.java:142 #, java-format -!Unable\ to\ connect\ to\ {0}= +Unable\ to\ connect\ to\ {0}=Nu se poate conecta la {0} #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 @@ -1598,7 +1663,7 @@ Unable\ to\ open\ serial\ plotter=Serial plotter nu poate fi deschis Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=Nu se poate accesa Arduino.cc din cauza unei posibile probleme de re\u021bea #: ../../../../../arduino-core/src/processing/app/I18n.java:38 -!Uncategorized= +Uncategorized=F\u0103r\u0103 categorie #: Editor.java:1133 Editor.java:1355 Undo=Anuleaz\u0103 @@ -1788,7 +1853,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=Ai uitat dosarul cu schi\u0163e #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Ave\u021bi modific\u0103ri nesalvate\!\nTrebuie s\u0103 salva\u021bi toate schi\u021bele pentru a activa aceast\u0103 op\u021biune. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?=Ai ap\u0103sat {0}, dar nimic nu a fost trimis. Nu ar trebui s\u0103 bifezi transmiterea unui final linie? @@ -1814,7 +1879,7 @@ Zip\ doesn't\ contain\ a\ library=Fi\u015fierul arhiv\u0103 nu con\u0163ine o bi #: ../../../../../arduino-core/src/processing/app/SketchCode.java:201 #, java-format -!"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.= +"{0}"\ contains\ unrecognized\ characters.\ If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Arduino,\ you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ update\ the\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ to\ delete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.="{0}" con\u021bine caracterele nerecunoscute. Dac\u0103 acest cod a fost creat utiliz\u00e2nd o versiune mai veche de editorului Arduino, pute\u021bi s\u0103 utiliza\u021bi Unelte -> Corectare codare & re\u00eenc\u0103rcare pentru a actualiza sketch-ul \u00een codarea UTF-8. \u00cen caz contrar, trebuie s\u0103 \u0219terge\u021bi caracterele nerecunoscute pentru a elimina aceast\u0103 aten\u021bionare. #: debug/Compiler.java:409 \nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\n\u00cencep\u00e2nd cu versiunea Arduino 0019, biblioteca Ethernet depinde de biblioteca SPI.\nSe pare ca mai folosi\u0163i o bibliotec\u0103 care depinde de biblioteca SPI.\n @@ -1862,6 +1927,11 @@ ignoring\ invalid\ font\ size\ {0}=ignor\u0103 dimensiunea incorect\u0103 pentru #: Editor.java:936 Editor.java:943 name\ is\ null=numele este inexistent +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=fisierele header (.h) nu au fost gasite in {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu este inexistent @@ -1907,7 +1977,7 @@ version\ {0}=versiunea {0} #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format -!{0}\ on\ {1}= +{0}\ on\ {1}={0} pe {1} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format @@ -1929,10 +1999,6 @@ version\ {0}=versiunea {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: nume board incorect, ar trebui s\u0103 fie de forma "package\:arch\:board" sau "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: op\u021biune nevalid\u0103 pentru op\u021biunea "{1}" pentru board "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Op\u021biune invalid\u0103 pentru board "{1}" @@ -1941,6 +2007,10 @@ version\ {0}=versiunea {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Op\u021biune invalid\u0103, ar trebuii s\u0103 fie de forma "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Valoare invalida pentru optiunea "{1}" la placa "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arhitectur\u0103 necunoscut\u0103 diff --git a/arduino-core/src/processing/app/i18n/Resources_ru.po b/arduino-core/src/processing/app/i18n/Resources_ru.po index 0f1cf4039b1..d07193e6e54 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ru.po +++ b/arduino-core/src/processing/app/i18n/Resources_ru.po @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Aleksandr Jadov , 2013 -# AlexL , 2015-2017 -# angry_snake , 2014 +# AlexL , 2015-2018 +# 28532b02ca9d20d69a31703daeea0bda_3873b52 , 2014 # Егор Макаренко, 2015 # Егор Макаренко, 2015 # Alexandr Kropochev , 2012 @@ -30,13 +34,13 @@ # Егор Макаренко, 2016 # Михаил ТуруÑов , 2015 # РуÑлан , 2013 -# Яков МаÑлов , 2015 +# Jan Maslov , 2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" +"PO-Revision-Date: 2018-11-23 22:46+0000\n" "Last-Translator: AlexL \n" "Language-Team: Russian (http://www.transifex.com/mbanzi/arduino-ide-15/language/ru/)\n" "MIME-Version: 1.0\n" @@ -224,6 +228,11 @@ msgstr "Ðрхивировать Ñкетч как:" msgid "Archive sketch canceled." msgstr "ÐÑ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñкетча отменена." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Ðрхивирование откомпилированного Ñдра (кÑширование) в: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -630,6 +639,11 @@ msgstr "Ð¡Ñ‚Ð°Ñ€Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ {0} не удалÑетÑÑ" msgid "Could not replace {0}" msgstr "{0} не заменÑетÑÑ" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Ðе могу Ñохранить файл наÑтроек: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Скетч не архивируетÑÑ" @@ -673,6 +687,10 @@ msgstr "Обработка данных" msgid "Data Storage" msgstr "Хранилище данных" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Уменьшить размер шрифта" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Уменьшить отÑтуп" @@ -681,6 +699,10 @@ msgstr "Уменьшить отÑтуп" msgid "Default" msgstr "По умолчанию" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Тема по умолчанию" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Удалить" @@ -856,6 +878,11 @@ msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¿ÐºÐ¸ Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ Arduino" msgid "Error inside Serial.{0}()" msgstr "Ошибка в Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Ошибка загрузки темы {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -875,6 +902,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Ошибка при открытии поÑледовательного порта ''{0}''. Прочитайте документацию на http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Ошибка разбора ÑпиÑка библиотек: {0}\nПопробуйте открыть Менеджер библиотек, чтобы обновить ÑпиÑок библиотек." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Ошибка при чтении ÑпиÑка библиотек: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Ошибка при чтении папки индекÑов пакетов: {0}\n(возможно проблема разрешений?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек" @@ -909,6 +955,10 @@ msgstr "Ошибка при запиÑи загрузчика." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Ошибка при запиÑи загрузчика: пропущен параметр конфигурации '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Ошибка при запиÑи загрузчика: пожалуйÑта, выберите поÑледовательный порт." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Ошибка при компилÑции: пропущен параметр конфигурации '{0}'" @@ -945,10 +995,6 @@ msgstr "Ошибка при проверке/загрузке" msgid "Estonian" msgstr "ЭÑтонÑкий" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "ЭÑтонÑкий (ЭÑтониÑ)" - #: Editor.java:516 msgid "Examples" msgstr "Примеры" @@ -1152,9 +1198,9 @@ msgstr "ÐЕСОВМЕСТИМЫЙ" msgid "Ignore Case" msgstr "Без учёта региÑтра" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Игнорировать неправильные имена библиотек" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Библиотека Ñ Ð¿Ð»Ð¾Ñ…Ð¸Ð¼ названием отклонена" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1180,6 +1226,10 @@ msgstr "Подключить библиотеку" msgid "Incorrect IDE installation folder" msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° уÑтановки IDE" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Увеличить размер шрифта" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Увеличить отÑтуп" @@ -1213,10 +1263,10 @@ msgstr "УÑтановлено" msgid "Installing boards..." msgstr "УÑтановка плат..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "УÑтановка библиотеки: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Библиотека уÑтановлена: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1242,6 +1292,17 @@ msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ° найдена в {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñ€Ð°ÑÑтановка [{0}] - нет закрывающего Ñимвола." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ '{0}' Ð´Ð»Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ в: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ {0}" + #: Preferences.java:102 msgid "Italian" msgstr "ИтальÑнÑкий" @@ -1274,10 +1335,10 @@ msgstr "Библиотека добавлена. Проверьте меню \" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Библиотека не может иÑпользовать обе папки src' и 'utility'. Ð”Ð²Ð¾Ð¹Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Библиотека уже уÑтановлена: {0} верÑии {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Библиотека уже уÑтановлена: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1694,10 +1755,10 @@ msgstr "Справочник" msgid "Remove" msgstr "Удалить" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Удаление библиотеки: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Библиотека удалена: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1733,6 +1794,10 @@ msgstr "Чем:" msgid "Retired" msgstr "Выбыт" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Повторить загрузку через другой поÑледовательный порт?" + #: Preferences.java:113 msgid "Romanian" msgstr "РумынÑкий" @@ -1856,12 +1921,15 @@ msgid "" " Serial Port menu?" msgstr "ПоÑледовательный порт ''{0}'' не ÑущеÑтвует. Ð’Ñ‹ выбрали правильный в меню ИнÑтрументы > Порт ?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "ПоÑледовательный порт не выбран." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "ПоÑледовательный порт {0} не обнаружен.\nПовторить загрузку через другой порт?" +msgid "Serial port {0} not found." +msgstr "ПоÑледовательный порт {0} не найден." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1884,6 +1952,10 @@ msgstr "Проблемы в наÑтройках" msgid "Show Sketch Folder" msgstr "Показать папку Ñкетча" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Показать отметки времени" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Показать подробный вывод:" @@ -2055,6 +2127,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Файл \"{0}\" должен находитьÑÑ Ð² \nпапке Ñкетча \"{1}\".\nСоздать папку, перемеÑтить файл в нее и продолжить?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Библиотека \"{0}\" не может быть иÑпользована.\nИмена папок в библиотеках должны начинатьÑÑ Ñ Ð±ÑƒÐºÐ²Ñ‹ или цифры, а за ними Ñледуют буквы, цифры, тире, точки и подчеркиваниÑ.\nМакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° 63 Ñимволов." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2100,12 +2180,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Папка Ñкетчей иÑчезла. Будет попытка повторно Ñохранить в том же меÑте, но вÑÑ‘, кроме кода, будет потерÑно." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ñкетча. Ð˜Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ‚ Ñодержать\nÑимволы ASCII и цифры (и не должно начинатьÑÑ Ñ Ñ†Ð¸Ñ„Ñ€Ñ‹).\nДлина имени не должна превышать 64 Ñимволов." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Ðазвание Ñкетча должно быть изменено.\nÐазвание Ñкетча должна начинатьÑÑ Ñ Ð±ÑƒÐºÐ²Ñ‹ или цифры, за которыми Ñледуют буквы, цифры, тире, точки и подчеркиваниÑ.\nМакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° 63 Ñимволов." #: Base.java:259 msgid "" @@ -2122,6 +2202,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° Ð´Ð»Ñ Ñкетчей Ñодержит IDE.\nПожалуйÑта выберите другую папку Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ папки Ñо Ñкетчами." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Тема:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2614,6 +2698,12 @@ msgstr "проигнорирован неверный размер шрифта msgid "name is null" msgstr "Ðе уÑтановлено имÑ" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "нет заголовочных файлов (.h), найденных в {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "Ðе уÑтановлено serialMenu" @@ -2701,11 +2791,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Ðеправильное название платы, должно быть в виде \"package:arch:board\" или \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð´Ð»Ñ \"{1}\" опции Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ‹ \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2716,6 +2801,11 @@ msgstr "{0}: ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ‹ \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ, должна быть в виде \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Ðеверное значение параметра \"{1}\" Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ‹ \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_ru.properties b/arduino-core/src/processing/app/i18n/Resources_ru.properties index 7be28b065f6..5a6516ee159 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ru.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ru.properties @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Aleksandr Jadov , 2013 -# AlexL , 2015-2017 -# angry_snake , 2014 +# AlexL , 2015-2018 +# 28532b02ca9d20d69a31703daeea0bda_3873b52 , 2014 # \u0415\u0433\u043e\u0440 \u041c\u0430\u043a\u0430\u0440\u0435\u043d\u043a\u043e, 2015 # \u0415\u0433\u043e\u0440 \u041c\u0430\u043a\u0430\u0440\u0435\u043d\u043a\u043e, 2015 # Alexandr Kropochev , 2012 @@ -30,8 +34,8 @@ # \u0415\u0433\u043e\u0440 \u041c\u0430\u043a\u0430\u0440\u0435\u043d\u043a\u043e, 2016 # \u041c\u0438\u0445\u0430\u0438\u043b \u0422\u0443\u0440\u0443\u0441\u043e\u0432 , 2015 # \u0420\u0443\u0441\u043b\u0430\u043d , 2013 -# \u042f\u043a\u043e\u0432 \u041c\u0430\u0441\u043b\u043e\u0432 , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: AlexL \nLanguage-Team\: Russian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=4; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<12 || n%100>14) ? 1 \: n%10\=\=0 || (n%10>\=5 && n%10<\=9) || (n%100>\=11 && n%100<\=14)? 2 \: 3);\n +# Jan Maslov , 2015 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 22\:46+0000\nLast-Translator\: AlexL \nLanguage-Team\: Russian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ru/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ru\nPlural-Forms\: nplurals\=4; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<12 || n%100>14) ? 1 \: n%10\=\=0 || (n%10>\=5 && n%10<\=9) || (n%100>\=11 && n%100<\=14)? 2 \: 3);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (\u043d\u0443\u0436\u0435\u043d \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a Arduino IDE) @@ -156,6 +160,10 @@ Archive\ sketch\ as\:=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u04 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0410\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0441\u043a\u0435\u0442\u0447\u0430 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 (\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) \u0432\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0435\u0442\u0447\u0430 \u0431\u044b\u043b\u043e \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \n\u0441\u043a\u0435\u0442\u0447 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d \u0434\u043e\u043b\u0436\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. @@ -450,6 +458,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u0421\u0442\u0430\u0440\u0430\u044f \ #, java-format Could\ not\ replace\ {0}={0} \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=\u041d\u0435 \u043c\u043e\u0433\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u0421\u043a\u0435\u0442\u0447 \u043d\u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f @@ -480,12 +492,18 @@ Data\ Processing=\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u0422\u0435\u043c\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e + #: EditorHeader.java:314 Sketch.java:591 Delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c @@ -617,6 +635,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=\u041e\u0448\u0438\u0431\u043a\u0430 #, java-format Error\ inside\ Serial.{0}()=\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0442\u0435\u043c\u044b {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -631,6 +653,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u041e\u0448\u0438\u0431\u043a\u0430 \u04 #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 ''{0}''. \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043d\u0430 http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=\u041e\u0448\u0438\u0431\u043a\u0430 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\: {0}\n\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u043f\u0430\u043f\u043a\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432\: {0}\n(\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439?) + #: Preferences.java:277 Error\ reading\ preferences=\u041e\u0448\u0438\u0431\u043a\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a @@ -656,6 +690,9 @@ Error\ while\ burning\ bootloader.=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430\: \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430\: \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438\: \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 '{0}' @@ -684,9 +721,6 @@ Error\ while\ verifying/uploading=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0 #: Preferences.java:93 Estonian=\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0438\u0439 -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0438\u0439 (\u042d\u0441\u0442\u043e\u043d\u0438\u044f) - #: Editor.java:516 Examples=\u041f\u0440\u0438\u043c\u0435\u0440\u044b @@ -837,8 +871,8 @@ INCOMPATIBLE=\u041d\u0415\u0421\u041e\u0412\u041c\u0415\u0421\u0422\u0418\u041c\ #: FindReplace.java:96 Ignore\ Case=\u0411\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441 \u043f\u043b\u043e\u0445\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0430 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0435\u0442\u0447 \u0441 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c @@ -853,6 +887,9 @@ Include\ Library=\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 IDE +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f @@ -879,9 +916,9 @@ Installed=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u043b\u0430\u0442... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\: {0} +Installing\ library\:\ {0}\:{1}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -902,6 +939,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u041d\u0435\u0432\u0435\u0440\u043d\u04 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 [{0}] - \u043d\u0435\u0442 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f '{0}' \u0434\u043b\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f {0} + #: Preferences.java:102 Italian=\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439 @@ -926,9 +972,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=\u0411\u04 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0435 \u043f\u0430\u043f\u043a\u0438 src' \u0438 'utility'. \u0414\u0432\u043e\u0439\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430\: {0} \u0432\u0435\u0440\u0441\u0438\u0438 {1} +Library\ is\ already\ installed\:\ {0}\:{1}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438\: @@ -1241,9 +1287,9 @@ Reference=\u0421\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u0423\u0434\u0430\u043b\u0438\u0442\u044c -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\: {0} +Removing\ library\:\ {0}\:{1}=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0430\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1271,6 +1317,9 @@ Replace\ with\:=\u0427\u0435\u043c\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=\u0412\u044b\u0431\u044b\u0442 +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442? + #: Preferences.java:113 Romanian=\u0420\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439 @@ -1362,9 +1411,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u041c\u043e\u043d\u04 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 ''{0}'' \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0412\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432 \u043c\u0435\u043d\u044e \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b > \u041f\u043e\u0440\u0442 ? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 {0} \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d.\n\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0440\u0442? +Serial\ port\ {0}\ not\ found.=\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 {0} \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0440\u0442\u044b @@ -1382,6 +1435,9 @@ Settings\ issues=\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043d\ #: Editor.java:641 Show\ Sketch\ Folder=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 \u0441\u043a\u0435\u0442\u0447\u0430 +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u043c\u0435\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\: @@ -1501,6 +1557,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u0424\u0430\u0439\u043b "{0}" \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \n\u043f\u0430\u043f\u043a\u0435 \u0441\u043a\u0435\u0442\u0447\u0430 "{1}".\n\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443, \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u043d\u0435\u0435 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 "{0}" \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430.\n\u0418\u043c\u0435\u043d\u0430 \u043f\u0430\u043f\u043e\u043a \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u044b, \u0430 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0442\u0438\u0440\u0435, \u0442\u043e\u0447\u043a\u0438 \u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f.\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 63 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 "{0}" \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430. \n\u0418\u043c\u0435\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0443\u043a\u0432\u044b \u0438 \u0446\u0438\u0444\u0440\u044b. \n(\u0442\u043e\u043b\u044c\u043a\u043e ASCII \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432) \u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0446\u0438\u0444\u0440\u044b @@ -1525,8 +1585,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=\u0421\u043a\u0435\u0442\u #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u041f\u0430\u043f\u043a\u0430 \u0441\u043a\u0435\u0442\u0447\u0435\u0439 \u0438\u0441\u0447\u0435\u0437\u043b\u0430. \u0411\u0443\u0434\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0442\u043e\u043c \u0436\u0435 \u043c\u0435\u0441\u0442\u0435, \u043d\u043e \u0432\u0441\u0451, \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u0434\u0430, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043e. -#: ../../../processing/app/Sketch.java:2028 -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.=\u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u0438\u043c\u044f \u0441\u043a\u0435\u0442\u0447\u0430. \u0418\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\n\u0441\u0438\u043c\u0432\u043e\u043b\u044b ASCII \u0438 \u0446\u0438\u0444\u0440\u044b (\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0446\u0438\u0444\u0440\u044b).\n\u0414\u043b\u0438\u043d\u0430 \u0438\u043c\u0435\u043d\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 64 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0435\u0442\u0447\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e.\n\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0435\u0442\u0447\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b \u0438\u043b\u0438 \u0446\u0438\u0444\u0440\u044b, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0442\u0438\u0440\u0435, \u0442\u043e\u0447\u043a\u0438 \u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f.\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 63 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u041f\u0430\u043f\u043a\u0430 \u0441\u043e \u0441\u043a\u0435\u0442\u0447\u0430\u043c\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. Arduino \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u0430\u043f\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 Sketchbook, \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. Arduino \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0441\u0435\u0431\u0435 \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043b\u0438\u0446\u0435. @@ -1534,6 +1594,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u0434\u043b\u044f \u0441\u043a\u0435\u0442\u0447\u0435\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 IDE.\n\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u043f\u0430\u043f\u043a\u0438 \u0441\u043e \u0441\u043a\u0435\u0442\u0447\u0430\u043c\u0438. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =\u0422\u0435\u043c\u0430\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=\u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0412\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0435 \u043e\u0442\u0441\u044e\u0434\u0430.\n\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0435? @@ -1868,6 +1931,11 @@ ignoring\ invalid\ font\ size\ {0}=\u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0 #: Editor.java:936 Editor.java:943 name\ is\ null=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0438\u043c\u044f +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=\u043d\u0435\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 (.h), \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0432 {0} + #: Editor.java:932 serialMenu\ is\ null=\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e serialMenu @@ -1935,10 +2003,6 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0438\u044f {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u044b, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 "package\:arch\:board" \u0438\u043b\u0438 "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u0434\u043b\u044f "{1}" \u043e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b "{1}" @@ -1947,6 +2011,10 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0438\u044f {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f, \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 "{1}" \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 diff --git a/arduino-core/src/processing/app/i18n/Resources_sk.po b/arduino-core/src/processing/app/i18n/Resources_sk.po index 0bfe9afd27b..2342d86972b 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sk.po +++ b/arduino-core/src/processing/app/i18n/Resources_sk.po @@ -16,20 +16,24 @@ # Translators: # Translators: # Translators: -# Zdeno Sekerák , 2015-2017 +# Translators: +# Translators: +# Translators: +# Translators: +# Zdeno Sekerák , 2015-2019 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 20:53+0000\n" +"PO-Revision-Date: 2019-02-13 13:35+0000\n" "Last-Translator: Zdeno Sekerák \n" "Language-Team: Slovak (http://www.transifex.com/mbanzi/arduino-ide-15/language/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" @@ -210,6 +214,11 @@ msgstr "Archivuj projekt ako:" msgid "Archive sketch canceled." msgstr "Archivovanie projektu bolo preruÅ¡ené." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "Archivácia preloženého jadra (doÄasne uloženého) v: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -616,6 +625,11 @@ msgstr "Nemôžem vymazaÅ¥ starú verziu {0}" msgid "Could not replace {0}" msgstr "Nemôžem premenovaÅ¥ {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Nepodaril sa zapís do súboru nastavení: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Projekt nebolo možné archivovaÅ¥" @@ -659,6 +673,10 @@ msgstr "Spracovanie dát" msgid "Data Storage" msgstr "Uloženie dát" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "ZmenÅ¡enie Fontu Písma" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "ZmenÅ¡iÅ¥ Odsadenie" @@ -667,6 +685,10 @@ msgstr "ZmenÅ¡iÅ¥ Odsadenie" msgid "Default" msgstr "Default" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Predvolená téma" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "ZmazaÅ¥" @@ -842,6 +864,11 @@ msgstr "Chyba v prístupe do datového adresára Arduina IDE." msgid "Error inside Serial.{0}()" msgstr "Chyba v Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Nastala chyba pri nahrávaní témy {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -861,6 +888,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Chyba pri otváraní sériového portu ''{0}''. Skús pohľadaÅ¥ rieÅ¡enie v dokumentácii na http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Nastala chyba poÄas parsovania indexu knižníc: {0}\nOtvorte Správcu knižníc a aktualizujte index knižníc." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Nastala chyba poÄas naÄítania indexu knižníc: {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Chyba pri Äítaní indexu balíÄkov v adresáry: {0}\n(nieje problém s prístupovými právami?)" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Chyba pri naÄítaní nastavení" @@ -895,6 +941,10 @@ msgstr "Chyba pri vypaľovaní zavádzaÄa." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Chyba pri vypaľovaní bootloaderu: chýba konfiguraÄný parameter '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Chyba pri vypaľovaní bootloader: prosím vyberte sériový port." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Nastala chyba pri kompilácii: chýba konfiguraÄný parameter '{0}'" @@ -931,10 +981,6 @@ msgstr "Nastala chyba pri verifikácii/nahrávaní" msgid "Estonian" msgstr "EstónÅ¡tina" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "EstónÅ¡tina (Estónsko)" - #: Editor.java:516 msgid "Examples" msgstr "Príklady" @@ -1138,9 +1184,9 @@ msgstr "NEKOMPAKTIBILNÃ" msgid "Ignore Case" msgstr "Ignoruj VeľkosÅ¥ Písmen" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorujem chybný názov knižnice" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Ignorujem knižnicu so zlým názvom" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1166,6 +1212,10 @@ msgstr "Zahrnúť knižnice" msgid "Incorrect IDE installation folder" msgstr "Nekorektný adresár pre inÅ¡taláciu IDE" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "ZväÄÅ¡enie Fontu Písma" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "ZväÄÅ¡iÅ¥ Odsadenie" @@ -1199,10 +1249,10 @@ msgstr "InÅ¡talované" msgid "Installing boards..." msgstr "InÅ¡talujem dosky..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "InÅ¡talujem knižnicu: {0}" +msgid "Installing library: {0}:{1}" +msgstr "InÅ¡talácia knižnice: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1228,6 +1278,17 @@ msgstr "Nájdená neplatná knižnica v {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Neplatný znak úvodzoviek: chýbajúci uzatvárací znak [{0}]." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "Neplatná verzia '{0}' pre knižnice v: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Neplatná verzia {0}" + #: Preferences.java:102 msgid "Italian" msgstr "TalianÄina" @@ -1260,10 +1321,10 @@ msgstr "Knižnica pridaná do zoznamu knižníc. Skontrolujte menu \"Pridané kn msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Knižnica nemože byÅ¥ použitá súÄastne v adresároch 'src' a 'utility'. Zdvojená kontrola {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Knižnica už bola inÅ¡talovaná: {0} vo verzii {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Knižnica je už nainÅ¡talovaná: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1680,10 +1741,10 @@ msgstr "Referencie" msgid "Remove" msgstr "VymazaÅ¥" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "VymazaÅ¥ knižnicu: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Odstránenie knižnice: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1719,6 +1780,10 @@ msgstr "PrepísaÅ¥ s:" msgid "Retired" msgstr "Nepodporovaný" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Chcete opakovaÅ¥ nahrávanie cez iný sériový port?" + #: Preferences.java:113 msgid "Romanian" msgstr "RumunÅ¡tina" @@ -1842,12 +1907,15 @@ msgid "" " Serial Port menu?" msgstr "Sériový port ''{0}'' nebol nájdený. Vybrali ste správny v menu Nástroje > Sériový Port?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Nebol vybraný sériový port." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Sériový port ''{0}'' nebol nájdený. Skúste nahrávaÅ¥ s iným sériovým portom?" +msgid "Serial port {0} not found." +msgstr "Nebol nájdený sériový port {0}." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1870,6 +1938,10 @@ msgstr "Problém s nastavením" msgid "Show Sketch Folder" msgstr "ZobraziÅ¥ Adresár s Projektami" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "ZobraziÅ¥ Äasovú znaÄku" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "ZobraziÅ¥ viac informácií poÄas:" @@ -2041,6 +2113,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Súbor \"{0}\" je nutné uložiÅ¥ \ndo adresára projektu s menom \"{1}\".\nVytvorte tento adresár, presuňte súbor, a pokraÄujte?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Knižnica \"{0}\" nemôže byÅ¥ použitá.\nAdresár knižnice musí zaÄínaÅ¥ znakom písmena alebo Äíslice následovaný písmenami,\nÄíslicami, pomlÄkami, bodkami alebo znakmi podÄiarknutia. Maximálna dĺžka je 63 znakov." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2086,12 +2166,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Projekt zmizol.\nPokúsim sa znovu uložiÅ¥ na rovnaké miesto,\nale okrem kódu bude vÅ¡etko ostatné stratené!" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Názov projektu je potrebné zmeniÅ¥. Názov projektu je možné zložiÅ¥ iba z ASCII znakov a Äísel (Äíslom vÅ¡ak nemôže zaÄínaÅ¥). Názov musí maÅ¥ dĺžku menej ako 64 znakov." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Meno projektu sa muselo zmeniÅ¥\nNázov projektu musí zaÄínaÅ¥ znakom písmena alebo Äíslice následovaný písmenami,\nÄíslicami, pomlÄkami, bodkami alebo znakmi podÄiarknutia. Maximálna dĺžka je 63 znakov." #: Base.java:259 msgid "" @@ -2108,6 +2188,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Vybraný adresár s projektami obsahuje kópiu tvojho IDE.\nProsím vyber iný adresár pre tvoje projekty." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Téma: " + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2600,6 +2684,12 @@ msgstr "ignorujem nepovolenú veľkosÅ¥ fontu {0}" msgid "name is null" msgstr "meno je null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "nenájdené žiadne hlaviÄkové súbory (.h) v {0}" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu je null" @@ -2687,11 +2777,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Zle zvolený názov dosky; mal by maÅ¥ formu \"package:arch:board\" alebo \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: chybný parameter pre \"{1}\" voľba pre dosku \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2702,6 +2787,11 @@ msgstr "{0}: neplatný parameter pre dosku \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: neplatná voľba, mala by maÅ¥ formát \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Neplatná hodnota voľby \"{1}\" pre dosku \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_sk.properties b/arduino-core/src/processing/app/i18n/Resources_sk.properties index 6548f22bbbf..af0af7e2815 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sk.properties +++ b/arduino-core/src/processing/app/i18n/Resources_sk.properties @@ -16,8 +16,12 @@ # Translators: # Translators: # Translators: -# Zdeno Seker\u00e1k , 2015-2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 20\:53+0000\nLast-Translator\: Zdeno Seker\u00e1k \nLanguage-Team\: Slovak (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sk/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sk\nPlural-Forms\: nplurals\=3; plural\=(n\=\=1) ? 0 \: (n>\=2 && n<\=4) ? 1 \: 2;\n +# Translators: +# Translators: +# Translators: +# Translators: +# Zdeno Seker\u00e1k , 2015-2019 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-02-13 13\:35+0000\nLast-Translator\: Zdeno Seker\u00e1k \nLanguage-Team\: Slovak (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sk/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sk\nPlural-Forms\: nplurals\=4; plural\=(n % 1 \=\= 0 && n \=\= 1 ? 0 \: n % 1 \=\= 0 && n >\= 2 && n <\= 4 ? 1 \: n % 1 \!\= 0 ? 2\: 3);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (vy\u017eaduje restart programu Arduino) @@ -142,6 +146,10 @@ Archive\ sketch\ as\:=Archivuj projekt ako\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Archivovanie projektu bolo preru\u0161en\u00e9. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=Archiv\u00e1cia prelo\u017een\u00e9ho jadra (do\u010dasne ulo\u017een\u00e9ho) v\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Archiv\u00e1cia projektu bola preru\u0161en\u00e1\npreto\u017ee projekt nieje mo\u017en\u00e9 ulo\u017ei\u0165. @@ -436,6 +444,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Nem\u00f4\u017eem vymaza\u0165 star\u0 #, java-format Could\ not\ replace\ {0}=Nem\u00f4\u017eem premenova\u0165 {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Nepodaril sa zap\u00eds do s\u00faboru nastaven\u00ed\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Projekt nebolo mo\u017en\u00e9 archivova\u0165 @@ -466,12 +478,18 @@ Data\ Processing=Spracovanie d\u00e1t #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Ulo\u017eenie d\u00e1t +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Zmen\u0161enie Fontu P\u00edsma + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Zmen\u0161i\u0165 Odsadenie #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Default +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Predvolen\u00e1 t\u00e9ma + #: EditorHeader.java:314 Sketch.java:591 Delete=Zmaza\u0165 @@ -603,6 +621,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Chyba v pr\u00edstupe do datov\u00e9 #, java-format Error\ inside\ Serial.{0}()=Chyba v Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Nastala chyba pri nahr\u00e1van\u00ed t\u00e9my {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -617,6 +639,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Chyba pri otvoren\u00ed s\u00e9riov\u00e9 #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Chyba pri otv\u00e1ran\u00ed s\u00e9riov\u00e9ho portu ''{0}''. Sk\u00fas poh\u013eada\u0165 rie\u0161enie v dokument\u00e1cii na http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=Nastala chyba po\u010das parsovania indexu kni\u017en\u00edc\: {0}\nOtvorte Spr\u00e1vcu kni\u017en\u00edc a aktualizujte index kni\u017en\u00edc. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=Nastala chyba po\u010das na\u010d\u00edtania indexu kni\u017en\u00edc\: {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=Chyba pri \u010d\u00edtan\u00ed indexu bal\u00ed\u010dkov v adres\u00e1ry\: {0}\n(nieje probl\u00e9m s pr\u00edstupov\u00fdmi pr\u00e1vami?) + #: Preferences.java:277 Error\ reading\ preferences=Chyba pri na\u010d\u00edtan\u00ed nastaven\u00ed @@ -642,6 +676,9 @@ Error\ while\ burning\ bootloader.=Chyba pri vypa\u013eovan\u00ed zav\u00e1dza\u #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Chyba pri vypa\u013eovan\u00ed bootloaderu\: ch\u00fdba konfigura\u010dn\u00fd parameter '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=Chyba pri vypa\u013eovan\u00ed bootloader\: pros\u00edm vyberte s\u00e9riov\u00fd port. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Nastala chyba pri kompil\u00e1cii\: ch\u00fdba konfigura\u010dn\u00fd parameter '{0}' @@ -670,9 +707,6 @@ Error\ while\ verifying/uploading=Nastala chyba pri verifik\u00e1cii/nahr\u00e1v #: Preferences.java:93 Estonian=Est\u00f3n\u0161tina -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Est\u00f3n\u0161tina (Est\u00f3nsko) - #: Editor.java:516 Examples=Pr\u00edklady @@ -823,8 +857,8 @@ INCOMPATIBLE=NEKOMPAKTIBILN\u00dd #: FindReplace.java:96 Ignore\ Case=Ignoruj Ve\u013ekos\u0165 P\u00edsmen -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorujem chybn\u00fd n\u00e1zov kni\u017enice +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Ignorujem kni\u017enicu so zl\u00fdm n\u00e1zvom #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorujem projekt so zl\u00fdm n\u00e1zvom @@ -839,6 +873,9 @@ Include\ Library=Zahrn\u00fa\u0165 kni\u017enice #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Nekorektn\u00fd adres\u00e1r pre in\u0161tal\u00e1ciu IDE +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Zv\u00e4\u010d\u0161enie Fontu P\u00edsma + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Zv\u00e4\u010d\u0161i\u0165 Odsadenie @@ -865,9 +902,9 @@ Installed=In\u0161talovan\u00e9 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=In\u0161talujem dosky... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=In\u0161talujem kni\u017enicu\: {0} +Installing\ library\:\ {0}\:{1}=In\u0161tal\u00e1cia kni\u017enice\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -888,6 +925,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=N\u00e1jden\u00e1 neplatn\u00e1 kni\u017 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Neplatn\u00fd znak \u00favodzoviek\: ch\u00fdbaj\u00faci uzatv\u00e1rac\u00ed znak [{0}]. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=Neplatn\u00e1 verzia '{0}' pre kni\u017enice v\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Neplatn\u00e1 verzia {0} + #: Preferences.java:102 Italian=Talian\u010dina @@ -912,9 +958,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Kni\u017en #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Kni\u017enica nemo\u017ee by\u0165 pou\u017eit\u00e1 s\u00fa\u010dastne v adres\u00e1roch 'src' a 'utility'. Zdvojen\u00e1 kontrola {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Kni\u017enica u\u017e bola in\u0161talovan\u00e1\: {0} vo verzii {1} +Library\ is\ already\ installed\:\ {0}\:{1}=Kni\u017enica je u\u017e nain\u0161talovan\u00e1\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u010cislo riadku\: @@ -1227,9 +1273,9 @@ Reference=Referencie #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Vymaza\u0165 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Vymaza\u0165 kni\u017enicu\: {0} +Removing\ library\:\ {0}\:{1}=Odstr\u00e1nenie kni\u017enice\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1257,6 +1303,9 @@ Replace\ with\:=Prep\u00edsa\u0165 s\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=Nepodporovan\u00fd +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Chcete opakova\u0165 nahr\u00e1vanie cez in\u00fd s\u00e9riov\u00fd port? + #: Preferences.java:113 Romanian=Rumun\u0161tina @@ -1348,9 +1397,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=Monitor s\u00e9riov\u0 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=S\u00e9riov\u00fd port ''{0}'' nebol n\u00e1jden\u00fd. Vybrali ste spr\u00e1vny v menu N\u00e1stroje > S\u00e9riov\u00fd Port? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Nebol vybran\u00fd s\u00e9riov\u00fd port. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=S\u00e9riov\u00fd port ''{0}'' nebol n\u00e1jden\u00fd. Sk\u00faste nahr\u00e1va\u0165 s in\u00fdm s\u00e9riov\u00fdm portom? +Serial\ port\ {0}\ not\ found.=Nebol n\u00e1jden\u00fd s\u00e9riov\u00fd port {0}. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=S\u00e9riov\u00fd port @@ -1368,6 +1421,9 @@ Settings\ issues=Probl\u00e9m s nastaven\u00edm #: Editor.java:641 Show\ Sketch\ Folder=Zobrazi\u0165 Adres\u00e1r s Projektami +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Zobrazi\u0165 \u010dasov\u00fa zna\u010dku + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Zobrazi\u0165 viac inform\u00e1ci\u00ed po\u010das\: @@ -1487,6 +1543,10 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=S\u00fabor "{0}" je nutn\u00e9 ulo\u017ei\u0165 \ndo adres\u00e1ra projektu s menom "{1}".\nVytvorte tento adres\u00e1r, presu\u0148te s\u00fabor, a pokra\u010dujte? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Kni\u017enica "{0}" nem\u00f4\u017ee by\u0165 pou\u017eit\u00e1.\nAdres\u00e1r kni\u017enice mus\u00ed za\u010d\u00edna\u0165 znakom p\u00edsmena alebo \u010d\u00edslice n\u00e1sledovan\u00fd p\u00edsmenami,\n\u010d\u00edslicami, poml\u010dkami, bodkami alebo znakmi pod\u010diarknutia. Maxim\u00e1lna d\u013a\u017eka je 63 znakov. + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Kni\u017enica "{0}" nem\u00f4\u017ee by\u0165 pou\u017eit\u00e1.\nN\u00e1zov kni\u017enice mus\u00ed obsahova\u0165 iba p\u00edsmen\u00e1 bez diakritiky a \u010d\u00edslice.\n(ASCII znaky, bez medzier, a nem\u00f4\u017ee za\u010d\u00edna\u0165 \u010d\u00edslom) @@ -1511,8 +1571,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=Projekt u\u017e obsahuje s #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Projekt zmizol.\nPok\u00fasim sa znovu ulo\u017ei\u0165 na rovnak\u00e9 miesto,\nale okrem k\u00f3du bude v\u0161etko ostatn\u00e9 straten\u00e9\! -#: ../../../processing/app/Sketch.java:2028 -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.=N\u00e1zov projektu je potrebn\u00e9 zmeni\u0165. N\u00e1zov projektu je mo\u017en\u00e9 zlo\u017ei\u0165 iba z ASCII znakov a \u010d\u00edsel (\u010d\u00edslom v\u0161ak nem\u00f4\u017ee za\u010d\u00edna\u0165). N\u00e1zov mus\u00ed ma\u0165 d\u013a\u017eku menej ako 64 znakov. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Meno projektu sa muselo zmeni\u0165\nN\u00e1zov projektu mus\u00ed za\u010d\u00edna\u0165 znakom p\u00edsmena alebo \u010d\u00edslice n\u00e1sledovan\u00fd p\u00edsmenami,\n\u010d\u00edslicami, poml\u010dkami, bodkami alebo znakmi pod\u010diarknutia. Maxim\u00e1lna d\u013a\u017eka je 63 znakov. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Adres\u00e1r projektu (Sketchbook folder) u\u017e neexistuje.\nArduino-IDE sa pokus\u00ed prepn\u00fa\u0165 do defaultn\u00e9ho umiestnenia projektov\u00e9ho adres\u00e1ra\na adres\u00e1r pre projekty vytvor\u00ed na tomto mieste.\nArduino-IDE potom o sebe prestane hovori\u0165 \nv tretej osobe. @@ -1520,6 +1580,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Vybran\u00fd adres\u00e1r s projektami obsahuje k\u00f3piu tvojho IDE.\nPros\u00edm vyber in\u00fd adres\u00e1r pre tvoje projekty. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =T\u00e9ma\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=T\u00e1to kni\u017enice nieje v zozname mana\u017e\u00e9ra kni\u017en\u00edc. Znova ju nebude mo\u017en\u00e9 nain\u0161latova\u0165.\nSi si ist\u00fd \u017ee ju chce\u0161 zmaza\u0165? @@ -1854,6 +1917,11 @@ ignoring\ invalid\ font\ size\ {0}=ignorujem nepovolen\u00fa ve\u013ekos\u0165 f #: Editor.java:936 Editor.java:943 name\ is\ null=meno je null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=nen\u00e1jden\u00e9 \u017eiadne hlavi\u010dkov\u00e9 s\u00fabory (.h) v {0} + #: Editor.java:932 serialMenu\ is\ null=serialMenu je null @@ -1921,10 +1989,6 @@ version\ {0}=verzia {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Zle zvolen\u00fd n\u00e1zov dosky; mal by ma\u0165 formu "package\:arch\:board" alebo "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: chybn\u00fd parameter pre "{1}" vo\u013eba pre dosku "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: neplatn\u00fd parameter pre dosku "{1}" @@ -1933,6 +1997,10 @@ version\ {0}=verzia {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: neplatn\u00e1 vo\u013eba, mala by ma\u0165 form\u00e1t "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: Neplatn\u00e1 hodnota vo\u013eby "{1}" pre dosku "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Nezn\u00e1ma architekt\u00fara diff --git a/arduino-core/src/processing/app/i18n/Resources_sl_SI.po b/arduino-core/src/processing/app/i18n/Resources_sl_SI.po index 29811afbd52..8927aa7d82e 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sl_SI.po +++ b/arduino-core/src/processing/app/i18n/Resources_sl_SI.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cristian Maglie , 2013 # ÄŒrt Gorup , 2013 # Miha Feus , 2012 @@ -25,7 +29,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/mbanzi/arduino-ide-15/language/sl_SI/)\n" "MIME-Version: 1.0\n" @@ -213,6 +217,11 @@ msgstr "Arhiviraj skico kot:" msgid "Archive sketch canceled." msgstr "Arhiviranje skice prekinjeno." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -619,6 +628,11 @@ msgstr "Stare razliÄice {0} ni mogoÄe izbrisati" msgid "Could not replace {0}" msgstr "Ni mogoÄe zamenjati {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Arhiviranje skice ni uspelo" @@ -662,6 +676,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "ZmanjÅ¡aj zamik" @@ -670,6 +688,10 @@ msgstr "ZmanjÅ¡aj zamik" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "IzbriÅ¡i" @@ -845,6 +867,11 @@ msgstr "Napaka pri pridobivanju podatkovne mape Arduino." msgid "Error inside Serial.{0}()" msgstr "Napaka v Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -864,6 +891,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Napaka pri branju nastavitev" @@ -898,6 +944,10 @@ msgstr "Napaka pri peÄenju zagonskega nalagalnika." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Napaka pri peÄenju zagonskega nalagalnika: manjka '{0}' nastavitveni parameter" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -934,10 +984,6 @@ msgstr "" msgid "Estonian" msgstr "Estonsko" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonsko (Estonija)" - #: Editor.java:516 msgid "Examples" msgstr "Primeri" @@ -1141,9 +1187,9 @@ msgstr "" msgid "Ignore Case" msgstr "Prezri male/velike Ärke" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignoriram napaÄno ime knjižnice" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1169,6 +1215,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "PoveÄaj zamik" @@ -1202,9 +1252,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1231,6 +1281,17 @@ msgstr "Neveljavna knjižnica najdena v {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italijansko" @@ -1263,9 +1324,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1683,9 +1744,9 @@ msgstr "Namigi" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1722,6 +1783,10 @@ msgstr "Zamenjaj z:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romunsko" @@ -1845,12 +1910,15 @@ msgid "" " Serial Port menu?" msgstr "Serijska vrata ''{0}'' niso bila najdena. Si izbral/a pravilna vrata v meniju Orodja > Serijska vrata?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Serijski vrat {0} ni bilo mogoÄe najti.⎠Poskusi ponovno z drugimi serijskimi vrati." +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1873,6 +1941,10 @@ msgstr "Težava z nastavitvami" msgid "Show Sketch Folder" msgstr "Pokaži mapo skice" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Prikaži izpis med:" @@ -2044,6 +2116,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Datoteka \"{0}\" se mora nahajati vâŽ\nmapi za skico imenovano \"{1}\".âŽ\nUstvarim to mapo, premaknem datoteko in nadaljujem?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2089,11 +2169,11 @@ msgid "" "but anything besides the code will be lost." msgstr "Mapa s skico je izginila.âŽ\nPoskuÅ¡al bom ponovno shraniti v isto lokacijo,âŽ\nvendar bo potem vse, razen kode, izgubljeno." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2111,6 +2191,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2603,6 +2687,12 @@ msgstr "prezri neveljavno velikost pisave {0}" msgid "name is null" msgstr "ime je prazno" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu je prazen" @@ -2690,11 +2780,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2705,6 +2790,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_sl_SI.properties b/arduino-core/src/processing/app/i18n/Resources_sl_SI.properties index c14b7940291..a28988b05f5 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sl_SI.properties +++ b/arduino-core/src/processing/app/i18n/Resources_sl_SI.properties @@ -16,11 +16,15 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cristian Maglie , 2013 # \u010crt Gorup , 2013 # Miha Feus , 2012 # Miha Feus , 2013-2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Slovenian (Slovenia) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sl_SI/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sl_SI\nPlural-Forms\: nplurals\=4; plural\=(n%100\=\=1 ? 0 \: n%100\=\=2 ? 1 \: n%100\=\=3 || n%100\=\=4 ? 2 \: 3);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Slovenian (Slovenia) (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sl_SI/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sl_SI\nPlural-Forms\: nplurals\=4; plural\=(n%100\=\=1 ? 0 \: n%100\=\=2 ? 1 \: n%100\=\=3 || n%100\=\=4 ? 2 \: 3);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(potreben je ponovni zagon Arduino okolja) @@ -145,6 +149,10 @@ Archive\ sketch\ as\:=Arhiviraj skico kot\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arhiviranje skice prekinjeno. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Arhiviranje skice je bilo prekinjeno, ker skica\u23ce ni bila pravilno shranjena. @@ -439,6 +447,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Stare razli\u010dice {0} ni mogo\u010d #, java-format Could\ not\ replace\ {0}=Ni mogo\u010de zamenjati {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Arhiviranje skice ni uspelo @@ -469,12 +481,18 @@ Cut=Izre\u017ei #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Zmanj\u0161aj zamik #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Izbri\u0161i @@ -606,6 +624,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Napaka pri pridobivanju podatkovne m #, java-format Error\ inside\ Serial.{0}()=Napaka v Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -620,6 +642,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Napaka pri odpiranju serijskih vrat ''{0} #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Napaka pri branju nastavitev @@ -645,6 +679,9 @@ Error\ while\ burning\ bootloader.=Napaka pri pe\u010denju zagonskega nalagalnik #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Napaka pri pe\u010denju zagonskega nalagalnika\: manjka '{0}' nastavitveni parameter +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -673,9 +710,6 @@ Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Napaka pri n #: Preferences.java:93 Estonian=Estonsko -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonsko (Estonija) - #: Editor.java:516 Examples=Primeri @@ -826,8 +860,8 @@ Hungarian=Mad\u017earsko #: FindReplace.java:96 Ignore\ Case=Prezri male/velike \u010drke -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignoriram napa\u010dno ime knji\u017enice +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignoriram skico z napa\u010dnim imenom @@ -842,6 +876,9 @@ In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Pove\u010daj zamik @@ -868,9 +905,9 @@ Indonesian=Indonezijsko #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -891,6 +928,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Neveljavna knji\u017enica najdena v {0}\ #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italijansko @@ -915,9 +961,9 @@ Latvian=Latvijsko #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1230,9 +1276,9 @@ Reference=Namigi #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1260,6 +1306,9 @@ Replace\ with\:=Zamenjaj z\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Romunsko @@ -1351,9 +1400,13 @@ Serial\ Monitor=Serijski vmesnik #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Serijska vrata ''{0}'' niso bila najdena. Si izbral/a pravilna vrata v meniju Orodja > Serijska vrata? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Serijski vrat {0} ni bilo mogo\u010de najti.\u23ce Poskusi ponovno z drugimi serijskimi vrati. +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1371,6 +1424,9 @@ Settings\ issues=Te\u017eava z nastavitvami #: Editor.java:641 Show\ Sketch\ Folder=Poka\u017ei mapo skice +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Prika\u017ei izpis med\: @@ -1490,6 +1546,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp razred je bil preimenovan #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Datoteka "{0}" se mora nahajati v\u23ce\nmapi za skico imenovano "{1}".\u23ce\nUstvarim to mapo, premaknem datoteko in nadaljujem? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Knji\u017enice "{0}" ni mogo\u010de uporabiti.\u23ce\nIme knji\u017enice lahko vsebuje le osnovne \u010drke in \u0161tevilke.\u23ce\n(Samo ASCII, brez presledkov, prvi znak ne sme biti \u0161tevilka) @@ -1514,8 +1574,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Mapa s skico je izginila.\u23ce\nPosku\u0161al bom ponovno shraniti v isto lokacijo,\u23ce\nvendar bo potem vse, razen kode, izgubljeno. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Mapa s skicami ne obstaja ve\u010d. \u23ce\nArduino bo izbral privzeto lokacijo in\u23ce\nustvaril novo mapo, \u010de bo to potrebno.\u23ce\nArduino bo potem nehal govoriti o sebi\u23ce\nv tretji osebi. @@ -1523,6 +1583,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1857,6 +1920,11 @@ ignoring\ invalid\ font\ size\ {0}=prezri neveljavno velikost pisave {0} #: Editor.java:936 Editor.java:943 name\ is\ null=ime je prazno +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu je prazen @@ -1924,10 +1992,6 @@ upload=Nalo\u017ei #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1936,6 +2000,10 @@ upload=Nalo\u017ei #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_sq.po b/arduino-core/src/processing/app/i18n/Resources_sq.po index a6e74d192db..e2bf2c493bf 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sq.po +++ b/arduino-core/src/processing/app/i18n/Resources_sq.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Besiana Bici , 2014 # Elio Qoshi , 2014 # Florian Tani , 2014 @@ -28,7 +32,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 19:34+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Albanian (http://www.transifex.com/mbanzi/arduino-ide-15/language/sq/)\n" "MIME-Version: 1.0\n" @@ -216,6 +220,11 @@ msgstr "Arkivo skicen si :" msgid "Archive sketch canceled." msgstr "Arkivimi i skices i anulluar" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -622,6 +631,11 @@ msgstr "Nuk mund te fshihet versioni me i vjeter i {0}" msgid "Could not replace {0}" msgstr "Nuk mund te zevendesohet {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Nuk mund te arkivohet skica" @@ -665,6 +679,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Pakeso dhembezimin" @@ -673,6 +691,10 @@ msgstr "Pakeso dhembezimin" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Fshi" @@ -848,6 +870,11 @@ msgstr "Gabim duke marre folderim me te dhenat e Arduinos" msgid "Error inside Serial.{0}()" msgstr "Gabim brendra Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -867,6 +894,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Gabim gjete leximit te pelqimeve" @@ -901,6 +947,10 @@ msgstr "Gabim gjate djegjes se bootloaderit." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Gabim ndersa ndizet ngarkuesi i nisjes : mungon parametri konfigurues '{0}" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -937,10 +987,6 @@ msgstr "" msgid "Estonian" msgstr "Estonez" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonez (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Shembuj" @@ -1144,9 +1190,9 @@ msgstr "" msgid "Ignore Case" msgstr "Rast injorimi" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Injoro librarine me emer te keq" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1172,6 +1218,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Rrit dhembezimin" @@ -1205,9 +1255,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1234,6 +1284,17 @@ msgstr "Librari e pavlefshme e gjendur ne {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italisht" @@ -1266,9 +1327,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1686,9 +1747,9 @@ msgstr "Reference" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1725,6 +1786,10 @@ msgstr "Zevendesoje me:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Rumanisht" @@ -1848,12 +1913,15 @@ msgid "" " Serial Port menu?" msgstr "Porta seriale \"{0}\" nuk gjindet. A e selektuat ate qe duhet ne te djathten tek Mjetet > Menuja e portave seriale?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Porta seriale {0} nuk u gjet.\nProvoni serish ngarkimin me nje porte tjeter seriale." +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1876,6 +1944,10 @@ msgstr "Probleme me ceshtjet" msgid "Show Sketch Folder" msgstr "Shfaq folderin e skices" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Shfaq fjalet me te shpeshta gjate daljes:" @@ -2047,6 +2119,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Skedari \"{0}\" duhet te jete brenda\nnje skice skedari te quajtur \"{1}\".\nKrijo kete skedar, zhvendose skedarin, dhe vazhdo?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2092,12 +2172,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Dosja e skices eshte zhdukur.\nDoni qe te provoni ta ruani perseri ne te njejtin vend,\npor cdo gje tjeter pervec kodit do te humbasi." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Emri i skices duhet qe te modifikohet. Emrat e skicave konsistojne vetem \nnga karaktere ASCII dhe numra (por nuk mund te fillojne me nje numer.)\nAto duhet te jene me te shkurtra se 64 karaktere." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" #: Base.java:259 msgid "" @@ -2114,6 +2194,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2606,6 +2690,12 @@ msgstr "Injoro madhesine e pavlefshme te tipit te shkrimit {0}" msgid "name is null" msgstr "emri eshte bosh" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu eshte bosh" @@ -2693,11 +2783,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Emer bordi i pavlefshem, duhet te jete i formes \"package:arch:board\" ose \"package:arch:board:options\"" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Opsion i pavlefshem per \"{1}\" opsion per bord \"{2}\"" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2708,6 +2793,11 @@ msgstr "{0}: Opsion invalid per bordin \"{1}\"" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Opsion invalid, duhet te jete ne formen \"name=value\"" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_sq.properties b/arduino-core/src/processing/app/i18n/Resources_sq.properties index 0d1fdb9aa71..6f875fd3760 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sq.properties +++ b/arduino-core/src/processing/app/i18n/Resources_sq.properties @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Besiana Bici , 2014 # Elio Qoshi , 2014 # Florian Tani , 2014 @@ -23,7 +27,7 @@ # Orven Bregu , 2014 # www.openlabs.cc , 2014 # besmirzekaj , 2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 19\:34+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Albanian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sq/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sq\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Albanian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sq/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sq\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(kerkohet rinisja e Arduinos) @@ -148,6 +152,10 @@ Archive\ sketch\ as\:=Arkivo skicen si \: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arkivimi i skices i anulluar +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Arkivimi i skices eshte anulluar sepse\nskica nuk mund te ruhet sic duhet @@ -442,6 +450,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Nuk mund te fshihet versioni me i vjet #, java-format Could\ not\ replace\ {0}=Nuk mund te zevendesohet {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Nuk mund te arkivohet skica @@ -472,12 +484,18 @@ Cut=Pre #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Pakeso dhembezimin #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Fshi @@ -609,6 +627,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Gabim duke marre folderim me te dhen #, java-format Error\ inside\ Serial.{0}()=Gabim brendra Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -623,6 +645,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Gabim duke hapur porten seriale "{0}" #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Gabim gjete leximit te pelqimeve @@ -648,6 +682,9 @@ Error\ while\ burning\ bootloader.=Gabim gjate djegjes se bootloaderit. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=Gabim ndersa ndizet ngarkuesi i nisjes \: mungon parametri konfigurues '{0} +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -676,9 +713,6 @@ Error\ while\ uploading\:\ missing\ '{0}'\ configuration\ parameter=Gabim gjate #: Preferences.java:93 Estonian=Estonez -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonez (Estonia) - #: Editor.java:516 Examples=Shembuj @@ -829,8 +863,8 @@ Hungarian=Hungarisht #: FindReplace.java:96 Ignore\ Case=Rast injorimi -#: Base.java:1058 -Ignoring\ bad\ library\ name=Injoro librarine me emer te keq +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Duke injoruar skicen me emer te keq @@ -845,6 +879,9 @@ In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Rrit dhembezimin @@ -871,9 +908,9 @@ Indonesian=Indonezisht #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -894,6 +931,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Librari e pavlefshme e gjendur ne {0}\: #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italisht @@ -918,9 +964,9 @@ Latvian=Letonisht #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1233,9 +1279,9 @@ Reference=Reference #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1263,6 +1309,9 @@ Replace\ with\:=Zevendesoje me\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Rumanisht @@ -1354,9 +1403,13 @@ Serial\ Monitor=Monitor serial #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Porta seriale "{0}" nuk gjindet. A e selektuat ate qe duhet ne te djathten tek Mjetet > Menuja e portave seriale? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Porta seriale {0} nuk u gjet.\nProvoni serish ngarkimin me nje porte tjeter seriale. +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1374,6 +1427,9 @@ Settings\ issues=Probleme me ceshtjet #: Editor.java:641 Show\ Sketch\ Folder=Shfaq folderin e skices +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Shfaq fjalet me te shpeshta gjate daljes\: @@ -1493,6 +1549,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Klasa Udp eshte riemeruar ne E #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Skedari "{0}" duhet te jete brenda\nnje skice skedari te quajtur "{1}".\nKrijo kete skedar, zhvendose skedarin, dhe vazhdo? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Libraria "{0}" nuk mund te perdoret.\nEmrat e librarive duhet te kene vetem shkronja dhe numra normal.\n(Vetem ASCI dhe jo hapesira, dhe nuk mund te filloje me nje numer) @@ -1517,8 +1577,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Dosja e skices eshte zhdukur.\nDoni qe te provoni ta ruani perseri ne te njejtin vend,\npor cdo gje tjeter pervec kodit do te humbasi. -#: ../../../processing/app/Sketch.java:2028 -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.=Emri i skices duhet qe te modifikohet. Emrat e skicave konsistojne vetem \nnga karaktere ASCII dhe numra (por nuk mund te fillojne me nje numer.)\nAto duhet te jene me te shkurtra se 64 karaktere. +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Skedari i sketchbook nuk egziston me.\nArduino do te kaloje ne vendodhjen e sketchbook-ut\nte parapercaktuar, dhe do te krijoje nje skedar te ri sketchbook-u\nnese eshte e nevojshme. Arduino pastaj do te ndaloje se foluri \nper veten ne veten e trete. @@ -1526,6 +1586,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1860,6 +1923,11 @@ ignoring\ invalid\ font\ size\ {0}=Injoro madhesine e pavlefshme te tipit te shk #: Editor.java:936 Editor.java:943 name\ is\ null=emri eshte bosh +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu eshte bosh @@ -1927,10 +1995,6 @@ upload=ngarko #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Emer bordi i pavlefshem, duhet te jete i formes "package\:arch\:board" ose "package\:arch\:board\:options" -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: Opsion i pavlefshem per "{1}" opsion per bord "{2}" - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: Opsion invalid per bordin "{1}" @@ -1939,6 +2003,10 @@ upload=ngarko #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Opsion invalid, duhet te jete ne formen "name\=value" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Arkitekture e panjohur diff --git a/arduino-core/src/processing/app/i18n/Resources_sv.po b/arduino-core/src/processing/app/i18n/Resources_sv.po index b71b3819184..5e626fcd7d6 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sv.po +++ b/arduino-core/src/processing/app/i18n/Resources_sv.po @@ -16,23 +16,27 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anton Ryberg , 2015 # Daniel Jansson , 2012 # Daniel Sjöberg , 2013 # Daniel Sjöberg , 2013 # enhacker, 2017 # GregerA , 2014 -# GudenTorson, 2015 +# 9681eeebf1b63dfd86a394f2a10d26a6_ae7409d, 2015 # Jonas Bengtsson , 2013 -# Jonatan Nyberg, 2016 +# Jonatan Nyberg , 2016 # Patrik Hermansson , 2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 14:20+0000\n" -"Last-Translator: enhacker\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" +"Last-Translator: Cristian Maglie \n" "Language-Team: Swedish (http://www.transifex.com/mbanzi/arduino-ide-15/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -219,6 +223,11 @@ msgstr "Arkivera skiss som:" msgid "Archive sketch canceled." msgstr "Arkivering avbruten." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -625,6 +634,11 @@ msgstr "Kunde ej ta bort gammal version av {0}" msgid "Could not replace {0}" msgstr "Kunde ej byta ut {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Kunde ej arkivera skiss" @@ -668,6 +682,10 @@ msgstr "Databehandling" msgid "Data Storage" msgstr "Datalagring" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Minska indrag" @@ -676,6 +694,10 @@ msgstr "Minska indrag" msgid "Default" msgstr "Standard" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Ta bort" @@ -851,6 +873,11 @@ msgstr "Fel vid Ã¥tkomst av Arduinos datamapp." msgid "Error inside Serial.{0}()" msgstr "Fel inuti Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -870,6 +897,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Fel vi läsning av inställningar" @@ -904,6 +950,10 @@ msgstr "Fel vid bränning av bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -940,10 +990,6 @@ msgstr "Fel vid verifiering/uppladdning" msgid "Estonian" msgstr "Estniska" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estniska (Estland)" - #: Editor.java:516 msgid "Examples" msgstr "Exempel" @@ -1147,9 +1193,9 @@ msgstr "EJ KOMPATIBLA" msgid "Ignore Case" msgstr "Gör inte skillnad pÃ¥ smÃ¥ och stora bokstäver" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ignorerar felaktigt biblioteksnamn" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1175,6 +1221,10 @@ msgstr "Inkludera bibliotek" msgid "Incorrect IDE installation folder" msgstr "Ej korrekt IDE installationsmapp" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Öka indrag" @@ -1208,10 +1258,10 @@ msgstr "Installerad" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Installerar bibliotek: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1237,6 +1287,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Italienska" @@ -1269,10 +1330,10 @@ msgstr "Bibliotek lades till i dina bibliotek. Kontrollera \"Inkludera bibliotek msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Biblioteket är redan installerat: {0} version {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1689,10 +1750,10 @@ msgstr "Referens" msgid "Remove" msgstr "Ta bort" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Tar bort bibliotek: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1728,6 +1789,10 @@ msgstr "Ersätt med:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Rumänska" @@ -1851,11 +1916,14 @@ msgid "" " Serial Port menu?" msgstr "Serieporten ''{0}'' saknas. Valde du rätt frÃ¥n Verktyg > Serieport menyn?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1879,6 +1947,10 @@ msgstr "Inställningsproblem" msgid "Show Sketch Folder" msgstr "Visa skissmappen" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Visa detaljerad information vid: " @@ -2050,6 +2122,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2095,11 +2175,11 @@ msgid "" "but anything besides the code will be lost." msgstr "Skissmappen har försvunnit.\nFörsöker att spara om pÃ¥ samma plats,\nmen allt förutom koden kommer att försvinna." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2117,6 +2197,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2609,6 +2693,12 @@ msgstr "Ignorerar felaktig typsnittsstorlek {0}" msgid "name is null" msgstr "name är null" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu är null" @@ -2696,11 +2786,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2711,6 +2796,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_sv.properties b/arduino-core/src/processing/app/i18n/Resources_sv.properties index 635c07ff346..d08dde6f799 100644 --- a/arduino-core/src/processing/app/i18n/Resources_sv.properties +++ b/arduino-core/src/processing/app/i18n/Resources_sv.properties @@ -16,17 +16,21 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anton Ryberg , 2015 # Daniel Jansson , 2012 # Daniel Sj\u00f6berg , 2013 # Daniel Sj\u00f6berg , 2013 # enhacker, 2017 # GregerA , 2014 -# GudenTorson, 2015 +# 9681eeebf1b63dfd86a394f2a10d26a6_ae7409d, 2015 # Jonas Bengtsson , 2013 -# Jonatan Nyberg, 2016 +# Jonatan Nyberg , 2016 # Patrik Hermansson , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 14\:20+0000\nLast-Translator\: enhacker\nLanguage-Team\: Swedish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sv/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sv\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Swedish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/sv/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: sv\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(kr\u00e4ver omstart av Arduino) @@ -151,6 +155,10 @@ Archive\ sketch\ as\:=Arkivera skiss som\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Arkivering avbruten. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Arkivering av sketchen har avbrutits f\u00f6r att\nsketchen inte kunde sparas ordentligt. @@ -445,6 +453,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Kunde ej ta bort gammal version av {0} #, java-format Could\ not\ replace\ {0}=Kunde ej byta ut {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Kunde ej arkivera skiss @@ -475,12 +487,18 @@ Data\ Processing=Databehandling #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Datalagring +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Minska indrag #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Standard +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=Ta bort @@ -612,6 +630,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Fel vid \u00e5tkomst av Arduinos dat #, java-format Error\ inside\ Serial.{0}()=Fel inuti Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -626,6 +648,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Fel vid \u00f6ppning av serieporten ''{0} #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Fel vi l\u00e4sning av inst\u00e4llningar @@ -651,6 +685,9 @@ Error\ while\ burning\ bootloader.=Fel vid br\u00e4nning av bootloader. #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -679,9 +716,6 @@ Error\ while\ verifying/uploading=Fel vid verifiering/uppladdning #: Preferences.java:93 Estonian=Estniska -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estniska (Estland) - #: Editor.java:516 Examples=Exempel @@ -832,8 +866,8 @@ INCOMPATIBLE=EJ KOMPATIBLA #: FindReplace.java:96 Ignore\ Case=G\u00f6r inte skillnad p\u00e5 sm\u00e5 och stora bokst\u00e4ver -#: Base.java:1058 -Ignoring\ bad\ library\ name=Ignorerar felaktigt biblioteksnamn +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=Ignorerar skiss med felaktigt namn @@ -848,6 +882,9 @@ Include\ Library=Inkludera bibliotek #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Ej korrekt IDE installationsmapp +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u00d6ka indrag @@ -874,9 +911,9 @@ Installed=Installerad #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=Installerar bibliotek\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -897,6 +934,15 @@ Installing...=Installerar... #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Italienska @@ -921,9 +967,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Bibliotek #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Biblioteket \u00e4r redan installerat\: {0} version {1} +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Radnummer\: @@ -1236,9 +1282,9 @@ Reference=Referens #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Ta bort -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=Tar bort bibliotek\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1266,6 +1312,9 @@ Replace\ with\:=Ers\u00e4tt med\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Rum\u00e4nska @@ -1357,9 +1406,13 @@ Serial\ Monitor=Seriell monitor #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Serieporten ''{0}'' saknas. Valde du r\u00e4tt fr\u00e5n Verktyg > Serieport menyn? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Serieportar @@ -1377,6 +1430,9 @@ Settings\ issues=Inst\u00e4llningsproblem #: Editor.java:641 Show\ Sketch\ Folder=Visa skissmappen +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Visa detaljerad information vid\: @@ -1496,6 +1552,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Klassen Udp har d\u00f6pts om #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Biblioteket "{0}" kan ej anv\u00e4ndas.\nBiblioteksnamn f\u00e5r bara inneh\u00e5lla vanliga bokst\u00e4ver och nummer.\n(endast ASCII och inga mellanslag och kan ej b\u00f6rja med ett nummer) @@ -1520,8 +1580,8 @@ The\ selected\ sketch\ no\ longer\ exists.\nYou\ may\ need\ to\ restart\ Arduino #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Skissmappen har f\u00f6rsvunnit.\nF\u00f6rs\u00f6ker att spara om p\u00e5 samma plats,\nmen allt f\u00f6rutom koden kommer att f\u00f6rsvinna. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Skissbokmappen existerar ej l\u00e4ngre. Arduino kommer nu att byta till standardplatsen, och skapa en ny skissbokmapp om n\u00f6dv\u00e4ndigt. Arduino kommer sen att sluta referera till sig sj\u00e4lv i tredje person. @@ -1529,6 +1589,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1863,6 +1926,11 @@ ignoring\ invalid\ font\ size\ {0}=Ignorerar felaktig typsnittsstorlek {0} #: Editor.java:936 Editor.java:943 name\ is\ null=name \u00e4r null +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu \u00e4r null @@ -1930,10 +1998,6 @@ version\ {0}=version {0} #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1942,6 +2006,10 @@ version\ {0}=version {0} #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_ta.po b/arduino-core/src/processing/app/i18n/Resources_ta.po index dede7f9206c..a16ecda0bba 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ta.po +++ b/arduino-core/src/processing/app/i18n/Resources_ta.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Alagappan Karthikeyan , 2016 # Shankar C , 2015 # Nadar Solomon Sunder , 2014 @@ -24,7 +28,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 19:54+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Tamil (http://www.transifex.com/mbanzi/arduino-ide-15/language/ta/)\n" "MIME-Version: 1.0\n" @@ -212,6 +216,11 @@ msgstr "என வரைவை அவனபà¯à®ªà®Ÿà¯à®¤à¯:" msgid "Archive sketch canceled." msgstr "வரைவை ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®µà®¤à¯ ரதà¯à®¤à¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -618,6 +627,11 @@ msgstr "{0}வின௠பழைய பதிபà¯à®ªà¯ˆ அகறà¯à®± à®® msgid "Could not replace {0}" msgstr "{0}வை மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "வரைவை ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" @@ -661,6 +675,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "உளà¯à®¤à®³à¯à®³à®²à¯ˆ கà¯à®±à¯ˆà®•à¯à®•" @@ -669,6 +687,10 @@ msgstr "உளà¯à®¤à®³à¯à®³à®²à¯ˆ கà¯à®±à¯ˆà®•à¯à®•" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "நீகà¯à®•à¯" @@ -844,6 +866,11 @@ msgstr "Arduino தரவ௠கோபà¯à®ªà¯à®±à¯ˆà®¯à¯ˆ பெறà¯à®µ msgid "Error inside Serial.{0}()" msgstr "தொடரà¯à®¨à®¿à®²à¯ˆ.{0}()கà¯à®•à¯à®³à¯ பிழை உளà¯à®³à®¤à¯" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -863,6 +890,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "விரà¯à®ªà¯à®ªà®™à¯à®•ளை படிபà¯à®ªà®¤à®¿à®²à¯ பிழை" @@ -897,6 +943,10 @@ msgstr "தà¯à®µà®•à¯à®•௠நிரலை பதிவேறà¯à®±à¯à®®à¯ msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -933,10 +983,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "எடà¯à®¤à¯à®¤à¯à®•à¯à®•ாடà¯à®Ÿà¯à®•ளà¯" @@ -1140,9 +1186,9 @@ msgstr "" msgid "Ignore Case" msgstr "வேறà¯à®±à¯à®®à¯ˆà®¯à¯ˆ அலடà¯à®šà®¿à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "தவறான நூலகபà¯à®ªà¯†à®¯à®°à¯ˆ அலடà¯à®šà®¿à®¯à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1168,6 +1214,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "உளà¯à®¤à®³à¯à®³à®²à¯ˆ அதிகபà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•" @@ -1201,9 +1251,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1230,6 +1280,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "இதà¯à®¤à®¾à®²à®¿à®¯à®©à¯" @@ -1262,9 +1323,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1682,9 +1743,9 @@ msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1721,6 +1782,10 @@ msgstr "இதாக மாறà¯à®±à¯:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "ரோமானியமà¯" @@ -1844,12 +1909,15 @@ msgid "" " Serial Port menu?" msgstr "தொடரà¯à®¨à®¿à®²à¯ˆ தà¯à®±à¯ˆ ''{0}''யை காணவிலà¯à®²à¯ˆ. நீஙà¯à®•ள௠சரியானதை கரà¯à®µà®¿à®•ள௠> தொடரà¯à®¨à®¿à®²à¯ˆ தà¯à®±à¯ˆ படà¯à®Ÿà®¿à®¯à®²à®¿à®²à¯ தேரà¯à®µà¯ செயà¯à®¤à¯€à®°à¯à®•ளா?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "தொடரà¯à®¨à®¿à®²à¯ˆ தà¯à®±à¯ˆ {0} காணவிலà¯à®²à¯ˆ.\nவேற௠தொடரà¯à®¨à®¿à®²à¯ˆ தà¯à®±à¯ˆ கொணà¯à®Ÿà¯ மேலேறà¯à®± à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•வà¯à®®à¯?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1872,6 +1940,10 @@ msgstr "அமைபà¯à®ªà¯ சிகà¯à®•லà¯à®•ளà¯" msgid "Show Sketch Folder" msgstr "வரைவ௠உறையை காடà¯à®Ÿà¯à®•" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "இதன௠போத௠வேரà¯à®ªà¯‹à®šà¯ வெளியீடà¯à®Ÿà¯ˆ காணà¯à®ªà®¿à®•à¯à®•வà¯à®®à¯:" @@ -2043,6 +2115,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "\"{0}\" கோபà¯à®ªà¯ \"{1}\" எனà¯à®± பெயர௠கொணà¯à®Ÿ\nவரைவ௠உறையில௠மடà¯à®Ÿà¯à®®à¯‡ இரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯.\nஇநà¯à®¤ உறையை உரà¯à®µà®¾à®•à¯à®•ி, கோபà¯à®ªà¯ˆ நகறà¯à®±à®¿, à®®à¯à®©à¯à®©à¯‡à®°à®µà®¾?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2088,11 +2168,11 @@ msgid "" "but anything besides the code will be lost." msgstr "வரைவ௠உறை மறைநà¯à®¤à¯à®µà®¿à®Ÿà¯à®Ÿà®¤à¯.\n அதே இடதà¯à®¤à®¿à®² சேமிகà¯à®• மறà¯à®ªà®Ÿà®¿à®¯à¯à®®à¯ à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•ிறேனà¯,\nஆனாலà¯, கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ தவிர மறà¯à®±à®µà¯ˆà®•ளை இழநà¯à®¤à¯à®µà®¿à®Ÿà¯à®µà¯€à®°à¯à®•ளà¯." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2110,6 +2190,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2602,6 +2686,12 @@ msgstr "தவறான எழà¯à®¤à¯à®¤à¯à®°à¯ அளவை {0} அளச msgid "name is null" msgstr "பெயர௠வெறà¯à®±à®¾à®• உளà¯à®³à®¤à¯" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "தொடர௠தெரிவà¯à®¤à®¿à®°à¯ˆ வெறà¯à®±à®¾à®• உளà¯à®³à®¤à¯" @@ -2689,11 +2779,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2704,6 +2789,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_ta.properties b/arduino-core/src/processing/app/i18n/Resources_ta.properties index d22a3c2b512..e134bb37d93 100644 --- a/arduino-core/src/processing/app/i18n/Resources_ta.properties +++ b/arduino-core/src/processing/app/i18n/Resources_ta.properties @@ -16,10 +16,14 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Alagappan Karthikeyan , 2016 # Shankar C , 2015 # Nadar Solomon Sunder , 2014 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 19\:54+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Tamil (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ta/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ta\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Tamil (http\://www.transifex.com/mbanzi/arduino-ide-15/language/ta/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: ta\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (Arduino \u0bae\u0bb1\u0bc1\u0ba4\u0bc1\u0bb5\u0b95\u0bcd\u0b95\u0bae\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1) @@ -144,6 +148,10 @@ Archive\ sketch\ as\:=\u0b8e\u0ba9 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0b85\u0bb5\u #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0b86\u0bb5\u0ba3\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb5\u0ba4\u0bc1 \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0b86\u0bb5\u0ba3\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb5\u0ba4\u0bc1 \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1. \u0b8f\u0ba9\u0bc6\u0ba9\u0bcd\u0bb1\u0bbe\u0bb2\u0bcd, \n\u0b85\u0ba8\u0bcd\u0ba4 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0b95 \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. @@ -438,6 +446,10 @@ Could\ not\ remove\ old\ version\ of\ {0}={0}\u0bb5\u0bbf\u0ba9\u0bcd \u0baa\u0b #, java-format Could\ not\ replace\ {0}={0}\u0bb5\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8 +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0b86\u0bb5\u0ba3\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8 @@ -468,12 +480,18 @@ Cut=\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95 #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bb2\u0bc8 \u0b95\u0bc1\u0bb1\u0bc8\u0b95\u0bcd\u0b95 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 Delete=\u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1 @@ -605,6 +623,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Arduino \u0ba4\u0bb0\u0bb5\u0bc1 \u0 #, java-format Error\ inside\ Serial.{0}()=\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8.{0}()\u0b95\u0bcd\u0b95\u0bc1\u0bb3\u0bcd \u0baa\u0bbf\u0bb4\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1 +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -619,6 +641,18 @@ Error\ opening\ serial\ port\ ''{0}''.=\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bb #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=\u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b99\u0bcd\u0b95\u0bb3\u0bc8 \u0baa\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0ba4\u0bbf\u0bb2\u0bcd \u0baa\u0bbf\u0bb4\u0bc8 @@ -644,6 +678,9 @@ Error\ while\ burning\ bootloader.=\u0ba4\u0bc1\u0bb5\u0b95\u0bcd\u0b95\u0bc1 \u #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -672,9 +709,6 @@ Error\ while\ printing.=\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0bae\u0bcd\u #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=\u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd @@ -825,8 +859,8 @@ Hungarian=\u0bb9\u0b99\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd #: FindReplace.java:96 Ignore\ Case=\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bc8\u0baf\u0bc8 \u0b85\u0bb2\u0b9f\u0bcd\u0b9a\u0bbf\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u0ba4\u0bb5\u0bb1\u0bbe\u0ba9 \u0ba8\u0bc2\u0bb2\u0b95\u0baa\u0bcd\u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b85\u0bb2\u0b9f\u0bcd\u0b9a\u0bbf\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u0ba4\u0bb5\u0bb1\u0bbe\u0ba9 \u0baa\u0bc6\u0baf\u0bb0\u0bcd \u0b95\u0bca\u0ba3\u0bcd\u0b9f \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0b85\u0bb3\u0b9a\u0bcd\u0b9a\u0bbf\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1 @@ -841,6 +875,9 @@ Ignoring\ sketch\ with\ bad\ name=\u0ba4\u0bb5\u0bb1\u0bbe\u0ba9 \u0baa\u0bc6\u0 #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bb2\u0bc8 \u0b85\u0ba4\u0bbf\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95 @@ -867,9 +904,9 @@ Increase\ Indent=\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bb2\u0bc8 \u0b85\u #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -890,6 +927,15 @@ Increase\ Indent=\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bb2\u0bc8 \u0b85\u #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=\u0b87\u0ba4\u0bcd\u0ba4\u0bbe\u0bb2\u0bbf\u0baf\u0ba9\u0bcd @@ -914,9 +960,9 @@ Latvian=\u0bb2\u0bc7\u0b9f\u0bcd\u0bb5\u0bbf\u0baf\u0ba9\u0bcd #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1229,9 +1275,9 @@ Reference=\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1259,6 +1305,9 @@ Replace\ with\:=\u0b87\u0ba4\u0bbe\u0b95 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=\u0bb0\u0bc7\u0bbe\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd @@ -1350,9 +1399,13 @@ Serial\ Monitor=\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0b95\u0 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0ba4\u0bc1\u0bb1\u0bc8 ''{0}''\u0baf\u0bc8 \u0b95\u0bbe\u0ba3\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0ba9\u0ba4\u0bc8 \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd > \u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0ba4\u0bc1\u0bb1\u0bc8 \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bbf\u0bb2\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0ba4\u0bc1\u0bb1\u0bc8 {0} \u0b95\u0bbe\u0ba3\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.\n\u0bb5\u0bc7\u0bb1\u0bc1 \u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0ba4\u0bc1\u0bb1\u0bc8 \u0b95\u0bca\u0ba3\u0bcd\u0b9f\u0bc1 \u0bae\u0bc7\u0bb2\u0bc7\u0bb1\u0bcd\u0bb1 \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1370,6 +1423,9 @@ Settings\ issues=\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbf\u0b95\u #: Editor.java:641 Show\ Sketch\ Folder=\u0bb5\u0bb0\u0bc8\u0bb5\u0bc1 \u0b89\u0bb1\u0bc8\u0baf\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95 +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u0b87\u0ba4\u0ba9\u0bcd \u0baa\u0bcb\u0ba4\u0bc1 \u0bb5\u0bc7\u0bb0\u0bcd\u0baa\u0bcb\u0b9a\u0bc1 \u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b95\u0bbe\u0ba3\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd\: @@ -1489,6 +1545,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp class, EthernetUdp \u0b8e\ #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?="{0}" \u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1 "{1}" \u0b8e\u0ba9\u0bcd\u0bb1 \u0baa\u0bc6\u0baf\u0bb0\u0bcd \u0b95\u0bca\u0ba3\u0bcd\u0b9f\n\u0bb5\u0bb0\u0bc8\u0bb5\u0bc1 \u0b89\u0bb1\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bc7 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bc1\u0bae\u0bcd.\n\u0b87\u0ba8\u0bcd\u0ba4 \u0b89\u0bb1\u0bc8\u0baf\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bbf, \u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc8 \u0ba8\u0b95\u0bb1\u0bcd\u0bb1\u0bbf, \u0bae\u0bc1\u0ba9\u0bcd\u0ba9\u0bc7\u0bb0\u0bb5\u0bbe? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)="{0}" \u0ba8\u0bc2\u0bb2\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.\n\u0ba8\u0bc2\u0bb2\u0b95 \u0baa\u0bc6\u0baf\u0bb0\u0bcd\u0b95\u0bb3\u0bbf\u0bb2\u0bcd \u0b85\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc8 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b8e\u0ba3\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bc7 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd.\n(\u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf \u0b87\u0bb2\u0bcd\u0bb2\u0bbe\u0bae\u0bb2\u0bcd ASCII \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bcd, \u0b87\u0ba4\u0bc1 \u0b8e\u0ba3\u0bcd\u0ba9\u0bbf\u0bb2\u0bcd \u0b86\u0bb0\u0bae\u0bcd\u0baa\u0bae\u0bbe\u0b95\u0b95\u0bcd \u0b95\u0bc2\u0b9f\u0bbe\u0ba4\u0bc1) @@ -1513,8 +1573,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u0bb5\u0bb0\u0bc8\u0bb5\u0bc1 \u0b89\u0bb1\u0bc8 \u0bae\u0bb1\u0bc8\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1.\n \u0b85\u0ba4\u0bc7 \u0b87\u0b9f\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2 \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bb1\u0bc1\u0baa\u0b9f\u0bbf\u0baf\u0bc1\u0bae\u0bcd \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0bc7\u0ba9\u0bcd,\n\u0b86\u0ba9\u0bbe\u0bb2\u0bcd, \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0ba4\u0bb5\u0bbf\u0bb0 \u0bae\u0bb1\u0bcd\u0bb1\u0bb5\u0bc8\u0b95\u0bb3\u0bc8 \u0b87\u0bb4\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bc1\u0bb5\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bcd. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u0bb5\u0bb0\u0bc8\u0bb5\u0bc1\u0bb1\u0bc8 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8.\nArduino \u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bbe\u0ba9 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0ba4\u0bcd\u0ba4\u0b95 \u0b87\u0b9f\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bbe\u0bb1\u0bbf\u0baf\u0baa\u0bbf\u0ba9\u0bcd,\n\u0ba4\u0bc7\u0bb5\u0bc8\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbe\u0bb2\u0bcd \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0bb5\u0bb0\u0bc8\u0bb5\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0ba4\u0bcd\u0ba4\u0b95 \u0b89\u0bb1\u0bc8\u0baf\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \nArduino \u0ba4\u0ba9\u0bcd\u0ba9\u0bc8\u0baa\u0bb1\u0bcd\u0bb1\u0bbf\u0baf\u0bc7 \u0bae\u0bc2\u0ba9\u0bcd\u0bb1\u0bbe\u0bb5\u0ba4\u0bc1 \u0bae\u0ba9\u0bbf\u0ba4\u0ba9\u0bcd \u0baa\u0bcb\u0bb2 \n\u0baa\u0bc7\u0b9a\u0bc1\u0bb5\u0ba4\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0b95\u0bcd\u0b95\u0bca\u0bb3\u0bcd\u0bb3\u0bc1\u0bae\u0bcd. @@ -1522,6 +1582,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1856,6 +1919,11 @@ ignoring\ invalid\ font\ size\ {0}=\u0ba4\u0bb5\u0bb1\u0bbe\u0ba9 \u0b8e\u0bb4\u #: Editor.java:936 Editor.java:943 name\ is\ null=\u0baa\u0bc6\u0baf\u0bb0\u0bcd \u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=\u0ba4\u0bca\u0b9f\u0bb0\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0bb5\u0bc1\u0ba4\u0bbf\u0bb0\u0bc8 \u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1 @@ -1923,10 +1991,6 @@ upload=\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1 #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1935,6 +1999,10 @@ upload=\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1 #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_te.po b/arduino-core/src/processing/app/i18n/Resources_te.po index 12be13014f1..d97a13ba0a7 100644 --- a/arduino-core/src/processing/app/i18n/Resources_te.po +++ b/arduino-core/src/processing/app/i18n/Resources_te.po @@ -16,12 +16,16 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-08-03 11:07+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Telugu (http://www.transifex.com/mbanzi/arduino-ide-15/language/te/)\n" "MIME-Version: 1.0\n" @@ -209,6 +213,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -615,6 +624,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -658,6 +672,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -666,6 +684,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "" @@ -841,6 +863,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -860,6 +887,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -894,6 +940,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -930,10 +980,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "" @@ -1137,8 +1183,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1165,6 +1211,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1198,9 +1248,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1227,6 +1277,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "" @@ -1259,9 +1320,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1679,9 +1740,9 @@ msgstr "" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1718,6 +1779,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "" @@ -1841,11 +1906,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1869,6 +1937,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2040,6 +2112,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2085,11 +2165,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2107,6 +2187,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2599,6 +2683,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2686,11 +2776,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2701,6 +2786,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_te.properties b/arduino-core/src/processing/app/i18n/Resources_te.properties index 6674225fbc0..9bc078434de 100644 --- a/arduino-core/src/processing/app/i18n/Resources_te.properties +++ b/arduino-core/src/processing/app/i18n/Resources_te.properties @@ -16,7 +16,11 @@ # Translators: # Translators: # Translators: -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-08-03 11\:07+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Telugu (http\://www.transifex.com/mbanzi/arduino-ide-15/language/te/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: te\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +# Translators: +# Translators: +# Translators: +# Translators: +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Telugu (http\://www.transifex.com/mbanzi/arduino-ide-15/language/te/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: te\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -141,6 +145,10 @@ #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -435,6 +443,10 @@ #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -465,12 +477,18 @@ #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 !Delete= @@ -602,6 +620,10 @@ #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -616,6 +638,18 @@ #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -641,6 +675,9 @@ #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -669,9 +706,6 @@ #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 !Examples= @@ -822,8 +856,8 @@ #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -838,6 +872,9 @@ #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -864,9 +901,9 @@ #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -887,6 +924,15 @@ #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 !Italian= @@ -911,9 +957,9 @@ #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1226,9 +1272,9 @@ #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1256,6 +1302,9 @@ #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 !Romanian= @@ -1347,9 +1396,13 @@ #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1367,6 +1420,9 @@ #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1486,6 +1542,10 @@ #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1510,8 +1570,8 @@ #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1519,6 +1579,9 @@ #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1853,6 +1916,11 @@ #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1920,10 +1988,6 @@ #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1932,6 +1996,10 @@ #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_th.po b/arduino-core/src/processing/app/i18n/Resources_th.po index ff18979f3e4..c1fffa4eafb 100644 --- a/arduino-core/src/processing/app/i18n/Resources_th.po +++ b/arduino-core/src/processing/app/i18n/Resources_th.po @@ -16,13 +16,19 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: +# Sippawit Thammawiset , 2018-2020 +# Tony Wong , 2018 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-08-03 11:07+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2020-02-28 17:52+0000\n" +"Last-Translator: Sippawit Thammawiset \n" "Language-Team: Thai (http://www.transifex.com/mbanzi/arduino-ide-15/language/th/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +38,7 @@ msgstr "" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" -msgstr "" +msgstr "(จำเป็นต้องเริ่ม Arduino ใหม่)" #: ../../../processing/app/debug/Compiler.java:529 #, java-format @@ -63,7 +69,7 @@ msgstr "" #: Preferences.java:478 msgid "(edit only when Arduino is not running)" -msgstr "" +msgstr "(ใช้ในà¸à¸£à¸“ีที่ Arduino ทำงานผิดปà¸à¸•ิเท่านั้น)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" @@ -81,7 +87,7 @@ msgstr "" #: Sketch.java:746 msgid ".pde -> .ino" -msgstr "" +msgstr ".pde -> .ino" #: Editor.java:2053 msgid "" @@ -94,7 +100,7 @@ msgstr "" #: Editor.java:2169 #, java-format msgid "A folder named \"{0}\" already exists. Can't open sketch." -msgstr "" +msgstr "มีà¹à¸Ÿà¹‰à¸¡ \"{0}\" อยู่à¹à¸¥à¹‰à¸§ ไม่สามารถเปิดงานได้" #: Base.java:2690 #, java-format @@ -105,12 +111,12 @@ msgstr "" msgid "" "A new version of Arduino is available,\n" "would you like to visit the Arduino download page?" -msgstr "" +msgstr "Arduino เวอร์ชันใหม่พร้อมใช้งานà¹à¸¥à¹‰à¸§\nคุณต้องà¸à¸²à¸£à¹„ปที่หน้าดาวน์โหลด Arduino ตอนนี้เลยหรือไม่?" #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format msgid "A newer {0} package is available" -msgstr "" +msgstr "มีà¹à¸žà¹‡à¸à¹€à¸à¸ˆà¹ƒà¸«à¸¡à¹ˆ {0} ที่พร้อมใช้งาน" #: ../../../../../app/src/processing/app/Base.java:2307 msgid "A subfolder of your sketchbook is not a valid library" @@ -118,7 +124,7 @@ msgstr "" #: Editor.java:1116 msgid "About Arduino" -msgstr "" +msgstr "เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸š Arduino" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" @@ -126,19 +132,19 @@ msgstr "" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." -msgstr "" +msgstr "เพิ่มไลบรารี .ZIP..." #: Editor.java:650 msgid "Add File..." -msgstr "" +msgstr "เพิ่มไฟล์..." #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 msgid "Additional Boards Manager URLs" -msgstr "" +msgstr "ตัวจัดà¸à¸²à¸£à¹€à¸žà¸´à¹ˆà¸¡ URLs บอร์ด" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "" +msgstr "เพิ่ม URLs บอร์ด:" #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" @@ -156,7 +162,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 msgid "All" -msgstr "" +msgstr "ทั้งหมด" #: tools/FixEncoding.java:77 msgid "" @@ -171,17 +177,17 @@ msgstr "" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" -msgstr "" +msgstr "เà¸à¸´à¸”ข้อผิดผลาดขณะà¸à¸³à¸¥à¸±à¸‡à¸­à¸±à¸›à¹‚หลด" #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "An error occurred while verifying the sketch" -msgstr "" +msgstr "เà¸à¸´à¸”ข้อผิดผลาดขณะà¸à¸³à¸¥à¸±à¸‡à¸•รวจสอบ" #: ../../../processing/app/BaseNoGui.java:521 msgid "An error occurred while verifying/uploading the sketch" -msgstr "" +msgstr "เà¸à¸´à¸”ข้อผิดผลาดขณะà¸à¸³à¸¥à¸±à¸‡à¸­à¸±à¸›à¹€à¸”ต/ตรวจสอบ" #: Base.java:228 msgid "" @@ -199,14 +205,19 @@ msgstr "" #: tools/Archiver.java:48 msgid "Archive Sketch" -msgstr "" +msgstr "บีบอัดงาน" #: tools/Archiver.java:109 msgid "Archive sketch as:" -msgstr "" +msgstr "บีบอัดงานเป็น:" #: tools/Archiver.java:139 msgid "Archive sketch canceled." +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸šà¸µà¸šà¸­à¸µà¸”งาน" + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" msgstr "" #: tools/Archiver.java:75 @@ -217,15 +228,15 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:24 msgid "Arduino" -msgstr "" +msgstr "Arduino" #: ../../../processing/app/I18n.java:83 msgid "Arduino ARM (32-bits) Boards" -msgstr "" +msgstr "บอร์ด Arduino ARM (32 บิต)" #: ../../../processing/app/I18n.java:82 msgid "Arduino AVR Boards" -msgstr "" +msgstr "บอร์ด Arduino ARM" #: Editor.java:2137 msgid "" @@ -247,16 +258,16 @@ msgstr "" #: ../../../processing/app/EditorStatus.java:471 msgid "Arduino: " -msgstr "" +msgstr "Arduino:" #: Sketch.java:588 #, java-format msgid "Are you sure you want to delete \"{0}\"?" -msgstr "" +msgstr "ต้องà¸à¸²à¸£à¸—ี่จะลบ \"{0}\" หรือไม่?" #: Sketch.java:587 msgid "Are you sure you want to delete this sketch?" -msgstr "" +msgstr "ต้องà¸à¸²à¸£à¸—ี่จะลบงานนี้หรือไม่?" #: ../../../processing/app/Base.java:356 msgid "Argument required for --board" @@ -294,11 +305,11 @@ msgstr "" #: tools/AutoFormat.java:91 msgid "Auto Format" -msgstr "" +msgstr "รูปà¹à¸šà¸šà¸­à¸±à¸•โนมัติ" #: tools/AutoFormat.java:944 msgid "Auto Format finished." -msgstr "" +msgstr "รูปà¹à¸šà¸šà¸­à¸±à¸•โนมัติเสร็จสิ้น" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 msgid "Auto-detect proxy settings" @@ -306,7 +317,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 msgid "Automatic" -msgstr "" +msgstr "อัตโนมัติ" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 msgid "Automatic proxy configuration URL:" @@ -314,16 +325,16 @@ msgstr "" #: SerialMonitor.java:110 msgid "Autoscroll" -msgstr "" +msgstr "เลื่อนอัตโนมัติ" #: Editor.java:2619 #, java-format msgid "Bad error line: {0}" -msgstr "" +msgstr "เà¸à¸´à¸”ข้อผิดผลาดในบรรทัดที่: {0}" #: Editor.java:2136 msgid "Bad file selected" -msgstr "" +msgstr "à¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¹„ฟล์ที่ไม่ถูà¸à¸•้อง" #: ../../../processing/app/Preferences.java:149 msgid "Basque" @@ -336,17 +347,17 @@ msgstr "" #: ../../../processing/app/Base.java:1433 #: ../../../processing/app/Editor.java:707 msgid "Board" -msgstr "" +msgstr "บอร์ด" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "ข้อมูลบอร์ด" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "" +msgstr "บอร์ดที่ {0} ไม่พร้อมใช้งาน" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -362,15 +373,15 @@ msgstr "" #: ../../../processing/app/EditorStatus.java:472 msgid "Board: " -msgstr "" +msgstr "บอร์ด:" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Boards Manager" -msgstr "" +msgstr "ตัวจัดà¸à¸²à¸£à¸šà¸­à¸£à¹Œà¸”" #: ../../../../../app/src/processing/app/Base.java:1320 msgid "Boards Manager..." -msgstr "" +msgstr "จัดà¸à¸²à¸£à¸šà¸­à¸£à¹Œà¸”..." #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 msgid "Boards included in this package:" @@ -391,7 +402,7 @@ msgstr "" #: Preferences.java:81 msgid "Browse" -msgstr "" +msgstr "ค้นดู" #: ../../../processing/app/Sketch.java:1530 msgid "Build options changed, rebuilding all" @@ -399,7 +410,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Base.java:1210 msgid "Built-in Examples" -msgstr "" +msgstr "ตัวอย่างที่ให้มา" #: ../../../processing/app/Preferences.java:80 msgid "Bulgarian" @@ -435,7 +446,7 @@ msgstr "" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 msgid "Can't find the sketch in the specified path" -msgstr "" +msgstr "ไม่พบงานในที่อยู่นี้" #: ../../../processing/app/Preferences.java:92 msgid "Canadian French" @@ -444,7 +455,7 @@ msgstr "" #: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2064 Editor.java:2145 Editor.java:2465 msgid "Cancel" -msgstr "" +msgstr "ยà¸à¹€à¸¥à¸´à¸" #: ../../../processing/app/Base.java:465 msgid "Cannot specify any sketch files" @@ -460,7 +471,7 @@ msgstr "" #: Preferences.java:419 msgid "Check for updates on startup" -msgstr "" +msgstr "ตรวจสอบà¸à¸²à¸£à¸­à¸±à¸›à¹€à¸”ทเมื่อเริ่ม" #: ../../../processing/app/Preferences.java:142 msgid "Chinese (China)" @@ -476,51 +487,51 @@ msgstr "" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "ล้างเอาต์พุต" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" -msgstr "" +msgstr "คลิà¸à¸—ี่นี่เพื่อดู URLs บอร์ดที่ไม่เป็นทางà¸à¸²à¸£" #: Editor.java:521 Editor.java:2024 msgid "Close" -msgstr "" +msgstr "ปิด" #: Editor.java:1208 Editor.java:2749 msgid "Comment/Uncomment" -msgstr "" +msgstr "คอมเมนท์/ยà¸à¹€à¸¥à¸´à¸à¸„อมเมนท์" #: ../../../../../arduino-core/src/processing/app/I18n.java:30 msgid "Communication" -msgstr "" +msgstr "à¸à¸²à¸£à¸ªà¸·à¹ˆà¸­à¸ªà¸²à¸£" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " -msgstr "" +msgstr "à¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹€à¸•ือนคอมไพเลอร์:" #: Sketch.java:1608 Editor.java:1890 msgid "Compiling sketch..." -msgstr "" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„อมไพล์..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" -msgstr "" +msgstr "สนับสนุน" #: Editor.java:1157 Editor.java:2707 msgid "Copy" -msgstr "" +msgstr "คัดลอà¸" #: Editor.java:1177 Editor.java:2723 msgid "Copy as HTML" -msgstr "" +msgstr "คัดลอà¸à¹€à¸›à¹‡à¸™ HTML" #: ../../../processing/app/EditorStatus.java:455 msgid "Copy error messages" -msgstr "" +msgstr "คัดลอà¸à¸‚้อผิดผลาด" #: Editor.java:1165 Editor.java:2715 msgid "Copy for Forum" -msgstr "" +msgstr "คัดลอà¸à¸ªà¸³à¸«à¸£à¸±à¸šà¸Ÿà¸­à¸£à¸±à¸¡" #: Sketch.java:1089 #, java-format @@ -615,6 +626,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -640,7 +656,7 @@ msgstr "" #: Editor.java:1149 Editor.java:2699 msgid "Cut" -msgstr "" +msgstr "ตัด" #: ../../../../../app/src/processing/app/Preferences.java:119 msgid "Czech (Czech Republic)" @@ -652,27 +668,35 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:36 msgid "Data Processing" -msgstr "" +msgstr "à¸à¸²à¸£à¸›à¸£à¸°à¸¡à¸§à¸¥à¸œà¸¥à¸‚้อมูล" #: ../../../../../arduino-core/src/processing/app/I18n.java:35 msgid "Data Storage" -msgstr "" +msgstr "à¸à¸²à¸£à¸ˆà¸±à¸”เà¸à¹‡à¸šà¸‚้อมูล" + +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "ลดขนาดตัวหนังสือ" #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" -msgstr "" +msgstr "ลดย่อหน้า" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 msgid "Default" -msgstr "" +msgstr "พื้นà¸à¸²à¸™" + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "ธีมพื้นà¸à¸²à¸™" #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" -msgstr "" +msgstr "ลบ" #: ../../../../../arduino-core/src/processing/app/I18n.java:33 msgid "Device Control" -msgstr "" +msgstr "à¸à¸²à¸£à¸„วบคุมอุปà¸à¸£à¸“์" #: debug/Uploader.java:199 msgid "" @@ -686,11 +710,11 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:29 msgid "Display" -msgstr "" +msgstr "à¸à¸²à¸£à¹à¸ªà¸”งผล" #: ../../../processing/app/Preferences.java:438 msgid "Display line numbers" -msgstr "" +msgstr "à¹à¸ªà¸”งเลขบรรทัด" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format @@ -701,11 +725,11 @@ msgstr "" #: Editor.java:2064 msgid "Don't Save" -msgstr "" +msgstr "ไม่ต้องบันทึà¸" #: Editor.java:2275 Editor.java:2311 msgid "Done Saving." -msgstr "" +msgstr "บันทึà¸à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸´à¹‰à¸™" #: Editor.java:2510 msgid "Done burning bootloader." @@ -714,11 +738,11 @@ msgstr "" #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 msgid "Done compiling" -msgstr "" +msgstr "คอมไพล์เสร็จสิ้น" #: Editor.java:1911 Editor.java:1928 msgid "Done compiling." -msgstr "" +msgstr "คอมไพล์เสร็จสิ้น" #: Editor.java:2564 msgid "Done printing." @@ -726,11 +750,11 @@ msgstr "" #: ../../../processing/app/BaseNoGui.java:514 msgid "Done uploading" -msgstr "" +msgstr "อัปโหลดเสร็จสิ้น" #: Editor.java:2395 Editor.java:2431 msgid "Done uploading." -msgstr "" +msgstr "อัปโหลดเสร็จสิ้น" #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format @@ -769,23 +793,23 @@ msgstr "" #: ../../../../../app/src/processing/app/Editor.java:1309 msgid "Edison Help" -msgstr "" +msgstr "à¸à¸²à¸£à¸Šà¹ˆà¸§à¸¢à¹€à¸«à¸¥à¸·à¸­ Edison" #: Editor.java:1130 msgid "Edit" -msgstr "" +msgstr "à¹à¸à¹‰à¹„ข" #: Preferences.java:370 msgid "Editor font size: " -msgstr "" +msgstr "ขนาดตัวหนังสือ:" #: Preferences.java:353 msgid "Editor language: " -msgstr "" +msgstr "ภาษา:" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 msgid "Enable Code Folding" -msgstr "" +msgstr "ใช้งานโค้ด Folding" #: Preferences.java:92 msgid "English" @@ -798,15 +822,15 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 msgid "Enter a comma separated list of urls" -msgstr "" +msgstr "ใส่เครื่องหมายคอมมาเพื่อà¹à¸¢à¸à¸£à¸²à¸¢à¸à¸²à¸£ urls" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 msgid "Enter additional URLs, one for each row" -msgstr "" +msgstr "à¸à¸£à¸­à¸ URLs, บรรทัดละ 1 URL" #: Editor.java:1062 msgid "Environment" -msgstr "" +msgstr "สภาพà¹à¸§à¸”ล้อม" #: Base.java:2147 Preferences.java:256 Sketch.java:475 Sketch.java:481 #: Sketch.java:496 Sketch.java:503 Sketch.java:526 Sketch.java:543 @@ -841,6 +865,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -860,6 +889,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -894,6 +942,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -930,13 +982,9 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" -msgstr "" +msgstr "ตัวอย่าง" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" @@ -962,7 +1010,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Editor.java:750 msgid "Export compiled Binary" -msgstr "" +msgstr "บันทึà¸à¸„อมไพล์เป็น HEX" #: ../../../processing/app/Base.java:416 #, java-format @@ -980,7 +1028,7 @@ msgstr "" #: Editor.java:491 msgid "File" -msgstr "" +msgstr "ไฟล์" #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format @@ -993,7 +1041,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 msgid "Filter your search..." -msgstr "" +msgstr "ค้นหา..." #: FindReplace.java:124 FindReplace.java:127 msgid "Find" @@ -1001,19 +1049,19 @@ msgstr "" #: Editor.java:1249 msgid "Find Next" -msgstr "" +msgstr "ค้นหาถัดไป" #: Editor.java:1259 msgid "Find Previous" -msgstr "" +msgstr "ค้นหาà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" #: Editor.java:1086 Editor.java:2775 msgid "Find in Reference" -msgstr "" +msgstr "ค้นหาในเอà¸à¸ªà¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡" #: Editor.java:1234 msgid "Find..." -msgstr "" +msgstr "ค้นหา..." #: FindReplace.java:80 msgid "Find:" @@ -1026,7 +1074,7 @@ msgstr "" #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 msgid "Fix Encoding & Reload" -msgstr "" +msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¹€à¸‚้ารหัสà¹à¸¥à¸°à¹€à¸£à¸´à¹ˆà¸¡à¹ƒà¸«à¸¡à¹ˆ" #: ../../../processing/app/BaseNoGui.java:318 msgid "" @@ -1045,7 +1093,7 @@ msgstr "" #: Editor.java:1097 msgid "Frequently Asked Questions" -msgstr "" +msgstr "คำถามที่พบบ่อย" #: Preferences.java:96 msgid "Galician" @@ -1057,7 +1105,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Editor.java:1288 msgid "Galileo Help" -msgstr "" +msgstr "à¸à¸²à¸£à¸Šà¹ˆà¸§à¸¢à¹€à¸«à¸¥à¸·à¸­ Galileo" #: ../../../processing/app/Preferences.java:94 msgid "Georgian" @@ -1069,31 +1117,31 @@ msgstr "" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "à¹à¸ªà¸”งข้อมูลบอร์ด" #: Editor.java:1054 msgid "Getting Started" -msgstr "" +msgstr "เริ่มต้น" #: ../../../processing/app/Sketch.java:1646 #, java-format msgid "" "Global variables use {0} bytes ({2}%%) of dynamic memory, leaving {3} bytes " "for local variables. Maximum is {1} bytes." -msgstr "" +msgstr "ตัวà¹à¸›à¸£à¸—ั้งหมดใช้ {0} ไบต์ ({2}%%) จาà¸à¸«à¸™à¹ˆà¸§à¸¢à¸„วามจำไดนามิภ{3} ไบต์สำหรับตัวà¹à¸›à¸£à¸žà¸·à¹‰à¸™à¸—ี่ สูงสุด {1} ไบต์" #: ../../../processing/app/Sketch.java:1651 #, java-format msgid "Global variables use {0} bytes of dynamic memory." -msgstr "" +msgstr "ตัวà¹à¸›à¸£à¸—ั้งหมดใช้ {0} ไบต์ จาà¸à¸«à¸™à¹ˆà¸§à¸¢à¸„วามจำไดนามิà¸" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 msgid "Go to line" -msgstr "" +msgstr "ไปบรรทัดที่..." #: ../../../../../app/src/processing/app/Editor.java:1460 msgid "Go to line..." -msgstr "" +msgstr "ไปบรรทัดที่..." #: Preferences.java:98 msgid "Greek" @@ -1105,7 +1153,7 @@ msgstr "" #: Editor.java:1015 msgid "Help" -msgstr "" +msgstr "ช่วยเหลือ" #: Preferences.java:99 msgid "Hindi" @@ -1137,8 +1185,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1158,16 +1206,20 @@ msgstr "" #: ../../../../../app/src/processing/app/Editor.java:778 msgid "Include Library" -msgstr "" +msgstr "เพิ่มไลบรารี" #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "เพิ่มขนาดตัวหนังสือ" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" -msgstr "" +msgstr "เพิ่มย่อหน้า" #: Preferences.java:101 msgid "Indonesian" @@ -1184,7 +1236,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 msgid "Install" -msgstr "" +msgstr "ติดตั้ง" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 msgid "Installation completed!" @@ -1192,15 +1244,15 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 msgid "Installed" -msgstr "" +msgstr "ที่ติดตั้งà¹à¸¥à¹‰à¸§" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1215,7 +1267,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 msgid "Interface scale:" -msgstr "" +msgstr "ขนาดอินเตอร์เฟซ:" #: ../../../processing/app/Base.java:1204 #, java-format @@ -1227,6 +1279,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "" @@ -1249,7 +1312,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "" +msgstr "ตัวจัดà¸à¸²à¸£à¹„ลบรารี" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" @@ -1259,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1287,7 +1350,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Base.java:1168 msgid "Manage Libraries..." -msgstr "" +msgstr "จัดà¸à¸²à¸£à¹„ลบรารี..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 msgid "Manual proxy configuration" @@ -1312,11 +1375,11 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 msgid "More" -msgstr "" +msgstr "มาà¸à¸à¸§à¹ˆà¸²" #: Preferences.java:449 msgid "More preferences can be edited directly in the file" -msgstr "" +msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•ั้งค่าอื่น ๆ ได้ในไฟล์นี้" #: Editor.java:2156 msgid "Moving" @@ -1337,7 +1400,7 @@ msgstr "" #: Sketch.java:282 msgid "Name for new file:" -msgstr "" +msgstr "ตั้งชื่อไฟล์ใหม่:" #: ../../../../../app//src/processing/app/Editor.java:2809 msgid "Native serial port, can't obtain info" @@ -1349,7 +1412,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 msgid "Network" -msgstr "" +msgstr "เครือข่าย" #: ../../../../../app//src/processing/app/Editor.java:2804 msgid "Network port, can't obtain info" @@ -1365,23 +1428,23 @@ msgstr "" #: EditorToolbar.java:41 Editor.java:493 msgid "New" -msgstr "" +msgstr "ใหม่" #: EditorHeader.java:292 msgid "New Tab" -msgstr "" +msgstr "à¹à¸—็ปใหม่" #: SerialMonitor.java:112 msgid "Newline" -msgstr "" +msgstr "บรรทัดใหม่" #: EditorHeader.java:340 msgid "Next Tab" -msgstr "" +msgstr "à¹à¸—็ปถัดไป" #: Preferences.java:78 UpdateCheck.java:108 msgid "No" -msgstr "" +msgstr "ไม่" #: ../../../processing/app/debug/Compiler.java:158 msgid "No authorization data found" @@ -1409,7 +1472,7 @@ msgstr "" #: SerialMonitor.java:112 msgid "No line ending" -msgstr "" +msgstr "บรรทัดไม่รู้จบ" #: ../../../processing/app/BaseNoGui.java:665 msgid "No parameters" @@ -1448,7 +1511,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:184 msgid "None" -msgstr "" +msgstr "ไม่" #: ../../../processing/app/Preferences.java:108 msgid "Norwegian BokmÃ¥l" @@ -1463,7 +1526,7 @@ msgstr "" #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 msgid "OK" -msgstr "" +msgstr "ตà¸à¸¥à¸‡" #: Sketch.java:992 Editor.java:376 msgid "One file added to the sketch." @@ -1475,11 +1538,11 @@ msgstr "" #: EditorToolbar.java:41 msgid "Open" -msgstr "" +msgstr "เปิด" #: ../../../../../app/src/processing/app/Editor.java:625 msgid "Open Recent" -msgstr "" +msgstr "เปิดเมื่อเร็ว ๆ นี้" #: Editor.java:2688 msgid "Open URL" @@ -1491,19 +1554,19 @@ msgstr "" #: Base.java:903 Editor.java:501 msgid "Open..." -msgstr "" +msgstr "เปิด..." #: ../../../../../arduino-core/src/processing/app/I18n.java:37 msgid "Other" -msgstr "" +msgstr "อื่น ๆ" #: Editor.java:563 msgid "Page Setup" -msgstr "" +msgstr "ตั้งค่าหน้าà¸à¸£à¸°à¸”าษ" #: ../../../../../arduino-core/src/processing/app/I18n.java:25 msgid "Partner" -msgstr "" +msgstr "พาร์ทเนอร์" #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 msgid "Password:" @@ -1511,7 +1574,7 @@ msgstr "" #: Editor.java:1189 Editor.java:2731 msgid "Paste" -msgstr "" +msgstr "วาง" #: Preferences.java:109 msgid "Persian" @@ -1561,7 +1624,7 @@ msgstr "" #: ../../../processing/app/Editor.java:718 msgid "Port" -msgstr "" +msgstr "พอร์ต" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:491 msgid "Port number:" @@ -1581,7 +1644,7 @@ msgstr "" #: Preferences.java:295 Editor.java:583 msgid "Preferences" -msgstr "" +msgstr "à¸à¸²à¸£à¸•ั้งค่า" #: ../../../../../app/src/processing/app/Base.java:297 msgid "Preparing boards..." @@ -1593,11 +1656,11 @@ msgstr "" #: EditorHeader.java:326 msgid "Previous Tab" -msgstr "" +msgstr "à¹à¸—็ปà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²" #: Editor.java:571 msgid "Print" -msgstr "" +msgstr "พิมพ์" #: Editor.java:2571 msgid "Printing canceled." @@ -1648,7 +1711,7 @@ msgstr "" #: Editor.java:704 msgid "Programmer" -msgstr "" +msgstr "Programmer" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:80 #, java-format @@ -1657,7 +1720,7 @@ msgstr "" #: Base.java:783 Editor.java:593 msgid "Quit" -msgstr "" +msgstr "ออà¸" #: ../../../../../app/src/processing/app/Base.java:1233 msgid "RETIRED" @@ -1665,33 +1728,33 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:26 msgid "Recommended" -msgstr "" +msgstr "à¹à¸™à¸°à¸™à¸³" #: Editor.java:1138 Editor.java:1140 Editor.java:1390 msgid "Redo" -msgstr "" +msgstr "ทำใหม่" #: Editor.java:1078 msgid "Reference" -msgstr "" +msgstr "เอà¸à¸ªà¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 msgid "Remove" -msgstr "" +msgstr "ลบ" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 msgid "Removing..." -msgstr "" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸¥à¸š..." #: EditorHeader.java:300 msgid "Rename" -msgstr "" +msgstr "เปลี่ยนชื่อ" #: FindReplace.java:121 FindReplace.java:130 Sketch.java:1046 msgid "Replace" @@ -1716,6 +1779,10 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" +msgstr "ปลดออà¸" + +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" msgstr "" #: Preferences.java:113 @@ -1739,11 +1806,11 @@ msgstr "" #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 #: Editor.java:2064 Editor.java:2468 msgid "Save" -msgstr "" +msgstr "บันทึà¸" #: Editor.java:537 msgid "Save As..." -msgstr "" +msgstr "บันทึà¸à¹€à¸›à¹‡à¸™..." #: Editor.java:2317 msgid "Save Canceled." @@ -1752,7 +1819,7 @@ msgstr "" #: Editor.java:2020 #, java-format msgid "Save changes to \"{0}\"? " -msgstr "" +msgstr "ต้องà¸à¸²à¸£à¸šà¸±à¸™à¸—ึภ\"{0}\" หรือไม่? " #: Sketch.java:825 msgid "Save sketch folder as..." @@ -1760,7 +1827,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Preferences.java:425 msgid "Save when verifying or uploading" -msgstr "" +msgstr "บันทีà¸à¹€à¸¡à¸·à¹ˆà¸­à¸•รวจสอบหรือà¸à¸³à¸¥à¸±à¸‡à¸­à¸±à¸›à¹‚หลด" #: Editor.java:2270 Editor.java:2308 msgid "Saving..." @@ -1776,7 +1843,7 @@ msgstr "" #: Editor.java:1198 Editor.java:2739 msgid "Select All" -msgstr "" +msgstr "เลือà¸à¸—ั้งหมด" #: Base.java:2636 msgid "Select a zip file or a folder containing the library you'd like to add" @@ -1809,19 +1876,19 @@ msgstr "" #: SerialMonitor.java:93 msgid "Send" -msgstr "" +msgstr "ส่ง" #: ../../../../../arduino-core/src/processing/app/I18n.java:32 msgid "Sensors" -msgstr "" +msgstr "เซนเซอร์" #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 msgid "Serial Monitor" -msgstr "" +msgstr "ซีเรียลมอนิเตอร์" #: ../../../../../app/src/processing/app/Editor.java:804 msgid "Serial Plotter" -msgstr "" +msgstr "ซีเรียลพล็อตเตอร์" #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format @@ -1841,11 +1908,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1859,7 +1929,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 msgid "Settings" -msgstr "" +msgstr "à¸à¸²à¸£à¸•ั้งค่า" #: Base.java:1681 msgid "Settings issues" @@ -1867,19 +1937,23 @@ msgstr "" #: Editor.java:641 msgid "Show Sketch Folder" -msgstr "" +msgstr "à¹à¸ªà¸”งà¹à¸Ÿà¹‰à¸¡à¸—ี่อยู่ของงาน" + +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "à¹à¸ªà¸”งเวลา" #: Preferences.java:387 msgid "Show verbose output during: " -msgstr "" +msgstr "à¹à¸ªà¸”งข้อความเอาต์พุตขณะที่:" #: ../../../../../arduino-core/src/processing/app/I18n.java:31 msgid "Signal Input/Output" -msgstr "" +msgstr "สัà¸à¸à¸²à¸“อินพุต/เอาต์พุต" #: Editor.java:607 msgid "Sketch" -msgstr "" +msgstr "งาน" #: Sketch.java:1754 msgid "Sketch Disappeared" @@ -1912,11 +1986,11 @@ msgstr "" msgid "" "Sketch uses {0} bytes ({2}%%) of program storage space. Maximum is {1} " "bytes." -msgstr "" +msgstr "ไฟล์งานใช้ {0} ไบต์ ({2}%%) จาà¸à¸žà¸·à¹‰à¸™à¸—ี่ว่างโปรà¹à¸à¸£à¸¡ สูงสุด {1} ไบต์" #: Editor.java:510 msgid "Sketchbook" -msgstr "" +msgstr "à¹à¸Ÿà¹‰à¸¡à¸‡à¸²à¸™" #: Base.java:258 msgid "Sketchbook folder disappeared" @@ -1924,7 +1998,7 @@ msgstr "" #: Preferences.java:315 msgid "Sketchbook location:" -msgstr "" +msgstr "ที่อยู่à¹à¸Ÿà¹‰à¸¡à¸‡à¸²à¸™:" #: ../../../processing/app/BaseNoGui.java:428 msgid "Sketchbook path not defined" @@ -2040,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2085,11 +2167,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2107,6 +2189,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "ธีม:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2126,7 +2212,7 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:34 msgid "Timing" -msgstr "" +msgstr "เวลา" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -2135,15 +2221,15 @@ msgstr "" #: Editor.java:663 msgid "Tools" -msgstr "" +msgstr "เครื่องมือ" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:97 msgid "Topic" -msgstr "" +msgstr "หัวข้อ" #: Editor.java:1070 msgid "Troubleshooting" -msgstr "" +msgstr "ปัà¸à¸«à¸²" #: ../../../processing/app/Preferences.java:117 msgid "Turkish" @@ -2152,7 +2238,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 msgid "Type" -msgstr "" +msgstr "ชนิด" #: ../../../processing/app/Editor.java:2507 msgid "Type board password to access its console" @@ -2204,11 +2290,11 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/I18n.java:38 msgid "Uncategorized" -msgstr "" +msgstr "ไม่มีหมวดหมู่" #: Editor.java:1133 Editor.java:1355 msgid "Undo" -msgstr "" +msgstr "เลิà¸à¸—ำ" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format @@ -2234,7 +2320,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 msgid "Updatable" -msgstr "" +msgstr "ให้อัปเดท" #: UpdateCheck.java:111 msgid "Update" @@ -2265,11 +2351,11 @@ msgstr "" #: EditorToolbar.java:41 Editor.java:545 msgid "Upload" -msgstr "" +msgstr "อัปโหลด" #: EditorToolbar.java:46 Editor.java:553 msgid "Upload Using Programmer" -msgstr "" +msgstr "อัปโหลดโดยใช้ Programmer" #: ../../../../../app//src/processing/app/Editor.java:2814 msgid "Upload any sketch to obtain it" @@ -2289,7 +2375,7 @@ msgstr "" #: Sketch.java:1622 msgid "Uploading..." -msgstr "" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸­à¸±à¸›à¹‚หลด..." #: Editor.java:1269 msgid "Use Selection For Find" @@ -2297,7 +2383,7 @@ msgstr "" #: Preferences.java:409 msgid "Use external editor" -msgstr "" +msgstr "ใช้ตัวà¹à¸à¹‰à¹„ขภายนอà¸" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 @@ -2321,15 +2407,15 @@ msgstr "" #: EditorToolbar.java:41 EditorToolbar.java:46 msgid "Verify" -msgstr "" +msgstr "ตรวจสอบ" #: Preferences.java:400 msgid "Verify code after upload" -msgstr "" +msgstr "ตรวจสอบโค้ดหลังจาà¸à¸­à¸±à¸›à¹‚หลด" #: ../../../../../app/src/processing/app/Editor.java:725 msgid "Verify/Compile" -msgstr "" +msgstr "ตรวจสอบ/คอมไพล์" #: ../../../../../app/src/processing/app/Base.java:451 msgid "Verifying and uploading..." @@ -2363,7 +2449,7 @@ msgstr "" #: Editor.java:1105 msgid "Visit Arduino.cc" -msgstr "" +msgstr "เยี่ยมชม Arduino.cc" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format @@ -2448,7 +2534,7 @@ msgstr "" #: Preferences.java:77 UpdateCheck.java:108 msgid "Yes" -msgstr "" +msgstr "ตà¸à¸¥à¸‡" #: ../../../../../app/src/processing/app/Base.java:2312 msgid "You can't import a folder that contains your sketchbook" @@ -2572,7 +2658,7 @@ msgstr "" #: Preferences.java:389 msgid "compilation " -msgstr "" +msgstr "คอมไพล์" #: ../../../processing/app/NetworkMonitor.java:111 msgid "connected!" @@ -2599,6 +2685,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2616,7 +2708,7 @@ msgstr "" #: Preferences.java:391 msgid "upload" -msgstr "" +msgstr "อัปโหลด" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:324 #, java-format @@ -2647,7 +2739,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format msgid "{0} libraries" -msgstr "" +msgstr "ไลบรารี {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format @@ -2657,7 +2749,7 @@ msgstr "" #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format msgid "{0} on {1}" -msgstr "" +msgstr "{0} บน {1}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format @@ -2686,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2701,6 +2788,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_th.properties b/arduino-core/src/processing/app/i18n/Resources_th.properties index 3d3753aa601..d944f3095aa 100644 --- a/arduino-core/src/processing/app/i18n/Resources_th.properties +++ b/arduino-core/src/processing/app/i18n/Resources_th.properties @@ -16,10 +16,16 @@ # Translators: # Translators: # Translators: -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-08-03 11\:07+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Thai (http\://www.transifex.com/mbanzi/arduino-ide-15/language/th/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: th\nPlural-Forms\: nplurals\=1; plural\=0;\n +# Translators: +# Translators: +# Translators: +# Translators: +# Sippawit Thammawiset , 2018-2020 +# Tony Wong , 2018 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2020-02-28 17\:52+0000\nLast-Translator\: Sippawit Thammawiset \nLanguage-Team\: Thai (http\://www.transifex.com/mbanzi/arduino-ide-15/language/th/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: th\nPlural-Forms\: nplurals\=1; plural\=0;\n #: Preferences.java:358 Preferences.java:374 -!\ \ (requires\ restart\ of\ Arduino)= +\ \ (requires\ restart\ of\ Arduino)=(\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e23\u0e34\u0e48\u0e21 Arduino \u0e43\u0e2b\u0e21\u0e48) #: ../../../processing/app/debug/Compiler.java:529 #, java-format @@ -39,7 +45,7 @@ !'arch'\ folder\ is\ no\ longer\ supported\!\ See\ http\://goo.gl/gfFJzU\ for\ more\ information= #: Preferences.java:478 -!(edit\ only\ when\ Arduino\ is\ not\ running)= +(edit\ only\ when\ Arduino\ is\ not\ running)=(\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48 Arduino \u0e17\u0e33\u0e07\u0e32\u0e19\u0e1c\u0e34\u0e14\u0e1b\u0e01\u0e15\u0e34\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19) #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 !(legacy)= @@ -51,46 +57,46 @@ !--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload= #: Sketch.java:746 -!.pde\ ->\ .ino= +.pde\ ->\ .ino=.pde -> .ino #: Editor.java:2053 !\ \ b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }\ Do\ you\ want\ to\ save\ changes\ to\ this\ sketch
\ before\ closing?

If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.= #: Editor.java:2169 #, java-format -!A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.= +A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=\u0e21\u0e35\u0e41\u0e1f\u0e49\u0e21 "{0}" \u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49 #: Base.java:2690 #, java-format !A\ library\ named\ {0}\ already\ exists= #: UpdateCheck.java:103 -!A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?= +A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Arduino \u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e25\u0e49\u0e27\n\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14 Arduino \u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49\u0e40\u0e25\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48? #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format -!A\ newer\ {0}\ package\ is\ available= +A\ newer\ {0}\ package\ is\ available=\u0e21\u0e35\u0e41\u0e1e\u0e47\u0e01\u0e40\u0e01\u0e08\u0e43\u0e2b\u0e21\u0e48 {0} \u0e17\u0e35\u0e48\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 #: ../../../../../app/src/processing/app/Base.java:2307 !A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library= #: Editor.java:1116 -!About\ Arduino= +About\ Arduino=\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a Arduino #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 !Acoli= #: ../../../../../app/src/processing/app/Base.java:1177 -!Add\ .ZIP\ Library...= +Add\ .ZIP\ Library...=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 .ZIP... #: Editor.java:650 -!Add\ File...= +Add\ File...=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e1f\u0e25\u0e4c... #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:73 -!Additional\ Boards\ Manager\ URLs= +Additional\ Boards\ Manager\ URLs=\u0e15\u0e31\u0e27\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21 URLs \u0e1a\u0e2d\u0e23\u0e4c\u0e14 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -!Additional\ Boards\ Manager\ URLs\:\ = +Additional\ Boards\ Manager\ URLs\:\ =\u0e40\u0e1e\u0e34\u0e48\u0e21 URLs \u0e1a\u0e2d\u0e23\u0e4c\u0e14\: #: ../../../../../app/src/processing/app/Preferences.java:161 !Afrikaans= @@ -104,7 +110,7 @@ #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -!All= +All=\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 #: tools/FixEncoding.java:77 !An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n= @@ -113,15 +119,15 @@ !An\ error\ occurred\ while\ updating\ libraries\ index\!= #: ../../../processing/app/BaseNoGui.java:528 -!An\ error\ occurred\ while\ uploading\ the\ sketch= +An\ error\ occurred\ while\ uploading\ the\ sketch=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1c\u0e25\u0e32\u0e14\u0e02\u0e13\u0e30\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14 #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -!An\ error\ occurred\ while\ verifying\ the\ sketch= +An\ error\ occurred\ while\ verifying\ the\ sketch=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1c\u0e25\u0e32\u0e14\u0e02\u0e13\u0e30\u0e01\u0e33\u0e25\u0e31\u0e07\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a #: ../../../processing/app/BaseNoGui.java:521 -!An\ error\ occurred\ while\ verifying/uploading\ the\ sketch= +An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1c\u0e25\u0e32\u0e14\u0e02\u0e13\u0e30\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e31\u0e1b\u0e40\u0e14\u0e15/\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a #: Base.java:228 !An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.= @@ -133,25 +139,29 @@ !Aragonese= #: tools/Archiver.java:48 -!Archive\ Sketch= +Archive\ Sketch=\u0e1a\u0e35\u0e1a\u0e2d\u0e31\u0e14\u0e07\u0e32\u0e19 #: tools/Archiver.java:109 -!Archive\ sketch\ as\:= +Archive\ sketch\ as\:=\u0e1a\u0e35\u0e1a\u0e2d\u0e31\u0e14\u0e07\u0e32\u0e19\u0e40\u0e1b\u0e47\u0e19\: #: tools/Archiver.java:139 -!Archive\ sketch\ canceled.= +Archive\ sketch\ canceled.=\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e1a\u0e35\u0e1a\u0e2d\u0e35\u0e14\u0e07\u0e32\u0e19 + +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= #: ../../../../../arduino-core/src/processing/app/I18n.java:24 -!Arduino= +Arduino=Arduino #: ../../../processing/app/I18n.java:83 -!Arduino\ ARM\ (32-bits)\ Boards= +Arduino\ ARM\ (32-bits)\ Boards=\u0e1a\u0e2d\u0e23\u0e4c\u0e14 Arduino ARM (32 \u0e1a\u0e34\u0e15) #: ../../../processing/app/I18n.java:82 -!Arduino\ AVR\ Boards= +Arduino\ AVR\ Boards=\u0e1a\u0e2d\u0e23\u0e4c\u0e14 Arduino ARM #: Editor.java:2137 !Arduino\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde= @@ -163,14 +173,14 @@ !Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.= #: ../../../processing/app/EditorStatus.java:471 -!Arduino\:\ = +Arduino\:\ =Arduino\: #: Sketch.java:588 #, java-format -!Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?= +Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?=\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e25\u0e1a "{0}" \u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48? #: Sketch.java:587 -!Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?= +Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e25\u0e1a\u0e07\u0e32\u0e19\u0e19\u0e35\u0e49\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48? #: ../../../processing/app/Base.java:356 !Argument\ required\ for\ --board= @@ -199,29 +209,29 @@ !Authorization\ required= #: tools/AutoFormat.java:91 -!Auto\ Format= +Auto\ Format=\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 #: tools/AutoFormat.java:944 -!Auto\ Format\ finished.= +Auto\ Format\ finished.=\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:457 !Auto-detect\ proxy\ settings= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:264 -!Automatic= +Automatic=\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:474 !Automatic\ proxy\ configuration\ URL\:= #: SerialMonitor.java:110 -!Autoscroll= +Autoscroll=\u0e40\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 #: Editor.java:2619 #, java-format -!Bad\ error\ line\:\ {0}= +Bad\ error\ line\:\ {0}=\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1c\u0e25\u0e32\u0e14\u0e43\u0e19\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48\: {0} #: Editor.java:2136 -!Bad\ file\ selected= +Bad\ file\ selected=\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 #: ../../../processing/app/Preferences.java:149 !Basque= @@ -231,15 +241,15 @@ #: ../../../processing/app/Base.java:1433 #: ../../../processing/app/Editor.java:707 -!Board= +Board=\u0e1a\u0e2d\u0e23\u0e4c\u0e14 #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1a\u0e2d\u0e23\u0e4c\u0e14 #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -!Board\ at\ {0}\ is\ not\ available= +Board\ at\ {0}\ is\ not\ available=\u0e1a\u0e2d\u0e23\u0e4c\u0e14\u0e17\u0e35\u0e48 {0} \u0e44\u0e21\u0e48\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -250,13 +260,13 @@ !Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}= #: ../../../processing/app/EditorStatus.java:472 -!Board\:\ = +Board\:\ =\u0e1a\u0e2d\u0e23\u0e4c\u0e14\: #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -!Boards\ Manager= +Boards\ Manager=\u0e15\u0e31\u0e27\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e1a\u0e2d\u0e23\u0e4c\u0e14 #: ../../../../../app/src/processing/app/Base.java:1320 -!Boards\ Manager...= +Boards\ Manager...=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e1a\u0e2d\u0e23\u0e4c\u0e14... #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:328 !Boards\ included\ in\ this\ package\:= @@ -272,13 +282,13 @@ !Both\ NL\ &\ CR= #: Preferences.java:81 -!Browse= +Browse=\u0e04\u0e49\u0e19\u0e14\u0e39 #: ../../../processing/app/Sketch.java:1530 !Build\ options\ changed,\ rebuilding\ all= #: ../../../../../app/src/processing/app/Base.java:1210 -!Built-in\ Examples= +Built-in\ Examples=\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e43\u0e2b\u0e49\u0e21\u0e32 #: ../../../processing/app/Preferences.java:80 !Bulgarian= @@ -304,14 +314,14 @@ #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 -!Can't\ find\ the\ sketch\ in\ the\ specified\ path= +Can't\ find\ the\ sketch\ in\ the\ specified\ path=\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e07\u0e32\u0e19\u0e43\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e19\u0e35\u0e49 #: ../../../processing/app/Preferences.java:92 !Canadian\ French= #: Preferences.java:79 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2064 Editor.java:2145 Editor.java:2465 -!Cancel= +Cancel=\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01 #: ../../../processing/app/Base.java:465 !Cannot\ specify\ any\ sketch\ files= @@ -323,7 +333,7 @@ !Catalan= #: Preferences.java:419 -!Check\ for\ updates\ on\ startup= +Check\ for\ updates\ on\ startup=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e31\u0e1b\u0e40\u0e14\u0e17\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21 #: ../../../processing/app/Preferences.java:142 !Chinese\ (China)= @@ -335,40 +345,40 @@ !Chinese\ (Taiwan)\ (Big5)= #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=\u0e25\u0e49\u0e32\u0e07\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e1e\u0e38\u0e15 #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -!Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs= +Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39 URLs \u0e1a\u0e2d\u0e23\u0e4c\u0e14\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e32\u0e07\u0e01\u0e32\u0e23 #: Editor.java:521 Editor.java:2024 -!Close= +Close=\u0e1b\u0e34\u0e14 #: Editor.java:1208 Editor.java:2749 -!Comment/Uncomment= +Comment/Uncomment=\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e17\u0e4c/\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e17\u0e4c #: ../../../../../arduino-core/src/processing/app/I18n.java:30 -!Communication= +Communication=\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -!Compiler\ warnings\:\ = +Compiler\ warnings\:\ =\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e40\u0e25\u0e2d\u0e23\u0e4c\: #: Sketch.java:1608 Editor.java:1890 -!Compiling\ sketch...= +Compiling\ sketch...=\u0e01\u0e33\u0e25\u0e31\u0e07\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e25\u0e4c... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 -!Contributed= +Contributed=\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19 #: Editor.java:1157 Editor.java:2707 -!Copy= +Copy=\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01 #: Editor.java:1177 Editor.java:2723 -!Copy\ as\ HTML= +Copy\ as\ HTML=\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e40\u0e1b\u0e47\u0e19 HTML #: ../../../processing/app/EditorStatus.java:455 -!Copy\ error\ messages= +Copy\ error\ messages=\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1c\u0e25\u0e32\u0e14 #: Editor.java:1165 Editor.java:2715 -!Copy\ for\ Forum= +Copy\ for\ Forum=\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1f\u0e2d\u0e23\u0e31\u0e21 #: Sketch.java:1089 #, java-format @@ -435,6 +445,10 @@ #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -451,7 +465,7 @@ !Croatian= #: Editor.java:1149 Editor.java:2699 -!Cut= +Cut=\u0e15\u0e31\u0e14 #: ../../../../../app/src/processing/app/Preferences.java:119 !Czech\ (Czech\ Republic)= @@ -460,22 +474,28 @@ !Danish\ (Denmark)= #: ../../../../../arduino-core/src/processing/app/I18n.java:36 -!Data\ Processing= +Data\ Processing=\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 #: ../../../../../arduino-core/src/processing/app/I18n.java:35 -!Data\ Storage= +Data\ Storage=\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e40\u0e01\u0e47\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 + +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u0e25\u0e14\u0e02\u0e19\u0e32\u0e14\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d #: Editor.java:1224 Editor.java:2765 -!Decrease\ Indent= +Decrease\ Indent=\u0e25\u0e14\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 -!Default= +Default=\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19 + +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u0e18\u0e35\u0e21\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19 #: EditorHeader.java:314 Sketch.java:591 -!Delete= +Delete=\u0e25\u0e1a #: ../../../../../arduino-core/src/processing/app/I18n.java:33 -!Device\ Control= +Device\ Control=\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c #: debug/Uploader.java:199 !Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting= @@ -484,39 +504,39 @@ !Discard\ all\ changes\ and\ reload\ sketch?= #: ../../../../../arduino-core/src/processing/app/I18n.java:29 -!Display= +Display=\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25 #: ../../../processing/app/Preferences.java:438 -!Display\ line\ numbers= +Display\ line\ numbers=\u0e41\u0e2a\u0e14\u0e07\u0e40\u0e25\u0e02\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:195 #, java-format !Do\ you\ want\ to\ remove\ {0}?\nIf\ you\ do\ so\ you\ won't\ be\ able\ to\ use\ {0}\ any\ more.= #: Editor.java:2064 -!Don't\ Save= +Don't\ Save=\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 #: Editor.java:2275 Editor.java:2311 -!Done\ Saving.= +Done\ Saving.=\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19 #: Editor.java:2510 !Done\ burning\ bootloader.= #: ../../../processing/app/BaseNoGui.java:507 #: ../../../processing/app/BaseNoGui.java:552 -!Done\ compiling= +Done\ compiling=\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e25\u0e4c\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19 #: Editor.java:1911 Editor.java:1928 -!Done\ compiling.= +Done\ compiling.=\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e25\u0e4c\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19 #: Editor.java:2564 !Done\ printing.= #: ../../../processing/app/BaseNoGui.java:514 -!Done\ uploading= +Done\ uploading=\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19 #: Editor.java:2395 Editor.java:2431 -!Done\ uploading.= +Done\ uploading.=\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19 #: ../../../cc/arduino/contributions/DownloadableContributionsDownloader.java:105 #, java-format @@ -546,19 +566,19 @@ !Dutch\ (Netherlands)= #: ../../../../../app/src/processing/app/Editor.java:1309 -!Edison\ Help= +Edison\ Help=\u0e01\u0e32\u0e23\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d Edison #: Editor.java:1130 -!Edit= +Edit=\u0e41\u0e01\u0e49\u0e44\u0e02 #: Preferences.java:370 -!Editor\ font\ size\:\ = +Editor\ font\ size\:\ =\u0e02\u0e19\u0e32\u0e14\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\: #: Preferences.java:353 -!Editor\ language\:\ = +Editor\ language\:\ =\u0e20\u0e32\u0e29\u0e32\: #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:322 -!Enable\ Code\ Folding= +Enable\ Code\ Folding=\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e42\u0e04\u0e49\u0e14 Folding #: Preferences.java:92 !English= @@ -568,13 +588,13 @@ #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:269 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:271 -!Enter\ a\ comma\ separated\ list\ of\ urls= +Enter\ a\ comma\ separated\ list\ of\ urls=\u0e43\u0e2a\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e04\u0e2d\u0e21\u0e21\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e22\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 urls #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:96 -!Enter\ additional\ URLs,\ one\ for\ each\ row= +Enter\ additional\ URLs,\ one\ for\ each\ row=\u0e01\u0e23\u0e2d\u0e01 URLs, \u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e25\u0e30 1 URL #: Editor.java:1062 -!Environment= +Environment=\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e25\u0e49\u0e2d\u0e21 #: Base.java:2147 Preferences.java:256 Sketch.java:475 Sketch.java:481 #: Sketch.java:496 Sketch.java:503 Sketch.java:526 Sketch.java:543 @@ -602,6 +622,10 @@ #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -616,6 +640,18 @@ #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -641,6 +677,9 @@ #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -669,11 +708,8 @@ #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 -!Examples= +Examples=\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 #: ../../../../../app/src/processing/app/Base.java:1185 !Examples\ for\ any\ board= @@ -693,7 +729,7 @@ !Export\ canceled,\ changes\ must\ first\ be\ saved.= #: ../../../../../app/src/processing/app/Editor.java:750 -!Export\ compiled\ Binary= +Export\ compiled\ Binary=\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e25\u0e4c\u0e40\u0e1b\u0e47\u0e19 HEX #: ../../../processing/app/Base.java:416 #, java-format @@ -707,7 +743,7 @@ !Failed\ to\ rename\ sketch\ folder= #: Editor.java:491 -!File= +File=\u0e44\u0e1f\u0e25\u0e4c #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format @@ -717,22 +753,22 @@ !Filipino= #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:95 -!Filter\ your\ search...= +Filter\ your\ search...=\u0e04\u0e49\u0e19\u0e2b\u0e32... #: FindReplace.java:124 FindReplace.java:127 !Find= #: Editor.java:1249 -!Find\ Next= +Find\ Next=\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e16\u0e31\u0e14\u0e44\u0e1b #: Editor.java:1259 -!Find\ Previous= +Find\ Previous=\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32 #: Editor.java:1086 Editor.java:2775 -!Find\ in\ Reference= +Find\ in\ Reference=\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e43\u0e19\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07 #: Editor.java:1234 -!Find...= +Find...=\u0e04\u0e49\u0e19\u0e2b\u0e32... #: FindReplace.java:80 !Find\:= @@ -742,7 +778,7 @@ #: tools/FixEncoding.java:41 tools/FixEncoding.java:58 #: tools/FixEncoding.java:79 -!Fix\ Encoding\ &\ Reload= +Fix\ Encoding\ &\ Reload=\u0e41\u0e01\u0e49\u0e44\u0e02\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a\u0e41\u0e25\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e43\u0e2b\u0e21\u0e48 #: ../../../processing/app/BaseNoGui.java:318 !For\ information\ on\ installing\ libraries,\ see\:\ http\://www.arduino.cc/en/Guide/Libraries\n= @@ -755,7 +791,7 @@ !French= #: Editor.java:1097 -!Frequently\ Asked\ Questions= +Frequently\ Asked\ Questions=\u0e04\u0e33\u0e16\u0e32\u0e21\u0e17\u0e35\u0e48\u0e1e\u0e1a\u0e1a\u0e48\u0e2d\u0e22 #: Preferences.java:96 !Galician= @@ -764,7 +800,7 @@ !Galician\ (Spain)= #: ../../../../../app/src/processing/app/Editor.java:1288 -!Galileo\ Help= +Galileo\ Help=\u0e01\u0e32\u0e23\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d Galileo #: ../../../processing/app/Preferences.java:94 !Georgian= @@ -773,24 +809,24 @@ !German= #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=\u0e41\u0e2a\u0e14\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1a\u0e2d\u0e23\u0e4c\u0e14 #: Editor.java:1054 -!Getting\ Started= +Getting\ Started=\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19 #: ../../../processing/app/Sketch.java:1646 #, java-format -!Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.= +Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.=\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e43\u0e0a\u0e49 {0} \u0e44\u0e1a\u0e15\u0e4c ({2}%%) \u0e08\u0e32\u0e01\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e08\u0e33\u0e44\u0e14\u0e19\u0e32\u0e21\u0e34\u0e01 {3} \u0e44\u0e1a\u0e15\u0e4c\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 \u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {1} \u0e44\u0e1a\u0e15\u0e4c #: ../../../processing/app/Sketch.java:1651 #, java-format -!Global\ variables\ use\ {0}\ bytes\ of\ dynamic\ memory.= +Global\ variables\ use\ {0}\ bytes\ of\ dynamic\ memory.=\u0e15\u0e31\u0e27\u0e41\u0e1b\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e43\u0e0a\u0e49 {0} \u0e44\u0e1a\u0e15\u0e4c \u0e08\u0e32\u0e01\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e08\u0e33\u0e44\u0e14\u0e19\u0e32\u0e21\u0e34\u0e01 #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:66 -!Go\ to\ line= +Go\ to\ line=\u0e44\u0e1b\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48... #: ../../../../../app/src/processing/app/Editor.java:1460 -!Go\ to\ line...= +Go\ to\ line...=\u0e44\u0e1b\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48... #: Preferences.java:98 !Greek= @@ -799,7 +835,7 @@ !Hebrew= #: Editor.java:1015 -!Help= +Help=\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d #: Preferences.java:99 !Hindi= @@ -822,8 +858,8 @@ #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -832,14 +868,17 @@ !In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?= #: ../../../../../app/src/processing/app/Editor.java:778 -!Include\ Library= +Include\ Library=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e19\u0e32\u0e14\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d + #: Editor.java:1216 Editor.java:2757 -!Increase\ Indent= +Increase\ Indent=\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32 #: Preferences.java:101 !Indonesian= @@ -853,20 +892,20 @@ #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:78 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:91 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:303 -!Install= +Install=\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:170 !Installation\ completed\!= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownInstalledLibraryItem.java:50 -!Installed= +Installed=\u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e41\u0e25\u0e49\u0e27 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -877,7 +916,7 @@ !Installing...= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:256 -!Interface\ scale\:= +Interface\ scale\:=\u0e02\u0e19\u0e32\u0e14\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e40\u0e1f\u0e0b\: #: ../../../processing/app/Base.java:1204 #, java-format @@ -887,6 +926,15 @@ #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 !Italian= @@ -903,7 +951,7 @@ !Latvian= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -!Library\ Manager= +Library\ Manager=\u0e15\u0e31\u0e27\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 #: ../../../../../app/src/processing/app/Base.java:2349 !Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu= @@ -911,9 +959,9 @@ #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -932,7 +980,7 @@ !Low\ memory\ available,\ stability\ problems\ may\ occur.= #: ../../../../../app/src/processing/app/Base.java:1168 -!Manage\ Libraries...= +Manage\ Libraries...=\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 !Manual\ proxy\ configuration= @@ -951,10 +999,10 @@ !Mode\ not\ supported= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:186 -!More= +More=\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32 #: Preferences.java:449 -!More\ preferences\ can\ be\ edited\ directly\ in\ the\ file= +More\ preferences\ can\ be\ edited\ directly\ in\ the\ file=\u0e41\u0e01\u0e49\u0e44\u0e02\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e44\u0e14\u0e49\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c\u0e19\u0e35\u0e49 #: Editor.java:2156 !Moving= @@ -970,7 +1018,7 @@ !Must\ specify\ exactly\ one\ sketch\ file= #: Sketch.java:282 -!Name\ for\ new\ file\:= +Name\ for\ new\ file\:=\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c\u0e43\u0e2b\u0e21\u0e48\: #: ../../../../../app//src/processing/app/Editor.java:2809 !Native\ serial\ port,\ can't\ obtain\ info= @@ -979,7 +1027,7 @@ !Nepali= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:601 -!Network= +Network=\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22 #: ../../../../../app//src/processing/app/Editor.java:2804 !Network\ port,\ can't\ obtain\ info= @@ -991,19 +1039,19 @@ !Network\ upload\ using\ programmer\ not\ supported= #: EditorToolbar.java:41 Editor.java:493 -!New= +New=\u0e43\u0e2b\u0e21\u0e48 #: EditorHeader.java:292 -!New\ Tab= +New\ Tab=\u0e41\u0e17\u0e47\u0e1b\u0e43\u0e2b\u0e21\u0e48 #: SerialMonitor.java:112 -!Newline= +Newline=\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e43\u0e2b\u0e21\u0e48 #: EditorHeader.java:340 -!Next\ Tab= +Next\ Tab=\u0e41\u0e17\u0e47\u0e1b\u0e16\u0e31\u0e14\u0e44\u0e1b #: Preferences.java:78 UpdateCheck.java:108 -!No= +No=\u0e44\u0e21\u0e48 #: ../../../processing/app/debug/Compiler.java:158 !No\ authorization\ data\ found= @@ -1024,7 +1072,7 @@ !No\ launcher\ available= #: SerialMonitor.java:112 -!No\ line\ ending= +No\ line\ ending=\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e44\u0e21\u0e48\u0e23\u0e39\u0e49\u0e08\u0e1a #: ../../../processing/app/BaseNoGui.java:665 !No\ parameters= @@ -1054,7 +1102,7 @@ !No\ valid\ hardware\ definitions\ found\ in\ folder\ {0}.= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:184 -!None= +None=\u0e44\u0e21\u0e48 #: ../../../processing/app/Preferences.java:108 !Norwegian\ Bokm\u00e5l= @@ -1064,7 +1112,7 @@ #: Preferences.java:80 Sketch.java:585 Sketch.java:737 Sketch.java:1042 #: Editor.java:2145 Editor.java:2465 -!OK= +OK=\u0e15\u0e01\u0e25\u0e07 #: Sketch.java:992 Editor.java:376 !One\ file\ added\ to\ the\ sketch.= @@ -1073,10 +1121,10 @@ !Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported= #: EditorToolbar.java:41 -!Open= +Open=\u0e40\u0e1b\u0e34\u0e14 #: ../../../../../app/src/processing/app/Editor.java:625 -!Open\ Recent= +Open\ Recent=\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e47\u0e27 \u0e46 \u0e19\u0e35\u0e49 #: Editor.java:2688 !Open\ URL= @@ -1085,22 +1133,22 @@ !Open\ an\ Arduino\ sketch...= #: Base.java:903 Editor.java:501 -!Open...= +Open...=\u0e40\u0e1b\u0e34\u0e14... #: ../../../../../arduino-core/src/processing/app/I18n.java:37 -!Other= +Other=\u0e2d\u0e37\u0e48\u0e19 \u0e46 #: Editor.java:563 -!Page\ Setup= +Page\ Setup=\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e23\u0e30\u0e14\u0e32\u0e29 #: ../../../../../arduino-core/src/processing/app/I18n.java:25 -!Partner= +Partner=\u0e1e\u0e32\u0e23\u0e4c\u0e17\u0e40\u0e19\u0e2d\u0e23\u0e4c #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 !Password\:= #: Editor.java:1189 Editor.java:2731 -!Paste= +Paste=\u0e27\u0e32\u0e07 #: Preferences.java:109 !Persian= @@ -1138,7 +1186,7 @@ !Polish= #: ../../../processing/app/Editor.java:718 -!Port= +Port=\u0e1e\u0e2d\u0e23\u0e4c\u0e15 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:491 !Port\ number\:= @@ -1153,7 +1201,7 @@ !Portuguese\ (Portugal)= #: Preferences.java:295 Editor.java:583 -!Preferences= +Preferences=\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 #: ../../../../../app/src/processing/app/Base.java:297 !Preparing\ boards...= @@ -1162,10 +1210,10 @@ !Previous= #: EditorHeader.java:326 -!Previous\ Tab= +Previous\ Tab=\u0e41\u0e17\u0e47\u0e1b\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32 #: Editor.java:571 -!Print= +Print=\u0e1e\u0e34\u0e21\u0e1e\u0e4c #: Editor.java:2571 !Printing\ canceled.= @@ -1202,40 +1250,40 @@ !Processor= #: Editor.java:704 -!Programmer= +Programmer=Programmer #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:80 #, java-format !Progress\ {0}= #: Base.java:783 Editor.java:593 -!Quit= +Quit=\u0e2d\u0e2d\u0e01 #: ../../../../../app/src/processing/app/Base.java:1233 !RETIRED= #: ../../../../../arduino-core/src/processing/app/I18n.java:26 -!Recommended= +Recommended=\u0e41\u0e19\u0e30\u0e19\u0e33 #: Editor.java:1138 Editor.java:1140 Editor.java:1390 -!Redo= +Redo=\u0e17\u0e33\u0e43\u0e2b\u0e21\u0e48 #: Editor.java:1078 -!Reference= +Reference=\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -!Remove= +Remove=\u0e25\u0e1a -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 -!Removing...= +Removing...=\u0e01\u0e33\u0e25\u0e31\u0e07\u0e25\u0e1a... #: EditorHeader.java:300 -!Rename= +Rename=\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d #: FindReplace.java:121 FindReplace.java:130 Sketch.java:1046 !Replace= @@ -1254,7 +1302,10 @@ !Replace\ with\:= #: ../../../../../arduino-core/src/processing/app/I18n.java:28 -!Retired= +Retired=\u0e1b\u0e25\u0e14\u0e2d\u0e2d\u0e01 + +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= #: Preferences.java:113 !Romanian= @@ -1272,23 +1323,23 @@ #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:529 Editor.java:2064 #: Editor.java:2468 -!Save= +Save=\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 #: Editor.java:537 -!Save\ As...= +Save\ As...=\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e1b\u0e47\u0e19... #: Editor.java:2317 !Save\ Canceled.= #: Editor.java:2020 #, java-format -!Save\ changes\ to\ "{0}"?\ \ = +Save\ changes\ to\ "{0}"?\ \ =\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 "{0}" \u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48? #: Sketch.java:825 !Save\ sketch\ folder\ as...= #: ../../../../../app/src/processing/app/Preferences.java:425 -!Save\ when\ verifying\ or\ uploading= +Save\ when\ verifying\ or\ uploading=\u0e1a\u0e31\u0e19\u0e17\u0e35\u0e01\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14 #: Editor.java:2270 Editor.java:2308 !Saving...= @@ -1300,7 +1351,7 @@ !Select\ (or\ create\ new)\ folder\ for\ sketches...= #: Editor.java:1198 Editor.java:2739 -!Select\ All= +Select\ All=\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 #: Base.java:2636 !Select\ a\ zip\ file\ or\ a\ folder\ containing\ the\ library\ you'd\ like\ to\ add= @@ -1325,16 +1376,16 @@ !Selected\ library\ is\ not\ available= #: SerialMonitor.java:93 -!Send= +Send=\u0e2a\u0e48\u0e07 #: ../../../../../arduino-core/src/processing/app/I18n.java:32 -!Sensors= +Sensors=\u0e40\u0e0b\u0e19\u0e40\u0e0b\u0e2d\u0e23\u0e4c #: EditorToolbar.java:41 EditorToolbar.java:46 Editor.java:669 -!Serial\ Monitor= +Serial\ Monitor=\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22\u0e25\u0e21\u0e2d\u0e19\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c #: ../../../../../app/src/processing/app/Editor.java:804 -!Serial\ Plotter= +Serial\ Plotter=\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22\u0e25\u0e1e\u0e25\u0e47\u0e2d\u0e15\u0e40\u0e15\u0e2d\u0e23\u0e4c #: ../../../../../app/src/processing/app/Editor.java:2325 #, java-format @@ -1347,9 +1398,13 @@ #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1359,22 +1414,25 @@ !Setting\ build\ path\ to\ {0}= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -!Settings= +Settings=\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 #: Base.java:1681 !Settings\ issues= #: Editor.java:641 -!Show\ Sketch\ Folder= +Show\ Sketch\ Folder=\u0e41\u0e2a\u0e14\u0e07\u0e41\u0e1f\u0e49\u0e21\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e07\u0e32\u0e19 + +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=\u0e41\u0e2a\u0e14\u0e07\u0e40\u0e27\u0e25\u0e32 #: Preferences.java:387 -!Show\ verbose\ output\ during\:\ = +Show\ verbose\ output\ during\:\ =\u0e41\u0e2a\u0e14\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e1e\u0e38\u0e15\u0e02\u0e13\u0e30\u0e17\u0e35\u0e48\: #: ../../../../../arduino-core/src/processing/app/I18n.java:31 -!Signal\ Input/Output= +Signal\ Input/Output=\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e2d\u0e34\u0e19\u0e1e\u0e38\u0e15/\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e1e\u0e38\u0e15 #: Editor.java:607 -!Sketch= +Sketch=\u0e07\u0e32\u0e19 #: Sketch.java:1754 !Sketch\ Disappeared= @@ -1396,16 +1454,16 @@ #: ../../../processing/app/Sketch.java:1639 #, java-format -!Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.= +Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.=\u0e44\u0e1f\u0e25\u0e4c\u0e07\u0e32\u0e19\u0e43\u0e0a\u0e49 {0} \u0e44\u0e1a\u0e15\u0e4c ({2}%%) \u0e08\u0e32\u0e01\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e27\u0e48\u0e32\u0e07\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21 \u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {1} \u0e44\u0e1a\u0e15\u0e4c #: Editor.java:510 -!Sketchbook= +Sketchbook=\u0e41\u0e1f\u0e49\u0e21\u0e07\u0e32\u0e19 #: Base.java:258 !Sketchbook\ folder\ disappeared= #: Preferences.java:315 -!Sketchbook\ location\:= +Sketchbook\ location\:=\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e1f\u0e49\u0e21\u0e07\u0e32\u0e19\: #: ../../../processing/app/BaseNoGui.java:428 !Sketchbook\ path\ not\ defined= @@ -1486,6 +1544,10 @@ #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1510,8 +1572,8 @@ #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1519,6 +1581,9 @@ #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =\u0e18\u0e35\u0e21\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1529,27 +1594,27 @@ !Time\ for\ a\ Break= #: ../../../../../arduino-core/src/processing/app/I18n.java:34 -!Timing= +Timing=\u0e40\u0e27\u0e25\u0e32 #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format !Tool\ {0}\ is\ not\ available\ for\ your\ operating\ system.= #: Editor.java:663 -!Tools= +Tools=\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:97 -!Topic= +Topic=\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d #: Editor.java:1070 -!Troubleshooting= +Troubleshooting=\u0e1b\u0e31\u0e0d\u0e2b\u0e32 #: ../../../processing/app/Preferences.java:117 !Turkish= #: ../../../../../app/src/cc/arduino/contributions/ui/InstallerJDialog.java:109 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:105 -!Type= +Type=\u0e0a\u0e19\u0e34\u0e14 #: ../../../processing/app/Editor.java:2507 !Type\ board\ password\ to\ access\ its\ console= @@ -1589,10 +1654,10 @@ !Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.= #: ../../../../../arduino-core/src/processing/app/I18n.java:38 -!Uncategorized= +Uncategorized=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48 #: Editor.java:1133 Editor.java:1355 -!Undo= +Undo=\u0e40\u0e25\u0e34\u0e01\u0e17\u0e33 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:85 #, java-format @@ -1610,7 +1675,7 @@ #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 -!Updatable= +Updatable=\u0e43\u0e2b\u0e49\u0e2d\u0e31\u0e1b\u0e40\u0e14\u0e17 #: UpdateCheck.java:111 !Update= @@ -1634,10 +1699,10 @@ !Updating\ list\ of\ installed\ libraries= #: EditorToolbar.java:41 Editor.java:545 -!Upload= +Upload=\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14 #: EditorToolbar.java:46 Editor.java:553 -!Upload\ Using\ Programmer= +Upload\ Using\ Programmer=\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 Programmer #: ../../../../../app//src/processing/app/Editor.java:2814 !Upload\ any\ sketch\ to\ obtain\ it= @@ -1652,13 +1717,13 @@ !Uploading\ to\ I/O\ Board...= #: Sketch.java:1622 -!Uploading...= +Uploading...=\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14... #: Editor.java:1269 !Use\ Selection\ For\ Find= #: Preferences.java:409 -!Use\ external\ editor= +Use\ external\ editor=\u0e43\u0e0a\u0e49\u0e15\u0e31\u0e27\u0e41\u0e01\u0e49\u0e44\u0e02\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:493 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:499 @@ -1677,13 +1742,13 @@ !Using\ previously\ compiled\ file\:\ {0}= #: EditorToolbar.java:41 EditorToolbar.java:46 -!Verify= +Verify=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a #: Preferences.java:400 -!Verify\ code\ after\ upload= +Verify\ code\ after\ upload=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e42\u0e04\u0e49\u0e14\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14 #: ../../../../../app/src/processing/app/Editor.java:725 -!Verify/Compile= +Verify/Compile=\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a/\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e25\u0e4c #: ../../../../../app/src/processing/app/Base.java:451 !Verifying\ and\ uploading...= @@ -1709,7 +1774,7 @@ !Vietnamese= #: Editor.java:1105 -!Visit\ Arduino.cc= +Visit\ Arduino.cc=\u0e40\u0e22\u0e35\u0e48\u0e22\u0e21\u0e0a\u0e21 Arduino.cc #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:90 #, java-format @@ -1767,7 +1832,7 @@ !Wrong\ microcontroller\ found.\ \ Did\ you\ select\ the\ right\ board\ from\ the\ Tools\ >\ Board\ menu?= #: Preferences.java:77 UpdateCheck.java:108 -!Yes= +Yes=\u0e15\u0e01\u0e25\u0e07 #: ../../../../../app/src/processing/app/Base.java:2312 !You\ can't\ import\ a\ folder\ that\ contains\ your\ sketchbook= @@ -1832,7 +1897,7 @@ !baud= #: Preferences.java:389 -!compilation\ = +compilation\ =\u0e04\u0e2d\u0e21\u0e44\u0e1e\u0e25\u0e4c #: ../../../processing/app/NetworkMonitor.java:111 !connected\!= @@ -1853,6 +1918,11 @@ #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1865,7 +1935,7 @@ !unknown\ option\:\ {0}= #: Preferences.java:391 -!upload= +upload=\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:324 #, java-format @@ -1890,7 +1960,7 @@ #: ../../../../../app/src/processing/app/Base.java:1201 #, java-format -!{0}\ libraries= +{0}\ libraries=\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format @@ -1898,7 +1968,7 @@ #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format -!{0}\ on\ {1}= +{0}\ on\ {1}={0} \u0e1a\u0e19 {1} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:78 #, java-format @@ -1920,10 +1990,6 @@ #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1932,6 +1998,10 @@ #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_tr.po b/arduino-core/src/processing/app/i18n/Resources_tr.po index 773c5b2dcf2..b5179230a73 100644 --- a/arduino-core/src/processing/app/i18n/Resources_tr.po +++ b/arduino-core/src/processing/app/i18n/Resources_tr.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anıl Özbek , 2013 # Ayse Gokce Bor , 2012 # b , 2015 @@ -29,15 +33,17 @@ # Koray Al , 2012 # Huseyin Sozen , 2015 # Kaan CEYHAN , 2013 +# Mehmet ŞÜKÜROÄžLU , 2018 # Mert Gülsoy , 2015 +# Mustafa Haluk Saran , 2019 # nazrdogan , 2015 # Oguzhan Gazi Aslantas , 2015 # OÄŸuzhan Gençel , 2015 # washaq , 2014 # sercan , 2015 -# Ülgen Sarıkavak , 2012,2016 -# Ülgen Sarıkavak , 2013-2014 -# Ülgen Sarıkavak , 2014 +# Ülgen Sarıkavak , 2012,2016,2019 +# 909266411654fe02d72c48514a465be9_33c5f74 <15d35ca13d17f7bfcab80c3d16f5fb15_38993>, 2013-2014 +# 909266411654fe02d72c48514a465be9_33c5f74 <15d35ca13d17f7bfcab80c3d16f5fb15_38993>, 2014 # selengalp , 2014 # YUSUF CAKIR, 2014 # Zubeyir OZTURK , 2015 @@ -46,8 +52,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 18:38+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2019-08-05 02:37+0000\n" +"Last-Translator: Ülgen Sarıkavak \n" "Language-Team: Turkish (http://www.transifex.com/mbanzi/arduino-ide-15/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -96,7 +102,7 @@ msgstr "(eski)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" -msgstr "--curdir desteklenmiyor" +msgstr "--curdir artık desteklenmiyor" #: ../../../processing/app/Base.java:468 msgid "" @@ -147,7 +153,7 @@ msgstr "Arduino Hakkında" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 msgid "Acoli" -msgstr "" +msgstr "Acoli" #: ../../../../../app/src/processing/app/Base.java:1177 msgid "Add .ZIP Library..." @@ -171,7 +177,7 @@ msgstr "Afrikaca" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Agresifçe önbellek derlenmiÅŸ çekirdek" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -181,7 +187,7 @@ msgstr "Arnavutça" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 msgid "All" -msgstr "Tüm" +msgstr "Hepsi" #: tools/FixEncoding.java:77 msgid "" @@ -234,6 +240,11 @@ msgstr "Taslağı ÅŸu ÅŸekilde arÅŸivle:" msgid "Archive sketch canceled." msgstr "Taslağı arÅŸivleme iptal edildi." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "{0} 'de yerleÅŸik çekirdek arÅŸivleme (önbellekleme)" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -285,7 +296,7 @@ msgstr "Bu taslağı silmek istediÄŸinizden emin misiniz?" #: ../../../processing/app/Base.java:356 msgid "Argument required for --board" -msgstr "--board için argüman gereklidir" +msgstr "--board için argüman gerekli" #: ../../../processing/app/Base.java:363 msgid "Argument required for --port" @@ -365,13 +376,13 @@ msgstr "Kart" #: ../../../../../app//src/processing/app/Editor.java:2824 msgid "Board Info" -msgstr "" +msgstr "Kart Bilgisi" #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format msgid "Board at {0} is not available" -msgstr "" +msgstr "{0} adresindeki kart kullanılamıyor" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -446,7 +457,7 @@ msgstr "Önyükleyici I/O kartına yazdırılıyor (biraz zaman alabilir)..." msgid "" "CRC doesn't match, file is corrupted. It may be a temporary problem, please " "retry later." -msgstr "" +msgstr "CRC eÅŸleÅŸmiyor, dosya bozuk. Geçici bir sorun olabilir, lütfen daha sonra tekrar deneyin." #: ../../../processing/app/Base.java:379 #, java-format @@ -455,7 +466,7 @@ msgstr "{0} için sadece bir adet seçim yapabilirsiniz." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Harici editör etkinleÅŸtirilemiyor" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -501,7 +512,7 @@ msgstr "Çince (Tayvan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Çıkışı temizle" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -529,7 +540,7 @@ msgstr "Çalışma derleniyor..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" -msgstr "" +msgstr "Katkıda bulunuldu" #: Editor.java:1157 Editor.java:2707 msgid "Copy" @@ -559,7 +570,7 @@ msgstr "Düzgün bir konuma kopyalanamıyor." #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format msgid "Could not create directory \"{0}\"" -msgstr "" +msgstr "\"{0}\" dizini oluÅŸturulamadı" #: Editor.java:2179 msgid "Could not create the sketch folder." @@ -640,6 +651,11 @@ msgstr "{0}'ın eski sürümü kaldırılamadı" msgid "Could not replace {0}" msgstr "{0} deÄŸiÅŸtirilemedi" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Tercihler dosyası yazılamadı: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Çalışma arÅŸivlenemedi." @@ -683,6 +699,10 @@ msgstr "Veri İşleme" msgid "Data Storage" msgstr "Veri Depolama" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Yazı tipi boyutunu küçült" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Girintiyi Azalt" @@ -691,6 +711,10 @@ msgstr "Girintiyi Azalt" msgid "Default" msgstr "Varsayılan" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Varsayılan tema" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Sil" @@ -711,7 +735,7 @@ msgstr "Tüm deÄŸiÅŸikliklerden vazgeçip taslağı yeniden yüklemek istiyor mu #: ../../../../../arduino-core/src/processing/app/I18n.java:29 msgid "Display" -msgstr "" +msgstr "Gösterge" #: ../../../processing/app/Preferences.java:438 msgid "Display line numbers" @@ -846,7 +870,7 @@ msgstr "Dosya ekleme sırasında hata oluÅŸtu." #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format msgid "Error compiling for board {0}." -msgstr "" +msgstr "{0} kartı için derleme hatası." #: debug/Compiler.java:369 msgid "Error compiling." @@ -866,6 +890,11 @@ msgstr "Arduino veri klasörüne ulaşırken hata oluÅŸtu." msgid "Error inside Serial.{0}()" msgstr "Serial.{0}() 'da hata" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "{0}: {1} teması yüklenirken hata oluÅŸtu" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -885,6 +914,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Serial Port'u açarken hata! \"{0}\". http://playground.arduino.cc/Linux/All#Permission adresindeki dökümana bakın" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "{0} Kütüphaneler dizini ayrıştırılırken hata oluÅŸtu.\nKütüphaneler dizinini güncellemek için Kitaplık Yöneticisi'ni açmayı deneyin." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Tercihleri okuma sırasında hata oluÅŸtu." @@ -919,6 +967,10 @@ msgstr "Önyükleyici yazdırılırken hata oluÅŸtu." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Önyükleyici yazdırılırken hata oluÅŸtu: Kayıp '{0}' yapılandırma parametresi" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Derlenirken hata: '{0}' ayar argümanı bulunamıyor." @@ -955,23 +1007,19 @@ msgstr "DoÄŸrulanırken/yüklenirken hata" msgid "Estonian" msgstr "Estonca" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonyaca (Estonya)" - #: Editor.java:516 msgid "Examples" msgstr "Örnekler" #: ../../../../../app/src/processing/app/Base.java:1185 msgid "Examples for any board" -msgstr "" +msgstr "Herhangi bir kart için örnekler" #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format msgid "Examples for {0}" -msgstr "" +msgstr "{0} için örnekler" #: ../../../../../app/src/processing/app/Base.java:1244 msgid "Examples from Custom Libraries" @@ -979,7 +1027,7 @@ msgstr "Özel (custom) Kütüphane Örnekleri" #: ../../../../../app/src/processing/app/Base.java:1329 msgid "Examples from Other Libraries" -msgstr "" +msgstr "DiÄŸer kütüphanelerden örnekler" #: ../../../../../app/src/processing/app/Editor.java:753 msgid "Export canceled, changes must first be saved." @@ -1001,7 +1049,7 @@ msgstr "" #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 msgid "Failed to rename sketch folder" -msgstr "" +msgstr "Taslak klasörü yeniden adlandırılamadı" #: Editor.java:491 msgid "File" @@ -1010,7 +1058,7 @@ msgstr "Dosya" #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format msgid "File name {0} is invalid: ignored" -msgstr "" +msgstr "{0} dosya adı geçersiz: yok sayıldı" #: Preferences.java:94 msgid "Filipino" @@ -1094,7 +1142,7 @@ msgstr "Almanca" #: ../../../../../app//src/processing/app/Editor.java:817 msgid "Get Board Info" -msgstr "" +msgstr "Kart Bilgisini Al" #: Editor.java:1054 msgid "Getting Started" @@ -1156,15 +1204,15 @@ msgstr "Bulgarca" #: ../../../../../app/src/processing/app/Base.java:1319 msgid "INCOMPATIBLE" -msgstr "" +msgstr "UYUMSUZ" #: FindReplace.java:96 msgid "Ignore Case" msgstr "Göz Ardı Et" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Hatalı kütüphane ismi göz ardı ediliyor" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Uygun olmayan isimli kütüphane yok sayıldı." #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1190,6 +1238,10 @@ msgstr "library ekle" msgid "Incorrect IDE installation folder" msgstr "Yanlış IDE kurulum dosyası" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Yazı tipi boyutunu büyüt" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Girintiyi Arttır" @@ -1223,10 +1275,10 @@ msgstr "Kuruldu" msgid "Installing boards..." msgstr "Kartlar yükleniyor..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "library yükleniyor: {0}" +msgid "Installing library: {0}:{1}" +msgstr "{0}: {1} Kitaplığı yükleniyor" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1252,6 +1304,17 @@ msgstr "{0} içerisinde geçersiz kütüphane bulundu: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "Geçersiz alıntılama: kapatma iÅŸareti olan [{0}] bulunamadı." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "İtalyanca" @@ -1262,7 +1325,7 @@ msgstr "Japonca" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 msgid "Kazakh" -msgstr "" +msgstr "Kazak" #: Preferences.java:104 msgid "Korean" @@ -1274,7 +1337,7 @@ msgstr "Letonca" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 msgid "Library Manager" -msgstr "Library yöneticisi" +msgstr "Kütüphane yöneticisi" #: ../../../../../app/src/processing/app/Base.java:2349 msgid "Library added to your libraries. Check \"Include library\" menu" @@ -1284,10 +1347,10 @@ msgstr "Library sizin librarylerinize yüklendi. \"library ekle\" menüsünü ko msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "{0} sürüm {1} kütüphanesi zaten kurulu." +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1312,7 +1375,7 @@ msgstr "Düşük hafıza mevcut, kararlılık problemlerine sebep olabilir" #: ../../../../../app/src/processing/app/Base.java:1168 msgid "Manage Libraries..." -msgstr "libraryleri düzenle" +msgstr "Kütüphaneleri Yönet..." #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 msgid "Manual proxy configuration" @@ -1528,7 +1591,7 @@ msgstr "Sayfa Ayarları" #: ../../../../../arduino-core/src/processing/app/I18n.java:25 msgid "Partner" -msgstr "" +msgstr "EÅŸ" #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 msgid "Password:" @@ -1569,7 +1632,7 @@ msgstr "Lütfen Program > İçeri Aktar menüsünü kullanarak Wire kütüphanes #: ../../../../../app//src/processing/app/Editor.java:2799 msgid "Please select a port to obtain board info" -msgstr "" +msgstr "Kart bilgisi almak için lütfen bir port seçin" #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 @@ -1578,7 +1641,7 @@ msgstr "Lütfen Araçlar->Programlayıcı Menüsü'nden bir programlayıcı seç #: ../../../../../app/src/processing/app/Editor.java:2613 msgid "Plotter not available while serial monitor is open" -msgstr "" +msgstr "Seri monitör açıkken çizici kullanılamıyor" #: Preferences.java:110 msgid "Polish" @@ -1686,7 +1749,7 @@ msgstr "Çıkış" #: ../../../../../app/src/processing/app/Base.java:1233 msgid "RETIRED" -msgstr "" +msgstr "EMEKLİ" #: ../../../../../arduino-core/src/processing/app/I18n.java:26 msgid "Recommended" @@ -1704,10 +1767,10 @@ msgstr "Kaynak" msgid "Remove" msgstr "Kaldır" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "Kütüphane kaldırılıyor: {0}" +msgid "Removing library: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1741,7 +1804,11 @@ msgstr "Åžununla deÄŸiÅŸtir:" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" -msgstr "" +msgstr "emekli" + +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Yüklemeyi baÅŸka bir seri port ile tekrar denemek ister misiniz?" #: Preferences.java:113 msgid "Romanian" @@ -1857,7 +1924,7 @@ msgstr "" #: ../../../../../app/src/processing/app/Editor.java:2516 msgid "Serial monitor not available while plotter is open" -msgstr "" +msgstr "Çizici açıkken seri monitör kullanılamıyor" #: Serial.java:194 #, java-format @@ -1866,12 +1933,15 @@ msgid "" " Serial Port menu?" msgstr "Seri port \"{0}\" bulunamadı. Araçlar > Seri Port menüsünden doÄŸru portu seçtiniz mi?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Seri port seçilmedi." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Seri port \"{0}\" bulunamadı.\nBaÅŸka bir seri port ile denemek ister misiniz?" +msgid "Serial port {0} not found." +msgstr "Seri port {0} bulunamadı." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1894,6 +1964,10 @@ msgstr "Ayar problemleri" msgid "Show Sketch Folder" msgstr "Çalışma Klasörünü Göster" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Zaman damgasını göster" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "AÅŸağıdaki iÅŸlem sırasında ayrıntılı çıktı göster:" @@ -2020,7 +2094,7 @@ msgstr "Tamil" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 msgid "Thai" @@ -2065,6 +2139,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr " \"{0}\" adlı dosyanın \n \"{1}\" adlı bir klasörün içinde olması gerekiyor.\nKlasör oluÅŸturulup dosya taşınarak devam edilsin mi?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2075,7 +2157,7 @@ msgstr "\"{0}\" kütüphanesi kullanılamaz.\nKütüphane adları sadece temel h #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" -msgstr "" +msgstr "Ana dosya bir uzantı kullanamıyor" #: Sketch.java:356 msgid "The name cannot start with a period." @@ -2110,12 +2192,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Taslak klasörü kayboldu.\nAynı konuma tekrar kaydetme denemesi yapılacak,\nfakat onun haricindeki kodlar kaybolacak." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Program ismi deÄŸiÅŸtirildi.\nProgram isimleri sadece ASCII karakterlerden ve rakamlardan meydana gelebilir (ancak bir rakam ile baÅŸlayamazlar)\nAynı zamanda program isimleri en fazla 64 karakter uzunluÄŸunda olabilir." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Taslak adının deÄŸiÅŸtirilmesi gerekiyordu.\nEskiz isimleri bir harf veya rakamla baÅŸlamalı, ardından harf\nsayılar, kısa çizgiler, noktalar ve alt çizgiler izlemeli. Maksimum uzunluk 63 karakterdir." #: Base.java:259 msgid "" @@ -2132,6 +2214,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "BelirlediÄŸiniz taslak defteri dizini IDE'nizin kopyasını içeriyor.\nLütfen taslak defteriniz için farklı bir dizin seçin." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Tema:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2151,7 +2237,7 @@ msgstr "Mola Zamanı" #: ../../../../../arduino-core/src/processing/app/I18n.java:34 msgid "Timing" -msgstr "" +msgstr "Zamanlama" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -2229,7 +2315,7 @@ msgstr "Olası aÄŸ sorunları nedeniyle Arduino.cc'ye eriÅŸilemedi." #: ../../../../../arduino-core/src/processing/app/I18n.java:38 msgid "Uncategorized" -msgstr "" +msgstr "Sınıflandırılmamış" #: Editor.java:1133 Editor.java:1355 msgid "Undo" @@ -2242,7 +2328,7 @@ msgstr "BaÄŸlam (context) anahtarı {1}'de iÅŸlenemeyen {0} tipi" #: ../../../../../app//src/processing/app/Editor.java:2818 msgid "Unknown board" -msgstr "" +msgstr "Bilinmeyen kart" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -2493,7 +2579,7 @@ msgstr "Taslak defterinizi unuttunuz" msgid "" "You have unsaved changes!\n" "You must save all your sketches to enable this option." -msgstr "" +msgstr "KaydedilmemiÅŸ deÄŸiÅŸiklikleriniz mevcut!\nBu seçeneÄŸi etkinleÅŸtirmek için tüm taslaklarınızı kaydetmelisiniz." #: ../../../processing/app/AbstractMonitor.java:92 msgid "" @@ -2624,6 +2710,12 @@ msgstr "geçersiz font boyutu {0} yok sayıldı " msgid "name is null" msgstr "name deÄŸeri boÅŸ" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu deÄŸeri boÅŸ" @@ -2711,11 +2803,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Geçersiz bir devre kartı adıdır, \"package:arch:board\" veya \"package:arch:board:options\" ÅŸeklinde olmalıdır." -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: {2} kartı için bilinmeyen {1} seçeneÄŸi " - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2726,6 +2813,11 @@ msgstr "{0}: {1} kartı için geçersiz seçenek" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Geçersiz seçenek. isim=deger ÅŸeklinde olmalıdır." +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_tr.properties b/arduino-core/src/processing/app/i18n/Resources_tr.properties index 2b0ec07077f..3d72960e129 100644 --- a/arduino-core/src/processing/app/i18n/Resources_tr.properties +++ b/arduino-core/src/processing/app/i18n/Resources_tr.properties @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # An\u0131l \u00d6zbek , 2013 # Ayse Gokce Bor , 2012 # b , 2015 @@ -29,19 +33,21 @@ # Koray Al , 2012 # Huseyin Sozen , 2015 # Kaan CEYHAN , 2013 +# Mehmet \u015e\u00dcK\u00dcRO\u011eLU , 2018 # Mert G\u00fclsoy , 2015 +# Mustafa Haluk Saran , 2019 # nazrdogan , 2015 # Oguzhan Gazi Aslantas , 2015 # O\u011fuzhan Gen\u00e7el , 2015 # washaq , 2014 # sercan , 2015 -# \u00dclgen Sar\u0131kavak , 2012,2016 -# \u00dclgen Sar\u0131kavak , 2013-2014 -# \u00dclgen Sar\u0131kavak , 2014 +# \u00dclgen Sar\u0131kavak , 2012,2016,2019 +# 909266411654fe02d72c48514a465be9_33c5f74 <15d35ca13d17f7bfcab80c3d16f5fb15_38993>, 2013-2014 +# 909266411654fe02d72c48514a465be9_33c5f74 <15d35ca13d17f7bfcab80c3d16f5fb15_38993>, 2014 # selengalp , 2014 # YUSUF CAKIR, 2014 # Zubeyir OZTURK , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 18\:38+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Turkish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/tr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: tr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-08-05 02\:37+0000\nLast-Translator\: \u00dclgen Sar\u0131kavak \nLanguage-Team\: Turkish (http\://www.transifex.com/mbanzi/arduino-ide-15/language/tr/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: tr\nPlural-Forms\: nplurals\=2; plural\=(n > 1);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(Arduino'nun yeniden ba\u015flat\u0131lmas\u0131n\u0131 gerektiriyor) @@ -70,7 +76,7 @@ (legacy)=(eski) #: ../../../processing/app/helpers/CommandlineParser.java:149 ---curdir\ no\ longer\ supported=--curdir desteklenmiyor +--curdir\ no\ longer\ supported=--curdir art\u0131k desteklenmiyor #: ../../../processing/app/Base.java:468 --verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload ve --verbose-build yaln\u0131zca --verify ya da --upload ile birlikte kullan\u0131labilir @@ -103,7 +109,7 @@ A\ subfolder\ of\ your\ sketchbook\ is\ not\ a\ valid\ library=Taslak defterinin About\ Arduino=Arduino Hakk\u0131nda #: ../../../../../app/src/cc/arduino/i18n/Languages.java:41 -!Acoli= +Acoli=Acoli #: ../../../../../app/src/processing/app/Base.java:1177 Add\ .ZIP\ Library...=.ZIP Kitapl\u0131\u011f\u0131 Ekle... @@ -121,7 +127,7 @@ Additional\ Boards\ Manager\ URLs\:\ =Ek Devre Kartlar\u0131 Y\u00f6neticisi URL Afrikaans=Afrikaca #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Agresif\u00e7e \u00f6nbellek derlenmi\u015f \u00e7ekirdek #: ../../../processing/app/Preferences.java:96 Albanian=Arnavut\u00e7a @@ -129,7 +135,7 @@ Albanian=Arnavut\u00e7a #: ../../../../../app/src/cc/arduino/contributions/ui/DropdownAllItem.java:42 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownAllCoresItem.java:43 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:187 -All=T\u00fcm +All=Hepsi #: tools/FixEncoding.java:77 An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Dosya kodlamas\u0131n\u0131 d\u00fczeltmeye \u00e7al\u0131\u015f\u0131rken bir hata olu\u015ftu.\nEski s\u00fcr\u00fcm\u00fcn \u00fczerine yazma ihtimaline kar\u015f\u0131 bu tasla\u011f\u0131 kaydetmeye \u00e7al\u0131\u015fmay\u0131n.\nA\u00e7 komutunu kullanarak dosyay\u0131 yeniden a\u00e7\u0131n ve tekrar deneyin.\n @@ -166,6 +172,10 @@ Archive\ sketch\ as\:=Tasla\u011f\u0131 \u015fu \u015fekilde ar\u015fivle\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=Tasla\u011f\u0131 ar\u015fivleme iptal edildi. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}={0} 'de yerle\u015fik \u00e7ekirdek ar\u015fivleme (\u00f6nbellekleme) + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Tasla\u011f\u0131n ar\u015fivlenmesi iptal edildi. \u00c7\u00fcnk\u00fc \ntaslak d\u00fczg\u00fcn bir \u015fekilde kaydedilemedi. @@ -198,7 +208,7 @@ Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?="{0}" \u0131 silmek istedi\u011fin Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Bu tasla\u011f\u0131 silmek istedi\u011finizden emin misiniz? #: ../../../processing/app/Base.java:356 -Argument\ required\ for\ --board=--board i\u00e7in arg\u00fcman gereklidir +Argument\ required\ for\ --board=--board i\u00e7in arg\u00fcman gerekli #: ../../../processing/app/Base.java:363 Argument\ required\ for\ --port=--port i\u00e7in arg\u00fcman gereklidir. @@ -259,12 +269,12 @@ Belarusian=Belarus\u00e7a Board=Kart #: ../../../../../app//src/processing/app/Editor.java:2824 -!Board\ Info= +Board\ Info=Kart Bilgisi #: ../../../../../app/src/processing/app/Editor.java:2545 #: ../../../../../app/src/processing/app/Editor.java:2641 #, java-format -!Board\ at\ {0}\ is\ not\ available= +Board\ at\ {0}\ is\ not\ available={0} adresindeki kart kullan\u0131lam\u0131yor #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:62 #, java-format @@ -318,14 +328,14 @@ Burn\ Bootloader=\u00d6ny\u00fckleyiciyi Yazd\u0131r Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=\u00d6ny\u00fckleyici I/O kart\u0131na yazd\u0131r\u0131l\u0131yor (biraz zaman alabilir)... #: ../../../../../arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java:91 -!CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.= +CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ please\ retry\ later.=CRC e\u015fle\u015fmiyor, dosya bozuk. Ge\u00e7ici bir sorun olabilir, l\u00fctfen daha sonra tekrar deneyin. #: ../../../processing/app/Base.java:379 #, java-format Can\ only\ pass\ one\ of\:\ {0}={0} i\u00e7in sadece bir adet se\u00e7im yapabilirsiniz. #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=Harici edit\u00f6r etkinle\u015ftirilemiyor #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -360,7 +370,7 @@ Chinese\ (Taiwan)=\u00c7ince (Tayvan) Chinese\ (Taiwan)\ (Big5)=\u00c7ince (Tayvan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=\u00c7\u0131k\u0131\u015f\u0131 temizle #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Gayriresmi kartlara destek URL'lerinin listesi i\u00e7in t\u0131klay\u0131n @@ -381,7 +391,7 @@ Compiler\ warnings\:\ =Derleme uyar\u0131s\u0131 Compiling\ sketch...=\u00c7al\u0131\u015fma derleniyor... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 -!Contributed= +Contributed=Katk\u0131da bulunuldu #: Editor.java:1157 Editor.java:2707 Copy=Kopyala @@ -404,7 +414,7 @@ Could\ not\ copy\ to\ a\ proper\ location.=D\u00fczg\u00fcn bir konuma kopyalana #: ../../../../../arduino-core/src/processing/app/Sketch.java:342 #, java-format -!Could\ not\ create\ directory\ "{0}"= +Could\ not\ create\ directory\ "{0}"="{0}" dizini olu\u015fturulamad\u0131 #: Editor.java:2179 Could\ not\ create\ the\ sketch\ folder.=\u00c7al\u0131\u015fma klas\u00f6r\u00fc olu\u015fturulamad\u0131. @@ -460,6 +470,10 @@ Could\ not\ remove\ old\ version\ of\ {0}={0}'\u0131n eski s\u00fcr\u00fcm\u00fc #, java-format Could\ not\ replace\ {0}={0} de\u011fi\u015ftirilemedi +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=Tercihler dosyas\u0131 yaz\u0131lamad\u0131\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u00c7al\u0131\u015fma ar\u015fivlenemedi. @@ -490,12 +504,18 @@ Data\ Processing=Veri \u0130\u015fleme #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Veri Depolama +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Yaz\u0131 tipi boyutunu k\u00fc\u00e7\u00fclt + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Girintiyi Azalt #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=Varsay\u0131lan +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Varsay\u0131lan tema + #: EditorHeader.java:314 Sketch.java:591 Delete=Sil @@ -509,7 +529,7 @@ Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ Discard\ all\ changes\ and\ reload\ sketch?=T\u00fcm de\u011fi\u015fikliklerden vazge\u00e7ip tasla\u011f\u0131 yeniden y\u00fcklemek istiyor musunuz? #: ../../../../../arduino-core/src/processing/app/I18n.java:29 -!Display= +Display=G\u00f6sterge #: ../../../processing/app/Preferences.java:438 Display\ line\ numbers=Sat\u0131r numaralar\u0131n\u0131 g\u00f6ster @@ -611,7 +631,7 @@ Error\ adding\ file=Dosya ekleme s\u0131ras\u0131nda hata olu\u015ftu. #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:272 #, java-format -!Error\ compiling\ for\ board\ {0}.= +Error\ compiling\ for\ board\ {0}.={0} kart\u0131 i\u00e7in derleme hatas\u0131. #: debug/Compiler.java:369 Error\ compiling.=Derleme s\u0131ras\u0131nda hata olu\u015ftu. @@ -627,6 +647,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=Arduino veri klas\u00f6r\u00fcne ula #, java-format Error\ inside\ Serial.{0}()=Serial.{0}() 'da hata +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}={0}\: {1} temas\u0131 y\u00fcklenirken hata olu\u015ftu + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -641,6 +665,18 @@ Error\ opening\ serial\ port\ ''{0}''.=Seri port "{0}" a\u00e7\u0131lamad\u0131. #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=Serial Port'u a\u00e7arken hata\! "{0}". http\://playground.arduino.cc/Linux/All\#Permission adresindeki d\u00f6k\u00fcmana bak\u0131n +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.={0} K\u00fct\u00fcphaneler dizini ayr\u0131\u015ft\u0131r\u0131l\u0131rken hata olu\u015ftu.\nK\u00fct\u00fcphaneler dizinini g\u00fcncellemek i\u00e7in Kitapl\u0131k Y\u00f6neticisi'ni a\u00e7may\u0131 deneyin. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=Tercihleri okuma s\u0131ras\u0131nda hata olu\u015ftu. @@ -666,6 +702,9 @@ Error\ while\ burning\ bootloader.=\u00d6ny\u00fckleyici yazd\u0131r\u0131l\u013 #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u00d6ny\u00fckleyici yazd\u0131r\u0131l\u0131rken hata olu\u015ftu\: Kay\u0131p '{0}' yap\u0131land\u0131rma parametresi +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=Derlenirken hata\: '{0}' ayar arg\u00fcman\u0131 bulunam\u0131yor. @@ -694,25 +733,22 @@ Error\ while\ verifying/uploading=Do\u011frulan\u0131rken/y\u00fcklenirken hata #: Preferences.java:93 Estonian=Estonca -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonyaca (Estonya) - #: Editor.java:516 Examples=\u00d6rnekler #: ../../../../../app/src/processing/app/Base.java:1185 -!Examples\ for\ any\ board= +Examples\ for\ any\ board=Herhangi bir kart i\u00e7in \u00f6rnekler #: ../../../../../app/src/processing/app/Base.java:1205 #: ../../../../../app/src/processing/app/Base.java:1216 #, java-format -!Examples\ for\ {0}= +Examples\ for\ {0}={0} i\u00e7in \u00f6rnekler #: ../../../../../app/src/processing/app/Base.java:1244 Examples\ from\ Custom\ Libraries=\u00d6zel (custom) K\u00fct\u00fcphane \u00d6rnekleri #: ../../../../../app/src/processing/app/Base.java:1329 -!Examples\ from\ Other\ Libraries= +Examples\ from\ Other\ Libraries=Di\u011fer k\u00fct\u00fcphanelerden \u00f6rnekler #: ../../../../../app/src/processing/app/Editor.java:753 Export\ canceled,\ changes\ must\ first\ be\ saved.=D\u0131\u015fa aktarma iptal edildi. \u00d6nce de\u011fi\u015fikliklerin kaydedilmesi gerekiyor. @@ -729,14 +765,14 @@ Failed\ to\ open\ sketch\:\ "{0}"=Taslak \u00e7al\u0131\u015fma a\u00e7\u0131lam !Failed\ to\ rename\ "{0}"\ to\ "{1}"= #: ../../../../../arduino-core/src/processing/app/Sketch.java:298 -!Failed\ to\ rename\ sketch\ folder= +Failed\ to\ rename\ sketch\ folder=Taslak klas\u00f6r\u00fc yeniden adland\u0131r\u0131lamad\u0131 #: Editor.java:491 File=Dosya #: ../../../../../arduino-core/src/processing/app/SketchData.java:139 #, java-format -!File\ name\ {0}\ is\ invalid\:\ ignored= +File\ name\ {0}\ is\ invalid\:\ ignored={0} dosya ad\u0131 ge\u00e7ersiz\: yok say\u0131ld\u0131 #: Preferences.java:94 Filipino=Filipince @@ -798,7 +834,7 @@ Georgian=G\u00fcrc\u00fcce German=Almanca #: ../../../../../app//src/processing/app/Editor.java:817 -!Get\ Board\ Info= +Get\ Board\ Info=Kart Bilgisini Al #: Editor.java:1054 Getting\ Started=Ba\u015flarken... @@ -842,13 +878,13 @@ How\ very\ Borges\ of\ you=Escher size sayg\u0131lar\u0131n\u0131 sunuyor Hungarian=Bulgarca #: ../../../../../app/src/processing/app/Base.java:1319 -!INCOMPATIBLE= +INCOMPATIBLE=UYUMSUZ #: FindReplace.java:96 Ignore\ Case=G\u00f6z Ard\u0131 Et -#: Base.java:1058 -Ignoring\ bad\ library\ name=Hatal\u0131 k\u00fct\u00fcphane ismi g\u00f6z ard\u0131 ediliyor +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=Uygun olmayan isimli k\u00fct\u00fcphane yok say\u0131ld\u0131. #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=K\u00f6t\u00fc isme sahip taslak yoksay\u0131l\u0131yor @@ -863,6 +899,9 @@ Include\ Library=library ekle #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Yanl\u0131\u015f IDE kurulum dosyas\u0131 +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=Yaz\u0131 tipi boyutunu b\u00fcy\u00fct + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=Girintiyi Artt\u0131r @@ -889,9 +928,9 @@ Installed=Kuruldu #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=Kartlar y\u00fckleniyor... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=library y\u00fckleniyor\: {0} +Installing\ library\:\ {0}\:{1}={0}\: {1} Kitapl\u0131\u011f\u0131 y\u00fckleniyor #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -912,6 +951,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}={0} i\u00e7erisinde ge\u00e7ersiz k\u00f #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=Ge\u00e7ersiz al\u0131nt\u0131lama\: kapatma i\u015fareti olan [{0}] bulunamad\u0131. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=\u0130talyanca @@ -919,7 +967,7 @@ Italian=\u0130talyanca Japanese=Japonca #: ../../../../../app/src/cc/arduino/i18n/Languages.java:81 -!Kazakh= +Kazakh=Kazak #: Preferences.java:104 Korean=Korece @@ -928,7 +976,7 @@ Korean=Korece Latvian=Letonca #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:93 -Library\ Manager=Library y\u00f6neticisi +Library\ Manager=K\u00fct\u00fcphane y\u00f6neticisi #: ../../../../../app/src/processing/app/Base.java:2349 Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Library sizin librarylerinize y\u00fcklendi. "library ekle" men\u00fcs\u00fcn\u00fc kontrol edin @@ -936,9 +984,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Library si #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}={0} s\u00fcr\u00fcm {1} k\u00fct\u00fcphanesi zaten kurulu. +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=Sat\u0131r numaras\u0131\: @@ -957,7 +1005,7 @@ Loading\ configuration...=ayarlar y\u00fckleniyor... Low\ memory\ available,\ stability\ problems\ may\ occur.=D\u00fc\u015f\u00fck haf\u0131za mevcut, kararl\u0131l\u0131k problemlerine sebep olabilir #: ../../../../../app/src/processing/app/Base.java:1168 -Manage\ Libraries...=libraryleri d\u00fczenle +Manage\ Libraries...=K\u00fct\u00fcphaneleri Y\u00f6net... #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:466 Manual\ proxy\ configuration=Elle vekil sunucusu yap\u0131land\u0131rma @@ -1119,7 +1167,7 @@ Other=Di\u011fer Page\ Setup=Sayfa Ayarlar\u0131 #: ../../../../../arduino-core/src/processing/app/I18n.java:25 -!Partner= +Partner=E\u015f #: ../../../processing/app/forms/PasswordAuthorizationDialog.java:44 Password\:=Parola\: @@ -1150,14 +1198,14 @@ Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.= Please\ import\ the\ Wire\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=L\u00fctfen Program > \u0130\u00e7eri Aktar men\u00fcs\u00fcn\u00fc kullanarak Wire k\u00fct\u00fcphanesini i\u00e7eri aktar\u0131n. #: ../../../../../app//src/processing/app/Editor.java:2799 -!Please\ select\ a\ port\ to\ obtain\ board\ info= +Please\ select\ a\ port\ to\ obtain\ board\ info=Kart bilgisi almak i\u00e7in l\u00fctfen bir port se\u00e7in #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:217 #: ../../../cc/arduino/packages/uploaders/SerialUploader.java:262 Please\ select\ a\ programmer\ from\ Tools->Programmer\ menu=L\u00fctfen Ara\u00e7lar->Programlay\u0131c\u0131 Men\u00fcs\u00fc'nden bir programlay\u0131c\u0131 se\u00e7in #: ../../../../../app/src/processing/app/Editor.java:2613 -!Plotter\ not\ available\ while\ serial\ monitor\ is\ open= +Plotter\ not\ available\ while\ serial\ monitor\ is\ open=Seri monit\u00f6r a\u00e7\u0131kken \u00e7izici kullan\u0131lam\u0131yor #: Preferences.java:110 Polish=Polonyaca @@ -1237,7 +1285,7 @@ Progress\ {0}=\u0130lerleme {0} Quit=\u00c7\u0131k\u0131\u015f #: ../../../../../app/src/processing/app/Base.java:1233 -!RETIRED= +RETIRED=EMEKL\u0130 #: ../../../../../arduino-core/src/processing/app/I18n.java:26 Recommended=Tavsiye edilen @@ -1251,9 +1299,9 @@ Reference=Kaynak #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=Kald\u0131r -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=K\u00fct\u00fcphane kald\u0131r\u0131l\u0131yor\: {0} +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1279,7 +1327,10 @@ Replace\ the\ existing\ version\ of\ {0}?={0}'\u0131n mevcut s\u00fcr\u00fcm\u00 Replace\ with\:=\u015eununla de\u011fi\u015ftir\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 -!Retired= +Retired=emekli + +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=Y\u00fcklemeyi ba\u015fka bir seri port ile tekrar denemek ister misiniz? #: Preferences.java:113 Romanian=Romanca @@ -1366,15 +1417,19 @@ Serial\ Plotter=Seri \u00c7izici !Serial\ monitor\ is\ not\ supported\ on\ network\ ports\ such\ as\ {0}\ for\ the\ {1}\ in\ this\ release= #: ../../../../../app/src/processing/app/Editor.java:2516 -!Serial\ monitor\ not\ available\ while\ plotter\ is\ open= +Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u00c7izici a\u00e7\u0131kken seri monit\u00f6r kullan\u0131lam\u0131yor #: Serial.java:194 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Seri port "{0}" bulunamad\u0131. Ara\u00e7lar > Seri Port men\u00fcs\u00fcnden do\u011fru portu se\u00e7tiniz mi? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=Seri port se\u00e7ilmedi. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Seri port "{0}" bulunamad\u0131.\nBa\u015fka bir seri port ile denemek ister misiniz? +Serial\ port\ {0}\ not\ found.=Seri port {0} bulunamad\u0131. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=Seri portlar @@ -1392,6 +1447,9 @@ Settings\ issues=Ayar problemleri #: Editor.java:641 Show\ Sketch\ Folder=\u00c7al\u0131\u015fma Klas\u00f6r\u00fcn\u00fc G\u00f6ster +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=Zaman damgas\u0131n\u0131 g\u00f6ster + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =A\u015fa\u011f\u0131daki i\u015flem s\u0131ras\u0131nda ayr\u0131nt\u0131l\u0131 \u00e7\u0131kt\u0131 g\u00f6ster\: @@ -1480,7 +1538,7 @@ Talossan=Talossan Tamil=Tamil #: ../../../../../app/src/cc/arduino/i18n/Languages.java:102 -!Telugu= +Telugu=Telugu #: ../../../../../app/src/cc/arduino/i18n/Languages.java:100 Thai=Tay Dili @@ -1511,12 +1569,16 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=Udp s\u0131n\u0131f\u0131 Ethe #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\ "{0}" adl\u0131 dosyan\u0131n \n "{1}" adl\u0131 bir klas\u00f6r\u00fcn i\u00e7inde olmas\u0131 gerekiyor.\nKlas\u00f6r olu\u015fturulup dosya ta\u015f\u0131narak devam edilsin mi? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)="{0}" k\u00fct\u00fcphanesi kullan\u0131lamaz.\nK\u00fct\u00fcphane adlar\u0131 sadece temel harf ve rakamlar\u0131 i\u00e7erebilir.\n(Sadece ASCII karakterler ge\u00e7erlidir, bo\u015fluk i\u00e7eremez ve bir rakamla ba\u015flayamaz) #: ../../../../../app/src/processing/app/SketchController.java:170 -!The\ main\ file\ cannot\ use\ an\ extension= +The\ main\ file\ cannot\ use\ an\ extension=Ana dosya bir uzant\u0131 kullanam\u0131yor #: Sketch.java:356 The\ name\ cannot\ start\ with\ a\ period.=\u0130sim bo\u015fluk ile ba\u015flayamaz. @@ -1535,8 +1597,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Taslak klas\u00f6r\u00fc kayboldu.\nAyn\u0131 konuma tekrar kaydetme denemesi yap\u0131lacak,\nfakat onun haricindeki kodlar kaybolacak. -#: ../../../processing/app/Sketch.java:2028 -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.=Program ismi de\u011fi\u015ftirildi.\nProgram isimleri sadece ASCII karakterlerden ve rakamlardan meydana gelebilir (ancak bir rakam ile ba\u015flayamazlar)\nAyn\u0131 zamanda program isimleri en fazla 64 karakter uzunlu\u011funda olabilir. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=Taslak ad\u0131n\u0131n de\u011fi\u015ftirilmesi gerekiyordu.\nEskiz isimleri bir harf veya rakamla ba\u015flamal\u0131, ard\u0131ndan harf\nsay\u0131lar, k\u0131sa \u00e7izgiler, noktalar ve alt \u00e7izgiler izlemeli. Maksimum uzunluk 63 karakterdir. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u00c7al\u0131\u015fma klas\u00f6r\u00fc bulunamad\u0131.\nArduino varsay\u0131lan \u00e7al\u0131\u015fma konumuna ge\u00e7ecek ve gerekirse yeni bir \u00e7al\u0131\u015fma\nklas\u00f6r\u00fc olu\u015fturacakt\u0131r. Akabinde Arduino kendi hakk\u0131nda \u00fc\u00e7\u00fcnc\u00fc ki\u015fi olarak konu\u015fmay\u0131 b\u0131rakacakt\u0131r. @@ -1544,6 +1606,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=Belirledi\u011finiz taslak defteri dizini IDE'nizin kopyas\u0131n\u0131 i\u00e7eriyor.\nL\u00fctfen taslak defteriniz i\u00e7in farkl\u0131 bir dizin se\u00e7in. +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =Tema\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=Bu k\u00fct\u00fcphane K\u00fct\u00fcphane Y\u00f6neticisi'nde listelenmiyor. Dolay\u0131s\u0131yla onu buradan tekrar kuramayacaks\u0131n\u0131z.\nSilmek istedi\u011finize emin misiniz? @@ -1554,7 +1619,7 @@ This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ Time\ for\ a\ Break=Mola Zaman\u0131 #: ../../../../../arduino-core/src/processing/app/I18n.java:34 -!Timing= +Timing=Zamanlama #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:94 #, java-format @@ -1614,7 +1679,7 @@ Unable\ to\ open\ serial\ plotter=Seri port monit\u00f6r\u00fc a\u00e7\u0131lam\ Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=Olas\u0131 a\u011f sorunlar\u0131 nedeniyle Arduino.cc'ye eri\u015filemedi. #: ../../../../../arduino-core/src/processing/app/I18n.java:38 -!Uncategorized= +Uncategorized=S\u0131n\u0131fland\u0131r\u0131lmam\u0131\u015f #: Editor.java:1133 Editor.java:1355 Undo=Geri Al @@ -1624,7 +1689,7 @@ Undo=Geri Al Unhandled\ type\ {0}\ in\ context\ key\ {1}=Ba\u011flam (context) anahtar\u0131 {1}'de i\u015flenemeyen {0} tipi #: ../../../../../app//src/processing/app/Editor.java:2818 -!Unknown\ board= +Unknown\ board=Bilinmeyen kart #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:86 #, java-format @@ -1804,7 +1869,7 @@ You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ g You\ forgot\ your\ sketchbook=Taslak defterinizi unuttunuz #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:252 -!You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.= +You\ have\ unsaved\ changes\!\nYou\ must\ save\ all\ your\ sketches\ to\ enable\ this\ option.=Kaydedilmemi\u015f de\u011fi\u015fiklikleriniz mevcut\!\nBu se\u00e7ene\u011fi etkinle\u015ftirmek i\u00e7in t\u00fcm taslaklar\u0131n\u0131z\u0131 kaydetmelisiniz. #: ../../../processing/app/AbstractMonitor.java:92 You've\ pressed\ {0}\ but\ nothing\ was\ sent.\ Should\ you\ select\ a\ line\ ending?={0} e bast\u0131n\u0131z ama hi\u00e7bir\u015fey g\u00f6nderilmedi. Sat\u0131r sonu karakteri eklemeniz gerekiyor olabilir. @@ -1878,6 +1943,11 @@ ignoring\ invalid\ font\ size\ {0}=ge\u00e7ersiz font boyutu {0} yok say\u0131ld #: Editor.java:936 Editor.java:943 name\ is\ null=name de\u011feri bo\u015f +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu de\u011feri bo\u015f @@ -1945,10 +2015,6 @@ version\ {0}=versiyon {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: Ge\u00e7ersiz bir devre kart\u0131 ad\u0131d\u0131r, "package\:arch\:board" veya "package\:arch\:board\:options" \u015feklinde olmal\u0131d\u0131r. -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: {2} kart\u0131 i\u00e7in bilinmeyen {1} se\u00e7ene\u011fi - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: {1} kart\u0131 i\u00e7in ge\u00e7ersiz se\u00e7enek @@ -1957,6 +2023,10 @@ version\ {0}=versiyon {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: Ge\u00e7ersiz se\u00e7enek. isim\=deger \u015feklinde olmal\u0131d\u0131r. +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Bilinmeyen mimari diff --git a/arduino-core/src/processing/app/i18n/Resources_tzl.po b/arduino-core/src/processing/app/i18n/Resources_tzl.po index e6c8eea6896..b5097ce8571 100644 --- a/arduino-core/src/processing/app/i18n/Resources_tzl.po +++ b/arduino-core/src/processing/app/i18n/Resources_tzl.po @@ -16,6 +16,10 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Marcel Machado , 2015 # Robin van der Vliet , 2015 msgid "" @@ -23,7 +27,7 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-23 20:52+0000\n" +"PO-Revision-Date: 2018-11-23 15:06+0000\n" "Last-Translator: Cristian Maglie \n" "Language-Team: Talossan (http://www.transifex.com/mbanzi/arduino-ide-15/language/tzl/)\n" "MIME-Version: 1.0\n" @@ -211,6 +215,11 @@ msgstr "" msgid "Archive sketch canceled." msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -617,6 +626,11 @@ msgstr "" msgid "Could not replace {0}" msgstr "" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "" @@ -660,6 +674,10 @@ msgstr "" msgid "Data Storage" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "" @@ -668,6 +686,10 @@ msgstr "" msgid "Default" msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "" @@ -843,6 +865,11 @@ msgstr "" msgid "Error inside Serial.{0}()" msgstr "" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -862,6 +889,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "" @@ -896,6 +942,10 @@ msgstr "" msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "" @@ -932,10 +982,6 @@ msgstr "" msgid "Estonian" msgstr "" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "" - #: Editor.java:516 msgid "Examples" msgstr "Exampais" @@ -1139,8 +1185,8 @@ msgstr "" msgid "Ignore Case" msgstr "" -#: Base.java:1058 -msgid "Ignoring bad library name" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" msgstr "" #: Base.java:1436 @@ -1167,6 +1213,10 @@ msgstr "" msgid "Incorrect IDE installation folder" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "" @@ -1200,9 +1250,9 @@ msgstr "" msgid "Installing boards..." msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" +msgid "Installing library: {0}:{1}" msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 @@ -1229,6 +1279,17 @@ msgstr "" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "" + #: Preferences.java:102 msgid "Italian" msgstr "Talian" @@ -1261,9 +1322,9 @@ msgstr "" msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" +msgid "Library is already installed: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 @@ -1681,9 +1742,9 @@ msgstr "Referencéu" msgid "Remove" msgstr "" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 @@ -1720,6 +1781,10 @@ msgstr "" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romaniesc" @@ -1843,11 +1908,14 @@ msgid "" " Serial Port menu?" msgstr "" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" +msgid "Serial port {0} not found." msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 @@ -1871,6 +1939,10 @@ msgstr "" msgid "Show Sketch Folder" msgstr "" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "" @@ -2042,6 +2114,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2087,11 +2167,11 @@ msgid "" "but anything besides the code will be lost." msgstr "" -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2109,6 +2189,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2601,6 +2685,12 @@ msgstr "" msgid "name is null" msgstr "" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "" @@ -2688,11 +2778,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2703,6 +2788,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_tzl.properties b/arduino-core/src/processing/app/i18n/Resources_tzl.properties index 4657c784aa0..4b3da6435ad 100644 --- a/arduino-core/src/processing/app/i18n/Resources_tzl.properties +++ b/arduino-core/src/processing/app/i18n/Resources_tzl.properties @@ -16,9 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Marcel Machado , 2015 # Robin van der Vliet , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-23 20\:52+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Talossan (http\://www.transifex.com/mbanzi/arduino-ide-15/language/tzl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: tzl\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2018-11-23 15\:06+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Talossan (http\://www.transifex.com/mbanzi/arduino-ide-15/language/tzl/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: tzl\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Preferences.java:358 Preferences.java:374 !\ \ (requires\ restart\ of\ Arduino)= @@ -143,6 +147,10 @@ Arabic=Arap #: tools/Archiver.java:139 !Archive\ sketch\ canceled.= +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 !Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.= @@ -437,6 +445,10 @@ Chinese\ (Taiwan)\ (Big5)=Cinesch (Taivan) (Big5) #, java-format !Could\ not\ replace\ {0}= +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 !Couldn't\ archive\ sketch= @@ -467,12 +479,18 @@ Danish\ (Denmark)=Danois (Danmarc) #: ../../../../../arduino-core/src/processing/app/I18n.java:35 !Data\ Storage= +#: ../../../../../app/src/processing/app/Editor.java:1386 +!Decrease\ Font\ Size= + #: Editor.java:1224 Editor.java:2765 !Decrease\ Indent= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 !Default= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +!Default\ theme= + #: EditorHeader.java:314 Sketch.java:591 !Delete= @@ -604,6 +622,10 @@ English\ (United\ Kingdom)=Angleasca (Regip\u00e4ts Viensi\u00e7at) #, java-format !Error\ inside\ Serial.{0}()= +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +!Error\ loading\ theme\ {0}\:\ {1}= + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -618,6 +640,18 @@ English\ (United\ Kingdom)=Angleasca (Regip\u00e4ts Viensi\u00e7at) #, java-format !Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 !Error\ reading\ preferences= @@ -643,6 +677,9 @@ English\ (United\ Kingdom)=Angleasca (Regip\u00e4ts Viensi\u00e7at) #: ../../../processing/app/Editor.java:2555 !Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter= +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 !Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter= @@ -671,9 +708,6 @@ English\ (United\ Kingdom)=Angleasca (Regip\u00e4ts Viensi\u00e7at) #: Preferences.java:93 !Estonian= -#: ../../../processing/app/Preferences.java:146 -!Estonian\ (Estonia)= - #: Editor.java:516 Examples=Exampais @@ -824,8 +858,8 @@ Hungarian=M\u00e1xhar #: FindReplace.java:96 !Ignore\ Case= -#: Base.java:1058 -!Ignoring\ bad\ library\ name= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +!Ignoring\ library\ with\ bad\ name= #: Base.java:1436 !Ignoring\ sketch\ with\ bad\ name= @@ -840,6 +874,9 @@ Hungarian=M\u00e1xhar #: ../../../processing/app/BaseNoGui.java:771 !Incorrect\ IDE\ installation\ folder= +#: ../../../../../app/src/processing/app/Editor.java:1378 +!Increase\ Font\ Size= + #: Editor.java:1216 Editor.java:2757 !Increase\ Indent= @@ -866,9 +903,9 @@ Hungarian=M\u00e1xhar #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 !Installing\ boards...= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -!Installing\ library\:\ {0}= +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -889,6 +926,15 @@ Hungarian=M\u00e1xhar #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +!Invalid\ version\ {0}= + #: Preferences.java:102 Italian=Talian @@ -913,9 +959,9 @@ Latvian=Latvian #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 !Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -!Library\ is\ already\ installed\:\ {0}\ version\ {1}= +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 !Line\ number\:= @@ -1228,9 +1274,9 @@ Reference=Referenc\u00e9u #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 !Remove= -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1258,6 +1304,9 @@ Replace\ All=Rempla\u00e7arh toct #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Romaniesc @@ -1349,9 +1398,13 @@ Send=Envoxhiarh #, java-format !Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?= -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -!Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?= +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1369,6 +1422,9 @@ Send=Envoxhiarh #: Editor.java:641 !Show\ Sketch\ Folder= +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 !Show\ verbose\ output\ during\:\ = @@ -1488,6 +1544,10 @@ Tamil=Tamul #, java-format !The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format !The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)= @@ -1512,8 +1572,8 @@ Tamil=Tamul #: Sketch.java:1755 !The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.= -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 !The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.= @@ -1521,6 +1581,9 @@ Tamil=Tamul #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1855,6 +1918,11 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #: Editor.java:936 Editor.java:943 !name\ is\ null= +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 !serialMenu\ is\ null= @@ -1922,10 +1990,6 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1934,6 +1998,10 @@ http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format !{0}\:\ Unknown\ architecture= diff --git a/arduino-core/src/processing/app/i18n/Resources_uk.po b/arduino-core/src/processing/app/i18n/Resources_uk.po index 651660ae63b..02404d7abe6 100644 --- a/arduino-core/src/processing/app/i18n/Resources_uk.po +++ b/arduino-core/src/processing/app/i18n/Resources_uk.po @@ -16,24 +16,29 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cristian Maglie , 2016 # netavek , 2015 -# ReAlUA , 2017 +# ReAlUA , 2017,2019 # Volodymyr Buberenko , 2016 -# Яков МаÑлов , 2015 +# Олена Бурд , 2018 +# Jan Maslov , 2015 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-16 14:49+0000\n" +"PO-Revision-Date: 2019-02-27 18:43+0000\n" "Last-Translator: ReAlUA \n" "Language-Team: Ukrainian (http://www.transifex.com/mbanzi/arduino-ide-15/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" #: Preferences.java:358 Preferences.java:374 msgid " (requires restart of Arduino)" @@ -47,7 +52,7 @@ msgstr " Ðе викориÑтовуєтьÑÑ: {0}" #: ../../../processing/app/debug/Compiler.java:525 #, java-format msgid " Used: {0}" -msgstr "ВикориÑтано: {0}" +msgstr " ВикориÑтано: {0}" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 msgid "" @@ -82,7 +87,7 @@ msgstr "--curdir більше не підтримуєтьÑÑ" msgid "" "--verbose, --verbose-upload and --verbose-build can only be used together " "with --verify or --upload" -msgstr "--verbose, --verbose-upload та --verbose-build можуть викориÑтовуватиÑÑŒ лише з --verify або --upload" +msgstr "--verbose, --verbose-upload та --verbose-build можуть викориÑтовуватиÑÑ Ð»Ð¸ÑˆÐµ з --verify або --upload" #: Sketch.java:746 msgid ".pde -> .ino" @@ -143,7 +148,7 @@ msgstr "URL Менеджерів додаткових плат" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 msgid "Additional Boards Manager URLs: " -msgstr "URL Менеджерів додаткових плат:" +msgstr "URL Менеджерів додаткових плат: " #: ../../../../../app/src/processing/app/Preferences.java:161 msgid "Afrikaans" @@ -172,21 +177,21 @@ msgstr "Виникла помилка при Ñпробі виправити к #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 msgid "An error occurred while updating libraries index!" -msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при відновленні индекÑу бібліотек!" +msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при відновленні індекÑу бібліотек!" #: ../../../processing/app/BaseNoGui.java:528 msgid "An error occurred while uploading the sketch" -msgstr "СталаÑÑŒ помилка при вивантаженні Ñкетча" +msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при вивантаженні Ñкетча" #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 msgid "An error occurred while verifying the sketch" -msgstr "СталаÑÑŒ помилка при перевірці Ñкетча" +msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при перевірці Ñкетча" #: ../../../processing/app/BaseNoGui.java:521 msgid "An error occurred while verifying/uploading the sketch" -msgstr "СталаÑÑŒ помилка при перевірці/вивантаженні Ñкетча" +msgstr "СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° при перевірці/вивантаженні Ñкетча" #: Base.java:228 msgid "" @@ -214,6 +219,11 @@ msgstr "Ðрхівувати Ñкетч Ñк:" msgid "Archive sketch canceled." msgstr "ÐÑ€Ñ…Ñ–Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñкетчу ÑкаÑовано" +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "ÐÑ€Ñ…Ñ–Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŒÐ¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ñдра (кешуваннÑ) в: {0}" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -363,11 +373,11 @@ msgstr "Ðевідома плата {0} (платформа {1}, пакет {2}) msgid "" "Board {0}:{1}:{2} doesn''t define a ''build.board'' preference. Auto-set to:" " {3}" -msgstr "Плата {0}:{1}:{2} не знаходить налаштувань «build.board». Ðвто-значеннÑ: {3}" +msgstr "Ð”Ð»Ñ Ð¿Ð»Ð°Ñ‚Ð¸ {0}:{1}:{2} не визначено Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Â«build.board». Ðвто-значеннÑ: {3}" #: ../../../processing/app/EditorStatus.java:472 msgid "Board: " -msgstr "Плата:" +msgstr "Плата: " #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Boards Manager" @@ -453,7 +463,7 @@ msgstr "СкаÑувати" #: ../../../processing/app/Base.java:465 msgid "Cannot specify any sketch files" -msgstr "Ðе можу визначити будь-Ñкі Ñкетч-файли" +msgstr "Ðе можу визначити жодного Ñкетч-файлу" #: SerialMonitor.java:112 msgid "Carriage return" @@ -485,7 +495,7 @@ msgstr "ОчиÑтити вивід" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" -msgstr "ÐатиÑніть Ð´Ð»Ñ ÑпиÑку URL неофіційних плат, що підтримуютьÑÑ" +msgstr "ÐатиÑніть Ð´Ð»Ñ ÑпиÑку URL підтримки неофіційних плат" #: Editor.java:521 Editor.java:2024 msgid "Close" @@ -501,11 +511,11 @@ msgstr "Зв'Ñзок" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 msgid "Compiler warnings: " -msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñтора:" +msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñтора: " #: Sketch.java:1608 Editor.java:1890 msgid "Compiling sketch..." -msgstr "КомпілюваннÑ..." +msgstr "ÐšÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñкетчу..." #: ../../../../../arduino-core/src/processing/app/I18n.java:27 msgid "Contributed" @@ -521,7 +531,7 @@ msgstr "Копіювати Ñк HTML" #: ../../../processing/app/EditorStatus.java:455 msgid "Copy error messages" -msgstr "Скопіюйте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку" +msgstr "Копіювати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки" #: Editor.java:1165 Editor.java:2715 msgid "Copy for Forum" @@ -602,7 +612,7 @@ msgstr "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ Ñкетч" msgid "" "Could not read color theme settings.\n" "You'll need to reinstall Arduino." -msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ð¾Ð²Ð¾Ñ— теми.\nÐеобхідно перевÑтановити Arduino." +msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐ¼Ð¸ кольорів.\nÐеобхідно перевÑтановити Arduino." #: Preferences.java:219 msgid "" @@ -620,6 +630,11 @@ msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ñтару верÑÑ–ÑŽ {0}" msgid "Could not replace {0}" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "Ðеможливо запиÑати файл налаштувань: {0}" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð°Ñ€Ñ…Ñ–Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñкетч" @@ -663,6 +678,10 @@ msgstr "Обробка даних" msgid "Data Storage" msgstr "ÐоÑÑ–Ñ— інформації" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Зменшити розмір шрифту" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Зменшити відÑтуп" @@ -671,6 +690,10 @@ msgstr "Зменшити відÑтуп" msgid "Default" msgstr "За умовчаннÑм" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Тема за замовчуваннÑм" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Видалити" @@ -723,7 +746,7 @@ msgstr "ÐšÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð¾" #: Editor.java:1911 Editor.java:1928 msgid "Done compiling." -msgstr "ÐšÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð¾" +msgstr "ÐšÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð¾." #: Editor.java:2564 msgid "Done printing." @@ -744,7 +767,7 @@ msgstr "Завантажено {0}кб з {1}кб." #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 msgid "Downloading boards definitions." -msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ плат" +msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ плат." #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 msgid "Downloading libraries index..." @@ -846,6 +869,11 @@ msgstr "Проблема при зверненні до теки з даними msgid "Error inside Serial.{0}()" msgstr "Помилка в Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ¼Ð¸ {0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -856,14 +884,33 @@ msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ {0}" #: Serial.java:181 #, java-format msgid "Error opening serial port ''{0}''." -msgstr "Помилка при відкритті поÑлідовного порту «{0}»." +msgstr "Помилка при відкриванні поÑлідовного порту «{0}»." #: ../../../processing/app/Serial.java:119 #, java-format msgid "" "Error opening serial port ''{0}''. Try consulting the documentation at " "http://playground.arduino.cc/Linux/All#Permission" -msgstr "Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñерійного порту '{0}''. Спробуйте знайти відповідь у документаціі http://playground.arduino.cc/Linux/All#Permission" +msgstr "Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлідовного порту «{0}». Спробуйте знайти відповідь у документації http://playground.arduino.cc/Linux/All#Permission" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "Помилка аналізу індекÑу бібліотеки: {0}\nСпробуйте заÑтоÑувати Менеджер бібліотек Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу." + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "Помилка при зчитуванні індекÑу бібліотеки {0}" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "Помилка при зчитуванні теки індекÑів пакунку: {0}\n(можливо, відÑутні дозволи?)" #: Preferences.java:277 msgid "Error reading preferences" @@ -884,12 +931,12 @@ msgstr "Помилка Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ–ÑлÑінÑталÑційного #: ../../../cc/arduino/packages/DiscoveryManager.java:25 msgid "Error starting discovery method: " -msgstr "Помилка запуÑку методу виÑвленнÑ:" +msgstr "Помилка запуÑку методу виÑвленнÑ: " #: Serial.java:125 #, java-format msgid "Error touching serial port ''{0}''." -msgstr "Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ð¾Ñлідовного порту «{0}»." +msgstr "Помилка Ð·Ð²ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾ поÑлідовного порту «{0}»." #: Editor.java:2512 Editor.java:2516 Editor.java:2520 msgid "Error while burning bootloader." @@ -899,6 +946,10 @@ msgstr "Помилка запиÑу завантажувача." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Помилка запиÑу завантажувача: відÑутній конфігураційний параметр «{0}»" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "Помилка запиÑу завантажувача: будь-лаÑка, оберіть поÑлідовний порт." + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Помилка компілÑції: відÑутній конфігураційний параметр «{0}»" @@ -935,10 +986,6 @@ msgstr "Помилка перевірки/вивантаженнÑ" msgid "Estonian" msgstr "еÑтонÑька" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "еÑтонÑька (ЕÑтоніÑ)" - #: Editor.java:516 msgid "Examples" msgstr "Приклади" @@ -1058,7 +1105,7 @@ msgstr "галіÑійÑька" #: ../../../../../app/src/processing/app/Preferences.java:176 msgid "Galician (Spain)" -msgstr "ГалійÑька (ІÑпаніÑ)" +msgstr "галіÑійÑька (ІÑпаніÑ)" #: ../../../../../app/src/processing/app/Editor.java:1288 msgid "Galileo Help" @@ -1085,7 +1132,7 @@ msgstr "Початок роботи" msgid "" "Global variables use {0} bytes ({2}%%) of dynamic memory, leaving {3} bytes " "for local variables. Maximum is {1} bytes." -msgstr "Глобальні змінні викориÑтовують {0} байтів ({2}%%) динамічної пам’Ñті, Ñ– залишають {3} байтів Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… змінних. Щонайбільше {1} байтів." +msgstr "Глобальні змінні викориÑтовують {0} байтів ({2}%%) динамічної пам’Ñті, залишаючи {3} байтів Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… змінних. Межа {1} байтів." #: ../../../processing/app/Sketch.java:1651 #, java-format @@ -1142,9 +1189,9 @@ msgstr "ÐЕСУМІСÐЕ" msgid "Ignore Case" msgstr "Ігнорувати регіÑтр" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Ігнорую бібліотеку з неприпуÑтимим іменем" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Бібліотека з поганою назвою відхилена" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1163,13 +1210,17 @@ msgstr "Ð’ Arduino 1.0 Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð·Ð° умовчаннÑм було #: ../../../../../app/src/processing/app/Editor.java:778 msgid "Include Library" -msgstr "Додати Бібліотеку" +msgstr "Додати бібліотеку" #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 msgid "Incorrect IDE installation folder" msgstr "Ðевірна тека Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ IDE" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Збільшити розмір шрифту" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Збільшити відÑтуп" @@ -1180,7 +1231,7 @@ msgstr "індонезійÑька" #: ../../../../../app/src/processing/app/Base.java:295 msgid "Initializing packages..." -msgstr "Ініціалізуємо пакеті..." +msgstr "Ініціалізуємо пакети..." #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 @@ -1203,10 +1254,10 @@ msgstr "Ð’Ñтановлено" msgid "Installing boards..." msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ñ‚..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸: {0}" +msgid "Installing library: {0}:{1}" +msgstr "Бібліотека вÑтановлена: {0}:{1}" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1232,6 +1283,17 @@ msgstr "ÐедійÑна бібліотека знаходитьÑÑ Ð² {0}: {1} msgid "Invalid quoting: no closing [{0}] char found." msgstr "Ðевірні лапки: відÑутній кінцевий Ñимвол [{0}]." +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "ÐеприпуÑтима верÑÑ–Ñ '{0}' Ð´Ð»Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸: {1}" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Ðевірна верÑÑ–Ñ {0}" + #: Preferences.java:102 msgid "Italian" msgstr "італійÑька" @@ -1264,10 +1326,10 @@ msgstr "Бібліотеку додано до ваших бібліотек. П msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Бібліотека не може мати одночаÑно теки 'src' та 'utility'. Перевірте {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Бібліотеку вже вÑтановлено: {0} верÑÑ–Ñ {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "Бібліотека вже вÑтановлена: {0}:{1}" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1484,7 +1546,7 @@ msgstr "Відкрити" #: ../../../../../app/src/processing/app/Editor.java:625 msgid "Open Recent" -msgstr "Відкрити Ðещодавні" +msgstr "Відкрити нещодавні" #: Editor.java:2688 msgid "Open URL" @@ -1614,11 +1676,11 @@ msgstr "ДрукуваннÑ…" #: Base.java:1957 msgid "Problem Opening Folder" -msgstr "Проблема з відкриттÑм теки" +msgstr "Проблема з відкриваннÑм теки" #: Base.java:1933 msgid "Problem Opening URL" -msgstr "Проблема з відкриттÑм поÑиланнÑ" +msgstr "Проблема з відкриваннÑм поÑиланнÑ" #: Base.java:227 msgid "Problem Setting the Platform" @@ -1684,10 +1746,10 @@ msgstr "ЗміÑÑ‚" msgid "Remove" msgstr "Видалити" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" -msgstr "ВидалÑєтьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ°: {0}" +msgid "Removing library: {0}:{1}" +msgstr "Бібліотека видалена: {0}:{1}" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1717,12 +1779,16 @@ msgstr "Замінити наÑвну верÑÑ–ÑŽ {0}?" #: FindReplace.java:81 msgid "Replace with:" -msgstr "Замінити:" +msgstr "Замінити на:" #: ../../../../../arduino-core/src/processing/app/I18n.java:28 msgid "Retired" msgstr "ЗаÑтарілі" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "Повторити завантаженнÑ, викориÑтовуючи інший поÑлідовний порт?" + #: Preferences.java:113 msgid "Romanian" msgstr "румунÑька" @@ -1846,12 +1912,15 @@ msgid "" " Serial Port menu?" msgstr "ПоÑлідовний порт «{0}» не знайдено. Ви вибрали потрібний із меню Ð¡ÐµÑ€Ð²Ñ–Ñ > ПоÑлідовний порт?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "Ðе обрано поÑлідовний порт." + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "ПоÑлідовний порт {0} не знайдено.\nПовторити Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð· іншого поÑлідовного порту?" +msgid "Serial port {0} not found." +msgstr "ПоÑлідовний порт {0} не знайдено." #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1874,6 +1943,10 @@ msgstr "ПитаннÑ, пов’Ñзані із налаштуваннÑми" msgid "Show Sketch Folder" msgstr "Показати теку Ñкетчів" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "Показати позначки чаÑу" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Показати докладний звіт при:" @@ -1917,7 +1990,7 @@ msgstr "Скетч занадто великий; звернітьÑÑ Ð´Ð¾ http msgid "" "Sketch uses {0} bytes ({2}%%) of program storage space. Maximum is {1} " "bytes." -msgstr "Скетч викориÑтовує {0} байтів ({2}%%) міÑÑ†Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼. Може бути щонайбільше {1} байтів." +msgstr "Скетч викориÑтовує {0} байтів ({2}%%) міÑÑ†Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼. Межа {1} байтів." #: Editor.java:510 msgid "Sketchbook" @@ -1953,7 +2026,7 @@ msgid "" "Some files are marked \"read-only\", so you'll\n" "need to re-save the sketch in another location,\n" "and try again." -msgstr "ДеÑкі файли позначені «тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ», \nтому вам знадобитьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ Ñкетч в іншому \nміÑці й Ñпробувати ще раз." +msgstr "ДеÑкі файли позначені «тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ»,\nтому вам знадобитьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ Ñкетч в іншому\nміÑці й Ñпробувати ще раз." #: Sketch.java:721 msgid "" @@ -2016,7 +2089,7 @@ msgstr "ÐžÐ¿Ñ†Ñ–Ñ --upload підтримує лише один файл за #: debug/Compiler.java:426 msgid "The Client class has been renamed EthernetClient." -msgstr "ÐšÐ»Ð°Ñ Client був перейменований в EternetClient." +msgstr "ÐšÐ»Ð°Ñ Client було перейменовано на EternetClient." #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format @@ -2027,11 +2100,11 @@ msgstr "IDE міÑтить оновлений пакунок {0}, але ви в #: debug/Compiler.java:420 msgid "The Server class has been renamed EthernetServer." -msgstr "ÐšÐ»Ð°Ñ Server був перейменований в EternetServer." +msgstr "ÐšÐ»Ð°Ñ Server було перейменовано на EternetServer." #: debug/Compiler.java:432 msgid "The Udp class has been renamed EthernetUdp." -msgstr "ÐšÐ»Ð°Ñ Udp був перейменований в EthernetUdp." +msgstr "ÐšÐ»Ð°Ñ Udp було перейменовано на EthernetUdp." #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 msgid "The current selected board needs the core '{0}' that is not installed." @@ -2045,13 +2118,21 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Файл «{0}» має бути вÑередині\nтеки Ñкетчу з іменем «{1}».\nСтворити цю теку, переміÑтити файл Ñ– продовжити?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Бібліотека \"{0}\" не може бути викориÑтана. \nІмена папок у бібліотеках повинні починатиÑÑ Ð· літери або цифри, а за ними Ñлідують літери, цифри, тире, крапка та підкреÑленнÑ. \nМакÑимальна довжина 63 Ñимволів." + #: Base.java:1054 Base.java:2674 #, java-format msgid "" "The library \"{0}\" 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)" -msgstr "Бібліотека «{0}» не може бути викориÑтана.\nÐазви бібліотек повинні міÑтити лише оÑновні літери Ñ– цифри.\n(Лише ASCII, без пропуÑків, не можуть починатиÑÑ Ð· цифри)" +msgstr "Бібліотека «{0}» не може бути викориÑтана.\nІмена бібліотек повинні міÑтити лише оÑновні літери Ñ– цифри.\n(Лише ASCII, без пропуÑків, не можуть починатиÑÑ Ð· цифри)" #: ../../../../../app/src/processing/app/SketchController.java:170 msgid "The main file cannot use an extension" @@ -2090,12 +2171,12 @@ msgid "" "but anything besides the code will be lost." msgstr "Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ теку Ñкетчу.\nБуде виконана Ñпроба перезберегти його в тому ж міÑці,\nале вÑе, крім коду, буде втрачено." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." -msgstr "Ðазву Ñкетчу потрібно змінити. Ðазви можуть міÑтити лише\nÑимволи ASCII та чиÑла (але не можуть починатиÑÑ Ñ–Ð· чиÑел).\nДовжина має бути меншою за 64 Ñимволи." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "Ðазва Ñкетчу повинна бути змінена. \nÐазва Ñкетчу повинна починатиÑÑ Ð· літери або цифри, за Ñкими Ñлідують літери, цифри, тире, крапки та підкреÑленнÑ. \nМакÑимальна довжина 63 Ñимволів." #: Base.java:259 msgid "" @@ -2112,6 +2193,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "Вибрана тека Ð´Ð»Ñ Ñкетчів міÑтить вашу копію IDE.\nБудь-лаÑка, виберіть іншу теку Ð´Ð»Ñ Ñкетчів ." +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "Тема:" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2179,15 +2264,15 @@ msgstr "Ðе вдалоÑÑ Ð·'єднатиÑÑ Ð· {0}" #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 msgid "Unable to connect: is the sketch using the bridge?" -msgstr "Ðе вдалоÑÑ Ð·â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑŒ: Ñкетч викориÑтовує міÑÑ‚?" +msgstr "Ðе вдалоÑÑ Ð·Ê¼Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ: Ñкетч викориÑтовує міÑÑ‚?" #: ../../../processing/app/NetworkMonitor.java:130 msgid "Unable to connect: retrying" -msgstr "Ðе вдалоÑÑ Ð·â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑŒ: повторна Ñпроба" +msgstr "Ðе вдалоÑÑ Ð·Ê¼Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ: повторна Ñпроба" #: ../../../processing/app/Editor.java:2526 msgid "Unable to connect: wrong password?" -msgstr "Ðе вдалоÑÑ Ð·â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑŒ: неправильний пароль?" +msgstr "Ðе вдалоÑÑ Ð·Ê¼Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ: неправильний пароль?" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 #, java-format @@ -2205,7 +2290,7 @@ msgstr "Ðеможливо відкрити поÑлідовний плотер" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 msgid "Unable to reach Arduino.cc due to possible network issues." -msgstr "Arduino.cc недоÑтупний через можливі проблеми з мережею." +msgstr "Arduino.cc недоÑтупний через можливі проблеми із мережею." #: ../../../../../arduino-core/src/processing/app/I18n.java:38 msgid "Uncategorized" @@ -2234,7 +2319,7 @@ msgid "" "Unspecified platform, no launcher available.\n" "To enable opening URLs or folders, add a \n" "\"launcher=/path/to/app\" line to preferences.txt" -msgstr "Ðе вказана платформу, немає завантажувача.\nЩоб дозволити Ð²Ñ–Ð´ÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñилань або тек, додайте\n«launcher =/path/to/app» у файл preferences.txt" +msgstr "Ðе вказано платформу, завантажувач недоÑтупний.\nЩоб дозволити Ð²Ñ–Ð´ÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñилань або тек, додайте\n«launcher =/path/to/app» у файл preferences.txt" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 @@ -2330,7 +2415,7 @@ msgstr "Перевірити" #: Preferences.java:400 msgid "Verify code after upload" -msgstr "Перевірка коду піÑÐ»Ñ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ" +msgstr "Перевірити код піÑÐ»Ñ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ" #: ../../../../../app/src/processing/app/Editor.java:725 msgid "Verify/Compile" @@ -2385,7 +2470,7 @@ msgstr "ПОПЕРЕДЖЕÐÐЯ: Хибна тека {0} в бібліотец msgid "" "WARNING: library {0} claims to run on {1} architecture(s) and may be " "incompatible with your current board which runs on {2} architecture(s)." -msgstr "УВÐГÐ: бібліотека {0} потребує Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ архітектуру {1}, та може бути неÑуміÑною з вашою платою, що працює на архітектурі {2}." +msgstr "УВÐГÐ: бібліотека {0} потребує Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ архітектуру {1} Ñ– може бути неÑуміÑною з вашою платою, що працює на архітектурі {2}." #: Base.java:2128 msgid "Warning" @@ -2443,7 +2528,7 @@ msgstr "Wire.send() була перейменована в Wire.write()." #: FindReplace.java:105 msgid "Wrap Around" -msgstr "ВиділÑти" +msgstr "При доÑÑгненні ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ñƒ продовжити з початку" #: debug/Uploader.java:213 msgid "" @@ -2463,7 +2548,7 @@ msgstr "Ви не можете імпортувати теку, Ñка міÑÑ‚ msgid "" "You cannot save the sketch into a folder\n" "inside itself. This would go on forever." -msgstr "Ви не можете зберегти Ñкетч в\nйого влаÑну теку. Це буде тривати вічно." +msgstr "Ви не можете зберегти Ñкетч\nв його влаÑну теку. Це буде тривати вічно." #: Base.java:1888 msgid "You forgot your sketchbook" @@ -2604,6 +2689,12 @@ msgstr "Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ розміру шриф msgid "name is null" msgstr "немає імені" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "Ð’ {0} відÑутні файли заголовків (.h)" + #: Editor.java:932 msgid "serialMenu is null" msgstr "Меню поÑлідовного порту пуÑте" @@ -2637,12 +2728,12 @@ msgstr "{0} — {1} | Arduino {2}" #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:43 #, java-format msgid "{0} file signature verification failed" -msgstr "{0} перевірка підпиÑу файла не вдалаÑÑ" +msgstr "Перевірка підпиÑу файлу {0} не вдалаÑÑ" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:310 #, java-format msgid "{0} file signature verification failed. File ignored." -msgstr "{0} перевірка підпиÑу файла не вдалаÑÑ. Ігноруємо файл." +msgstr "Перевірка підпиÑу файлу {0} не вдалаÑÑ. Ігноруємо файл." #: Editor.java:380 #, java-format @@ -2657,7 +2748,7 @@ msgstr "{0} бібліотеки" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format msgid "{0} must be a folder" -msgstr "{0} має бути папка" +msgstr "{0} має бути текою" #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format @@ -2691,11 +2782,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "{0}: Хибна назва плати, має бути у формі «package:arch:board» або «package:arch:board:options»" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "{0}: Хибне Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¾Ð¿Ñ†Ñ–Ñ— «{1}» плати «{2}»" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2706,6 +2792,11 @@ msgstr "{0}: Хибне Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ð¸ «{1}»" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "{0}: Хибне налаштуваннÑ, має бути у формі «name=value»" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "{0}: Ðевірне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"{1}\" Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ð¸ \"{2}\"" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" @@ -2724,4 +2815,4 @@ msgstr "{0}: Ðевідомий пакет" #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format msgid "{0}Install this package{1} to use your {2} board" -msgstr "{0}Ð’Ñтановіть пакет{1}Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ— плати {2}" +msgstr "{0}Ð’Ñтановіть пакет{1} Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ— плати {2}" diff --git a/arduino-core/src/processing/app/i18n/Resources_uk.properties b/arduino-core/src/processing/app/i18n/Resources_uk.properties index b4cb054ee37..ac4eba0e64c 100644 --- a/arduino-core/src/processing/app/i18n/Resources_uk.properties +++ b/arduino-core/src/processing/app/i18n/Resources_uk.properties @@ -16,12 +16,17 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Cristian Maglie , 2016 # netavek , 2015 -# ReAlUA , 2017 +# ReAlUA , 2017,2019 # Volodymyr Buberenko , 2016 -# \u042f\u043a\u043e\u0432 \u041c\u0430\u0441\u043b\u043e\u0432 , 2015 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-16 14\:49+0000\nLast-Translator\: ReAlUA \nLanguage-Team\: Ukrainian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/uk/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: uk\nPlural-Forms\: nplurals\=3; plural\=(n%10\=\=1 && n%100\!\=11 ? 0 \: n%10>\=2 && n%10<\=4 && (n%100<10 || n%100>\=20) ? 1 \: 2);\n +# \u041e\u043b\u0435\u043d\u0430 \u0411\u0443\u0440\u0434 , 2018 +# Jan Maslov , 2015 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2019-02-27 18\:43+0000\nLast-Translator\: ReAlUA \nLanguage-Team\: Ukrainian (http\://www.transifex.com/mbanzi/arduino-ide-15/language/uk/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: uk\nPlural-Forms\: nplurals\=4; plural\=(n % 1 \=\= 0 && n % 10 \=\= 1 && n % 100 \!\= 11 ? 0 \: n % 1 \=\= 0 && n % 10 >\= 2 && n % 10 <\= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 \: n % 1 \=\= 0 && (n % 10 \=\=0 || (n % 10 >\=5 && n % 10 <\=9) || (n % 100 >\=11 && n % 100 <\=14 )) ? 2\: 3);\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=\ (\u0432\u0438\u043c\u0430\u0433\u0430\u0454 \u043f\u0435\u0440\u0435\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f Arduino) @@ -32,7 +37,7 @@ #: ../../../processing/app/debug/Compiler.java:525 #, java-format -\ Used\:\ {0}=\u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043e\: {0} +\ Used\:\ {0}=\ \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043e\: {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:558 'Keyboard'\ not\ found.\ Does\ your\ sketch\ include\ the\ line\ '\#include\ '?='Keyboard' \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e. \u0427\u0438 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448 \u0441\u043a\u0435\u0442\u0447 \u0440\u044f\u0434\u043e\u043a '\#include '? @@ -53,7 +58,7 @@ --curdir\ no\ longer\ supported=--curdir \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f #: ../../../processing/app/Base.java:468 ---verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload \u0442\u0430 --verbose-build \u043c\u043e\u0436\u0443\u0442\u044c \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438\u0441\u044c \u043b\u0438\u0448\u0435 \u0437 --verify \u0430\u0431\u043e --upload +--verbose,\ --verbose-upload\ and\ --verbose-build\ can\ only\ be\ used\ together\ with\ --verify\ or\ --upload=--verbose, --verbose-upload \u0442\u0430 --verbose-build \u043c\u043e\u0436\u0443\u0442\u044c \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438\u0441\u044f \u043b\u0438\u0448\u0435 \u0437 --verify \u0430\u0431\u043e --upload #: Sketch.java:746 .pde\ ->\ .ino=.pde -> .ino @@ -95,7 +100,7 @@ Add\ File...=\u0414\u043e\u0434\u0430\u0442\u0438 \u0444\u0430\u0439\u043b\u2026 Additional\ Boards\ Manager\ URLs=URL \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0456\u0432 \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0438\u0445 \u043f\u043b\u0430\u0442 #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:268 -Additional\ Boards\ Manager\ URLs\:\ =URL \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0456\u0432 \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0438\u0445 \u043f\u043b\u0430\u0442\: +Additional\ Boards\ Manager\ URLs\:\ =URL \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0456\u0432 \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0438\u0445 \u043f\u043b\u0430\u0442\: #: ../../../../../app/src/processing/app/Preferences.java:161 Afrikaans=\u0410\u0444\u0440\u0456\u043a\u0430\u0430\u043d\u0441 @@ -115,18 +120,18 @@ All=\u0412\u0441\u0456 An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=\u0412\u0438\u043d\u0438\u043a\u043b\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0441\u043f\u0440\u043e\u0431\u0456 \u0432\u0438\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u043a\u043e\u0434\u0443\u0432\u0430\u043d\u043d\u044f.\n\u041d\u0435 \u043d\u0430\u043c\u0430\u0433\u0430\u0439\u0442\u0435\u0441\u044f \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0446\u0435\u0439 \u0441\u043a\u0435\u0442\u0447, \u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0432\u0456\u043d \u043c\u043e\u0436\u0435\n\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0443 \u0432\u0435\u0440\u0441\u0456\u044e. \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u00ab\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438\u00bb, \u0449\u043e\u0431\n\u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 \u0437\u043d\u043e\u0432\u0443.\n #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:99 -An\ error\ occurred\ while\ updating\ libraries\ index\!=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0456 \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\! +An\ error\ occurred\ while\ updating\ libraries\ index\!=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0456 \u0456\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\! #: ../../../processing/app/BaseNoGui.java:528 -An\ error\ occurred\ while\ uploading\ the\ sketch=\u0421\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u0456 \u0441\u043a\u0435\u0442\u0447\u0430 +An\ error\ occurred\ while\ uploading\ the\ sketch=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u0456 \u0441\u043a\u0435\u0442\u0447\u0430 #: ../../../processing/app/BaseNoGui.java:506 #: ../../../processing/app/BaseNoGui.java:551 #: ../../../processing/app/BaseNoGui.java:554 -An\ error\ occurred\ while\ verifying\ the\ sketch=\u0421\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0446\u0456 \u0441\u043a\u0435\u0442\u0447\u0430 +An\ error\ occurred\ while\ verifying\ the\ sketch=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0446\u0456 \u0441\u043a\u0435\u0442\u0447\u0430 #: ../../../processing/app/BaseNoGui.java:521 -An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=\u0421\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0446\u0456/\u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u0456 \u0441\u043a\u0435\u0442\u0447\u0430 +An\ error\ occurred\ while\ verifying/uploading\ the\ sketch=\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0446\u0456/\u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u0456 \u0441\u043a\u0435\u0442\u0447\u0430 #: Base.java:228 An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=\u0412\u0438\u043d\u0438\u043a\u043b\u0430 \u043d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u043f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0441\u043f\u0440\u043e\u0431\u0456\n\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u043a\u043e\u0434, \u0441\u043f\u0435\u0446\u0438\u0444\u0456\u0447\u043d\u0438\u0439 \u0434\u043b\u044f \u0432\u0430\u0448\u043e\u0457 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0438. @@ -146,6 +151,10 @@ Archive\ sketch\ as\:=\u0410\u0440\u0445\u0456\u0432\u0443\u0432\u0430\u0442\u04 #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0410\u0440\u0445\u0456\u0432\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u043a\u0435\u0442\u0447\u0443 \u0441\u043a\u0430\u0441\u043e\u0432\u0430\u043d\u043e +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +Archiving\ built\ core\ (caching)\ in\:\ {0}=\u0410\u0440\u0445\u0456\u0432\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0456\u0434\u043a\u043e\u043c\u043f\u0456\u043b\u044c\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 (\u043a\u0435\u0448\u0443\u0432\u0430\u043d\u043d\u044f) \u0432\: {0} + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=\u0410\u0440\u0445\u0456\u0432\u0443\u0432\u0430\u043d\u043d\u044f \u0441\u043a\u0435\u0442\u0447\u0443 \u0431\u0443\u043b\u043e \u043f\u0435\u0440\u0435\u0440\u0432\u0430\u043d\u043e,\n\u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0441\u043a\u0435\u0442\u0447 \u043d\u0435\u043a\u043e\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0431\u0435\u0440\u0456\u0433\u0441\u044f. @@ -252,10 +261,10 @@ Board\ {0}\ (platform\ {1},\ package\ {2})\ is\ unknown=\u041d\u0435\u0432\u0456 #: ../../../processing/app/debug/TargetBoard.java:42 #, java-format -Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}=\u041f\u043b\u0430\u0442\u0430 {0}\:{1}\:{2} \u043d\u0435 \u0437\u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u00abbuild.board\u00bb. \u0410\u0432\u0442\u043e-\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f\: {3} +Board\ {0}\:{1}\:{2}\ doesn''t\ define\ a\ ''build.board''\ preference.\ Auto-set\ to\:\ {3}=\u0414\u043b\u044f \u043f\u043b\u0430\u0442\u0438 {0}\:{1}\:{2} \u043d\u0435 \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u00abbuild.board\u00bb. \u0410\u0432\u0442\u043e-\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f\: {3} #: ../../../processing/app/EditorStatus.java:472 -Board\:\ =\u041f\u043b\u0430\u0442\u0430\: +Board\:\ =\u041f\u043b\u0430\u0442\u0430\: #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 Boards\ Manager=\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u043b\u0430\u0442 @@ -319,7 +328,7 @@ Canadian\ French=\u043a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0430 \u0444\u Cancel=\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 #: ../../../processing/app/Base.java:465 -Cannot\ specify\ any\ sketch\ files=\u041d\u0435 \u043c\u043e\u0436\u0443 \u0432\u0438\u0437\u043d\u0430\u0447\u0438\u0442\u0438 \u0431\u0443\u0434\u044c-\u044f\u043a\u0456 \u0441\u043a\u0435\u0442\u0447-\u0444\u0430\u0439\u043b\u0438 +Cannot\ specify\ any\ sketch\ files=\u041d\u0435 \u043c\u043e\u0436\u0443 \u0432\u0438\u0437\u043d\u0430\u0447\u0438\u0442\u0438 \u0436\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043a\u0435\u0442\u0447-\u0444\u0430\u0439\u043b\u0443 #: SerialMonitor.java:112 Carriage\ return=\u041f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u043a\u0430\u0440\u0435\u0442\u043a\u0438 (CR) @@ -343,7 +352,7 @@ Chinese\ (Taiwan)\ (Big5)=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430 Clear\ output=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0432\u0438\u0432\u0456\u0434 #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 -Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0443 URL \u043d\u0435\u043e\u0444\u0456\u0446\u0456\u0439\u043d\u0438\u0445 \u043f\u043b\u0430\u0442, \u0449\u043e \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u044e\u0442\u044c\u0441\u044f +Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0443 URL \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0438 \u043d\u0435\u043e\u0444\u0456\u0446\u0456\u0439\u043d\u0438\u0445 \u043f\u043b\u0430\u0442 #: Editor.java:521 Editor.java:2024 Close=\u0417\u0430\u043a\u0440\u0438\u0442\u0438 @@ -355,10 +364,10 @@ Comment/Uncomment=\u041a\u043e\u043c\u0435\u043d\u0442\u0443\u0432\u0430\u0442\u Communication=\u0417\u0432'\u044f\u0437\u043e\u043a #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:266 -Compiler\ warnings\:\ =\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u0436\u0435\u043d\u043d\u044f \u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0442\u043e\u0440\u0430\: +Compiler\ warnings\:\ =\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u0436\u0435\u043d\u043d\u044f \u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0442\u043e\u0440\u0430\: #: Sketch.java:1608 Editor.java:1890 -Compiling\ sketch...=\u041a\u043e\u043c\u043f\u0456\u043b\u044e\u0432\u0430\u043d\u043d\u044f... +Compiling\ sketch...=\u041a\u043e\u043c\u043f\u0456\u043b\u044e\u0432\u0430\u043d\u043d\u044f \u0441\u043a\u0435\u0442\u0447\u0443... #: ../../../../../arduino-core/src/processing/app/I18n.java:27 Contributed=\u041f\u043e\u0448\u0438\u0440\u0435\u043d\u0456 @@ -370,7 +379,7 @@ Copy=\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 Copy\ as\ HTML=\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u044f\u043a HTML #: ../../../processing/app/EditorStatus.java:455 -Copy\ error\ messages=\u0421\u043a\u043e\u043f\u0456\u044e\u0439\u0442\u0435 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u043f\u0440\u043e \u043f\u043e\u043c\u0438\u043b\u043a\u0443 +Copy\ error\ messages=\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u043f\u043e\u0432\u0456\u0434\u043e\u043c\u043b\u0435\u043d\u043d\u044f \u043f\u0440\u043e \u043f\u043e\u043c\u0438\u043b\u043a\u0438 #: Editor.java:1165 Editor.java:2715 Copy\ for\ Forum=\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0434\u043b\u044f \u0444\u043e\u0440\u0443\u043c\u0443 @@ -427,7 +436,7 @@ Could\ not\ properly\ re-save\ the\ sketch.\ You\ may\ be\ in\ trouble\ at\ this Could\ not\ re-save\ sketch=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0435\u0440\u0435\u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 #: Theme.java:52 -Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u043e\u0457 \u0442\u0435\u043c\u0438.\n\u041d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 Arduino. +Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0442\u0435\u043c\u0438 \u043a\u043e\u043b\u044c\u043e\u0440\u0456\u0432.\n\u041d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 Arduino. #: Preferences.java:219 Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u0438 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0437\u0430 \u0443\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f\u043c.\n\u041d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 Arduino. @@ -440,6 +449,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=\u041d\u0435 \u0432\u0434\u0430\u043b\ #, java-format Could\ not\ replace\ {0}=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u043c\u0456\u043d\u0438\u0442\u0438 {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +Could\ not\ write\ preferences\ file\:\ {0}=\u041d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u0438 \u0444\u0430\u0439\u043b \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c\: {0} + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0430\u0440\u0445\u0456\u0432\u0443\u0432\u0430\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 @@ -470,12 +483,18 @@ Data\ Processing=\u041e\u0431\u0440\u043e\u0431\u043a\u0430 \u0434\u0430\u043d\u #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=\u041d\u043e\u0441\u0456\u0457 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0457 +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438 \u0440\u043e\u0437\u043c\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443 + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=\u0417\u0430 \u0443\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f\u043c +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=\u0422\u0435\u043c\u0430 \u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c + #: EditorHeader.java:314 Sketch.java:591 Delete=\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 @@ -512,7 +531,7 @@ Done\ burning\ bootloader.=\u0417\u0430\u043f\u0438\u0441 \u0437\u0430\u0432\u04 Done\ compiling=\u041a\u043e\u043c\u043f\u0456\u043b\u044e\u0432\u0430\u043d\u043d\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e #: Editor.java:1911 Editor.java:1928 -Done\ compiling.=\u041a\u043e\u043c\u043f\u0456\u043b\u044e\u0432\u0430\u043d\u043d\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e +Done\ compiling.=\u041a\u043e\u043c\u043f\u0456\u043b\u044e\u0432\u0430\u043d\u043d\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e. #: Editor.java:2564 Done\ printing.=\u0414\u0440\u0443\u043a \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043e. @@ -528,7 +547,7 @@ Done\ uploading.=\u0412\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u0 Downloaded\ {0}kb\ of\ {1}kb.=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043e {0}\u043a\u0431 \u0437 {1}\u043a\u0431. #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:107 -Downloading\ boards\ definitions.=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u044c \u043f\u043b\u0430\u0442 +Downloading\ boards\ definitions.=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u044c \u043f\u043b\u0430\u0442. #: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:86 Downloading\ libraries\ index...=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0456\u043d\u0434\u0435\u043a\u0441\u0456\u0432 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a... @@ -607,6 +626,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=\u041f\u0440\u043e\u0431\u043b\u0435 #, java-format Error\ inside\ Serial.{0}()=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432 Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0442\u0435\u043c\u0438 {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -615,11 +638,23 @@ Error\ loading\ {0}=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u043 #: Serial.java:181 #, java-format -Error\ opening\ serial\ port\ ''{0}''.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0442\u0456 \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 \u00ab{0}\u00bb. +Error\ opening\ serial\ port\ ''{0}''.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u043d\u043d\u0456 \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 \u00ab{0}\u00bb. #: ../../../processing/app/Serial.java:119 #, java-format -Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0442\u044f \u0441\u0435\u0440\u0456\u0439\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 '{0}''. \u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0439\u0442\u0438 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c \u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0456\u0456 http\://playground.arduino.cc/Linux/All\#Permission +Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u043d\u043d\u044f \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 \u00ab{0}\u00bb. \u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u043d\u0430\u0439\u0442\u0438 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c \u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0456\u0457 http\://playground.arduino.cc/Linux/All\#Permission + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0430\u043d\u0430\u043b\u0456\u0437\u0443 \u0456\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438\: {0}\n\u0421\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0437\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u0442\u0438 \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a \u0434\u043b\u044f \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0456\u043d\u0434\u0435\u043a\u0441\u0443. + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +Error\ reading\ libraries\ index\:\ {0}=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0437\u0447\u0438\u0442\u0443\u0432\u0430\u043d\u043d\u0456 \u0456\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438 {0} + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0440\u0438 \u0437\u0447\u0438\u0442\u0443\u0432\u0430\u043d\u043d\u0456 \u0442\u0435\u043a\u0438 \u0456\u043d\u0434\u0435\u043a\u0441\u0456\u0432 \u043f\u0430\u043a\u0443\u043d\u043a\u0443\: {0}\n(\u043c\u043e\u0436\u043b\u0438\u0432\u043e, \u0432\u0456\u0434\u0441\u0443\u0442\u043d\u0456 \u0434\u043e\u0437\u0432\u043e\u043b\u0438?) #: Preferences.java:277 Error\ reading\ preferences=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0447\u0438\u0442\u0430\u043d\u043d\u044f \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c @@ -634,11 +669,11 @@ Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ r Error\ running\ post\ install\ script=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u043d\u044f \u043f\u0456\u0441\u043b\u044f\u0456\u043d\u0441\u0442\u0430\u043b\u044f\u0446\u0456\u0439\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0443 #: ../../../cc/arduino/packages/DiscoveryManager.java:25 -Error\ starting\ discovery\ method\:\ =\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u0443 \u0432\u0438\u044f\u0432\u043b\u0435\u043d\u043d\u044f\: +Error\ starting\ discovery\ method\:\ =\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u0443 \u0432\u0438\u044f\u0432\u043b\u0435\u043d\u043d\u044f\: #: Serial.java:125 #, java-format -Error\ touching\ serial\ port\ ''{0}''.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0442\u044f \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 \u00ab{0}\u00bb. +Error\ touching\ serial\ port\ ''{0}''.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0432\u0435\u0440\u0442\u0430\u043d\u043d\u044f \u0434\u043e \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 \u00ab{0}\u00bb. #: Editor.java:2512 Editor.java:2516 Editor.java:2520 Error\ while\ burning\ bootloader.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0443 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0432\u0430\u0447\u0430. @@ -646,6 +681,9 @@ Error\ while\ burning\ bootloader.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0443 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0432\u0430\u0447\u0430\: \u0432\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u0439\u043d\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab{0}\u00bb +#: ../../../../../app/src/processing/app/Editor.java:2355 +Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0443 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0432\u0430\u0447\u0430\: \u0431\u0443\u0434\u044c-\u043b\u0430\u0441\u043a\u0430, \u043e\u0431\u0435\u0440\u0456\u0442\u044c \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442. + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u0457\: \u0432\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043a\u043e\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0446\u0456\u0439\u043d\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab{0}\u00bb @@ -674,9 +712,6 @@ Error\ while\ verifying/uploading=\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0 #: Preferences.java:93 Estonian=\u0435\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430 -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=\u0435\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430 (\u0415\u0441\u0442\u043e\u043d\u0456\u044f) - #: Editor.java:516 Examples=\u041f\u0440\u0438\u043a\u043b\u0430\u0434\u0438 @@ -766,7 +801,7 @@ Frequently\ Asked\ Questions=\u0427\u0430\u0441\u0442\u0456 \u043f\u0438\u0442\u Galician=\u0433\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u044c\u043a\u0430 #: ../../../../../app/src/processing/app/Preferences.java:176 -Galician\ (Spain)=\u0413\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430 (\u0406\u0441\u043f\u0430\u043d\u0456\u044f) +Galician\ (Spain)=\u0433\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u044c\u043a\u0430 (\u0406\u0441\u043f\u0430\u043d\u0456\u044f) #: ../../../../../app/src/processing/app/Editor.java:1288 Galileo\ Help=\u0414\u043e\u043f\u043e\u043c\u043e\u0433\u0430 \u0432\u0456\u0434 Galileo @@ -785,7 +820,7 @@ Getting\ Started=\u041f\u043e\u0447\u0430\u0442\u043e\u043a \u0440\u043e\u0431\u #: ../../../processing/app/Sketch.java:1646 #, java-format -Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.=\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0456 \u0437\u043c\u0456\u043d\u043d\u0456 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u044e\u0442\u044c {0} \u0431\u0430\u0439\u0442\u0456\u0432 ({2}%%) \u0434\u0438\u043d\u0430\u043c\u0456\u0447\u043d\u043e\u0457 \u043f\u0430\u043c\u2019\u044f\u0442\u0456, \u0456 \u0437\u0430\u043b\u0438\u0448\u0430\u044e\u0442\u044c {3} \u0431\u0430\u0439\u0442\u0456\u0432 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0438\u0445 \u0437\u043c\u0456\u043d\u043d\u0438\u0445. \u0429\u043e\u043d\u0430\u0439\u0431\u0456\u043b\u044c\u0448\u0435 {1} \u0431\u0430\u0439\u0442\u0456\u0432. +Global\ variables\ use\ {0}\ bytes\ ({2}%%)\ of\ dynamic\ memory,\ leaving\ {3}\ bytes\ for\ local\ variables.\ Maximum\ is\ {1}\ bytes.=\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0456 \u0437\u043c\u0456\u043d\u043d\u0456 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u044e\u0442\u044c {0} \u0431\u0430\u0439\u0442\u0456\u0432 ({2}%%) \u0434\u0438\u043d\u0430\u043c\u0456\u0447\u043d\u043e\u0457 \u043f\u0430\u043c\u2019\u044f\u0442\u0456, \u0437\u0430\u043b\u0438\u0448\u0430\u044e\u0447\u0438 {3} \u0431\u0430\u0439\u0442\u0456\u0432 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0438\u0445 \u0437\u043c\u0456\u043d\u043d\u0438\u0445. \u041c\u0435\u0436\u0430 {1} \u0431\u0430\u0439\u0442\u0456\u0432. #: ../../../processing/app/Sketch.java:1651 #, java-format @@ -827,8 +862,8 @@ INCOMPATIBLE=\u041d\u0415\u0421\u0423\u041c\u0406\u0421\u041d\u0415 #: FindReplace.java:96 Ignore\ Case=\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u0433\u0456\u0441\u0442\u0440 -#: Base.java:1058 -Ignoring\ bad\ library\ name=\u0406\u0433\u043d\u043e\u0440\u0443\u044e \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0443 \u0437 \u043d\u0435\u043f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u0438\u043c \u0456\u043c\u0435\u043d\u0435\u043c +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0437 \u043f\u043e\u0433\u0430\u043d\u043e\u044e \u043d\u0430\u0437\u0432\u043e\u044e \u0432\u0456\u0434\u0445\u0438\u043b\u0435\u043d\u0430 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=\u0406\u0433\u043d\u043e\u0440\u0443\u044e \u0441\u043a\u0435\u0442\u0447 \u0437 \u043d\u0435\u043f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u0438\u043c \u0456\u043c\u0435\u043d\u0435\u043c @@ -837,12 +872,15 @@ Ignoring\ sketch\ with\ bad\ name=\u0406\u0433\u043d\u043e\u0440\u0443\u044e \u0 In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As")\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=\u0412 Arduino 1.0 \u0440\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u043d\u044f \u0437\u0430 \u0443\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f\u043c \u0431\u0443\u043b\u043e \u0437\u043c\u0456\u043d\u0435\u043d\u043e\n\u0437 .pde \u043d\u0430 .ino. \u041d\u043e\u0432\u0456 \u0441\u043a\u0435\u0442\u0447\u0456 (\u0432 \u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0456 \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u0456\n\u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u00ab\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u044f\u043a\u00bb) \u043c\u0430\u044e\u0442\u044c \u043d\u043e\u0432\u0435 \u0440\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u043d\u044f.\n\u0420\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u043d\u044f \u0441\u0442\u0430\u0440\u0438\u0445 \u0441\u043a\u0435\u0442\u0447\u0456\u0432 \u043e\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u0456,\n\u0430\u043b\u0435 \u0432\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0446\u0435 \u0443 \u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f\u0445.\n\n\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 \u0456 \u043e\u043d\u043e\u0432\u0438\u0442\u0438 \u0440\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u043d\u044f? #: ../../../../../app/src/processing/app/Editor.java:778 -Include\ Library=\u0414\u043e\u0434\u0430\u0442\u0438 \u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0443 +Include\ Library=\u0414\u043e\u0434\u0430\u0442\u0438 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0443 #: ../../../processing/app/BaseNoGui.java:768 #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0442\u0435\u043a\u0430 \u0440\u043e\u0437\u0442\u0430\u0448\u0443\u0432\u0430\u043d\u043d\u044f IDE +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0440\u043e\u0437\u043c\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443 + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f @@ -850,7 +888,7 @@ Increase\ Indent=\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0432\u Indonesian=\u0456\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430 #: ../../../../../app/src/processing/app/Base.java:295 -Initializing\ packages...=\u0406\u043d\u0456\u0446\u0456\u0430\u043b\u0456\u0437\u0443\u0454\u043c\u043e \u043f\u0430\u043a\u0435\u0442\u0456... +Initializing\ packages...=\u0406\u043d\u0456\u0446\u0456\u0430\u043b\u0456\u0437\u0443\u0454\u043c\u043e \u043f\u0430\u043a\u0435\u0442\u0438... #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:75 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:81 @@ -869,9 +907,9 @@ Installed=\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043f\u043b\u0430\u0442... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438\: {0} +Installing\ library\:\ {0}\:{1}=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430\: {0}\:{1} #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -892,6 +930,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=\u041d\u0435\u0434\u0456\u0439\u0441\u04 #, java-format Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.=\u041d\u0435\u0432\u0456\u0440\u043d\u0456 \u043b\u0430\u043f\u043a\u0438\: \u0432\u0456\u0434\u0441\u0443\u0442\u043d\u0456\u0439 \u043a\u0456\u043d\u0446\u0435\u0432\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b [{0}]. +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}=\u041d\u0435\u043f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u0430 \u0432\u0435\u0440\u0441\u0456\u044f '{0}' \u0434\u043b\u044f \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438\: {1} + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=\u041d\u0435\u0432\u0456\u0440\u043d\u0430 \u0432\u0435\u0440\u0441\u0456\u044f {0} + #: Preferences.java:102 Italian=\u0456\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430 @@ -916,9 +963,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=\u0411\u04 #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u043c\u0430\u0442\u0438 \u043e\u0434\u043d\u043e\u0447\u0430\u0441\u043d\u043e \u0442\u0435\u043a\u0438 'src' \u0442\u0430 'utility'. \u041f\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0443 \u0432\u0436\u0435 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e\: {0} \u0432\u0435\u0440\u0441\u0456\u044f {1} +Library\ is\ already\ installed\:\ {0}\:{1}=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0432\u0436\u0435 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430\: {0}\:{1} #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=\u041d\u043e\u043c\u0435\u0440 \u0440\u044f\u0434\u043a\u0430\: @@ -1081,7 +1128,7 @@ Only\ --verify,\ --upload\ or\ --get-pref\ are\ supported=\u041f\u0456\u0434\u04 Open=\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 #: ../../../../../app/src/processing/app/Editor.java:625 -Open\ Recent=\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u041d\u0435\u0449\u043e\u0434\u0430\u0432\u043d\u0456 +Open\ Recent=\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u043d\u0435\u0449\u043e\u0434\u0430\u0432\u043d\u0456 #: Editor.java:2688 Open\ URL=\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f @@ -1179,10 +1226,10 @@ Printing\ canceled.=\u0414\u0440\u0443\u043a \u0441\u043a\u0430\u0441\u043e\u043 Printing...=\u0414\u0440\u0443\u043a\u0443\u0432\u0430\u043d\u043d\u044f\u2026 #: Base.java:1957 -Problem\ Opening\ Folder=\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0442\u044f\u043c \u0442\u0435\u043a\u0438 +Problem\ Opening\ Folder=\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437 \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u043d\u043d\u044f\u043c \u0442\u0435\u043a\u0438 #: Base.java:1933 -Problem\ Opening\ URL=\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0442\u044f\u043c \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f +Problem\ Opening\ URL=\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437 \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u043d\u043d\u044f\u043c \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f #: Base.java:227 Problem\ Setting\ the\ Platform=\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0437 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0438 @@ -1231,9 +1278,9 @@ Reference=\u0417\u043c\u0456\u0441\u0442 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 Remove=\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -Removing\ library\:\ {0}=\u0412\u0438\u0434\u0430\u043b\u044f\u0454\u0442\u044c\u0441\u044f \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430\: {0} +Removing\ library\:\ {0}\:{1}=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u0430\: {0}\:{1} #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 @@ -1256,11 +1303,14 @@ Replace\ All=\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u0432\u0441\u0435 Replace\ the\ existing\ version\ of\ {0}?=\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u043d\u0430\u044f\u0432\u043d\u0443 \u0432\u0435\u0440\u0441\u0456\u044e {0}? #: FindReplace.java:81 -Replace\ with\:=\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438\: +Replace\ with\:=\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u043d\u0430\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 Retired=\u0417\u0430\u0441\u0442\u0430\u0440\u0456\u043b\u0456 +#: ../../../../../app/src/processing/app/Editor.java:1973 +Retry\ the\ upload\ with\ another\ serial\ port?=\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0438 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f, \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u044e\u0447\u0438 \u0456\u043d\u0448\u0438\u0439 \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442? + #: Preferences.java:113 Romanian=\u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430 @@ -1352,9 +1402,13 @@ Serial\ monitor\ not\ available\ while\ plotter\ is\ open=\u041c\u043e\u043d\u04 #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=\u041f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442 \u00ab{0}\u00bb \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e. \u0412\u0438 \u0432\u0438\u0431\u0440\u0430\u043b\u0438 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0438\u0439 \u0456\u0437 \u043c\u0435\u043d\u044e \u0421\u0435\u0440\u0432\u0456\u0441 > \u041f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +Serial\ port\ not\ selected.=\u041d\u0435 \u043e\u0431\u0440\u0430\u043d\u043e \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442. + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=\u041f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442 {0} \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e.\n\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0438 \u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0437 \u0456\u043d\u0448\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443? +Serial\ port\ {0}\ not\ found.=\u041f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0438\u0439 \u043f\u043e\u0440\u0442 {0} \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e. #: ../../../../../app/src/processing/app/Editor.java:65 Serial\ ports=\u041f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u0456 \u043f\u043e\u0440\u0442\u0438 @@ -1372,6 +1426,9 @@ Settings\ issues=\u041f\u0438\u0442\u0430\u043d\u043d\u044f, \u043f\u043e\u0432\ #: Editor.java:641 Show\ Sketch\ Folder=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u0442\u0435\u043a\u0443 \u0441\u043a\u0435\u0442\u0447\u0456\u0432 +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +Show\ timestamp=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u043f\u043e\u0437\u043d\u0430\u0447\u043a\u0438 \u0447\u0430\u0441\u0443 + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u043d\u0438\u0439 \u0437\u0432\u0456\u0442 \u043f\u0440\u0438\: @@ -1401,7 +1458,7 @@ Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ f #: ../../../processing/app/Sketch.java:1639 #, java-format -Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.=\u0421\u043a\u0435\u0442\u0447 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454 {0} \u0431\u0430\u0439\u0442\u0456\u0432 ({2}%%) \u043c\u0456\u0441\u0446\u044f \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u043d\u043d\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c. \u041c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0449\u043e\u043d\u0430\u0439\u0431\u0456\u043b\u044c\u0448\u0435 {1} \u0431\u0430\u0439\u0442\u0456\u0432. +Sketch\ uses\ {0}\ bytes\ ({2}%%)\ of\ program\ storage\ space.\ Maximum\ is\ {1}\ bytes.=\u0421\u043a\u0435\u0442\u0447 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454 {0} \u0431\u0430\u0439\u0442\u0456\u0432 ({2}%%) \u043c\u0456\u0441\u0446\u044f \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u043d\u043d\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c. \u041c\u0435\u0436\u0430 {1} \u0431\u0430\u0439\u0442\u0456\u0432. #: Editor.java:510 Sketchbook=\u0422\u0435\u043a\u0430 \u0437\u0456 \u0441\u043a\u0435\u0442\u0447\u0430\u043c\u0438 @@ -1426,7 +1483,7 @@ Slovak=\u0441\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 Slovenian=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0430 #: Sketch.java:275 Sketch.java:304 Sketch.java:578 Sketch.java:967 -Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=\u0414\u0435\u044f\u043a\u0456 \u0444\u0430\u0439\u043b\u0438 \u043f\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0456 \u00ab\u0442\u0456\u043b\u044c\u043a\u0438 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u043d\u043d\u044f\u00bb, \n\u0442\u043e\u043c\u0443 \u0432\u0430\u043c \u0437\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 \u0432 \u0456\u043d\u0448\u043e\u043c\u0443 \n\u043c\u0456\u0441\u0446\u0456 \u0439 \u0441\u043f\u0440\u043e\u0431\u0443\u0432\u0430\u0442\u0438 \u0449\u0435 \u0440\u0430\u0437. +Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=\u0414\u0435\u044f\u043a\u0456 \u0444\u0430\u0439\u043b\u0438 \u043f\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0456 \u00ab\u0442\u0456\u043b\u044c\u043a\u0438 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u043d\u043d\u044f\u00bb,\n\u0442\u043e\u043c\u0443 \u0432\u0430\u043c \u0437\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 \u0432 \u0456\u043d\u0448\u043e\u043c\u0443\n\u043c\u0456\u0441\u0446\u0456 \u0439 \u0441\u043f\u0440\u043e\u0431\u0443\u0432\u0430\u0442\u0438 \u0449\u0435 \u0440\u0430\u0437. #: Sketch.java:721 Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ sketch\ to\ another\ location.=\u0414\u0435\u044f\u043a\u0456 \u0444\u0430\u0439\u043b\u0438 \u0432\u0456\u0434\u0437\u043d\u0430\u0447\u0435\u043d\u0456 \u00ab\u0442\u0456\u043b\u044c\u043a\u0438 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u043d\u043d\u044f\u00bb, \u0442\u043e\u043c\u0443\n\u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u043e \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0446\u0435\u0439 \u0441\u043a\u0435\u0442\u0447 \u0432 \u0456\u043d\u0448\u043e\u043c\u0443 \u043c\u0456\u0441\u0446\u0456. @@ -1472,17 +1529,17 @@ The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.=\u0414\u0435\u0441\u043a\u0440\ The\ --upload\ option\ supports\ only\ one\ file\ at\ a\ time=\u041e\u043f\u0446\u0456\u044f --upload \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043b\u0438\u0448\u0435 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u0437\u0430 \u0440\u0430\u0437 #: debug/Compiler.java:426 -The\ Client\ class\ has\ been\ renamed\ EthernetClient.=\u041a\u043b\u0430\u0441 Client \u0431\u0443\u0432 \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 EternetClient. +The\ Client\ class\ has\ been\ renamed\ EthernetClient.=\u041a\u043b\u0430\u0441 Client \u0431\u0443\u043b\u043e \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 EternetClient. #: ../../../../../app/src/cc/arduino/contributions/BuiltInCoreIsNewerCheck.java:96 #, java-format The\ IDE\ includes\ an\ updated\ {0}\ package,\ but\ you're\ using\ an\ older\ one.\nDo\ you\ want\ to\ upgrade\ {0}?=IDE \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u043e\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043f\u0430\u043a\u0443\u043d\u043e\u043a {0}, \u0430\u043b\u0435 \u0432\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u0442\u0435 \u0441\u0442\u0430\u0440\u0456\u0448\u0438\u0439.\n\u0411\u0430\u0436\u0430\u0454\u0442\u0435 \u043e\u043d\u043e\u0432\u0438\u0442\u0438 {0}? #: debug/Compiler.java:420 -The\ Server\ class\ has\ been\ renamed\ EthernetServer.=\u041a\u043b\u0430\u0441 Server \u0431\u0443\u0432 \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 EternetServer. +The\ Server\ class\ has\ been\ renamed\ EthernetServer.=\u041a\u043b\u0430\u0441 Server \u0431\u0443\u043b\u043e \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 EternetServer. #: debug/Compiler.java:432 -The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=\u041a\u043b\u0430\u0441 Udp \u0431\u0443\u0432 \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 EthernetUdp. +The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=\u041a\u043b\u0430\u0441 Udp \u0431\u0443\u043b\u043e \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 EthernetUdp. #: ../../../../../arduino-core/src/processing/app/BaseNoGui.java:177 The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed.=\u041f\u043e\u0442\u043e\u0447\u043d\u0430 \u0432\u0438\u0431\u0440\u0430\u043d\u0430 \u043f\u043b\u0430\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0454 \u044f\u0434\u0440\u0430 \u00ab{0}\u00bb, \u044f\u043a\u0435 \u043d\u0435 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e. @@ -1491,9 +1548,13 @@ The\ current\ selected\ board\ needs\ the\ core\ '{0}'\ that\ is\ not\ installed #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=\u0424\u0430\u0439\u043b \u00ab{0}\u00bb \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0432\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0456\n\u0442\u0435\u043a\u0438 \u0441\u043a\u0435\u0442\u0447\u0443 \u0437 \u0456\u043c\u0435\u043d\u0435\u043c \u00ab{1}\u00bb.\n\u0421\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0446\u044e \u0442\u0435\u043a\u0443, \u043f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0444\u0430\u0439\u043b \u0456 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 "{0}" \u043d\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u0430. \n\u0406\u043c\u0435\u043d\u0430 \u043f\u0430\u043f\u043e\u043a \u0443 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430\u0445 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0437 \u043b\u0456\u0442\u0435\u0440\u0438 \u0430\u0431\u043e \u0446\u0438\u0444\u0440\u0438, \u0430 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0441\u043b\u0456\u0434\u0443\u044e\u0442\u044c \u043b\u0456\u0442\u0435\u0440\u0438, \u0446\u0438\u0444\u0440\u0438, \u0442\u0438\u0440\u0435, \u043a\u0440\u0430\u043f\u043a\u0430 \u0442\u0430 \u043f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f. \n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430 \u0434\u043e\u0432\u0436\u0438\u043d\u0430 63 \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432. + #: Base.java:1054 Base.java:2674 #, java-format -The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u00ab{0}\u00bb \u043d\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u0430.\n\u041d\u0430\u0437\u0432\u0438 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u043b\u0438\u0448\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0456 \u043b\u0456\u0442\u0435\u0440\u0438 \u0456 \u0446\u0438\u0444\u0440\u0438.\n(\u041b\u0438\u0448\u0435 ASCII, \u0431\u0435\u0437 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0456\u0432, \u043d\u0435 \u043c\u043e\u0436\u0443\u0442\u044c \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0437 \u0446\u0438\u0444\u0440\u0438) +The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u00ab{0}\u00bb \u043d\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u0430.\n\u0406\u043c\u0435\u043d\u0430 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u043b\u0438\u0448\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0456 \u043b\u0456\u0442\u0435\u0440\u0438 \u0456 \u0446\u0438\u0444\u0440\u0438.\n(\u041b\u0438\u0448\u0435 ASCII, \u0431\u0435\u0437 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0456\u0432, \u043d\u0435 \u043c\u043e\u0436\u0443\u0442\u044c \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0437 \u0446\u0438\u0444\u0440\u0438) #: ../../../../../app/src/processing/app/SketchController.java:170 The\ main\ file\ cannot\ use\ an\ extension=\u041d\u0430\u0437\u0432\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435 \u043c\u0430\u0442\u0438 \u0440\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u043d\u044f @@ -1515,8 +1576,8 @@ The\ sketch\ already\ contains\ a\ file\ named\ "{0}"=\u0421\u043a\u0435\u0442\u #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=\u041d\u0435 \u0432\u0434\u0430\u0454\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0439\u0442\u0438 \u0442\u0435\u043a\u0443 \u0441\u043a\u0435\u0442\u0447\u0443.\n\u0411\u0443\u0434\u0435 \u0432\u0438\u043a\u043e\u043d\u0430\u043d\u0430 \u0441\u043f\u0440\u043e\u0431\u0430 \u043f\u0435\u0440\u0435\u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0439\u043e\u0433\u043e \u0432 \u0442\u043e\u043c\u0443 \u0436 \u043c\u0456\u0441\u0446\u0456,\n\u0430\u043b\u0435 \u0432\u0441\u0435, \u043a\u0440\u0456\u043c \u043a\u043e\u0434\u0443, \u0431\u0443\u0434\u0435 \u0432\u0442\u0440\u0430\u0447\u0435\u043d\u043e. -#: ../../../processing/app/Sketch.java:2028 -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.=\u041d\u0430\u0437\u0432\u0443 \u0441\u043a\u0435\u0442\u0447\u0443 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0437\u043c\u0456\u043d\u0438\u0442\u0438. \u041d\u0430\u0437\u0432\u0438 \u043c\u043e\u0436\u0443\u0442\u044c \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u043b\u0438\u0448\u0435\n\u0441\u0438\u043c\u0432\u043e\u043b\u0438 ASCII \u0442\u0430 \u0447\u0438\u0441\u043b\u0430 (\u0430\u043b\u0435 \u043d\u0435 \u043c\u043e\u0436\u0443\u0442\u044c \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0456\u0437 \u0447\u0438\u0441\u0435\u043b).\n\u0414\u043e\u0432\u0436\u0438\u043d\u0430 \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u043c\u0435\u043d\u0448\u043e\u044e \u0437\u0430 64 \u0441\u0438\u043c\u0432\u043e\u043b\u0438. +#: ../../../../../app/src/processing/app/SketchController.java:849 +The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.=\u041d\u0430\u0437\u0432\u0430 \u0441\u043a\u0435\u0442\u0447\u0443 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \u0437\u043c\u0456\u043d\u0435\u043d\u0430. \n\u041d\u0430\u0437\u0432\u0430 \u0441\u043a\u0435\u0442\u0447\u0443 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0437 \u043b\u0456\u0442\u0435\u0440\u0438 \u0430\u0431\u043e \u0446\u0438\u0444\u0440\u0438, \u0437\u0430 \u044f\u043a\u0438\u043c\u0438 \u0441\u043b\u0456\u0434\u0443\u044e\u0442\u044c \u043b\u0456\u0442\u0435\u0440\u0438, \u0446\u0438\u0444\u0440\u0438, \u0442\u0438\u0440\u0435, \u043a\u0440\u0430\u043f\u043a\u0438 \u0442\u0430 \u043f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f. \n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430 \u0434\u043e\u0432\u0436\u0438\u043d\u0430 63 \u0441\u0438\u043c\u0432\u043e\u043b\u0456\u0432. #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=\u0422\u0435\u043a\u0430 \u0437\u0456 \u0441\u043a\u0435\u0442\u0447\u0430\u043c\u0438 \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435 \u0456\u0441\u043d\u0443\u0454.\nArduino \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u0435\u043a\u0443 \u0437\u0430 \u0443\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f\u043c,\n\u0441\u0442\u0432\u043e\u0440\u0438\u0432\u0448\u0438 \u0457\u0457 \u0437\u0430 \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u043e\u0441\u0442\u0456. \u0410 \u043f\u043e\u0442\u0456\u043c Arduino\n\u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0438 \u043f\u0440\u043e \u0441\u0435\u0431\u0435 \u0432 \u0442\u0440\u0435\u0442\u0456\u0439 \u043e\u0441\u043e\u0431\u0456. @@ -1524,6 +1585,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.=\u0412\u0438\u0431\u0440\u0430\u043d\u0430 \u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0441\u043a\u0435\u0442\u0447\u0456\u0432 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0443 \u043a\u043e\u043f\u0456\u044e IDE.\n\u0411\u0443\u0434\u044c-\u043b\u0430\u0441\u043a\u0430, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0456\u043d\u0448\u0443 \u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u0441\u043a\u0435\u0442\u0447\u0456\u0432 . +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +Theme\:\ =\u0422\u0435\u043c\u0430\: + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?=\u0426\u044f \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0432\u0456\u0434\u0441\u0443\u0442\u043d\u044f \u0432 \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0456 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a. \u0407\u0457 \u043d\u0435\u043c\u043e\u0436\u043b\u0438\u0432\u043e \u0431\u0443\u0434\u0435 \u0432\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0437\u043d\u043e\u0432\u0443.\n\u0412\u0438 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0449\u043e \u0445\u043e\u0447\u0435\u0442\u0435 \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0457\u0457? @@ -1571,13 +1635,13 @@ Unable\ to\ connect\ to\ {0}=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u #: ../../../processing/app/Editor.java:2524 #: ../../../processing/app/NetworkMonitor.java:145 -Unable\ to\ connect\:\ is\ the\ sketch\ using\ the\ bridge?=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u2019\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044c\: \u0441\u043a\u0435\u0442\u0447 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454 \u043c\u0456\u0441\u0442? +Unable\ to\ connect\:\ is\ the\ sketch\ using\ the\ bridge?=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u02bc\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044f\: \u0441\u043a\u0435\u0442\u0447 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454 \u043c\u0456\u0441\u0442? #: ../../../processing/app/NetworkMonitor.java:130 -Unable\ to\ connect\:\ retrying=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u2019\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044c\: \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430 \u0441\u043f\u0440\u043e\u0431\u0430 +Unable\ to\ connect\:\ retrying=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u02bc\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044f\: \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430 \u0441\u043f\u0440\u043e\u0431\u0430 #: ../../../processing/app/Editor.java:2526 -Unable\ to\ connect\:\ wrong\ password?=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u2019\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044c\: \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c? +Unable\ to\ connect\:\ wrong\ password?=\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u02bc\u0454\u0434\u043d\u0430\u0442\u0438\u0441\u044f\: \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0438\u0439 \u043f\u0430\u0440\u043e\u043b\u044c? #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:65 #, java-format @@ -1591,7 +1655,7 @@ Unable\ to\ open\ serial\ plotter=\u041d\u0435\u043c\u043e\u0436\u043b\u0438\u04 #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:94 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:89 -Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=Arduino.cc \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0436\u043b\u0438\u0432\u0456 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0437 \u043c\u0435\u0440\u0435\u0436\u0435\u044e. +Unable\ to\ reach\ Arduino.cc\ due\ to\ possible\ network\ issues.=Arduino.cc \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0436\u043b\u0438\u0432\u0456 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0456\u0437 \u043c\u0435\u0440\u0435\u0436\u0435\u044e. #: ../../../../../arduino-core/src/processing/app/I18n.java:38 Uncategorized=\u041d\u0435\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u0456 @@ -1611,7 +1675,7 @@ Unknown\ board=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u043f\u043b\u04 Unknown\ sketch\ file\ extension\:\ {0}=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0435 \u0440\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u043d\u044f \u0444\u0430\u0439\u043b\u0443 \u0441\u043a\u0435\u0442\u0447\u0430\: {0} #: Platform.java:168 -Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=\u041d\u0435 \u0432\u043a\u0430\u0437\u0430\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u043d\u0435\u043c\u0430\u0454 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0432\u0430\u0447\u0430.\n\u0429\u043e\u0431 \u0434\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0438 \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u043d\u043d\u044f \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u044c \u0430\u0431\u043e \u0442\u0435\u043a, \u0434\u043e\u0434\u0430\u0439\u0442\u0435\n\u00ablauncher \=/path/to/app\u00bb \u0443 \u0444\u0430\u0439\u043b preferences.txt +Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=\u041d\u0435 \u0432\u043a\u0430\u0437\u0430\u043d\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0432\u0430\u0447 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439.\n\u0429\u043e\u0431 \u0434\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0438 \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u043d\u043d\u044f \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u044c \u0430\u0431\u043e \u0442\u0435\u043a, \u0434\u043e\u0434\u0430\u0439\u0442\u0435\n\u00ablauncher \=/path/to/app\u00bb \u0443 \u0444\u0430\u0439\u043b preferences.txt #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/DropdownUpdatableLibrariesItem.java:27 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/DropdownUpdatableCoresItem.java:27 @@ -1685,7 +1749,7 @@ Using\ previously\ compiled\ file\:\ {0}=\u0412\u0438\u043a\u043e\u0440\u0438\u0 Verify=\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 #: Preferences.java:400 -Verify\ code\ after\ upload=\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043a\u043e\u0434\u0443 \u043f\u0456\u0441\u043b\u044f \u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f +Verify\ code\ after\ upload=\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u043a\u043e\u0434 \u043f\u0456\u0441\u043b\u044f \u0432\u0438\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f #: ../../../../../app/src/processing/app/Editor.java:725 Verify/Compile=\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438/\u0437\u043a\u043e\u043c\u043f\u0456\u043b\u044e\u0432\u0430\u0442\u0438 @@ -1726,7 +1790,7 @@ WARNING\:\ Spurious\ {0}\ folder\ in\ '{1}'\ library=\u041f\u041e\u041f\u0415\u0 #: ../../../processing/app/debug/Compiler.java:115 #, java-format -WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=\u0423\u0412\u0410\u0413\u0410\: \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 {0} \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0454 \u0434\u043b\u044f \u0440\u043e\u0431\u043e\u0442\u0438 \u0430\u0440\u0445\u0456\u0442\u0435\u043a\u0442\u0443\u0440\u0443 {1}, \u0442\u0430 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043d\u0435\u0441\u0443\u043c\u0456\u0441\u043d\u043e\u044e \u0437 \u0432\u0430\u0448\u043e\u044e \u043f\u043b\u0430\u0442\u043e\u044e, \u0449\u043e \u043f\u0440\u0430\u0446\u044e\u0454 \u043d\u0430 \u0430\u0440\u0445\u0456\u0442\u0435\u043a\u0442\u0443\u0440\u0456 {2}. +WARNING\:\ library\ {0}\ claims\ to\ run\ on\ {1}\ architecture(s)\ and\ may\ be\ incompatible\ with\ your\ current\ board\ which\ runs\ on\ {2}\ architecture(s).=\u0423\u0412\u0410\u0413\u0410\: \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 {0} \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0454 \u0434\u043b\u044f \u0440\u043e\u0431\u043e\u0442\u0438 \u0430\u0440\u0445\u0456\u0442\u0435\u043a\u0442\u0443\u0440\u0443 {1} \u0456 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043d\u0435\u0441\u0443\u043c\u0456\u0441\u043d\u043e\u044e \u0437 \u0432\u0430\u0448\u043e\u044e \u043f\u043b\u0430\u0442\u043e\u044e, \u0449\u043e \u043f\u0440\u0430\u0446\u044e\u0454 \u043d\u0430 \u0430\u0440\u0445\u0456\u0442\u0435\u043a\u0442\u0443\u0440\u0456 {2}. #: Base.java:2128 Warning=\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u0436\u0435\u043d\u043d\u044f @@ -1766,7 +1830,7 @@ Wire.receive()\ has\ been\ renamed\ Wire.read().=Wire.receive() \u0431\u0443\u04 Wire.send()\ has\ been\ renamed\ Wire.write().=Wire.send() \u0431\u0443\u043b\u0430 \u043f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0430 \u0432 Wire.write(). #: FindReplace.java:105 -Wrap\ Around=\u0412\u0438\u0434\u0456\u043b\u044f\u0442\u0438 +Wrap\ Around=\u041f\u0440\u0438 \u0434\u043e\u0441\u044f\u0433\u043d\u0435\u043d\u043d\u0456 \u043a\u0456\u043d\u0446\u044f \u0444\u0430\u0439\u043b\u0443 \u043f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438 \u0437 \u043f\u043e\u0447\u0430\u0442\u043a\u0443 #: debug/Uploader.java:213 Wrong\ microcontroller\ found.\ \ Did\ you\ select\ the\ right\ board\ from\ the\ Tools\ >\ Board\ menu?=\u0425\u0438\u0431\u043d\u0438\u0439 \u0442\u0438\u043f \u043c\u0456\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430. \u0412\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u0438\u0431\u0440\u0430\u043b\u0438 \u043f\u043b\u0430\u0442\u0443 \u0437 \u043c\u0435\u043d\u044e \u0421\u0435\u0440\u0432\u0456\u0441 > \u041f\u043b\u0430\u0442\u0438? @@ -1778,7 +1842,7 @@ Yes=\u0422\u0430\u043a You\ can't\ import\ a\ folder\ that\ contains\ your\ sketchbook=\u0412\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0456\u043c\u043f\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0442\u0435\u043a\u0443, \u044f\u043a\u0430 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0456 \u0441\u043a\u0435\u0442\u0447\u0456 #: Sketch.java:883 -You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ go\ on\ forever.=\u0412\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0441\u043a\u0435\u0442\u0447 \u0432\n\u0439\u043e\u0433\u043e \u0432\u043b\u0430\u0441\u043d\u0443 \u0442\u0435\u043a\u0443. \u0426\u0435 \u0431\u0443\u0434\u0435 \u0442\u0440\u0438\u0432\u0430\u0442\u0438 \u0432\u0456\u0447\u043d\u043e. +You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ go\ on\ forever.=\u0412\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u0441\u043a\u0435\u0442\u0447\n\u0432 \u0439\u043e\u0433\u043e \u0432\u043b\u0430\u0441\u043d\u0443 \u0442\u0435\u043a\u0443. \u0426\u0435 \u0431\u0443\u0434\u0435 \u0442\u0440\u0438\u0432\u0430\u0442\u0438 \u0432\u0456\u0447\u043d\u043e. #: Base.java:1888 You\ forgot\ your\ sketchbook=\u0412\u0438 \u0437\u0430\u0431\u0443\u043b\u0438 \u0432\u0430\u0448\u0443 \u0442\u0435\u043a\u0443 \u0437\u0456 \u0441\u043a\u0435\u0442\u0447\u0430\u043c\u0438 @@ -1858,6 +1922,11 @@ ignoring\ invalid\ font\ size\ {0}=\u0456\u0433\u043d\u043e\u0440\u0443\u0432\u0 #: Editor.java:936 Editor.java:943 name\ is\ null=\u043d\u0435\u043c\u0430\u0454 \u0456\u043c\u0435\u043d\u0456 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +no\ headers\ files\ (.h)\ found\ in\ {0}=\u0412 {0} \u0432\u0456\u0434\u0441\u0443\u0442\u043d\u0456 \u0444\u0430\u0439\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0456\u0432 (.h) + #: Editor.java:932 serialMenu\ is\ null=\u041c\u0435\u043d\u044e \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0443 \u043f\u0443\u0441\u0442\u0435 @@ -1883,11 +1952,11 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:39 #: ../../../cc/arduino/contributions/SignatureVerificationFailedException.java:43 #, java-format -{0}\ file\ signature\ verification\ failed={0} \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043f\u0456\u0434\u043f\u0438\u0441\u0443 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u0432\u0434\u0430\u043b\u0430\u0441\u044f +{0}\ file\ signature\ verification\ failed=\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043f\u0456\u0434\u043f\u0438\u0441\u0443 \u0444\u0430\u0439\u043b\u0443 {0} \u043d\u0435 \u0432\u0434\u0430\u043b\u0430\u0441\u044f #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:310 #, java-format -{0}\ file\ signature\ verification\ failed.\ File\ ignored.={0} \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043f\u0456\u0434\u043f\u0438\u0441\u0443 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u0432\u0434\u0430\u043b\u0430\u0441\u044f. \u0406\u0433\u043d\u043e\u0440\u0443\u0454\u043c\u043e \u0444\u0430\u0439\u043b. +{0}\ file\ signature\ verification\ failed.\ File\ ignored.=\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043f\u0456\u0434\u043f\u0438\u0441\u0443 \u0444\u0430\u0439\u043b\u0443 {0} \u043d\u0435 \u0432\u0434\u0430\u043b\u0430\u0441\u044f. \u0406\u0433\u043d\u043e\u0440\u0443\u0454\u043c\u043e \u0444\u0430\u0439\u043b. #: Editor.java:380 #, java-format @@ -1899,7 +1968,7 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:76 #, java-format -{0}\ must\ be\ a\ folder={0} \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u043f\u0430\u043f\u043a\u0430 +{0}\ must\ be\ a\ folder={0} \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0442\u0435\u043a\u043e\u044e #: ../../../../../app/src/processing/app/EditorLineStatus.java:109 #, java-format @@ -1925,10 +1994,6 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #, java-format {0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"={0}\: \u0425\u0438\u0431\u043d\u0430 \u043d\u0430\u0437\u0432\u0430 \u043f\u043b\u0430\u0442\u0438, \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0443 \u0444\u043e\u0440\u043c\u0456 \u00abpackage\:arch\:board\u00bb \u0430\u0431\u043e \u00abpackage\:arch\:board\:options\u00bb -#: ../../../processing/app/Base.java:509 -#, java-format -{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"={0}\: \u0425\u0438\u0431\u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0434\u043b\u044f \u043e\u043f\u0446\u0456\u0457 \u00ab{1}\u00bb \u043f\u043b\u0430\u0442\u0438 \u00ab{2}\u00bb - #: ../../../processing/app/Base.java:507 #, java-format {0}\:\ Invalid\ option\ for\ board\ "{1}"={0}\: \u0425\u0438\u0431\u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0438 \u00ab{1}\u00bb @@ -1937,6 +2002,10 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #, java-format {0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"={0}\: \u0425\u0438\u0431\u043d\u0435 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f, \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0443 \u0444\u043e\u0440\u043c\u0456 \u00abname\=value\u00bb +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"={0}\: \u041d\u0435\u0432\u0456\u0440\u043d\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 "{1}" \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u0438 "{2}" + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: \u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u0430\u0440\u0445\u0456\u0442\u0435\u043a\u0442\u0443\u0440\u0430 @@ -1951,4 +2020,4 @@ version\ {0}=\u0432\u0435\u0440\u0441\u0456\u044f {0} #: ../../../../../arduino-core/src/processing/app/Platform.java:223 #, java-format -{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0}\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u043f\u0430\u043a\u0435\u0442{1}\u0434\u043b\u044f \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0432\u0430\u0448\u043e\u0457 \u043f\u043b\u0430\u0442\u0438 {2} +{0}Install\ this\ package{1}\ to\ use\ your\ {2}\ board={0}\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u043f\u0430\u043a\u0435\u0442{1} \u0434\u043b\u044f \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0432\u0430\u0448\u043e\u0457 \u043f\u043b\u0430\u0442\u0438 {2} diff --git a/arduino-core/src/processing/app/i18n/Resources_vi.po b/arduino-core/src/processing/app/i18n/Resources_vi.po index b65f278f39d..f63777e47aa 100644 --- a/arduino-core/src/processing/app/i18n/Resources_vi.po +++ b/arduino-core/src/processing/app/i18n/Resources_vi.po @@ -16,18 +16,22 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anh Phan , 2013 # Anh Phan , 2013 # Bao Phan , 2016 # Anh Phan , 2013 -# Quoc-Bao Nguyen , 2016-2017 +# Quoc-Bao Nguyen , 2016-2017,2020 msgid "" msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 17:47+0000\n" -"Last-Translator: Cristian Maglie \n" +"PO-Revision-Date: 2020-04-29 11:12+0000\n" +"Last-Translator: Quoc-Bao Nguyen \n" "Language-Team: Vietnamese (http://www.transifex.com/mbanzi/arduino-ide-15/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -151,7 +155,7 @@ msgstr "Tiếng Nam Phi" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 msgid "Aggressively cache compiled core" -msgstr "" +msgstr "Chá»§ động cache core đã biên dịch" #: ../../../processing/app/Preferences.java:96 msgid "Albanian" @@ -214,6 +218,11 @@ msgstr "Lưu trữ sketch dưới dạng:" msgid "Archive sketch canceled." msgstr "Äã há»§y việc lưu trữ sketch." +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +msgid "Archiving built core (caching) in: {0}" +msgstr "" + #: tools/Archiver.java:75 msgid "" "Archiving the sketch has been canceled because\n" @@ -435,7 +444,7 @@ msgstr "Chỉ có thể đưa vào má»™t trong: {0}" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 msgid "Can't enable external editor" -msgstr "" +msgstr "Không thể mở trình soạn thảo bên ngoài" #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -481,7 +490,7 @@ msgstr "Chinese (Taiwan) (Big5)" #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 msgid "Clear output" -msgstr "" +msgstr "Xóa output" #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 msgid "Click for a list of unofficial boards support URLs" @@ -620,6 +629,11 @@ msgstr "Không thể loại bá» phiên bản cÅ© cá»§a {0}" msgid "Could not replace {0}" msgstr "Không thể thay thay thế {0}" +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +msgid "Could not write preferences file: {0}" +msgstr "" + #: tools/Archiver.java:74 msgid "Couldn't archive sketch" msgstr "Không thể lưu trữ sketch" @@ -663,6 +677,10 @@ msgstr "Xá»­ Lý Dữ Liệu" msgid "Data Storage" msgstr "Dung Lượng Bá»™ Nhá»›" +#: ../../../../../app/src/processing/app/Editor.java:1386 +msgid "Decrease Font Size" +msgstr "Giảm kích thước font" + #: Editor.java:1224 Editor.java:2765 msgid "Decrease Indent" msgstr "Giảm khoảng cách" @@ -671,6 +689,10 @@ msgstr "Giảm khoảng cách" msgid "Default" msgstr "Mặc định" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +msgid "Default theme" +msgstr "Chá»§ đỠmặc định" + #: EditorHeader.java:314 Sketch.java:591 msgid "Delete" msgstr "Xóa" @@ -846,6 +868,11 @@ msgstr "Xảy ra lá»—i khi tiếp nhận thư mục dữ liệu Arduino" msgid "Error inside Serial.{0}()" msgstr "Lá»—i ở bên trong Serial.{0}()" +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +msgid "Error loading theme {0}: {1}" +msgstr "Không thể tải chá»§ đỠ{0}: {1}" + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -865,6 +892,25 @@ msgid "" "http://playground.arduino.cc/Linux/All#Permission" msgstr "Lá»—i khi mở cổng serial \"{0}\". Thá»­ tham khảo tài liệu tại http://playground.arduino.cc/Linux/All#Permission" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +msgid "" +"Error parsing libraries index: {0}\n" +"Try to open the Library Manager to update the libraries index." +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +msgid "Error reading libraries index: {0}" +msgstr "" + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +msgid "" +"Error reading package indexes folder: {0}\n" +"(maybe a permission problem?)" +msgstr "" + #: Preferences.java:277 msgid "Error reading preferences" msgstr "Lá»—i xảy ra vá»›i phần tương tác trong tùy biến" @@ -899,6 +945,10 @@ msgstr "Lá»—i khi Ä‘ang burning bootloader." msgid "Error while burning bootloader: missing '{0}' configuration parameter" msgstr "Lá»—i trong khi Ä‘ang ghi dữ liệu phần nạp khởi động: thiếu thông số cấu hình '{0}'" +#: ../../../../../app/src/processing/app/Editor.java:2355 +msgid "Error while burning bootloader: please select a serial port." +msgstr "" + #: ../../../../../app/src/processing/app/Editor.java:1940 msgid "Error while compiling: missing '{0}' configuration parameter" msgstr "Lá»—i biên dịch: thiếu tham số '{0}'" @@ -935,10 +985,6 @@ msgstr "Lá»—i khi biên dịch/tải lên" msgid "Estonian" msgstr "Estonian" -#: ../../../processing/app/Preferences.java:146 -msgid "Estonian (Estonia)" -msgstr "Estonian (Estonia)" - #: Editor.java:516 msgid "Examples" msgstr "Ví dụ" @@ -1142,9 +1188,9 @@ msgstr "KHÔNG TƯƠNG THÃCH" msgid "Ignore Case" msgstr "Bá» qua trưá»ng hợp viết hoa" -#: Base.java:1058 -msgid "Ignoring bad library name" -msgstr "Bá» qua tên thư viện không hợp lệ" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +msgid "Ignoring library with bad name" +msgstr "Bá» qua thư viện vá»›i tên không hợp lệ" #: Base.java:1436 msgid "Ignoring sketch with bad name" @@ -1170,6 +1216,10 @@ msgstr "Thư viện bao gồm" msgid "Incorrect IDE installation folder" msgstr "Sai thư mục cài đặt IDE" +#: ../../../../../app/src/processing/app/Editor.java:1378 +msgid "Increase Font Size" +msgstr "Tăng kích thước font chữ" + #: Editor.java:1216 Editor.java:2757 msgid "Increase Indent" msgstr "Tăng khoảng cách" @@ -1203,10 +1253,10 @@ msgstr "Äã cài đặt" msgid "Installing boards..." msgstr "Äang cài đặt cho bo..." -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -msgid "Installing library: {0}" -msgstr "Äang cài thư viện: {0}" +msgid "Installing library: {0}:{1}" +msgstr "" #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -1232,6 +1282,17 @@ msgstr "Thư viện không hợp lệ được tìm thấy trong {0}: {1}" msgid "Invalid quoting: no closing [{0}] char found." msgstr "" +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +msgid "Invalid version '{0}' for library in: {1}" +msgstr "" + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +msgid "Invalid version {0}" +msgstr "Phiên bản không hợp lệ {0}" + #: Preferences.java:102 msgid "Italian" msgstr "Italian" @@ -1264,10 +1325,10 @@ msgstr "Thư viện má»›i đã được thêm vào thư viện hệ thống. Hã msgid "Library can't use both 'src' and 'utility' folders. Double check {0}" msgstr "Thư viện không thể dùng cả hai thư mục 'src' và 'utility'. Kiểm tra lại {0}" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -msgid "Library is already installed: {0} version {1}" -msgstr "Thư viện đã được cài đặt: {0} phiên bản {1}" +msgid "Library is already installed: {0}:{1}" +msgstr "" #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 msgid "Line number:" @@ -1682,17 +1743,17 @@ msgstr "Tham chiếu" #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 msgid "Remove" -msgstr "" +msgstr "Xóa" -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -msgid "Removing library: {0}" +msgid "Removing library: {0}:{1}" msgstr "" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 msgid "Removing..." -msgstr "" +msgstr "Äang xóa ..." #: EditorHeader.java:300 msgid "Rename" @@ -1723,6 +1784,10 @@ msgstr "Thay thế vá»›i:" msgid "Retired" msgstr "" +#: ../../../../../app/src/processing/app/Editor.java:1973 +msgid "Retry the upload with another serial port?" +msgstr "" + #: Preferences.java:113 msgid "Romanian" msgstr "Romanian" @@ -1735,7 +1800,7 @@ msgstr "" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:82 #, java-format msgid "Running: {0}" -msgstr "" +msgstr "Äang chajy: {0}" #: Preferences.java:114 msgid "Russian" @@ -1798,7 +1863,7 @@ msgstr "Chá»n địa Ä‘iểm cho sketbook má»›i" #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 msgid "Select version" -msgstr "" +msgstr "Chá»n phiên bản" #: ../../../processing/app/debug/Compiler.java:146 msgid "Selected board depends on '{0}' core (not installed)." @@ -1846,12 +1911,15 @@ msgid "" " Serial Port menu?" msgstr "Cổng có số thứ tá»± ''{0}'' không được tìm thấy. Bạn đã chá»n đúng cổng trong phần menu Công cụ > Số thứ tá»± cổng chưa?" -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +msgid "Serial port not selected." +msgstr "" + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -msgid "" -"Serial port {0} not found.\n" -"Retry the upload with another serial port?" -msgstr "Cổng có số hiệu {0} không được tìm thấy.\nThá»­ lại việc tải dữ liệu vào bo mạch vá»›i má»™t cổng có số hiệu khác?" +msgid "Serial port {0} not found." +msgstr "" #: ../../../../../app/src/processing/app/Editor.java:65 msgid "Serial ports" @@ -1864,7 +1932,7 @@ msgstr "" #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 msgid "Settings" -msgstr "" +msgstr "Cài đặt" #: Base.java:1681 msgid "Settings issues" @@ -1874,6 +1942,10 @@ msgstr "Các vấn đỠvá» thiết lập" msgid "Show Sketch Folder" msgstr "Hiển thị thư mục Sketch" +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +msgid "Show timestamp" +msgstr "" + #: Preferences.java:387 msgid "Show verbose output during: " msgstr "Hiển thị verbose trong suốt quá trình nhập dữ liệu:" @@ -2045,6 +2117,14 @@ msgid "" "Create this folder, move the file, and continue?" msgstr "Tập tin \"{0}\" cần được đặt trong\nmá»™t thư mục sketch được đặt tên \"{1}\".\nTạo thư mục này, sau đó di chuyển tập tin vào trong, và tiếp tục?" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +msgid "" +"The library \"{0}\" cannot be used.\n" +"Library folder names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." +msgstr "" + #: Base.java:1054 Base.java:2674 #, java-format msgid "" @@ -2090,11 +2170,11 @@ msgid "" "but anything besides the code will be lost." msgstr "Thư mục sketch đã Ä‘i bụi.\nSẽ cố gắng lưu lại lần nữa ở cùng địa chỉ,\nnhưng tất cả má»i thứ ngoại trừ mã nguồn sẽ bị Ä‘i bụi theo luôn." -#: ../../../processing/app/Sketch.java:2028 +#: ../../../../../app/src/processing/app/SketchController.java:849 msgid "" -"The sketch name had to be modified. Sketch names can only consist\n" -"of ASCII characters and numbers (but cannot start with a number).\n" -"They should also be less than 64 characters long." +"The sketch name had to be modified.\n" +"Sketch names must start with a letter or number, followed by letters,\n" +"numbers, dashes, dots and underscores. Maximum length is 63 characters." msgstr "" #: Base.java:259 @@ -2112,6 +2192,10 @@ msgid "" "Please choose a different folder for your sketchbook." msgstr "" +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +msgid "Theme: " +msgstr "" + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 msgid "" "This library is not listed on Library Manager. You won't be able to reinstall it from here.\n" @@ -2604,6 +2688,12 @@ msgstr "bá» qua kiểu chữ không hợp lệ {0}" msgid "name is null" msgstr "tên bị rá»—ng" +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +msgid "no headers files (.h) found in {0}" +msgstr "" + #: Editor.java:932 msgid "serialMenu is null" msgstr "serialMenu bị rá»—ng" @@ -2691,11 +2781,6 @@ msgid "" "\"package:arch:board:options\"" msgstr "" -#: ../../../processing/app/Base.java:509 -#, java-format -msgid "{0}: Invalid option for \"{1}\" option for board \"{2}\"" -msgstr "" - #: ../../../processing/app/Base.java:507 #, java-format msgid "{0}: Invalid option for board \"{1}\"" @@ -2706,6 +2791,11 @@ msgstr "" msgid "{0}: Invalid option, should be of the form \"name=value\"" msgstr "" +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +msgid "{0}: Invalid value for option \"{1}\" for board \"{2}\"" +msgstr "" + #: ../../../processing/app/Base.java:486 #, java-format msgid "{0}: Unknown architecture" diff --git a/arduino-core/src/processing/app/i18n/Resources_vi.properties b/arduino-core/src/processing/app/i18n/Resources_vi.properties index d879d4bb110..6777ee5fe1f 100644 --- a/arduino-core/src/processing/app/i18n/Resources_vi.properties +++ b/arduino-core/src/processing/app/i18n/Resources_vi.properties @@ -16,12 +16,16 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Anh Phan , 2013 # Anh Phan , 2013 # Bao Phan , 2016 # Anh Phan , 2013 -# Quoc-Bao Nguyen , 2016-2017 -!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2017-09-19 17\:47+0000\nLast-Translator\: Cristian Maglie \nLanguage-Team\: Vietnamese (http\://www.transifex.com/mbanzi/arduino-ide-15/language/vi/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: vi\nPlural-Forms\: nplurals\=1; plural\=0;\n +# Quoc-Bao Nguyen , 2016-2017,2020 +!=Project-Id-Version\: Arduino IDE 1.5\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2020-04-29 11\:12+0000\nLast-Translator\: Quoc-Bao Nguyen \nLanguage-Team\: Vietnamese (http\://www.transifex.com/mbanzi/arduino-ide-15/language/vi/)\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nLanguage\: vi\nPlural-Forms\: nplurals\=1; plural\=0;\n #: Preferences.java:358 Preferences.java:374 \ \ (requires\ restart\ of\ Arduino)=(y\u00eau c\u1ea7u kh\u1edfi \u0111\u1ed9ng l\u1ea1i Arduino) @@ -101,7 +105,7 @@ Additional\ Boards\ Manager\ URLs\:\ =\u0110\u1ecba ch\u1ec9 URLs nh\u1eadn v\u1 Afrikaans=Ti\u1ebfng Nam Phi #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:248 -!Aggressively\ cache\ compiled\ core= +Aggressively\ cache\ compiled\ core=Ch\u1ee7 \u0111\u1ed9ng cache core \u0111\u00e3 bi\u00ean d\u1ecbch #: ../../../processing/app/Preferences.java:96 Albanian=Ti\u1ebfng Albanian @@ -146,6 +150,10 @@ Archive\ sketch\ as\:=L\u01b0u tr\u1eef sketch d\u01b0\u1edbi d\u1ea1ng\: #: tools/Archiver.java:139 Archive\ sketch\ canceled.=\u0110\u00e3 h\u1ee7y vi\u1ec7c l\u01b0u tr\u1eef sketch. +#: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 +#, java-format +!Archiving\ built\ core\ (caching)\ in\:\ {0}= + #: tools/Archiver.java:75 Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=Vi\u1ec7c l\u01b0u tr\u1eef sketch \u0111\u00e3 b\u1ecb h\u1ee7y b\u1ecf v\u00ec\nsketch kh\u00f4ng th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u ho\u00e0n to\u00e0n. @@ -305,7 +313,7 @@ CRC\ doesn't\ match,\ file\ is\ corrupted.\ It\ may\ be\ a\ temporary\ problem,\ Can\ only\ pass\ one\ of\:\ {0}=Ch\u1ec9 c\u00f3 th\u1ec3 \u0111\u01b0a v\u00e0o m\u1ed9t trong\: {0} #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:254 -!Can't\ enable\ external\ editor= +Can't\ enable\ external\ editor=Kh\u00f4ng th\u1ec3 m\u1edf tr\u00ecnh so\u1ea1n th\u1ea3o b\u00ean ngo\u00e0i #: ../../../processing/app/BaseNoGui.java:504 #: ../../../processing/app/BaseNoGui.java:549 @@ -340,7 +348,7 @@ Chinese\ (Taiwan)=Chinese (Taiwan) Chinese\ (Taiwan)\ (Big5)=Chinese (Taiwan) (Big5) #: ../../../../../app/src/processing/app/AbstractTextMonitor.java:80 -!Clear\ output= +Clear\ output=X\u00f3a output #: ../../../../../app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java:98 Click\ for\ a\ list\ of\ unofficial\ boards\ support\ URLs=Click v\u00e0o \u0111\u1ec3 hi\u1ec3n th\u1ecb danh s\u00e1ch URLs h\u1ed7 tr\u1ee3 c\u00e1c board kh\u00f4ng ch\u00ednh th\u1ee9c @@ -440,6 +448,10 @@ Could\ not\ remove\ old\ version\ of\ {0}=Kh\u00f4ng th\u1ec3 lo\u1ea1i b\u1ecf #, java-format Could\ not\ replace\ {0}=Kh\u00f4ng th\u1ec3 thay thay th\u1ebf {0} +#: ../../../../../arduino-core/src/processing/app/PreferencesData.java:141 +#, java-format +!Could\ not\ write\ preferences\ file\:\ {0}= + #: tools/Archiver.java:74 Couldn't\ archive\ sketch=Kh\u00f4ng th\u1ec3 l\u01b0u tr\u1eef sketch @@ -470,12 +482,18 @@ Data\ Processing=X\u1eed L\u00fd D\u1eef Li\u1ec7u #: ../../../../../arduino-core/src/processing/app/I18n.java:35 Data\ Storage=Dung L\u01b0\u1ee3ng B\u1ed9 Nh\u1edb +#: ../../../../../app/src/processing/app/Editor.java:1386 +Decrease\ Font\ Size=Gi\u1ea3m k\u00edch th\u01b0\u1edbc font + #: Editor.java:1224 Editor.java:2765 Decrease\ Indent=Gi\u1ea3m kho\u1ea3ng c\u00e1ch #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:185 Default=M\u1eb7c \u0111\u1ecbnh +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:870 +Default\ theme=Ch\u1ee7 \u0111\u1ec1 m\u1eb7c \u0111\u1ecbnh + #: EditorHeader.java:314 Sketch.java:591 Delete=X\u00f3a @@ -607,6 +625,10 @@ Error\ getting\ the\ Arduino\ data\ folder.=X\u1ea3y ra l\u1ed7i khi ti\u1ebfp n #, java-format Error\ inside\ Serial.{0}()=L\u1ed7i \u1edf b\u00ean trong Serial.{0}() +#: ../../../../../app/src/processing/app/Theme.java:302 +#, java-format +Error\ loading\ theme\ {0}\:\ {1}=Kh\u00f4ng th\u1ec3 t\u1ea3i ch\u1ee7 \u0111\u1ec1 {0}\: {1} + #: ../../../processing/app/debug/TargetPlatform.java:95 #: ../../../processing/app/debug/TargetPlatform.java:106 #: ../../../processing/app/debug/TargetPlatform.java:117 @@ -621,6 +643,18 @@ Error\ opening\ serial\ port\ ''{0}''.=L\u1ed7i khi m\u1edf c\u1ed5ng c\u00f3 s\ #, java-format Error\ opening\ serial\ port\ ''{0}''.\ Try\ consulting\ the\ documentation\ at\ http\://playground.arduino.cc/Linux/All\#Permission=L\u1ed7i khi m\u1edf c\u1ed5ng serial "{0}". Th\u1eed tham kh\u1ea3o t\u00e0i li\u1ec7u t\u1ea1i http\://playground.arduino.cc/Linux/All\#Permission +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:109 +#, java-format +!Error\ parsing\ libraries\ index\:\ {0}\nTry\ to\ open\ the\ Library\ Manager\ to\ update\ the\ libraries\ index.= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:112 +#, java-format +!Error\ reading\ libraries\ index\:\ {0}= + +#: ../../../../../arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java:113 +#, java-format +!Error\ reading\ package\ indexes\ folder\:\ {0}\n(maybe\ a\ permission\ problem?)= + #: Preferences.java:277 Error\ reading\ preferences=L\u1ed7i x\u1ea3y ra v\u1edbi ph\u1ea7n t\u01b0\u01a1ng t\u00e1c trong t\u00f9y bi\u1ebfn @@ -646,6 +680,9 @@ Error\ while\ burning\ bootloader.=L\u1ed7i khi \u0111ang burning bootloader. #: ../../../processing/app/Editor.java:2555 Error\ while\ burning\ bootloader\:\ missing\ '{0}'\ configuration\ parameter=L\u1ed7i trong khi \u0111ang ghi d\u1eef li\u1ec7u ph\u1ea7n n\u1ea1p kh\u1edfi \u0111\u1ed9ng\: thi\u1ebfu th\u00f4ng s\u1ed1 c\u1ea5u h\u00ecnh '{0}' +#: ../../../../../app/src/processing/app/Editor.java:2355 +!Error\ while\ burning\ bootloader\:\ please\ select\ a\ serial\ port.= + #: ../../../../../app/src/processing/app/Editor.java:1940 Error\ while\ compiling\:\ missing\ '{0}'\ configuration\ parameter=L\u1ed7i bi\u00ean d\u1ecbch\: thi\u1ebfu tham s\u1ed1 '{0}' @@ -674,9 +711,6 @@ Error\ while\ verifying/uploading=L\u1ed7i khi bi\u00ean d\u1ecbch/t\u1ea3i l\u0 #: Preferences.java:93 Estonian=Estonian -#: ../../../processing/app/Preferences.java:146 -Estonian\ (Estonia)=Estonian (Estonia) - #: Editor.java:516 Examples=V\u00ed d\u1ee5 @@ -827,8 +861,8 @@ INCOMPATIBLE=KH\u00d4NG T\u01af\u01a0NG TH\u00cdCH #: FindReplace.java:96 Ignore\ Case=B\u1ecf qua tr\u01b0\u1eddng h\u1ee3p vi\u1ebft hoa -#: Base.java:1058 -Ignoring\ bad\ library\ name=B\u1ecf qua t\u00ean th\u01b0 vi\u1ec7n kh\u00f4ng h\u1ee3p l\u1ec7 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:184 +Ignoring\ library\ with\ bad\ name=B\u1ecf qua th\u01b0 vi\u1ec7n v\u1edbi t\u00ean kh\u00f4ng h\u1ee3p l\u1ec7 #: Base.java:1436 Ignoring\ sketch\ with\ bad\ name=B\u1ecf qua sketch v\u1edbi t\u00ean kh\u00f4ng h\u1ee3p l\u1ec7 @@ -843,6 +877,9 @@ Include\ Library=Th\u01b0 vi\u1ec7n bao g\u1ed3m #: ../../../processing/app/BaseNoGui.java:771 Incorrect\ IDE\ installation\ folder=Sai th\u01b0 m\u1ee5c c\u00e0i \u0111\u1eb7t IDE +#: ../../../../../app/src/processing/app/Editor.java:1378 +Increase\ Font\ Size=T\u0103ng k\u00edch th\u01b0\u1edbc font ch\u1eef + #: Editor.java:1216 Editor.java:2757 Increase\ Indent=T\u0103ng kho\u1ea3ng c\u00e1ch @@ -869,9 +906,9 @@ Installed=\u0110\u00e3 c\u00e0i \u0111\u1eb7t #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:154 Installing\ boards...=\u0110ang c\u00e0i \u0111\u1eb7t cho bo... -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:126 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:109 #, java-format -Installing\ library\:\ {0}=\u0110ang c\u00e0i th\u01b0 vi\u1ec7n\: {0} +!Installing\ library\:\ {0}\:{1}= #: ../../../cc/arduino/contributions/packages/ContributionInstaller.java:134 #, java-format @@ -892,6 +929,15 @@ Invalid\ library\ found\ in\ {0}\:\ {1}=Th\u01b0 vi\u1ec7n kh\u00f4ng h\u1ee3p l #, java-format !Invalid\ quoting\:\ no\ closing\ [{0}]\ char\ found.= +#: ../../../../../arduino-core/src/processing/app/packages/UserLibrary.java:158 +#, java-format +!Invalid\ version\ '{0}'\ for\ library\ in\:\ {1}= + +#: ../../../../../app/src/processing/app/Base.java:316 +#: ../../../../../app/src/processing/app/Base.java:362 +#, java-format +Invalid\ version\ {0}=Phi\u00ean b\u1ea3n kh\u00f4ng h\u1ee3p l\u1ec7 {0} + #: Preferences.java:102 Italian=Italian @@ -916,9 +962,9 @@ Library\ added\ to\ your\ libraries.\ Check\ "Include\ library"\ menu=Th\u01b0 v #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:73 Library\ can't\ use\ both\ 'src'\ and\ 'utility'\ folders.\ Double\ check\ {0}=Th\u01b0 vi\u1ec7n kh\u00f4ng th\u1ec3 d\u00f9ng c\u1ea3 hai th\u01b0 m\u1ee5c 'src' v\u00e0 'utility'. Ki\u1ec3m tra l\u1ea1i {0} -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:107 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:88 #, java-format -Library\ is\ already\ installed\:\ {0}\ version\ {1}=Th\u01b0 vi\u1ec7n \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t\: {0} phi\u00ean b\u1ea3n {1} +!Library\ is\ already\ installed\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/view/GoToLineNumber.java:70 Line\ number\:=D\u00f2ng s\u1ed1\: @@ -1229,15 +1275,15 @@ Redo=L\u00e0m l\u1ea1i thao t\u00e1c Reference=Tham chi\u1ebfu #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:85 -!Remove= +Remove=X\u00f3a -#: ../../../cc/arduino/contributions/libraries/LibraryInstaller.java:157 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java:142 #, java-format -!Removing\ library\:\ {0}= +!Removing\ library\:\ {0}\:{1}= #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:266 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributionManagerUI.java:203 -!Removing...= +Removing...=\u0110ang x\u00f3a ... #: EditorHeader.java:300 Rename=\u0110\u1ed5i t\u00ean @@ -1261,6 +1307,9 @@ Replace\ with\:=Thay th\u1ebf v\u1edbi\: #: ../../../../../arduino-core/src/processing/app/I18n.java:28 !Retired= +#: ../../../../../app/src/processing/app/Editor.java:1973 +!Retry\ the\ upload\ with\ another\ serial\ port?= + #: Preferences.java:113 Romanian=Romanian @@ -1270,7 +1319,7 @@ Romanian=Romanian #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:82 #, java-format -!Running\:\ {0}= +Running\:\ {0}=\u0110ang chajy\: {0} #: Preferences.java:114 Russian=Russian @@ -1318,7 +1367,7 @@ Select\ new\ sketchbook\ location=Ch\u1ecdn \u0111\u1ecba \u0111i\u1ec3m cho ske #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java:237 #: ../../../../../app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java:249 -!Select\ version= +Select\ version=Ch\u1ecdn phi\u00ean b\u1ea3n #: ../../../processing/app/debug/Compiler.java:146 Selected\ board\ depends\ on\ '{0}'\ core\ (not\ installed).=C\u00e1c bo m\u1ea1ch \u0111\u00e3 \u0111\u01b0\u1ee3c ch\u1ecdn ph\u1ee5 thu\u1ed9c v\u00e0o l\u00f5i '{0}' (ch\u01b0a \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t). @@ -1352,9 +1401,13 @@ Serial\ Monitor=Serial Monitor #, java-format Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=C\u1ed5ng c\u00f3 s\u1ed1 th\u1ee9 t\u1ef1 ''{0}'' kh\u00f4ng \u0111\u01b0\u1ee3c t\u00ecm th\u1ea5y. B\u1ea1n \u0111\u00e3 ch\u1ecdn \u0111\u00fang c\u1ed5ng trong ph\u1ea7n menu C\u00f4ng c\u1ee5 > S\u1ed1 th\u1ee9 t\u1ef1 c\u1ed5ng ch\u01b0a? -#: Editor.java:2343 +#: ../../../../../app/src/processing/app/Editor.java:1969 +#: ../../../../../app/src/processing/app/Editor.java:2040 +!Serial\ port\ not\ selected.= + +#: ../../../../../app/src/processing/app/Editor.java:1971 #, java-format -Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=C\u1ed5ng c\u00f3 s\u1ed1 hi\u1ec7u {0} kh\u00f4ng \u0111\u01b0\u1ee3c t\u00ecm th\u1ea5y.\nTh\u1eed l\u1ea1i vi\u1ec7c t\u1ea3i d\u1eef li\u1ec7u v\u00e0o bo m\u1ea1ch v\u1edbi m\u1ed9t c\u1ed5ng c\u00f3 s\u1ed1 hi\u1ec7u kh\u00e1c? +!Serial\ port\ {0}\ not\ found.= #: ../../../../../app/src/processing/app/Editor.java:65 !Serial\ ports= @@ -1364,7 +1417,7 @@ Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port? !Setting\ build\ path\ to\ {0}= #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:450 -!Settings= +Settings=C\u00e0i \u0111\u1eb7t #: Base.java:1681 Settings\ issues=C\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 thi\u1ebft l\u1eadp @@ -1372,6 +1425,9 @@ Settings\ issues=C\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 thi\u1ebft l\u1eadp #: Editor.java:641 Show\ Sketch\ Folder=Hi\u1ec3n th\u1ecb th\u01b0 m\u1ee5c Sketch +#: ../../../../../app/src/processing/app/AbstractTextMonitor.java:101 +!Show\ timestamp= + #: Preferences.java:387 Show\ verbose\ output\ during\:\ =Hi\u1ec3n th\u1ecb verbose trong su\u1ed1t qu\u00e1 tr\u00ecnh nh\u1eadp d\u1eef li\u1ec7u\: @@ -1491,6 +1547,10 @@ The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=L\u1edbp Udp \u0111\u00e3 \u01 #, java-format The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=T\u1eadp tin "{0}" c\u1ea7n \u0111\u01b0\u1ee3c \u0111\u1eb7t trong\nm\u1ed9t th\u01b0 m\u1ee5c sketch \u0111\u01b0\u1ee3c \u0111\u1eb7t t\u00ean "{1}".\nT\u1ea1o th\u01b0 m\u1ee5c n\u00e0y, sau \u0111\u00f3 di chuy\u1ec3n t\u1eadp tin v\u00e0o trong, v\u00e0 ti\u1ebfp t\u1ee5c? +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:180 +#, java-format +!The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ folder\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= + #: Base.java:1054 Base.java:2674 #, java-format The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=Th\u01b0 vi\u1ec7n "{0}" kh\u00f4ng th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng.\nT\u00ean th\u01b0 vi\u1ec7n ch\u1ec9 \u0111\u01b0\u1ee3c ch\u1ee9a c\u00e1c ch\u1eef c\u00e1i c\u01a1 b\u1ea3n v\u00e0 s\u1ed1 k\u00e8m theo.\n(ch\u1ec9 bao g\u1ed3m c\u00e1c k\u00fd t\u1ef1 ASCII vi\u1ebft li\u1ec1n nhau kh\u00f4ng c\u00e1ch kho\u1ea3ng, kh\u00f4ng \u0111\u01b0\u1ee3c b\u1eaft \u0111\u1ea7u b\u1eb1ng s\u1ed1) @@ -1515,8 +1575,8 @@ The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic #: Sketch.java:1755 The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=Th\u01b0 m\u1ee5c sketch \u0111\u00e3 \u0111i b\u1ee5i.\nS\u1ebd c\u1ed1 g\u1eafng l\u01b0u l\u1ea1i l\u1ea7n n\u1eefa \u1edf c\u00f9ng \u0111\u1ecba ch\u1ec9,\nnh\u01b0ng t\u1ea5t c\u1ea3 m\u1ecdi th\u1ee9 ngo\u1ea1i tr\u1eeb m\u00e3 ngu\u1ed3n s\u1ebd b\u1ecb \u0111i b\u1ee5i theo lu\u00f4n. -#: ../../../processing/app/Sketch.java:2028 -!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.= +#: ../../../../../app/src/processing/app/SketchController.java:849 +!The\ sketch\ name\ had\ to\ be\ modified.\nSketch\ names\ must\ start\ with\ a\ letter\ or\ number,\ followed\ by\ letters,\nnumbers,\ dashes,\ dots\ and\ underscores.\ Maximum\ length\ is\ 63\ characters.= #: Base.java:259 The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=Th\u01b0 m\u1ee5c sketchbook kh\u00f4ng c\u00f2n hi\u1ec7n h\u1eefu trong h\u1ec7 th\u1ed1ng.\nArduino s\u1ebd t\u1ef1 \u0111\u1ed5ng chuy\u1ec3n \u0111\u1ebfn sketchbook m\u1eb7c \u0111\u1ecbnh\nv\u00e0 t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c sketchbook m\u1edbi n\u1ebfu c\u1ea7n thi\u1ebft. Arduino s\u1ebd\nd\u1eebng l\u1ea1i vi\u1ec7c th\u00f4ng b\u00e1o n\u00e0y v\u1edbi ng\u01b0\u1eddi d\u00f9ng kh\u00e1c. @@ -1524,6 +1584,9 @@ The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ de #: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:514 !The\ specified\ sketchbook\ folder\ contains\ your\ copy\ of\ the\ IDE.\nPlease\ choose\ a\ different\ folder\ for\ your\ sketchbook.= +#: ../../../../../app/src/cc/arduino/view/preferences/Preferences.java:311 +!Theme\:\ = + #: ../../../../../app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java:257 !This\ library\ is\ not\ listed\ on\ Library\ Manager.\ You\ won't\ be\ able\ to\ reinstall\ it\ from\ here.\nAre\ you\ sure\ you\ want\ to\ delete\ it?= @@ -1858,6 +1921,11 @@ ignoring\ invalid\ font\ size\ {0}=b\u1ecf qua ki\u1ec3u ch\u1eef kh\u00f4ng h\u #: Editor.java:936 Editor.java:943 name\ is\ null=t\u00ean b\u1ecb r\u1ed7ng +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:217 +#: ../../../../../arduino-core/src/cc/arduino/contributions/libraries/LibrariesIndexer.java:227 +#, java-format +!no\ headers\ files\ (.h)\ found\ in\ {0}= + #: Editor.java:932 serialMenu\ is\ null=serialMenu b\u1ecb r\u1ed7ng @@ -1925,10 +1993,6 @@ upload=t\u1ea3i l\u00ean #, java-format !{0}\:\ Invalid\ board\ name,\ it\ should\ be\ of\ the\ form\ "package\:arch\:board"\ or\ "package\:arch\:board\:options"= -#: ../../../processing/app/Base.java:509 -#, java-format -!{0}\:\ Invalid\ option\ for\ "{1}"\ option\ for\ board\ "{2}"= - #: ../../../processing/app/Base.java:507 #, java-format !{0}\:\ Invalid\ option\ for\ board\ "{1}"= @@ -1937,6 +2001,10 @@ upload=t\u1ea3i l\u00ean #, java-format !{0}\:\ Invalid\ option,\ should\ be\ of\ the\ form\ "name\=value"= +#: ../../../../../arduino-core/src/processing/app/helpers/CommandlineParser.java:268 +#, java-format +!{0}\:\ Invalid\ value\ for\ option\ "{1}"\ for\ board\ "{2}"= + #: ../../../processing/app/Base.java:486 #, java-format {0}\:\ Unknown\ architecture={0}\: Ki\u1ebfn tr\u00fac kh\u00f4ng x\u00e1c \u0111\u1ecbnh diff --git a/arduino-core/src/processing/app/i18n/Resources_zh_CN.po b/arduino-core/src/processing/app/i18n/Resources_zh_CN.po index a891789ec03..a228ac4a650 100644 --- a/arduino-core/src/processing/app/i18n/Resources_zh_CN.po +++ b/arduino-core/src/processing/app/i18n/Resources_zh_CN.po @@ -16,8 +16,13 @@ # Translators: # Translators: # Translators: +# Translators: +# Translators: +# Translators: +# Translators: # Wong Min , 2013 # Benu Lin , 2017 +# Bright Lin , 2019 # é™ˆå•æ´² , 2015 # Cristian Maglie , 2016 # dongfengweixiao , 2013-2015 @@ -25,7 +30,7 @@ # Hosuke , 2014 # Haichao Zhu , 2017 # hanchao , 2013 -# Jacques S, 2015-2016 +# Jacques S, 2015-2017 # Wong Min , 2013 # Yung Wei , 2016 # Zhuo Liu , 2015 @@ -36,8 +41,8 @@ msgstr "" "Project-Id-Version: Arduino IDE 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-03-29 10:24-0400\n" -"PO-Revision-Date: 2017-09-19 17:24+0000\n" -"Last-Translator: Benu Lin \n" +"PO-Revision-Date: 2019-03-28 04:50+0000\n" +"Last-Translator: Bright Lin \n" "Language-Team: Chinese (China) (http://www.transifex.com/mbanzi/arduino-ide-15/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -82,7 +87,7 @@ msgstr "(åªèƒ½åœ¨ Arduino 未è¿è¡Œæ—¶è¿›è¡Œç¼–辑)" #: ../../../../../arduino-core/src/cc/arduino/Compiler.java:67 msgid "(legacy)" -msgstr "(继承)" +msgstr "(é—ç•™)" #: ../../../processing/app/helpers/CommandlineParser.java:149 msgid "--curdir no longer supported" @@ -109,18 +114,18 @@ msgstr "