diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 622fb41fb51..deb2621af47 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -16,7 +16,7 @@ jobs: env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: Merge pull requests - uses: pascalgn/automerge-action@v0.8.4 + uses: pascalgn/automerge-action@v0.9.0 if: steps.waitforstatuschecks.outputs.status == 'success' env: MERGE_METHOD: "squash" diff --git a/.github/workflows/check-links.yaml b/.github/workflows/check-links.yaml new file mode 100644 index 00000000000..0ef93fc82b3 --- /dev/null +++ b/.github/workflows/check-links.yaml @@ -0,0 +1,20 @@ +name: Check external href links in the documentation + +on: + schedule: + # Run on the first of each month at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07) + - cron: "0 9 1 * *" + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Prepare markdown-link-check + run: mkdir docs/ROOT && cp CHANGELOG.md README.md docs/ROOT + - uses: gaurav-nelson/github-action-markdown-link-check@v1 + with: + use-quiet-mode: 'yes' + use-verbose-mode: 'no' + config-file: 'mlc_config.json' + folder-path: 'docs/' diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index ecd2f9d3158..02a12b4846e 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -41,17 +41,17 @@ jobs: name: Create installer and portable version for ${{ matrix.displayName }} steps: - - name: Checkout source - uses: actions/checkout@v2 - name: Fetch all history for all tags and branches - run: git fetch --prune --unshallow + uses: actions/checkout@v2 + with: + fetch-depth: 0 - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.3 + uses: gittools/actions/gitversion/setup@v0.9.4 with: versionSpec: '5.2.x' - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.3 + uses: gittools/actions/gitversion/execute@v0.9.4 - name: Set up JDK uses: actions/setup-java@v1 with: @@ -103,12 +103,12 @@ jobs: - name: Fetch all history for all tags and branches run: git fetch --prune --unshallow - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.3 + uses: gittools/actions/gitversion/setup@v0.9.4 with: versionSpec: '5.2.x' - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.3 + uses: gittools/actions/gitversion/execute@v0.9.4 - name: Get linux binaries uses: actions/download-artifact@master with: diff --git a/.github/workflows/refresh-csl-subtrees.yml b/.github/workflows/refresh-csl-subtrees.yml index b6bcffbf6e9..6105da186cc 100644 --- a/.github/workflows/refresh-csl-subtrees.yml +++ b/.github/workflows/refresh-csl-subtrees.yml @@ -13,6 +13,7 @@ jobs: publish: name: Refresh Citation Style Language Files runs-on: ubuntu-latest + if: github.repository == 'JabRef/jabref' steps: - name: Checkout source uses: actions/checkout@v2 diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml index 4a3ba630d93..04f9ee9f41c 100644 --- a/.github/workflows/snap.yml +++ b/.github/workflows/snap.yml @@ -5,8 +5,8 @@ on: branches: - snapcraft schedule: - # run on each day - - cron: '33 4 * * *' + # run on each day + - cron: "33 4 * * *" jobs: build: @@ -30,11 +30,11 @@ jobs: # The image relies on https://builds.jabref.org/master/JabRef-5.0-portable_linux.tar.gz^ # See snap/snapcraft.yml for details - name: Build snap (1) Run build - uses: jhenstridge/snapcraft-build-action@v1 + uses: snapcore/action-build@v1 id: snapcraft - name: Build snap (2) Upload snap if: ${{ steps.checksecrets.outputs.secretspresent }} - uses: jhenstridge/snapcraft-publish-action@v1 + uses: snapcore/action-publish@v1 with: store_login: ${{ secrets.SNAPCRAFT_LOGIN_FILE }} snap: ${{ steps.snapcraft.outputs.snap }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1262b90b6da..8c6be5e8d4e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -44,15 +44,6 @@ jobs: with: args: CHANGELOG.md CONTRIBUTING.md README.md docs/ config: '.markdownlint.yml' - - name: Prepare markdown-link-check - run: mkdir docs/ROOT && cp CHANGELOG.md README.md docs/ROOT - - name: Run markdown-link-check - uses: gaurav-nelson/github-action-markdown-link-check@v1 - with: - use-quiet-mode: 'yes' - use-verbose-mode: 'no' - config-file: 'mlc_config.json' - folder-path: 'docs/' tests: name: Unit tests runs-on: ubuntu-latest @@ -232,3 +223,35 @@ jobs: steps: - uses: actions/checkout@v2 - uses: gradle/wrapper-validation-action@v1 + checkauthors: + name: "Validate AUTHORS" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + # full checkout needed for authors generation + fetch-depth: 0 + - name: "Check AUTHORS" + id: authors_check + shell: bash + run: | + ./scripts/generate-authors.sh + set +o pipefail + added=$(git diff HEAD --no-ext-diff --unified=0 -a --no-prefix | egrep "^\+[^+]" | sed "s/^\+//") + if [ -z "$added" ]; then + echo "::set-output name=newauthor::false" + echo "No authors added" + exit 0 + fi + message="When merged, this pull request proposes to manually add the following to the [AUTHORS file](https://github.com/JabRef/jabref/blob/master/CONTRIBUTING.md#author-credits). In case you want to raise a different proposal, please comment here (we will adapt our `.mailmap` file then) or [adjust your name in your git configuration](https://docs.github.com/en/github/using-git/setting-your-username-in-git). You will have to [rewrite your git history](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History) and use `git commit --author="John Doe "` for each changed commit.%0A%0A\`\`\`%0A${added//$'\n'/'%0A'}%0A\`\`\`%0A" + echo "::set-output name=message::$message" + echo "::set-output name=newauthor::true" + echo "New authors found" + - name: Comment PR + uses: unsplash/comment-on-pr@master + if: steps.authors_check.outputs.newauthor == 'true' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + msg: "${{ steps.authors_check.outputs.message }}" + check_for_duplicate_msg: true diff --git a/.mailmap b/.mailmap index f2fdffb10b9..d1d2b76c0e3 100644 --- a/.mailmap +++ b/.mailmap @@ -202,3 +202,11 @@ Mootez Saad <34676841+MootezSaaD@users.noreply.github.com> Dominik Voigt <43381984+DominikVoigt@users.noreply.github.com> Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> +Daniel Price <64694785+daniel-price@users.noreply.github.com> +Cai Zhichun <54977532+braincident@users.noreply.github.com> <569120128@qq.com> +Hollyqqqqq <55199983+Hollyqqqqq@users.noreply.github.com> <11712639@mail.sustech.edu.cn> +Grzegorz Popiel +Tianjian Lei <185049857@qq.com> +Tianjian Lei <185049857@qq.com> +Muhammad Arsalan Badar +ZhouSky <11711923@mail.sustech.edu.cn> diff --git a/.markdownlint.yml b/.markdownlint.yml index 84a9c96a53a..3ed5b253fa6 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -14,5 +14,5 @@ MD026: punctuation: ".,;:!" MD033: - # we have tags with ids - allowed_elements: ['a'] + # we have tags with ids and superscript + allowed_elements: ['a', 'sup'] diff --git a/AUTHORS b/AUTHORS index 7795b1f4c78..0aed8371c7f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,6 +13,7 @@ Alain Vaucher Aleksandrs Gusevs Alessio Pollero Alex Montgomery +Alex Petrov Alex Tarrix Alexander Girgis Alexis Gallagher @@ -55,6 +56,7 @@ Bitor Tonixa Biriato Balença Brian Quistorff Brian Van Essen Cai Zhichun +Caleb Tillman captain123 Carl Christian Snethlage carlg0ransson @@ -81,6 +83,7 @@ Cyrille d'Haese Dale Visser Daniel Bruehl Daniel Mair +Daniel Price Daniel Rodrigues Daniel Svärd David Gleich @@ -137,7 +140,10 @@ Galileo Sartor Gennadiy Stakhovskiy Geoffrey Taerim Kim Gert Renckens +Giovanni Caldarola +Giri Goutam Lavudiya +Graeme Stewart Gregor Herrmann Grzegorz Popiel guenesaydin @@ -146,6 +152,7 @@ Hakan Duran Hannes Restel Harinda Samarasekara HifeFish +Hollyqqqqq hrandrianasolo Hussain Arif Igor Chernyavsky @@ -231,6 +238,7 @@ Mathias Walter Matthias Geiger Matthias Mayr Matthias Mueller +Matthijs van der Burgh Mattia Bunel Mattias Ulbrich mcmoody @@ -254,6 +262,7 @@ Morgan Lovato Moritz Ringler Morten Alver ms111ds +Muhammad Arsalan Badar Mélanie Tremblay Nadeem Mahmood Nathan Dunn @@ -292,6 +301,7 @@ Quentin Fritz Rachel Wu Raik Nagel razvan05 +Redevectored Renato Massao Richard Schneeman Robert Jäschke @@ -349,6 +359,7 @@ Thomas F. Duellmann Thomas Hu Thomas Ilsche Thorsten Dahlheimer +Tianjian Lei Tim Kilian Tim van Rossum Tim Würtele @@ -368,6 +379,7 @@ Valentin Pons Venceslas Roullier Victor Figueira Victor Michelan +Vince250598 Vincent W. Yang Vlad Topala Waida Fan @@ -386,3 +398,4 @@ zacmks Zeabin Zgarbul Andrey Zhang Liang +ZhouSky diff --git a/CHANGELOG.md b/CHANGELOG.md index 55fc8d8410e..6b7ff80b1de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,8 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We merged the main table tabs in the preferences dialog. [#6518](https://github.com/JabRef/jabref/pull/6518) - We changed the command line option 'generateBibtexKeys' to the more generic term 'generateCitationKeys' while the short option remains 'g'.[#6545](https://github.com/JabRef/jabref/pull/6545) - We improved the "Possible duplicate entries" window to remember its size and position throughout a session. [#6582](https://github.com/JabRef/jabref/issues/6582) +- We divided the toolbar into small parts, so if the application window is to small, only a part of the toolbar is moved into the chevron popup. [#6682](https://github.com/JabRef/jabref/pull/6682) +- We changed the layout for of the buttons in the Open Office side panel to ensure that the button text is always visible, specially when resizing. [#6639](https://github.com/JabRef/jabref/issues/6639) ### Fixed @@ -71,7 +73,6 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed an issue where the INSPIRE fetcher was no longer working [#6229](https://github.com/JabRef/jabref/issues/6229) - We fixed an issue where custom exports with an uppercase file extension could not be selected for "Copy...-> Export to Clipboard" [#6285](https://github.com/JabRef/jabref/issues/6285) - We fixed the display of icon both in the main table and linked file editor. [#6169](https://github.com/JabRef/jabref/issues/6169) -- We fixed the paste entry command in the menu and toolbar, that did not do anything. [#6293](https://github.com/JabRef/jabref/issues/6293) - We fixed an issue where the windows installer did not create an entry in the start menu [bug report in the forum](https://discourse.jabref.org/t/error-while-fetching-from-doi/2018/3) - We fixed an issue where only the field `abstract` and `comment` were declared as multiline fields. Other fields can now be configured in the preferences using "Do not wrap the following fields when saving" [4373](https://github.com/JabRef/jabref/issues/4373) - We fixed an issue where JabRef switched to discrete graphics under macOS [#5935](https://github.com/JabRef/jabref/issues/5935) @@ -95,6 +96,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed an issue with the creation of a group of cited entries which incorrectly showed the message that the library had been modified externally whenever saving the library. [#6420](https://github.com/JabRef/jabref/issues/6420) - We fixed an issue with the creation of a group of cited entries. Now the file path to an aux file gets validated. [#6585](https://github.com/JabRef/jabref/issues/6585) - We fixed an issue on Linux systems where the application would crash upon inotify failure. Now, the user is prompted with a warning, and given the choice to continue the session. [#6073](https://github.com/JabRef/jabref/issues/6073) +- We moved the search modifier buttons into the search bar, as they were not accessible, if autocompletion was disabled. [#6625](https://github.com/JabRef/jabref/issues/6625) ### Removed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 04679d41fea..56ccf4e5520 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,11 +8,11 @@ In case you are an instructor and want to use JabRef as software engineering exa We welcome contributions to JabRef and encourage you to follow the GitHub workflow specified below. If you are not familiar with this type of workflow, take a look at GitHub's excellent overview on the [GitHub flow](https://guides.github.com/introduction/flow/index.html) and the explanation of [Feature Branch Workflow](https://atlassian.com/git/tutorials/comparing-workflows#feature-branch-workflow) for the idea behind this kind of development. -1. Get the JabRef code on your local machine. Detailed instructions about this step can be found in our [guidelines for setting up a local workspace](https://github.com/JabRef/jabref/wiki/Guidelines-for-setting-up-a-local-workspace). +1. Get the JabRef code on your local machine. Detailed instructions about this step can be found in our [guidelines for setting up a local workspace](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace). 1. Fork the JabRef into your GitHub account. 2. Clone your forked repository on your local machine. 2. **Create a new branch** (such as `fix-for-issue-121`). Be sure to create a **separate branch** for each improvement you implement. -3. Do your work on the **new branch - not the master branch.** Refer to our [code howtos](https://github.com/JabRef/jabref/wiki/Code-Howtos) if you have questions about your implementation. +3. Do your work on the **new branch - not the master branch.** Refer to our [code howtos](https://devdocs.jabref.org/getting-into-the-code/code-howtos) if you have questions about your implementation. 4. Create a pull request. For an overview of pull requests, take a look at GitHub's [pull request help documentation](https://help.github.com/articles/about-pull-requests/). 5. In case your pull request is not yet complete or not yet ready for review, consider creating a [draft pull request](https://github.blog/2019-02-14-introducing-draft-pull-requests/) instead. @@ -71,7 +71,7 @@ In case you do not have time to add a test case, we nevertheless ask you to at l ### When adding a library -Please try to use a version available at jCenter and add it to `build.gradle`. +Please try to use a version available at JCenter and add it to `build.gradle`. In any case, describe the library at [external-libraries.txt](external-libraries.txt). We need that information for our package maintainers (e.g., those of the [debian package](https://tracker.debian.org/pkg/jabref)). Also add a txt file stating the license in `libraries/`. @@ -119,7 +119,7 @@ Add the above snippet to the English translation file located at `src/main/resou You can also directly run the specific test in your IDE. The test "LocalizationConsistencyTest" is placed under `src/test/java/net.sf.jabref.logic.l10n/LocalizationConsistencyTest.java` -Find more information in the [JabRef Wiki](https://github.com/JabRef/jabref/wiki/Code-Howtos#using-localization-correctly). +Find more information in the [JabRef developer docs](https://devdocs.jabref.org/getting-into-the-code/code-howtos#using-localization-correctly). ## Create a pull request diff --git a/build.gradle b/build.gradle index ab1a4c6225b..89a9424b5f0 100644 --- a/build.gradle +++ b/build.gradle @@ -13,12 +13,13 @@ plugins { id 'application' id "com.simonharrer.modernizer" version '2.1.0-1' id 'me.champeau.gradle.jmh' version '0.5.0' - id 'com.github.ben-manes.versions' version '0.28.0' + id 'com.github.ben-manes.versions' version '0.29.0' id 'org.javamodularity.moduleplugin' version '1.7.0' id 'org.openjfx.javafxplugin' version '0.0.9' - id 'org.beryx.jlink' version '2.21.0' + id 'org.beryx.jlink' version '2.21.2' // nicer test outputs during running and completion + // Homepage: https://github.com/radarsh/gradle-test-logger-plugin id 'com.adarshr.test-logger' version '2.1.0' } @@ -136,7 +137,7 @@ dependencies { antlr4 'org.antlr:antlr4:4.8-1' implementation 'org.antlr:antlr4-runtime:4.8-1' - implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.6.1' + implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.6.2' implementation 'org.postgresql:postgresql:42.2.14' @@ -157,7 +158,7 @@ dependencies { implementation 'de.jensd:fontawesomefx-materialdesignfont:1.7.22-11' implementation 'de.saxsys:mvvmfx-validation:1.9.0-SNAPSHOT' implementation 'de.saxsys:mvvmfx:1.8.0' - implementation 'com.tobiasdiez:easybind:2.0.0-SNAPSHOT' + implementation 'com.tobiasdiez:easybind:2.0.1-SNAPSHOT' implementation 'org.fxmisc.flowless:flowless:0.6.1' implementation 'org.fxmisc.richtext:richtextfx:0.10.5' implementation group: 'org.glassfish.hk2.external', name: 'jakarta.inject', version: '2.6.1' @@ -165,7 +166,7 @@ dependencies { implementation 'org.controlsfx:controlsfx:11.0.2' implementation 'org.jsoup:jsoup:1.13.1' - implementation 'com.konghq:unirest-java:3.8.06' + implementation 'com.konghq:unirest-java:3.9.00' implementation 'org.slf4j:slf4j-api:2.0.0-alpha1' implementation group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: '3.0.0-SNAPSHOT' @@ -199,10 +200,10 @@ dependencies { testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.6.2' testImplementation 'org.junit.platform:junit-platform-launcher:1.6.2' - testImplementation 'net.bytebuddy:byte-buddy-parent:1.10.13' + testImplementation 'net.bytebuddy:byte-buddy-parent:1.10.14' testRuntime group: 'org.apache.logging.log4j', name: 'log4j-core', version: '3.0.0-SNAPSHOT' testRuntime group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '3.0.0-SNAPSHOT' - testImplementation 'org.mockito:mockito-core:3.3.3' + testImplementation 'org.mockito:mockito-core:3.4.6' testImplementation 'org.xmlunit:xmlunit-core:2.7.0' testImplementation 'org.xmlunit:xmlunit-matchers:2.7.0' testImplementation 'com.tngtech.archunit:archunit-junit5-api:0.14.1' @@ -210,7 +211,7 @@ dependencies { testImplementation "org.testfx:testfx-junit5:4.0.17-alpha-SNAPSHOT" testImplementation "org.hamcrest:hamcrest-library:2.2" - checkstyle 'com.puppycrawl.tools:checkstyle:8.34' + checkstyle 'com.puppycrawl.tools:checkstyle:8.35' xjc group: 'org.glassfish.jaxb', name: 'jaxb-xjc', version: '2.3.3' jython 'org.python:jython-standalone:2.7.2' } @@ -717,13 +718,16 @@ if (OperatingSystem.current().isLinux()) { } } -// Delete unnecessary folder in application image -// TODO: Remove this workaround as soon as https://github.com/beryx/badass-jlink-plugin/issues/51 is fixed -task deleteModsFolder(type: Delete) { - delete "$buildDir/distribution/JabRef/app/mods" +if (OperatingSystem.current().isMacOsX()) { + tasks.jpackageImage.doLast { + copy { + from("${projectDir}/buildres/mac") { + include "native-messaging-host/**", "jabrefHost.py" + } + into "$buildDir/distribution/JabRef.app/Contents/Resources" + } + } } -deleteModsFolder.shouldRunAfter jpackageImage - jmh { warmupIterations = 5 iterations = 10 diff --git a/buildres/linux/jabref.spec b/buildres/linux/jabref.spec index 71c9574c449..e877c424058 100644 --- a/buildres/linux/jabref.spec +++ b/buildres/linux/jabref.spec @@ -52,20 +52,28 @@ cp -r %{_sourcedir}APPLICATION_DIRECTORY/* %{buildroot}APPLICATION_DIRECTORY %(echo APPLICATION_DIRECTORY | sed -e "s|\(^/[^/]\{1,\}\).*$|\1|") %post +# Install the native-messaging host script for firefox/chrome/chromium install -D -m0755 /opt/jabref/lib/native-messaging-host/firefox/org.jabref.jabref.json /usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json install -D -m0755 /opt/jabref/lib/native-messaging-host/chromium/org.jabref.jabref.json /etc/chromium/native-messaging-hosts/org.jabref.jabref.json install -D -m0755 /opt/jabref/lib/native-messaging-host/chromium/org.jabref.jabref.json /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json +# Trigger an auto-install of the browser addon for chrome/chromium browsers +install -D -m0644 /opt/jabref/lib/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json /opt/google/chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json +install -D -m0644 /opt/jabref/lib/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json /usr/share/google-chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json DESKTOP_COMMANDS_INSTALL %preun +# Remove the native-messaging hosts script only if relative to the deb package for NATIVE_MESSAGING_JSON in "/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json"\ - "/etc/chromium/native-messaging-hosts/org.jabref.jabref.json"\ - "/etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json"; do + "/etc/chromium/native-messaging-hosts/org.jabref.jabref.json"\ + "/etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json"; do if [ -e $NATIVE_MESSAGING_JSON ] && grep --quiet '"path": "/opt' $NATIVE_MESSAGING_JSON; then rm $NATIVE_MESSAGING_JSON fi done +# Remove the auto-install triggers of the browser addon for chrom/chromium +rm /opt/google/chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json +rm /usr/share/google-chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json UTILITY_SCRIPTS DESKTOP_COMMANDS_UNINSTALL -%clean \ No newline at end of file +%clean diff --git a/buildres/linux/jabrefHost.py b/buildres/linux/jabrefHost.py index 3c56a0a73e9..e1343e23207 100755 --- a/buildres/linux/jabrefHost.py +++ b/buildres/linux/jabrefHost.py @@ -5,12 +5,13 @@ # than text, mode. import json -import sys -import struct -import subprocess -import shlex import logging +import platform +import shlex import shutil +import struct +import subprocess +import sys from pathlib import Path # We assume that this python script is located in "jabref/lib" while the executable is "jabref/bin/JabRef" @@ -19,6 +20,10 @@ if not JABREF_PATH.exists(): JABREF_PATH = shutil.which("jabref") +if not JABREF_PATH.exists(): + logging.error("Could not determine JABREF_PATH") + sys.exit(-1) + logging_dir = Path.home() / ".mozilla/native-messaging-hosts/" if not logging_dir.exists(): logging_dir.mkdir(parents=True) diff --git a/buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json b/buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json new file mode 100644 index 00000000000..17f681d07f3 --- /dev/null +++ b/buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json @@ -0,0 +1,3 @@ +{ + "external_update_url": "https://clients2.google.com/service/update2/crx" +} diff --git a/buildres/linux/postinst b/buildres/linux/postinst index 1c3af73aa24..a26e18b43cc 100644 --- a/buildres/linux/postinst +++ b/buildres/linux/postinst @@ -19,9 +19,13 @@ set -e case "$1" in configure) + # Install the native-messaging host script for firefox/chrome/chromium install -D -m0755 /opt/jabref/lib/native-messaging-host/firefox/org.jabref.jabref.json /usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json install -D -m0755 /opt/jabref/lib/native-messaging-host/chromium/org.jabref.jabref.json /etc/chromium/native-messaging-hosts/org.jabref.jabref.json install -D -m0755 /opt/jabref/lib/native-messaging-host/chromium/org.jabref.jabref.json /etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json + # Trigger an auto-install of the browser addon for chrome/chromium browsers + install -D -m0644 /opt/jabref/lib/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json /opt/google/chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json + install -D -m0644 /opt/jabref/lib/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json /usr/share/google-chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json DESKTOP_COMMANDS_INSTALL ;; diff --git a/buildres/linux/postrm b/buildres/linux/postrm index 0663ab759b4..5708fd243d9 100644 --- a/buildres/linux/postrm +++ b/buildres/linux/postrm @@ -19,13 +19,17 @@ set -e case "$1" in purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) - for NATIVE_MESSAGING_JSON in "/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json"\ + # Remove the native-messaging hosts script only if relative to the deb package + for NATIVE_MESSAGING_JSON in "/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json"\ "/etc/chromium/native-messaging-hosts/org.jabref.jabref.json"\ "/etc/opt/chrome/native-messaging-hosts/org.jabref.jabref.json"; do - if [ -e $NATIVE_MESSAGING_JSON ] && grep --quiet '"path": "/opt' $NATIVE_MESSAGING_JSON; then - rm $NATIVE_MESSAGING_JSON - fi - done + if [ -e $NATIVE_MESSAGING_JSON ] && grep --quiet '"path": "/opt' $NATIVE_MESSAGING_JSON; then + rm $NATIVE_MESSAGING_JSON + fi + done + # Remove the auto-install triggers of the browser addon for chrom/chromium + rm /opt/google/chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json + rm /usr/share/google-chrome/extensions/bifehkofibaamoeaopjglfkddgkijdlh.json ;; *) diff --git a/buildres/mac/jabrefHost.py b/buildres/mac/jabrefHost.py new file mode 100755 index 00000000000..51727f9d81c --- /dev/null +++ b/buildres/mac/jabrefHost.py @@ -0,0 +1,96 @@ +#!/usr/bin/python3 + +import json +import logging +import platform +import shlex +import shutil +import struct +import subprocess +import sys +from pathlib import Path + +# We assume that this python script is located in "jabref/lib" while the executable is "jabref/bin/JabRef" +# Note that the `which` command does not work as intended on MacOs, so the path must be hardcoded. +script_dir = Path(__file__).resolve().parent.parent +JABREF_PATH = script_dir / "bin/JabRef" +if not JABREF_PATH.exists(): + JABREF_PATH = Path( "/Applications/JabRef.app/Contents/MacOS/JabRef") + +if not JABREF_PATH.exists(): + logging.error("Could not determine JABREF_PATH") + sys.exit(-1) + +logging_dir = Path.home() / ".mozilla/native-messaging-hosts/" +if not logging_dir.exists(): + logging_dir.mkdir(parents=True) +logging.basicConfig(filename=str(logging_dir / "jabref_browser_extension.log")) + +# Read a message from stdin and decode it. +def get_message(): + raw_length = sys.stdin.buffer.read(4) + if not raw_length: + logging.error("Raw_length null") + sys.exit(0) + message_length = struct.unpack("=I", raw_length)[0] + logging.info("Got length: {} bytes to be read".format(message_length)) + message = sys.stdin.buffer.read(message_length).decode("utf-8") + logging.info("Got message of {} chars".format(len(message))) + data = json.loads(message) + logging.info("Successfully retrieved JSON") + return data + + +# Encode a message for transmission, given its content. +def encode_message(message_content): + encoded_content = json.dumps(message_content).encode("utf-8") + encoded_length = struct.pack("=I", len(encoded_content)) + return { + "length": encoded_length, + "content": struct.pack(str(len(encoded_content)) + "s", encoded_content), + } + + +# Send an encoded message to stdout. +def send_message(message): + encoded_message = encode_message(message) + sys.stdout.buffer.write(encoded_message["length"]) + sys.stdout.buffer.write(encoded_message["content"]) + sys.stdout.buffer.flush() + + +def add_jabref_entry(data): + """Send string via cli as literal to preserve special characters""" + cmd = [str(JABREF_PATH), "--importBibtex", r"{}".format(data)] + logging.info("Try to execute command {}".format(cmd)) + try: + response = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as exc: + logging.error("Failed to call JabRef: {} {}".format(exc.returncode, exc.output)) + else: + logging.info("Called JabRef and got: {}".format(response)) + return response + + +logging.info("Starting JabRef backend") + +try: + message = get_message() +except Exception as e: + message = str(e) +logging.info(str(message)) + +if "status" in message and message["status"] == "validate": + cmd = [JABREF_PATH, "--version"] + try: + response = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as exc: + logging.error("Failed to call JabRef: {} {}".format(exc.returncode, exc.output)) + send_message({"message": "jarNotFound", "path": JABREF_PATH}) + else: + logging.info("Response: {}".format(response)) + send_message({"message": "jarFound"}) +else: + entry = message["text"] + output = add_jabref_entry(entry) + send_message({"message": "ok", "output": str(output)}) diff --git a/buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json b/buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json new file mode 100644 index 00000000000..17f681d07f3 --- /dev/null +++ b/buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json @@ -0,0 +1,3 @@ +{ + "external_update_url": "https://clients2.google.com/service/update2/crx" +} diff --git a/buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json b/buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json new file mode 100644 index 00000000000..84ce13113d7 --- /dev/null +++ b/buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json @@ -0,0 +1,9 @@ +{ + "name": "org.jabref.jabref", + "description": "JabRef", + "path": "/Applications/JabRef.app/Contents/Resources/jabrefHost.py", + "type": "stdio", + "allowed_origins": [ + "chrome-extension://bifehkofibaamoeaopjglfkddgkijdlh/" + ] +} diff --git a/buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json b/buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json new file mode 100644 index 00000000000..df296d37c84 --- /dev/null +++ b/buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json @@ -0,0 +1,10 @@ +{ + "name": "org.jabref.jabref", + "description": "JabRef", + "path": "/Applications/JabRef.app/Contents/Resources/jabrefHost.py", + "type": "stdio", + "allowed_extensions": [ + "browserextension@jabref.org", + "@jabfox" + ] +} diff --git a/buildres/mac/postinstall b/buildres/mac/postinstall new file mode 100755 index 00000000000..235feb0ca5e --- /dev/null +++ b/buildres/mac/postinstall @@ -0,0 +1,18 @@ +#!/bin/sh + +chown root:wheel "INSTALL_LOCATION" +chmod a+rX "INSTALL_LOCATION" +chmod +r "APP_LOCATION/"*.jar +# Trigger an auto-install of the browser addon for chrome/chromium browsers +# First create the necessary path, then copy the autoinstall file. +install -d /Library/Application\ Support/Google/Chrome/External\ Extensions/ +install -m0644 /Applications/JabRef.app/Contents/Resources/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json /Library/Application\ Support/Google/Chrome/External\ Extensions/bifehkofibaamoeaopjglfkddgkijdlh.json +# Install the native-messaging host script for firefox/chrome/chromium +install -d /Library/Application\ Support/Mozilla/NativeMessagingHosts/ +install -m0755 /Applications/JabRef.app/Contents/Resources/native-messaging-host/firefox/org.jabref.jabref.json /Library/Application\ Support/Mozilla/NativeMessagingHosts/org.jabref.jabref.json +install -d /Library/Application\ Support/Chromium/NativeMessagingHosts/ +install -m0755 /Applications/JabRef.app/Contents/Resources/native-messaging-host/chromium/org.jabref.jabref.json /Library/Application\ Support/Chromium/NativeMessagingHosts/org.jabref.jabref.json +install -d /Library/Google/Chrome/NativeMessagingHosts/ +install -m0755 /Applications/JabRef.app/Contents/Resources/native-messaging-host/chromium/org.jabref.jabref.json /Library/Google/Chrome/NativeMessagingHosts/org.jabref.jabref.json + +exit 0 diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 2b267604f65..09f3edd01f1 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -12,7 +12,9 @@ - + diff --git a/docs/adr/0011-test-external-links-in-documentation.md b/docs/adr/0011-test-external-links-in-documentation.md new file mode 100644 index 00000000000..b1b9756e799 --- /dev/null +++ b/docs/adr/0011-test-external-links-in-documentation.md @@ -0,0 +1,47 @@ +# Test external links in documentation + +## Context and Problem Statement + +The JabRef repository contains Markdown (`.md`) files documenting the JabRef code. +The documentation contains links to external resources. +For high-quality documentation, external links should be working. + +## Decision Drivers + +* Checking external links should not cause issues in the normal workflow + +## Considered Options + +* Check external links once a month +* Check external links in the "checkstyle" task +* Do not check external links + +## Decision Outcome + +Chosen option: "\[option 1\]", because \[justification. e.g., only option, which meets k.o. criterion decision driver \| which resolves force force \| … \| comes out best \(see below\)\]. + +### Positive Consequences + +* Automatic notification of broken external links + +### Negative Consequences + +* Some external sites need to [be disabled](https://github.com/JabRef/jabref/pull/6542/files). For isntance, GitHub.com always returns "forbidden". A [filter for status is future work of the used tool](https://github.com/tcort/markdown-link-check/issues/94#issuecomment-634947466). + +## Pros and Cons of the Options + +### Check external links once a month + +* Good, because does not interfer with the normal development workflow +* Bad, because an additional workflow is required + +### Check external links in the "checkstyle" task + +* Good, because no seperate workflow is required +* Bad, because checks fail independent of the PR (because external web sites can go down and go up independent of a PR) + +### Do not check external links + +* Good, because no testing at all is required +* Bad, because external links break without any notice +* Bad, because external links have to be checked manually diff --git a/docs/adr/0012-handle-different-bibEntry-formats-of-fetchers.md b/docs/adr/0012-handle-different-bibEntry-formats-of-fetchers.md new file mode 100644 index 00000000000..4a689e51e74 --- /dev/null +++ b/docs/adr/0012-handle-different-bibEntry-formats-of-fetchers.md @@ -0,0 +1,56 @@ +# Handle different bibentry formats of fetchers by adding a layer + +## Context and Problem Statement + +All fetchers (except IDFetchers) in JabRef return BibEntries when fetching entries from their API. +Some fetchers directly receive BibTeX entries from their API, the other fetchers receive their entries in some kind of exchange format such as JSON or XML and then parse this into BibEntries. +Currently, all fetchers either return BibEntries in BibTeX or BibLaTeX format. +This can lead to importing BibEntries of one format in a database of the other format. +How can this inconsistency between fetchers, and their used formats be addressed? + +## Considered Options + +* Pass fetchers the format, they have to create entries accordingly (in the correct format). +* Pass fetchers the format, they have to call a conversion method if necessary (in the correct format). +* Let the caller handle any format inconsistencies and the conversion. +* Introduce a new layer between fetchers and caller, such as a FetcherHandler, that manages the conversion + +## Decision Outcome + +Chosen option: "Introduce a new layer between fetchers and caller, such as a FetcherHandler, that manages the conversion", +because it can compose all steps required during importing, not only format conversion of fetched entries. +[As described here (comment)](https://github.com/JabRef/jabref/pull/6687) + +## Pros and Cons of the Options + +### Introduce a new layer between fetchers and caller, such as a FetcherHandler, that manages the conversion + +* Good, because fetchers do not have to think about conversion (Separation of concerns) +* Good, because no other code that currently relies on fetchers has to do the conversion +* Good, because this layer can be used for any kind of import to handle all conversion steps (not only format). [As described here (comment)](https://github.com/JabRef/jabref/pull/6687) +* Good, because this layer can easily be extended if the import procedure changes +* Bad, because this requires a lot of code changes +* Bad, because this has to be tested extensively + +### Pass fetchers the format, they have to call a conversion method if necessary + +* Good, because less code has to be written than with option "Pass fetchers the format, they have to create entries accordingly" +* Good, because code is already tested +* Good, because keeps all conversion code centralized (code reuse) +* Bad, because fetcher first creates the BibEntry in a possibly "wrong" format, this can easily lead to bugs due to e.g. code changes +* Bad, because adds dependency + +### Pass fetchers the format, they have to create entries accordingly + +* Good, because fetchers already handle BibEntry creation (in their format of choice). This is part of his responsibility. +* Good, because fetchers only create BibEntries of the "correct" format. At no point there exists the chance of the wrong format being passed on due to e.g. code changes. +* Good, because the conversion does not have to take place +* Bad, because fetcher has to "know" all differences of the formats -> clutters the code. +* Bad, because this code has to be tested. Conversion already exists. + +### Let the caller handle any format inconsistencies and the conversion + +* Good, because fetcher code does not have to change +* Good, because fetcher only has to fetch and does not need to know anything about the formats +* Bad, because programmers might assume that a certain format is used, e.g. the preferred format (which would not work as the databases that imports the entries does not have to conform to the preferred format) +* Bad, because at every place where fetchers are used, and the format matters, conversion has to be used, creating more dependencies diff --git a/docs/advanced-reading/fetchers.md b/docs/advanced-reading/fetchers.md new file mode 100644 index 00000000000..47448f8daec --- /dev/null +++ b/docs/advanced-reading/fetchers.md @@ -0,0 +1,45 @@ +# Working on fetchers + +Fetchers are the implementation of the [search using online services](https://docs.jabref.org/collect/import-using-online-bibliographic-database). +Some fetchers require API keys to get them working. +To get the fetchers running in a JabRef development setup, the keys need to be placed in the respective enviornment variable. +The following table lists the respective fetchers, where to get the key from and the environment variable where the key has to be placed. + +| Service | Key Source | Environment Variable | Rate Limit | +| -- | -- | -- | -- | +| [IEEEXplore](https://docs.jabref.org/collect/import-using-online-bibliographic-database/ieeexplore) | [IEEE Xplore API portal](https://developer.ieee.org/) | `IEEEAPIKey` | 200 calls/day | +| [MathSciNet](http://www.ams.org/mathscinet) | (none) | (none) | Depending on the current network | +| [SAO/NASA Astrophysics Data System](https://docs.jabref.org/collect/import-using-online-bibliographic-database/ads) | [ADS UI](https://ui.adsabs.harvard.edu/user/settings/token) | `AstrophysicsDataSystemAPIKey` | 5000 calls/day | +| [Springer Nature](https://docs.jabref.org/collect/import-using-online-bibliographic-database/springer) | [Springer Nature API Portal](https://dev.springernature.com/) | `SpringerNatureAPIKey`| 5000 calls/day | +| [Zentralblatt Math](https://www.zbmath.org/) | (none) | (none) | Depending on the current network | + +"Depending on the current network" means that it depends whether your request is routed through a network having paid access. +For instance, some universities have subscriptions to MathSciNet. + +On Windows, you have to log-off and log-on to let IntelliJ know about the environment variable change. +Execute the gradle task "processResources" in the group "others" within IntelliJ to ensure the values have been correctly written. +Now, the fetcher tests should run without issues. + +## Background on embedding the keys in JabRef + +The keys are placed into the `build.properties` file. + +```properties +springerNatureAPIKey=${springerNatureAPIKey} +``` + +In `build.gradle`, these variables are filled: + +```groovy +"springerNatureAPIKey": System.getenv('SpringerNatureAPIKey') +``` + +The `BuildInfo` class reads from that file. + +```java +new BuildInfo().springerNatureAPIKey +``` + +When executing `./gradlew run`, gradle executes `processResources` and populates `build/build.properties` accordingly. +However, when working directly in the IDE, Eclipse keeps reading `build.properties` from `src/main/resources`. +In IntelliJ, the task `JabRef Main` is executing `./gradlew processResources` before running JabRef from the IDE to ensure the `build.properties` is properly populated. diff --git a/scripts/generate-authors.sh b/scripts/generate-authors.sh index 139150c0735..81afc3d44b4 100755 --- a/scripts/generate-authors.sh +++ b/scripts/generate-authors.sh @@ -58,6 +58,5 @@ cd "$(dirname "$(readlink -f "$BASH_SOURCE")")/.." # co-authors coauthors=$(git log -i --grep=co-authored-by | grep -i "co-authored-by" | sed "s/.*co-authored-by: \(.*\)/\1/I" | sed "s/ <.*//") - echo -e "$authors\n$(git log --format='%aN')\n$coauthors" | grep -v "JabRef" | grep -v "@Siedlerchr" | grep -v "^Christoph$" | grep -v "^Mootez$" | grep -v "oscargus" | grep -v "dependabot" | grep -v "github actions" | grep -v "github actions" | grep -v "igorsteinmacher" | grep -v "halirutan" | grep -v "matthiasgeiger" | grep -v "Gitter Badger" | LC_ALL=C.UTF-8 sort --unique --ignore-case + echo -e "$authors\n$(git log --format='%aN')\n$coauthors" | grep -v "\[bot\]" | grep -v "JabRef" | grep -v "Siedlerchr" | grep -v "^Christoph$" | grep -v "^Mootez$" | grep -v "oscargus" | grep -v "dependabot" | grep -v "github actions" | grep -v "github actions" | grep -v "igorsteinmacher" | grep -v "halirutan" | grep -v "matthiasgeiger" | grep -v "Gitter Badger" | grep -v "gdstewart" | LC_ALL=C.UTF-8 sort --unique --ignore-case } > AUTHORS - diff --git a/src/main/java/org/jabref/cli/ArgumentProcessor.java b/src/main/java/org/jabref/cli/ArgumentProcessor.java index ed312c8a7d8..a5d723cfcdb 100644 --- a/src/main/java/org/jabref/cli/ArgumentProcessor.java +++ b/src/main/java/org/jabref/cli/ArgumentProcessor.java @@ -246,7 +246,7 @@ private boolean exportMatches(List loaded) { BibDatabaseContext databaseContext = pr.getDatabaseContext(); BibDatabase dataBase = pr.getDatabase(); - SearchPreferences searchPreferences = new SearchPreferences(Globals.prefs); + SearchPreferences searchPreferences = Globals.prefs.getSearchPreferences(); SearchQuery query = new SearchQuery(searchTerm, searchPreferences.isCaseSensitive(), searchPreferences.isRegularExpression()); List matches = new DatabaseSearcher(query, dataBase).getMatches(); diff --git a/src/main/java/org/jabref/gui/Base.css b/src/main/java/org/jabref/gui/Base.css index 03354abd72f..1b9dee1176b 100644 --- a/src/main/java/org/jabref/gui/Base.css +++ b/src/main/java/org/jabref/gui/Base.css @@ -356,6 +356,8 @@ -fx-padding: 0.5em; } +.toggle-button:hover, +.toggle-button:selected:hover, .icon-buttonNoSpaceBottom:hover, .icon-buttonNoSpaceTop:hover, .icon-button:hover { @@ -374,8 +376,9 @@ -fx-fill: white; } -.toggle-button:selected.icon-button:selected { - -fx-background-color: transparent; +.toggle-button:selected { + -fx-background-color: -jr-icon-background-active; + -fx-text-fill: -jr-selected; -fx-fill: -jr-selected; } @@ -909,11 +912,33 @@ -fx-fill: -jr-search-text; } +/* magnifier glass */ .mainToolbar .search-field .glyph-icon { -fx-fill: -jr-search-text; -fx-text-fill: -jr-search-text; } +/* search modifier buttons */ +.mainToolbar .search-field .toggle-button:selected { + -fx-background-color: transparent; +} + +.mainToolbar .search-field .toggle-button:hover, +.mainToolbar .search-field .toggle-button:selected:hover { + -fx-background-color: -jr-icon-background-active; +} + +.mainToolbar .search-field .toggle-button .glyph-icon { + -fx-fill: derive(-jr-search-text, 80%); + -fx-text-fill: derive(-jr-search-text, 80%); +} + +.mainToolbar .search-field .toggle-button:selected .glyph-icon { + -fx-fill: -jr-search-text; + -fx-text-fill: -jr-search-text; +} + +/* search text */ .mainToolbar .search-field .label { -fx-padding: 0em 1.8em 0em 0em; } @@ -966,7 +991,8 @@ We want to have a look that matches our icons in the tool-bar */ -fx-fill: -jr-head-fg; } -.table-cell, .table-cell .glyph-icon { +.table-cell, +.table-cell .glyph-icon { -fx-padding: 0.5em 1em 0.5em 1em; -fx-cell-size: 4.0em; -fx-text-fill: -fx-text-background-color; @@ -979,12 +1005,11 @@ We want to have a look that matches our icons in the tool-bar */ } .mainToolbar .context-menu .glyph-icon:hover { - -fx-fill: -jr-theme-active; - -fx-text-fill: -jr-theme-active; + -fx-fill: -jr-menu-forground-active; + -fx-text-fill: -jr-menu-forground-active; -fx-background-color: -jr-icon-background-active; /* TODO: This has no effect */ } - /* This is awful, but I don't know a better way*/ .mainToolbar .context-menu * { -fx-background-color: -fx-control-inner-background; diff --git a/src/main/java/org/jabref/gui/BasePanel.java b/src/main/java/org/jabref/gui/BasePanel.java index c0140fbd8b6..1d2778f736b 100644 --- a/src/main/java/org/jabref/gui/BasePanel.java +++ b/src/main/java/org/jabref/gui/BasePanel.java @@ -294,68 +294,6 @@ private void createMainTable() { .stream() .findFirst() .ifPresent(entryEditor::setEntry)); - - // TODO: Register these actions globally - /* - String clearSearch = "clearSearch"; - mainTable.getInputMap().put(Globals.getKeyPrefs().getKey(KeyBinding.CLEAR_SEARCH), clearSearch); - mainTable.getActionMap().put(clearSearch, new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - // need to close these here, b/c this action overshadows the responsible actions when the main table is selected - switch (mode) { - case SHOWING_NOTHING: - frame.getGlobalSearchBar().endSearch(); - break; - case SHOWING_PREVIEW: - getPreviewPanel().close(); - break; - case SHOWING_EDITOR: - case WILL_SHOW_EDITOR: - entryEditorClosing(getEntryEditor()); - break; - default: - LOGGER.warn("unknown BasePanelMode: '" + mode + "', doing nothing"); - break; - } - } - }); - - mainTable.getActionMap().put(Actions.CUT, new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - try { - runCommand(Actions.CUT); - } catch (Throwable ex) { - LOGGER.warn("Could not cut", ex); - } - } - }); - mainTable.getActionMap().put(Actions.COPY, new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - try { - runCommand(Actions.COPY); - } catch (Throwable ex) { - LOGGER.warn("Could not copy", ex); - } - } - }); - mainTable.getActionMap().put(Actions.PASTE, new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - try { - runCommand(Actions.PASTE); - } catch (Throwable ex) { - LOGGER.warn("Could not paste", ex); - } - } - }); - */ } public void setupMainPanel() { diff --git a/src/main/java/org/jabref/gui/JabRefDialogService.java b/src/main/java/org/jabref/gui/JabRefDialogService.java index 25a56b5ff15..0f45d987b09 100644 --- a/src/main/java/org/jabref/gui/JabRefDialogService.java +++ b/src/main/java/org/jabref/gui/JabRefDialogService.java @@ -294,7 +294,7 @@ public void showProgressDialog(String title, String content, Task task) { @Override public Optional showBackgroundProgressDialogAndWait(String title, String content, StateManager stateManager) { TaskProgressView> taskProgressView = new TaskProgressView<>(); - EasyBind.listBind(taskProgressView.getTasks(), stateManager.getBackgroundTasks()); + EasyBind.bindContent(taskProgressView.getTasks(), stateManager.getBackgroundTasks()); taskProgressView.setRetainTasks(false); taskProgressView.setGraphicFactory(BackgroundTask::getIcon); diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index ebaa8f7df41..69c770ecbee 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -40,8 +40,8 @@ import javafx.scene.input.TransferMode; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; -import javafx.scene.layout.Pane; import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; import javafx.scene.layout.VBox; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; @@ -163,7 +163,7 @@ public class JabRefFrame extends BorderPane { private final SplitPane splitPane = new SplitPane(); private final JabRefPreferences prefs = Globals.prefs; private final ThemeLoader themeLoader = Globals.getThemeLoader(); - private final GlobalSearchBar globalSearchBar = new GlobalSearchBar(this, Globals.stateManager); + private final GlobalSearchBar globalSearchBar = new GlobalSearchBar(this, Globals.stateManager, prefs); private final FileHistoryMenu fileHistory; @@ -502,64 +502,80 @@ private void setDividerPosition() { } private Node createToolbar() { - Pane leftSpacer = new Pane(); - leftSpacer.setMinWidth(50); - HBox.setHgrow(leftSpacer, Priority.SOMETIMES); - Pane rightSpacer = new Pane(); - HBox.setHgrow(rightSpacer, Priority.SOMETIMES); + final ActionFactory factory = new ActionFactory(Globals.getKeyPrefs()); - ActionFactory factory = new ActionFactory(Globals.getKeyPrefs()); + final Region leftSpacer = new Region(); + final Region rightSpacer = new Region(); - Button newLibrary; - if (Globals.prefs.getBoolean(JabRefPreferences.BIBLATEX_DEFAULT_MODE)) { + final Button newLibrary; + if (Globals.prefs.getDefaultBibDatabaseMode() == BibDatabaseMode.BIBLATEX) { newLibrary = factory.createIconButton(StandardActions.NEW_LIBRARY_BIBLATEX, new NewDatabaseAction(this, BibDatabaseMode.BIBLATEX)); } else { newLibrary = factory.createIconButton(StandardActions.NEW_LIBRARY_BIBTEX, new NewDatabaseAction(this, BibDatabaseMode.BIBTEX)); } - HBox leftSide = new HBox( - newLibrary, - factory.createIconButton(StandardActions.OPEN_LIBRARY, new OpenDatabaseAction(this)), - factory.createIconButton(StandardActions.SAVE_LIBRARY, new SaveAction(SaveAction.SaveMethod.SAVE, this, stateManager)), - leftSpacer - ); - final PushToApplicationAction pushToApplicationAction = getPushToApplicationsManager().getPushToApplicationAction(); final Button pushToApplicationButton = factory.createIconButton(pushToApplicationAction.getActionInformation(), pushToApplicationAction); pushToApplicationsManager.registerReconfigurable(pushToApplicationButton); - HBox rightSide = new HBox( - factory.createIconButton(StandardActions.NEW_ARTICLE, new NewEntryAction(this, StandardEntryType.Article, dialogService, Globals.prefs, stateManager)), - factory.createIconButton(StandardActions.NEW_ENTRY, new NewEntryAction(this, dialogService, Globals.prefs, stateManager)), - factory.createIconButton(StandardActions.NEW_ENTRY_FROM_PLAIN_TEXT, new ExtractBibtexAction(stateManager)), - factory.createIconButton(StandardActions.DELETE_ENTRY, new EditAction(StandardActions.DELETE_ENTRY, this, stateManager)), + ToolBar toolBar = new ToolBar( + + new HBox(newLibrary, + factory.createIconButton(StandardActions.OPEN_LIBRARY, new OpenDatabaseAction(this)), + factory.createIconButton(StandardActions.SAVE_LIBRARY, new SaveAction(SaveAction.SaveMethod.SAVE, this, stateManager))), + + leftSpacer, + + globalSearchBar, + + rightSpacer, + + new HBox( + factory.createIconButton(StandardActions.NEW_ARTICLE, new NewEntryAction(this, StandardEntryType.Article, dialogService, Globals.prefs, stateManager)), + factory.createIconButton(StandardActions.NEW_ENTRY, new NewEntryAction(this, dialogService, Globals.prefs, stateManager)), + factory.createIconButton(StandardActions.NEW_ENTRY_FROM_PLAIN_TEXT, new ExtractBibtexAction(stateManager)), + factory.createIconButton(StandardActions.DELETE_ENTRY, new EditAction(StandardActions.DELETE_ENTRY, this, stateManager)) + ), + new Separator(Orientation.VERTICAL), - factory.createIconButton(StandardActions.UNDO, new UndoRedoAction(StandardActions.UNDO, this, dialogService, stateManager)), - factory.createIconButton(StandardActions.REDO, new UndoRedoAction(StandardActions.REDO, this, dialogService, stateManager)), - factory.createIconButton(StandardActions.CUT, new EditAction(StandardActions.CUT, this, stateManager)), - factory.createIconButton(StandardActions.COPY, new EditAction(StandardActions.COPY, this, stateManager)), - factory.createIconButton(StandardActions.PASTE, new EditAction(StandardActions.PASTE, this, stateManager)), + + new HBox( + factory.createIconButton(StandardActions.UNDO, new UndoRedoAction(StandardActions.UNDO, this, dialogService, stateManager)), + factory.createIconButton(StandardActions.REDO, new UndoRedoAction(StandardActions.REDO, this, dialogService, stateManager)), + factory.createIconButton(StandardActions.CUT, new EditAction(StandardActions.CUT, this, stateManager)), + factory.createIconButton(StandardActions.COPY, new EditAction(StandardActions.COPY, this, stateManager)), + factory.createIconButton(StandardActions.PASTE, new EditAction(StandardActions.PASTE, this, stateManager)) + ), + new Separator(Orientation.VERTICAL), - pushToApplicationButton, - factory.createIconButton(StandardActions.GENERATE_CITE_KEYS, new GenerateCitationKeyAction(this, dialogService, stateManager)), - factory.createIconButton(StandardActions.CLEANUP_ENTRIES, new CleanupAction(this, prefs, dialogService, stateManager)), + + new HBox( + pushToApplicationButton, + factory.createIconButton(StandardActions.GENERATE_CITE_KEYS, new GenerateCitationKeyAction(this, dialogService, stateManager)), + factory.createIconButton(StandardActions.CLEANUP_ENTRIES, new CleanupAction(this, prefs, dialogService, stateManager)) + ), + new Separator(Orientation.VERTICAL), - factory.createIconButton(StandardActions.OPEN_GITHUB, new OpenBrowserAction("https://github.com/JabRef/jabref")), - factory.createIconButton(StandardActions.OPEN_FACEBOOK, new OpenBrowserAction("https://www.facebook.com/JabRef/")), - factory.createIconButton(StandardActions.OPEN_TWITTER, new OpenBrowserAction("https://twitter.com/jabref_org")), + + new HBox( + factory.createIconButton(StandardActions.OPEN_GITHUB, new OpenBrowserAction("https://github.com/JabRef/jabref")), + factory.createIconButton(StandardActions.OPEN_FACEBOOK, new OpenBrowserAction("https://www.facebook.com/JabRef/")), + factory.createIconButton(StandardActions.OPEN_TWITTER, new OpenBrowserAction("https://twitter.com/jabref_org")) + ), + new Separator(Orientation.VERTICAL), - createTaskIndicator() + + new HBox( + createTaskIndicator() + ) ); + leftSpacer.setPrefWidth(50); + leftSpacer.setMinWidth(Region.USE_PREF_SIZE); + leftSpacer.setMaxWidth(Region.USE_PREF_SIZE); HBox.setHgrow(globalSearchBar, Priority.ALWAYS); + HBox.setHgrow(rightSpacer, Priority.SOMETIMES); - ToolBar toolBar = new ToolBar( - leftSide, - - globalSearchBar, - - rightSpacer, - rightSide); toolBar.getStyleClass().add("mainToolbar"); return toolBar; @@ -989,7 +1005,7 @@ hide it and clip it to a square of (width x width) each time width is updated. indicator.setOnMouseClicked(event -> { TaskProgressView> taskProgressView = new TaskProgressView<>(); - EasyBind.listBind(taskProgressView.getTasks(), stateManager.getBackgroundTasks()); + EasyBind.bindContent(taskProgressView.getTasks(), stateManager.getBackgroundTasks()); taskProgressView.setRetainTasks(true); taskProgressView.setGraphicFactory(BackgroundTask::getIcon); diff --git a/src/main/java/org/jabref/gui/edit/EditAction.java b/src/main/java/org/jabref/gui/edit/EditAction.java index 22a7ee38d13..2835d825c70 100644 --- a/src/main/java/org/jabref/gui/edit/EditAction.java +++ b/src/main/java/org/jabref/gui/edit/EditAction.java @@ -7,6 +7,10 @@ import org.jabref.gui.actions.ActionHelper; import org.jabref.gui.actions.SimpleCommand; import org.jabref.gui.actions.StandardActions; +import org.jabref.gui.maintable.MainTable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Class for handling general actions; cut, copy and paste. The focused component is kept track of by @@ -14,6 +18,8 @@ */ public class EditAction extends SimpleCommand { + private static final Logger LOGGER = LoggerFactory.getLogger(EditAction.class); + private final JabRefFrame frame; private final StandardActions action; private final StateManager stateManager; @@ -45,7 +51,7 @@ public void execute() { textInput.cut(); break; case PASTE: - // handled by FX in TextInputControl#paste + textInput.paste(); break; case DELETE_ENTRY: // DELETE_ENTRY in text field should do forward delete @@ -54,7 +60,10 @@ public void execute() { default: throw new IllegalStateException("Only cut/copy/paste supported in TextInputControl but got " + action); } - } else { + + } else if (focusOwner instanceof MainTable) { + + LOGGER.debug("I am a Maintable in Edit action"); // Not sure what is selected -> copy/paste/cut selected entries // ToDo: Should be handled by BibDatabaseContext instead of BasePanel diff --git a/src/main/java/org/jabref/gui/exporter/ExportCustomizationDialogView.java b/src/main/java/org/jabref/gui/exporter/ExportCustomizationDialogView.java index 18e844536e9..4d698aabb7c 100644 --- a/src/main/java/org/jabref/gui/exporter/ExportCustomizationDialogView.java +++ b/src/main/java/org/jabref/gui/exporter/ExportCustomizationDialogView.java @@ -55,7 +55,7 @@ private void initialize() { viewModel = new ExportCustomizationDialogViewModel(preferences, dialogService, repository); exporterTable.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); exporterTable.itemsProperty().bind(viewModel.exportersProperty()); - EasyBind.listBind(viewModel.selectedExportersProperty(), exporterTable.getSelectionModel().getSelectedItems()); + EasyBind.bindContent(viewModel.selectedExportersProperty(), exporterTable.getSelectionModel().getSelectedItems()); nameColumn.setCellValueFactory(cellData -> cellData.getValue().name()); layoutColumn.setCellValueFactory(cellData -> cellData.getValue().layoutFileName()); extensionColumn.setCellValueFactory(cellData -> cellData.getValue().extension()); diff --git a/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java b/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java index 167392c8515..064b8808bdf 100644 --- a/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java +++ b/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java @@ -14,6 +14,7 @@ import org.jabref.gui.util.BindingsHelper; import org.jabref.logic.integrity.FieldCheckers; import org.jabref.logic.integrity.ValueChecker; +import org.jabref.logic.util.OS; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.Field; @@ -22,6 +23,7 @@ import de.saxsys.mvvmfx.utils.validation.FunctionBasedValidator; import de.saxsys.mvvmfx.utils.validation.ValidationMessage; import de.saxsys.mvvmfx.utils.validation.Validator; +import org.apache.commons.lang3.StringUtils; import org.controlsfx.control.textfield.AutoCompletionBinding; public class AbstractEditorViewModel extends AbstractViewModel { @@ -63,10 +65,15 @@ public void bindToEntry(BibEntry entry) { fieldBinding, newValue -> { if (newValue != null) { - String oldValue = entry.getField(field).orElse(null); - entry.setField(field, newValue); - UndoManager undoManager = JabRefGUI.getMainFrame().getUndoManager(); - undoManager.addEdit(new UndoableFieldChange(entry, field, oldValue, newValue)); + // Controlsfx uses hardcoded \n for multiline fields, but JabRef stores them in OS Newlines format + String oldValue = entry.getField(field).map(value -> value.replace(OS.NEWLINE, "\n")).orElse(null); + // Autosave and save action trigger the entry editor to reload the fields, so we have to + // check for changes here, otherwise the cursor position is annoyingly reset every few seconds + if (!(newValue.trim()).equals(StringUtils.trim(oldValue))) { + entry.setField(field, newValue); + UndoManager undoManager = JabRefGUI.getMainFrame().getUndoManager(); + undoManager.addEdit(new UndoableFieldChange(entry, field, oldValue, newValue)); + } } }); } diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java b/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java index 4403cc00504..7e4dafd5f04 100644 --- a/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java +++ b/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java @@ -427,7 +427,24 @@ public void download() { BackgroundTask downloadTask = prepareDownloadTask(targetDirectory.get(), urlDownload); downloadTask.onSuccess(destination -> { LinkedFile newLinkedFile = LinkedFilesEditorViewModel.fromFile(destination, databaseContext.getFileDirectoriesAsPaths(filePreferences), externalFileTypes); - entry.addFile(0, newLinkedFile); + + List linkedFiles = entry.getFiles(); + int oldFileIndex = -1; + int i = 0; + while (i < linkedFiles.size() && oldFileIndex == -1) { + LinkedFile file = linkedFiles.get(i); + // The file type changes as part of download process (see prepareDownloadTask), thus we only compare by link + if (file.getLink().equalsIgnoreCase(linkedFile.getLink())) { + oldFileIndex = i; + } + i++; + } + if (oldFileIndex == -1) { + linkedFiles.add(0, newLinkedFile); + } else { + linkedFiles.set(oldFileIndex, newLinkedFile); + } + entry.setFiles(linkedFiles); }); downloadProgress.bind(downloadTask.workDonePercentageProperty()); downloadTask.titleProperty().set(Localization.lang("Downloading")); diff --git a/src/main/java/org/jabref/gui/importer/ImportCustomizationDialog.java b/src/main/java/org/jabref/gui/importer/ImportCustomizationDialog.java index 6f535951846..52fa3e49d52 100644 --- a/src/main/java/org/jabref/gui/importer/ImportCustomizationDialog.java +++ b/src/main/java/org/jabref/gui/importer/ImportCustomizationDialog.java @@ -59,7 +59,7 @@ private void initialize() { viewModel = new ImportCustomizationDialogViewModel(preferences, dialogService); importerTable.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); importerTable.itemsProperty().bind(viewModel.importersProperty()); - EasyBind.listBind(viewModel.selectedImportersProperty(), importerTable.getSelectionModel().getSelectedItems()); + EasyBind.bindContent(viewModel.selectedImportersProperty(), importerTable.getSelectionModel().getSelectedItems()); nameColumn.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getName())); classColumn.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getClassName())); basePathColumn.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getBasePath().toString())); diff --git a/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.css b/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.css index 81442716e85..5adbe79d227 100644 --- a/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.css +++ b/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.css @@ -2,6 +2,11 @@ -fx-font-size: 2em; } +.addEntryButton:selected { + -fx-background-color: transparent; + -fx-fill: -jr-selected; +} + .entry-container { /*-fx-padding: 0.5em 0em 0.5em 0em;*/ } diff --git a/src/main/java/org/jabref/gui/maintable/MainTable.java b/src/main/java/org/jabref/gui/maintable/MainTable.java index ff79e1014d3..6b0183299a4 100644 --- a/src/main/java/org/jabref/gui/maintable/MainTable.java +++ b/src/main/java/org/jabref/gui/maintable/MainTable.java @@ -37,6 +37,7 @@ import org.jabref.gui.util.DefaultTaskExecutor; import org.jabref.gui.util.ViewModelTableRowFactory; import org.jabref.logic.l10n.Localization; +import org.jabref.logic.util.OS; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.database.event.EntriesAddedEvent; import org.jabref.model.entry.BibEntry; @@ -143,11 +144,11 @@ public MainTable(MainTableDataModel model, JabRefFrame frame, */ private void jumpToSearchKey(TableColumn sortedColumn, KeyEvent keyEvent) { - if (keyEvent.getCharacter() == null || sortedColumn == null) { + if ((keyEvent.getCharacter() == null) || (sortedColumn == null)) { return; } - if (System.currentTimeMillis() - lastKeyPressTime < 700) { + if ((System.currentTimeMillis() - lastKeyPressTime) < 700) { columnSearchTerm += keyEvent.getCharacter().toLowerCase(); } else { columnSearchTerm = keyEvent.getCharacter().toLowerCase(); @@ -221,9 +222,11 @@ private void setupKeyBindings(KeyBindingRepository keyBindings) { event.consume(); break; case PASTE: - paste(); - event.consume(); - break; + if (!OS.OS_X) { // ugly hack, prevents duplicate entries on pasting. Side effect: Prevents pasting using cmd+v on an empty library + paste(); + event.consume(); + break; + } case COPY: copy(); event.consume(); @@ -258,6 +261,7 @@ public void paste() { if (!entriesToAdd.isEmpty()) { this.requestFocus(); } + } private void handleOnDragOver(TableRow row, BibEntryTableViewModel item, DragEvent event) { diff --git a/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java b/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java index 2f912d2d09a..bff1e366d35 100644 --- a/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java +++ b/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import javafx.concurrent.Task; +import javafx.geometry.Insets; import javafx.geometry.Side; import javafx.scene.Node; import javafx.scene.control.Button; @@ -22,6 +23,7 @@ import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.ToggleGroup; import javafx.scene.control.Tooltip; +import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; @@ -264,19 +266,18 @@ private void initPanel() { HBox hbox = new HBox(); hbox.getChildren().addAll(connect, manualConnect, selectDocument, update, help); hbox.getChildren().forEach(btn -> HBox.setHgrow(btn, Priority.ALWAYS)); - - VBox row1 = new VBox(); - VBox row2 = new VBox(); - VBox row3 = new VBox(); - row1.getChildren().addAll(setStyleFile, pushEntries, pushEntriesInt); - row2.getChildren().addAll(pushEntriesAdvanced, pushEntriesEmpty, merge); - row3.getChildren().addAll(manageCitations, exportCitations, settingsB); - HBox hbox1 = new HBox(); - hbox1.getChildren().addAll(row1, row2, row3); - hbox1.getChildren().forEach(btn -> HBox.setHgrow(btn, Priority.ALWAYS)); + + FlowPane flow = new FlowPane(); + flow.setPadding(new Insets(5, 5, 5, 5)); + flow.setVgap(4); + flow.setHgap(4); + flow.setPrefWrapLength(200); + flow.getChildren().addAll(setStyleFile, pushEntries, pushEntriesInt); + flow.getChildren().addAll(pushEntriesAdvanced, pushEntriesEmpty, merge); + flow.getChildren().addAll(manageCitations, exportCitations, settingsB); vbox.setFillWidth(true); - vbox.getChildren().addAll(hbox, hbox1); + vbox.getChildren().addAll(hbox, flow); } private void exportEntries() { diff --git a/src/main/java/org/jabref/gui/preferences/GeneralTabViewModel.java b/src/main/java/org/jabref/gui/preferences/GeneralTabViewModel.java index c5f166f66e1..59af8c67886 100644 --- a/src/main/java/org/jabref/gui/preferences/GeneralTabViewModel.java +++ b/src/main/java/org/jabref/gui/preferences/GeneralTabViewModel.java @@ -107,7 +107,7 @@ public void setValues() { allowIntegerEditionProperty.setValue(initialGeneralPreferences.isAllowIntegerEditionBibtex()); memoryStickModeProperty.setValue(initialGeneralPreferences.isMemoryStickMode()); collectTelemetryProperty.setValue(preferencesService.shouldCollectTelemetry()); - showAdvancedHintsProperty.setValue(initialGeneralPreferences.isShowAdvancedHints()); + showAdvancedHintsProperty.setValue(initialGeneralPreferences.shouldShowAdvancedHints()); markOwnerProperty.setValue(initialOwnerPreferences.isUseOwner()); markOwnerNameProperty.setValue(initialOwnerPreferences.getDefaultOwner()); diff --git a/src/main/java/org/jabref/gui/search/GlobalSearchBar.java b/src/main/java/org/jabref/gui/search/GlobalSearchBar.java index 26753f5d33e..5eb52ad10f6 100644 --- a/src/main/java/org/jabref/gui/search/GlobalSearchBar.java +++ b/src/main/java/org/jabref/gui/search/GlobalSearchBar.java @@ -2,28 +2,24 @@ import java.lang.reflect.Field; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; -import javafx.animation.KeyFrame; -import javafx.animation.KeyValue; -import javafx.animation.Timeline; import javafx.application.Platform; import javafx.beans.binding.Bindings; +import javafx.beans.binding.BooleanBinding; import javafx.css.PseudoClass; import javafx.event.Event; +import javafx.geometry.Insets; import javafx.geometry.Pos; +import javafx.scene.Cursor; import javafx.scene.Node; -import javafx.scene.control.Button; import javafx.scene.control.ContentDisplay; import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.control.Skin; -import javafx.scene.control.TextField; import javafx.scene.control.ToggleButton; -import javafx.scene.control.ToolBar; import javafx.scene.control.Tooltip; import javafx.scene.control.cell.TextFieldListCell; import javafx.scene.input.KeyEvent; @@ -31,12 +27,11 @@ import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; +import javafx.scene.layout.StackPane; import javafx.scene.text.Text; import javafx.scene.text.TextFlow; -import javafx.util.Duration; import org.jabref.Globals; -import org.jabref.gui.BasePanel; import org.jabref.gui.ClipBoardManager; import org.jabref.gui.JabRefFrame; import org.jabref.gui.StateManager; @@ -48,7 +43,6 @@ import org.jabref.gui.icon.IconTheme; import org.jabref.gui.keyboard.KeyBinding; import org.jabref.gui.keyboard.KeyBindingRepository; -import org.jabref.gui.maintable.MainTable; import org.jabref.gui.search.rules.describer.SearchDescribers; import org.jabref.gui.util.BindingsHelper; import org.jabref.gui.util.DefaultTaskExecutor; @@ -57,7 +51,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.search.SearchQuery; import org.jabref.model.entry.Author; -import org.jabref.preferences.JabRefPreferences; +import org.jabref.preferences.PreferencesService; import org.jabref.preferences.SearchPreferences; import com.tobiasdiez.easybind.EasyBind; @@ -67,6 +61,7 @@ import de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer; import impl.org.controlsfx.skin.AutoCompletePopup; import org.controlsfx.control.textfield.AutoCompletionBinding; +import org.controlsfx.control.textfield.CustomTextField; import org.reactfx.util.FxTimer; import org.reactfx.util.Timer; import org.slf4j.Logger; @@ -82,25 +77,24 @@ public class GlobalSearchBar extends HBox { private static final PseudoClass CLASS_NO_RESULTS = PseudoClass.getPseudoClass("emptyResult"); private static final PseudoClass CLASS_RESULTS_FOUND = PseudoClass.getPseudoClass("emptyResult"); - private final JabRefFrame frame; - - private final TextField searchField = SearchTextField.create(); - private final ToggleButton caseSensitive; - private final ToggleButton regularExp; - private final Button searchModeButton = new Button(); + private final CustomTextField searchField = SearchTextField.create(); + private final ToggleButton caseSensitiveButton; + private final ToggleButton regularExpressionButton; + // private final Button searchModeButton; private final Label currentResults = new Label(""); private final Tooltip tooltip = new Tooltip(); + private final StateManager stateManager; - private SearchDisplayMode searchDisplayMode; + private final PreferencesService preferencesService; private final Validator regexValidator; - public GlobalSearchBar(JabRefFrame frame, StateManager stateManager) { + private SearchPreferences searchPreferences; + + public GlobalSearchBar(JabRefFrame frame, StateManager stateManager, PreferencesService preferencesService) { super(); - this.frame = Objects.requireNonNull(frame); this.stateManager = stateManager; - - SearchPreferences searchPreferences = new SearchPreferences(Globals.prefs); - searchDisplayMode = searchPreferences.getSearchMode(); + this.preferencesService = preferencesService; + this.searchPreferences = preferencesService.getSearchPreferences(); this.searchField.disableProperty().bind(needsDatabase(stateManager).not()); @@ -127,59 +121,37 @@ public GlobalSearchBar(JabRefFrame frame, StateManager stateManager) { ClipBoardManager.addX11Support(searchField); - regularExp = IconTheme.JabRefIcons.REG_EX.asToggleButton(); - regularExp.setSelected(searchPreferences.isRegularExpression()); - regularExp.setTooltip(new Tooltip(Localization.lang("regular expression"))); - regularExp.setOnAction(event -> { - searchPreferences.setRegularExpression(regularExp.isSelected()); - performSearch(); - }); - - caseSensitive = IconTheme.JabRefIcons.CASE_SENSITIVE.asToggleButton(); - caseSensitive.setSelected(searchPreferences.isCaseSensitive()); - caseSensitive.setTooltip(new Tooltip(Localization.lang("Case sensitive"))); - caseSensitive.setOnAction(event -> { - searchPreferences.setCaseSensitive(caseSensitive.isSelected()); - performSearch(); - }); - - updateSearchModeButtonText(); - searchModeButton.setOnAction(event -> toggleSearchModeAndSearch()); - - int initialSize = 400; - int expandedSize = 700; + regularExpressionButton = IconTheme.JabRefIcons.REG_EX.asToggleButton(); + caseSensitiveButton = IconTheme.JabRefIcons.CASE_SENSITIVE.asToggleButton(); + // searchModeButton = new Button(); + initSearchModifierButtons(); + + BooleanBinding focusBinding = searchField.focusedProperty() + .or(regularExpressionButton.focusedProperty() + .or(caseSensitiveButton.focusedProperty())); + regularExpressionButton.visibleProperty().unbind(); + regularExpressionButton.visibleProperty().bind(focusBinding); + caseSensitiveButton.visibleProperty().unbind(); + caseSensitiveButton.visibleProperty().bind(focusBinding); + + StackPane modifierButtons = new StackPane(new HBox(regularExpressionButton, caseSensitiveButton)); + modifierButtons.setAlignment(Pos.CENTER); + searchField.setRight(new HBox(searchField.getRight(), modifierButtons)); searchField.getStyleClass().add("search-field"); searchField.setMinWidth(100); - searchField.setMaxWidth(initialSize); HBox.setHgrow(searchField, Priority.ALWAYS); regexValidator = new FunctionBasedValidator<>( searchField.textProperty(), - query -> !(regularExp.isSelected() && !validRegex()), + query -> !(regularExpressionButton.isSelected() && !validRegex()), ValidationMessage.error(Localization.lang("Invalid regular expression")) ); ControlsFxVisualizer visualizer = new ControlsFxVisualizer(); visualizer.setDecoration(new IconValidationDecorator(Pos.CENTER_LEFT)); - Platform.runLater(() -> { - visualizer.initVisualization(regexValidator.getValidationStatus(), searchField); - }); - - EasyBind.subscribe(searchField.focusedProperty(), isFocused -> { - if (isFocused) { - KeyValue widthValue = new KeyValue(searchField.maxWidthProperty(), expandedSize); - KeyFrame keyFrame = new KeyFrame(Duration.millis(600), widthValue); - Timeline timeline = new Timeline(keyFrame); - timeline.play(); - } else { - KeyValue widthValue = new KeyValue(searchField.maxWidthProperty(), initialSize); - KeyFrame keyFrame = new KeyFrame(Duration.millis(400), widthValue); - Timeline timeline = new Timeline(keyFrame); - timeline.play(); - } - }); + Platform.runLater(() -> visualizer.initVisualization(regexValidator.getValidationStatus(), searchField)); this.getChildren().addAll(searchField, currentResults); - + this.setSpacing(4.0); this.setAlignment(Pos.CENTER_LEFT); Timer searchTask = FxTimer.create(java.time.Duration.ofMillis(SEARCH_DELAY), this::performSearch); @@ -194,7 +166,6 @@ public GlobalSearchBar(JabRefFrame frame, StateManager stateManager) { ); EasyBind.subscribe(this.stateManager.activeSearchQueryProperty(), searchQuery -> { - searchQuery.ifPresent(query -> { updateResults(this.stateManager.getSearchResultSize().intValue(), SearchDescribers.getSearchDescriberFor(query).getDescription(), query.isGrammarBasedSearch()); @@ -202,26 +173,55 @@ public GlobalSearchBar(JabRefFrame frame, StateManager stateManager) { }); } - private void toggleSearchModeAndSearch() { - int nextSearchMode = (searchDisplayMode.ordinal() + 1) % SearchDisplayMode.values().length; - searchDisplayMode = SearchDisplayMode.values()[nextSearchMode]; - new SearchPreferences(Globals.prefs).setSearchMode(searchDisplayMode); - updateSearchModeButtonText(); - performSearch(); - } + private void initSearchModifierButtons() { + regularExpressionButton.setSelected(searchPreferences.isRegularExpression()); + regularExpressionButton.setTooltip(new Tooltip(Localization.lang("regular expression"))); + regularExpressionButton.setCursor(Cursor.DEFAULT); + regularExpressionButton.setMinHeight(28); + regularExpressionButton.setMaxHeight(28); + regularExpressionButton.setMinWidth(28); + regularExpressionButton.setMaxWidth(28); + regularExpressionButton.setPadding(new Insets(1.0)); + regularExpressionButton.managedProperty().bind(searchField.editableProperty()); + regularExpressionButton.visibleProperty().bind(searchField.editableProperty()); + regularExpressionButton.setOnAction(event -> { + searchPreferences = searchPreferences.withRegularExpression(regularExpressionButton.isSelected()); + preferencesService.storeSearchPreferences(searchPreferences); + performSearch(); + }); - private void updateSearchModeButtonText() { - searchModeButton.setText(searchDisplayMode.getDisplayName()); - searchModeButton.setTooltip(new Tooltip(searchDisplayMode.getToolTipText())); - } + caseSensitiveButton.setSelected(searchPreferences.isCaseSensitive()); + caseSensitiveButton.setTooltip(new Tooltip(Localization.lang("Case sensitive"))); + caseSensitiveButton.setCursor(Cursor.DEFAULT); + caseSensitiveButton.setMinHeight(28); + caseSensitiveButton.setMaxHeight(28); + caseSensitiveButton.setMinWidth(28); + caseSensitiveButton.setMaxWidth(28); + caseSensitiveButton.setPadding(new Insets(1.0)); + caseSensitiveButton.managedProperty().bind(searchField.editableProperty()); + caseSensitiveButton.visibleProperty().bind(searchField.editableProperty()); + caseSensitiveButton.setOnAction(event -> { + searchPreferences = searchPreferences.withCaseSensitive(caseSensitiveButton.isSelected()); + preferencesService.storeSearchPreferences(searchPreferences); + performSearch(); + }); - public void endSearch() { - BasePanel currentBasePanel = frame.getCurrentBasePanel(); - if (currentBasePanel != null) { - searchField.setText(""); - MainTable mainTable = frame.getCurrentBasePanel().getMainTable(); - mainTable.requestFocus(); - } + // ToDo: Reimplement searchMode (searchModeButton) + /* searchModeButton.setText(searchPreferences.getSearchDisplayMode().getDisplayName()); + searchModeButton.setTooltip(new Tooltip(searchPreferences.getSearchDisplayMode().getToolTipText())); + searchModeButton.setOnAction(event -> { + SearchDisplayMode searchDisplayMode = searchPreferences.getSearchDisplayMode(); + int nextSearchMode = (searchDisplayMode.ordinal() + 1) % SearchDisplayMode.values().length; + searchDisplayMode = SearchDisplayMode.values()[nextSearchMode]; + + searchPreferences = searchPreferences..withSearchDisplayMode(searchDisplayMode); + preferencesService.storeSearchPreferences(searchPreferences); + + searchModeButton.setText(searchDisplayMode.getDisplayName()); + searchModeButton.setTooltip(new Tooltip(searchDisplayMode.getToolTipText())); + + performSearch(); + }); */ } /** @@ -251,7 +251,7 @@ public void performSearch() { return; } - SearchQuery searchQuery = new SearchQuery(this.searchField.getText(), this.caseSensitive.isSelected(), this.regularExp.isSelected()); + SearchQuery searchQuery = new SearchQuery(this.searchField.getText(), searchPreferences.isCaseSensitive(), searchPreferences.isRegularExpression()); if (!searchQuery.isValid()) { informUserAboutInvalidSearchQuery(); return; @@ -279,7 +279,7 @@ private void informUserAboutInvalidSearchQuery() { } public void setAutoCompleter(SuggestionProvider searchCompleter) { - if (Globals.prefs.getAutoCompletePreferences().shouldAutoComplete()) { + if (preferencesService.getAutoCompletePreferences().shouldAutoComplete()) { AutoCompletionTextInputBinding autoComplete = AutoCompletionTextInputBinding.autoComplete(searchField, searchCompleter::provideSuggestions, new PersonNameStringConverter(false, false, AutoCompleteFirstNameMode.BOTH), @@ -325,7 +325,7 @@ private void updateResults(int matched, TextFlow description, boolean grammarBas } private void setHintTooltip(TextFlow description) { - if (Globals.prefs.getBoolean(JabRefPreferences.SHOW_ADVANCED_HINTS)) { + if (preferencesService.getGeneralPreferences().shouldShowAdvancedHints()) { String genericDescription = Localization.lang("Hint: To search specific fields only, enter for example:

author=smith and title=electrical"); genericDescription = genericDescription.replace("

", "\n"); List genericDescriptionTexts = TooltipTextUtil.formatToTexts(genericDescription, new TooltipTextUtil.TextReplacement("author=smith and title=electrical", "author=smith and title=electrical", TooltipTextUtil.TextType.MONOSPACED)); @@ -343,7 +343,7 @@ private void setHintTooltip(TextFlow description) { } public void updateHintVisibility() { - if (Globals.prefs.getBoolean(JabRefPreferences.SHOW_ADVANCED_HINTS)) { + if (preferencesService.getGeneralPreferences().shouldShowAdvancedHints()) { searchField.setTooltip(tooltip); } else { searchField.setTooltip(null); @@ -376,11 +376,8 @@ public SearchPopupSkin(AutoCompletePopup control) { this.suggestionList.maxWidthProperty().bind(control.maxWidthProperty()); this.suggestionList.minWidthProperty().bind(control.minWidthProperty()); - ToolBar toolBar = new ToolBar(regularExp, caseSensitive, searchModeButton); - this.container = new BorderPane(); this.container.setCenter(suggestionList); - this.container.setBottom(toolBar); this.registerEventListener(); } diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java b/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java index e7719e66fa3..ffa941c3bbc 100644 --- a/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java +++ b/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java @@ -76,7 +76,7 @@ private void initialize() { EasyBind.subscribe(fileTreeView.rootProperty(), root -> { ((CheckBoxTreeItem) root).setSelected(true); root.setExpanded(true); - EasyBind.listBind(viewModel.getCheckedFileList(), fileTreeView.getCheckModel().getCheckedItems()); + EasyBind.bindContent(viewModel.getCheckedFileList(), fileTreeView.getCheckModel().getCheckedItems()); }); latexDirectoryField.textProperty().bindBidirectional(viewModel.latexFileDirectoryProperty()); diff --git a/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java b/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java index dfde38317c2..3d28b2cb195 100644 --- a/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java +++ b/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java @@ -25,12 +25,12 @@ import org.jabref.logic.bibtex.comparator.FieldComparatorStack; import org.jabref.logic.bibtex.comparator.IdComparator; import org.jabref.logic.citationkeypattern.CitationKeyGenerator; -import org.jabref.logic.formatter.bibtexfields.NormalizeNewlinesFormatter; import org.jabref.logic.formatter.bibtexfields.TrimWhitespaceFormatter; import org.jabref.model.FieldChange; import org.jabref.model.bibtexkeypattern.GlobalCitationKeyPattern; import org.jabref.model.cleanup.FieldFormatterCleanup; import org.jabref.model.cleanup.FieldFormatterCleanups; +import org.jabref.model.cleanup.NormalizeNewlinesFormatter; import org.jabref.model.database.BibDatabase; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.database.BibDatabaseMode; diff --git a/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java b/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java index cab9e202be6..5297d5ad1d2 100644 --- a/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java +++ b/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java @@ -43,6 +43,7 @@ public interface EntryBasedParserFetcher extends EntryBasedFetcher { * {@code new FieldFormatterCleanup(StandardField.TITLE, new RemoveBracesFormatter()).cleanup(entry);} * * By default, no cleanup is done. + * * @param entry the entry to be cleaned-up */ default void doPostCleanup(BibEntry entry) { diff --git a/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java b/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java index 4ca64611451..0238ef6b89a 100644 --- a/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java +++ b/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java @@ -14,7 +14,6 @@ public interface IdBasedFetcher extends WebFetcher { * * @param identifier a string which uniquely identifies the item * @return a {@link BibEntry} containing the bibliographic information (or an empty optional if no data was found) - * @throws FetcherException */ Optional performSearchById(String identifier) throws FetcherException; } diff --git a/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java b/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java index d947c10fcbd..56547e303d0 100644 --- a/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java +++ b/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java @@ -48,6 +48,7 @@ public interface IdBasedParserFetcher extends IdBasedFetcher { * {@code new FieldFormatterCleanup(StandardField.TITLE, new RemoveBracesFormatter()).cleanup(entry);} * * By default, no cleanup is done. + * * @param entry the entry to be cleaned-up */ default void doPostCleanup(BibEntry entry) { diff --git a/src/main/java/org/jabref/logic/importer/ImportCleanup.java b/src/main/java/org/jabref/logic/importer/ImportCleanup.java new file mode 100644 index 00000000000..787b56159b2 --- /dev/null +++ b/src/main/java/org/jabref/logic/importer/ImportCleanup.java @@ -0,0 +1,38 @@ +package org.jabref.logic.importer; + +import java.util.Collection; + +import org.jabref.logic.cleanup.ConvertToBiblatexCleanup; +import org.jabref.logic.cleanup.ConvertToBibtexCleanup; +import org.jabref.model.database.BibDatabaseMode; +import org.jabref.model.entry.BibEntry; + +public class ImportCleanup { + + private final BibDatabaseMode targetBibEntryFormat; + + public ImportCleanup(BibDatabaseMode targetBibEntryFormat) { + this.targetBibEntryFormat = targetBibEntryFormat; + } + + /** + * Performs a format conversion of the given entry into the targeted format. + * + * @return Returns the cleaned up bibentry to enable usage of doPostCleanup in streams. + */ + public BibEntry doPostCleanup(BibEntry entry) { + if (targetBibEntryFormat == BibDatabaseMode.BIBTEX) { + new ConvertToBibtexCleanup().cleanup(entry); + } else if (targetBibEntryFormat == BibDatabaseMode.BIBLATEX) { + new ConvertToBiblatexCleanup().cleanup(entry); + } + return entry; + } + + /** + * Performs a format conversion of the given entry collection into the targeted format. + */ + public void doPostCleanup(Collection entries) { + entries.parallelStream().forEach(entry -> doPostCleanup(entry)); + } +} diff --git a/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java b/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java index 7c0e3f78bbf..d5d83f64ffb 100644 --- a/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java +++ b/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java @@ -2,6 +2,7 @@ import java.util.List; +import org.jabref.logic.importer.fetcher.ComplexSearchQuery; import org.jabref.model.entry.BibEntry; /** @@ -17,4 +18,15 @@ public interface SearchBasedFetcher extends WebFetcher { * @return a list of {@link BibEntry}, which are matched by the query (may be empty) */ List performSearch(String query) throws FetcherException; + + /** + * This method is used to send complex queries using fielded search. + * + * @param complexSearchQuery the search query defining all fielded search parameters + * @return a list of {@link BibEntry}, which are matched by the query (may be empty) + */ + default List performComplexSearch(ComplexSearchQuery complexSearchQuery) throws FetcherException { + // Default Implementation behaves like perform search using the default field as query + return performSearch(complexSearchQuery.getDefaultField().orElse("")); + } } diff --git a/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java b/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java index ad1a81e3658..24b0e2c84d5 100644 --- a/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java +++ b/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java @@ -8,6 +8,7 @@ import java.util.Collections; import java.util.List; +import org.jabref.logic.importer.fetcher.ComplexSearchQuery; import org.jabref.model.cleanup.Formatter; import org.jabref.model.entry.BibEntry; import org.jabref.model.strings.StringUtil; @@ -22,6 +23,7 @@ public interface SearchBasedParserFetcher extends SearchBasedFetcher { /** * Constructs a URL based on the query. + * * @param query the search query */ URL getURLForQuery(String query) throws URISyntaxException, MalformedURLException, FetcherException; @@ -31,24 +33,6 @@ public interface SearchBasedParserFetcher extends SearchBasedFetcher { */ Parser getParser(); - /** - * Performs a cleanup of the fetched entry. - * - * Only systematic errors of the fetcher should be corrected here - * (i.e. if information is consistently contained in the wrong field or the wrong format) - * but not cosmetic issues which may depend on the user's taste (for example, LateX code vs HTML in the abstract). - * - * Try to reuse existing {@link Formatter} for the cleanup. For example, - * {@code new FieldFormatterCleanup(StandardField.TITLE, new RemoveBracesFormatter()).cleanup(entry);} - * - * By default, no cleanup is done. - * - * @param entry the entry to be cleaned-up - */ - default void doPostCleanup(BibEntry entry) { - // Do nothing by default - } - @Override default List performSearch(String query) throws FetcherException { if (StringUtil.isBlank(query)) { @@ -71,4 +55,49 @@ default List performSearch(String query) throws FetcherException { throw new FetcherException("An internal parser error occurred", e); } } + + /** + * This method is used to send queries with advanced URL parameters. + * This method is necessary as the performSearch method does not support certain URL parameters that are used for + * fielded search, such as a title, author, or year parameter. + * + * @param complexSearchQuery the search query defining all fielded search parameters + */ + @Override + default List performComplexSearch(ComplexSearchQuery complexSearchQuery) throws FetcherException { + try (InputStream stream = getUrlDownload(getComplexQueryURL(complexSearchQuery)).asInputStream()) { + List fetchedEntries = getParser().parseEntries(stream); + fetchedEntries.forEach(this::doPostCleanup); + return fetchedEntries; + } catch (URISyntaxException e) { + throw new FetcherException("Search URI is malformed", e); + } catch (IOException e) { + // TODO: Catch HTTP Response 401/403 errors and report that user has no rights to access resource + throw new FetcherException("A network error occurred", e); + } catch (ParseException e) { + throw new FetcherException("An internal parser error occurred", e); + } + } + + default URL getComplexQueryURL(ComplexSearchQuery complexSearchQuery) throws URISyntaxException, MalformedURLException, FetcherException { + // Default Implementation behaves like getURLForQuery using the default field as query + return this.getURLForQuery(complexSearchQuery.getDefaultField().orElse("")); + } + + /** + * Performs a cleanup of the fetched entry. + * + * Only systematic errors of the fetcher should be corrected here + * (i.e. if information is consistently contained in the wrong field or the wrong format) + * but not cosmetic issues which may depend on the user's taste (for example, LateX code vs HTML in the abstract). + * + * Try to reuse existing {@link Formatter} for the cleanup. For example, + * {@code new FieldFormatterCleanup(StandardField.TITLE, new RemoveBracesFormatter()).cleanup(entry);} + * + * By default, no cleanup is done. + * @param entry the entry to be cleaned-up + */ + default void doPostCleanup(BibEntry entry) { + // Do nothing by default + } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ArXiv.java b/src/main/java/org/jabref/logic/importer/fetcher/ArXiv.java index 463c10a83b1..7fc3fd866c9 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/ArXiv.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/ArXiv.java @@ -158,7 +158,7 @@ private List searchForEntries(String searchQuery) throws FetcherExce } private List queryApi(String searchQuery, List ids, int start, int maxResults) - throws FetcherException { + throws FetcherException { Document result = callApi(searchQuery, ids, start, maxResults); List entries = XMLUtil.asList(result.getElementsByTagName("entry")); @@ -255,6 +255,25 @@ public List performSearch(String query) throws FetcherException { .collect(Collectors.toList()); } + /** + * Constructs a complex query string using the field prefixes specified at https://arxiv.org/help/api/user-manual + * + * @param complexSearchQuery the search query defining all fielded search parameters + * @return A list of entries matching the complex query + */ + @Override + public List performComplexSearch(ComplexSearchQuery complexSearchQuery) throws FetcherException { + List searchTerms = new ArrayList<>(); + complexSearchQuery.getAuthors().ifPresent(authors -> authors.forEach(author -> searchTerms.add("au:" + author))); + complexSearchQuery.getTitlePhrases().ifPresent(title -> searchTerms.add("ti:" + title)); + complexSearchQuery.getJournal().ifPresent(journal -> searchTerms.add("jr:" + journal)); + // Since ArXiv API does not support year search, we ignore the year related terms + complexSearchQuery.getToYear().ifPresent(year -> searchTerms.add(year.toString())); + complexSearchQuery.getDefaultField().ifPresent(defaultField -> searchTerms.add(defaultField)); + String complexQueryString = String.join(" AND ", searchTerms); + return performSearch(complexQueryString); + } + @Override public Optional performSearchById(String identifier) throws FetcherException { return searchForEntryById(identifier) diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java b/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java index 9586fb6c519..77c386a75be 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java @@ -59,7 +59,6 @@ public Parser getParser() { // So we extract the data string from the tags and pass the content to the COinS parser return inputStream -> { String response = new BufferedReader(new InputStreamReader(inputStream)).lines().collect(Collectors.joining(OS.NEWLINE)); - List entries = new ArrayList<>(); CoinsParser parser = new CoinsParser(); Pattern pattern = Pattern.compile(""); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java b/src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java new file mode 100644 index 00000000000..f08a1a59418 --- /dev/null +++ b/src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java @@ -0,0 +1,166 @@ +package org.jabref.logic.importer.fetcher; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import org.jabref.model.strings.StringUtil; + +public class ComplexSearchQuery { + // Field for non-fielded search + private final String defaultField; + private final List authors; + private final List titlePhrases; + private final Integer fromYear; + private final Integer toYear; + private final Integer singleYear; + private final String journal; + + private ComplexSearchQuery(String defaultField, List authors, List titlePhrases, Integer fromYear, Integer toYear, Integer singleYear, String journal) { + this.defaultField = defaultField; + this.authors = authors; + this.titlePhrases = titlePhrases; + this.fromYear = fromYear; + // Some APIs do not support, or not fully support, year based search. In these cases, the non applicable parameters are ignored. + this.toYear = toYear; + this.journal = journal; + this.singleYear = singleYear; + } + + public Optional getDefaultField() { + return Optional.ofNullable(defaultField); + } + + public Optional> getAuthors() { + return Optional.ofNullable(authors); + } + + public Optional> getTitlePhrases() { + return Optional.ofNullable(titlePhrases); + } + + public Optional getFromYear() { + return Optional.ofNullable(fromYear); + } + + public Optional getToYear() { + return Optional.ofNullable(toYear); + } + + public Optional getSingleYear() { + return Optional.ofNullable(singleYear); + } + + public Optional getJournal() { + return Optional.ofNullable(journal); + } + + public static ComplexSearchQueryBuilder builder() { + return new ComplexSearchQueryBuilder(); + } + + public static class ComplexSearchQueryBuilder { + private String defaultField; + private List authors; + private List titlePhrases; + private String journal; + private Integer fromYear; + private Integer toYear; + private Integer singleYear; + + public ComplexSearchQueryBuilder() { + } + + public ComplexSearchQueryBuilder defaultField(String defaultField) { + if (Objects.requireNonNull(defaultField).isBlank()) { + throw new IllegalArgumentException("Parameter must not be blank"); + } + this.defaultField = defaultField; + return this; + } + + /** + * Adds author and wraps it in quotes + */ + public ComplexSearchQueryBuilder author(String author) { + if (Objects.requireNonNull(author).isBlank()) { + throw new IllegalArgumentException("Parameter must not be blank"); + } + if (Objects.isNull(authors)) { + this.authors = new ArrayList<>(); + } + // Strip all quotes before wrapping + this.authors.add(String.format("\"%s\"", author.replace("\"", ""))); + return this; + } + + /** + * Adds title phrase and wraps it in quotes + */ + public ComplexSearchQueryBuilder titlePhrase(String titlePhrase) { + if (Objects.requireNonNull(titlePhrase).isBlank()) { + throw new IllegalArgumentException("Parameter must not be blank"); + } + if (Objects.isNull(titlePhrases)) { + this.titlePhrases = new ArrayList<>(); + } + // Strip all quotes before wrapping + this.titlePhrases.add(String.format("\"%s\"", titlePhrase.replace("\"", ""))); + return this; + } + + public ComplexSearchQueryBuilder fromYearAndToYear(Integer fromYear, Integer toYear) { + if (Objects.nonNull(singleYear)) { + throw new IllegalArgumentException("You can not use single year and year range search."); + } + this.fromYear = Objects.requireNonNull(fromYear); + this.toYear = Objects.requireNonNull(toYear); + return this; + } + + public ComplexSearchQueryBuilder singleYear(Integer singleYear) { + if (Objects.nonNull(fromYear) || Objects.nonNull(toYear)) { + throw new IllegalArgumentException("You can not use single year and year range search."); + } + this.singleYear = Objects.requireNonNull(singleYear); + return this; + } + + public ComplexSearchQueryBuilder journal(String journal) { + if (Objects.requireNonNull(journal).isBlank()) { + throw new IllegalArgumentException("Parameter must not be blank"); + } + this.journal = String.format("\"%s\"", journal.replace("\"", "")); + return this; + } + + /** + * Instantiates the AdvancesSearchConfig from the provided Builder parameters + * If all text fields are empty an empty optional is returned + * + * @return AdvancedSearchConfig instance with the fields set to the values defined in the building instance. + * @throws IllegalStateException An IllegalStateException is thrown in case all text search fields are empty. + * See: https://softwareengineering.stackexchange.com/questions/241309/builder-pattern-when-to-fail/241320#241320 + */ + public ComplexSearchQuery build() throws IllegalStateException { + if (textSearchFieldsAndYearFieldsAreEmpty()) { + throw new IllegalStateException("At least one text field has to be set"); + } + return new ComplexSearchQuery(defaultField, authors, titlePhrases, fromYear, toYear, singleYear, journal); + } + + private boolean textSearchFieldsAndYearFieldsAreEmpty() { + return StringUtil.isBlank(defaultField) && this.stringListIsBlank(titlePhrases) && + this.stringListIsBlank(authors) && StringUtil.isBlank(journal) && yearFieldsAreEmpty(); + } + + private boolean yearFieldsAreEmpty() { + return Objects.isNull(singleYear) && Objects.isNull(fromYear) && Objects.isNull(toYear); + } + + private boolean stringListIsBlank(List stringList) { + return Objects.isNull(stringList) || stringList.stream().allMatch(String::isBlank); + } + } +} diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java b/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java index 95ea76e66eb..b0dbf1c5184 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java @@ -8,7 +8,9 @@ import org.jabref.logic.help.HelpFile; import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.ImportCleanup; import org.jabref.logic.importer.SearchBasedFetcher; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.slf4j.Logger; @@ -35,16 +37,20 @@ public CompositeSearchBasedFetcher(Set searchBasedFetchers, @Override public List performSearch(String query) { - return fetchers.stream().flatMap(searchBasedFetcher -> { - try { - return searchBasedFetcher.performSearch(query).stream(); - } catch (FetcherException e) { - LOGGER.warn(String.format("%s API request failed", searchBasedFetcher.getName()), e); - return Stream.empty(); - } - }).parallel() - .limit(maximumNumberOfReturnedResults) - .collect(Collectors.toList()); + ImportCleanup cleanup = new ImportCleanup(BibDatabaseMode.BIBTEX); + // All entries have to be converted into one format, this is necessary for the format conversion + return fetchers.parallelStream() + .flatMap(searchBasedFetcher -> { + try { + return searchBasedFetcher.performSearch(query).stream(); + } catch (FetcherException e) { + LOGGER.warn(String.format("%s API request failed", searchBasedFetcher.getName()), e); + return Stream.empty(); + } + }) + .limit(maximumNumberOfReturnedResults) + .map(cleanup::doPostCleanup) + .collect(Collectors.toList()); } @Override diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java b/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java index a59c02882f0..b22f73f496e 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java @@ -25,7 +25,9 @@ import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.OptionalUtil; +import kong.unirest.json.JSONArray; import kong.unirest.json.JSONException; +import kong.unirest.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,13 +55,12 @@ public Optional getHelpPage() { @Override public Optional performSearchById(String identifier) throws FetcherException { Optional doi = DOI.parse(identifier); - try { if (doi.isPresent()) { Optional fetchedEntry; // mEDRA does not return a parsable bibtex string - if (doi.get().getAgency().isPresent() && "medra".equalsIgnoreCase(doi.get().getAgency().get())) { + if (getAgency(doi.get()).isPresent() && "medra".equalsIgnoreCase(getAgency(doi.get()).get())) { return new Medra().performSearchById(identifier); } @@ -102,4 +103,24 @@ public List performSearch(BibEntry entry) throws FetcherException { } } + /** + * Returns registration agency. Optional.empty() if no agency is found. + * + * @param doi the DOI to be searched + */ + public Optional getAgency(DOI doi) throws IOException { + Optional agency = Optional.empty(); + try { + URLDownload download = getUrlDownload(new URL(DOI.AGENCY_RESOLVER + "/" + doi.getDOI())); + JSONObject response = new JSONArray(download.asString()).getJSONObject(0); + if (response != null) { + agency = Optional.ofNullable(response.optString("RA")); + } + } catch (JSONException e) { + LOGGER.error("Cannot parse agency fetcher repsonse to JSON"); + return Optional.empty(); + } + + return agency; + } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java b/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java index 2154325aa3c..ebfb5f7e3a7 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java @@ -161,6 +161,56 @@ public List performSearch(String query) throws FetcherException { } } + @Override + public List performComplexSearch(ComplexSearchQuery complexSearchQuery) throws FetcherException { + try { + obtainAndModifyCookie(); + List foundEntries = new ArrayList<>(10); + + URIBuilder uriBuilder = new URIBuilder(BASIC_SEARCH_URL); + uriBuilder.addParameter("hl", "en"); + uriBuilder.addParameter("btnG", "Search"); + uriBuilder.addParameter("q", constructComplexQueryString(complexSearchQuery)); + complexSearchQuery.getFromYear().ifPresent(year -> uriBuilder.addParameter("as_ylo", year.toString())); + complexSearchQuery.getToYear().ifPresent(year -> uriBuilder.addParameter("as_yhi", year.toString())); + complexSearchQuery.getSingleYear().ifPresent(year -> { + uriBuilder.addParameter("as_ylo", year.toString()); + uriBuilder.addParameter("as_yhi", year.toString()); + }); + + addHitsFromQuery(foundEntries, uriBuilder.toString()); + + if (foundEntries.size() == 10) { + uriBuilder.addParameter("start", "10"); + addHitsFromQuery(foundEntries, uriBuilder.toString()); + } + + return foundEntries; + } catch (URISyntaxException e) { + throw new FetcherException("Error while fetching from " + getName(), e); + } catch (IOException e) { + // if there are too much requests from the same IP adress google is answering with a 503 and redirecting to a captcha challenge + // The caught IOException looks for example like this: + // java.io.IOException: Server returned HTTP response code: 503 for URL: https://ipv4.google.com/sorry/index?continue=https://scholar.google.com/scholar%3Fhl%3Den%26btnG%3DSearch%26q%3Dbpmn&hl=en&q=CGMSBI0NBDkYuqy9wAUiGQDxp4NLQCWbIEY1HjpH5zFJhv4ANPGdWj0 + if (e.getMessage().contains("Server returned HTTP response code: 503 for URL")) { + throw new FetcherException("Fetching from Google Scholar failed.", + Localization.lang("This might be caused by reaching the traffic limitation of Google Scholar (see 'Help' for details)."), e); + } else { + throw new FetcherException("Error while fetching from " + getName(), e); + } + } + } + + private String constructComplexQueryString(ComplexSearchQuery complexSearchQuery) { + List searchTerms = new ArrayList<>(); + complexSearchQuery.getDefaultField().ifPresent(defaultField -> searchTerms.add(defaultField)); + complexSearchQuery.getAuthors().ifPresent(authors -> authors.forEach(author -> searchTerms.add("author:" + author))); + complexSearchQuery.getTitlePhrases().ifPresent(phrases -> searchTerms.add("allintitle:" + String.join(" ", phrases))); + complexSearchQuery.getJournal().ifPresent(journal -> searchTerms.add("source:" + journal)); + // API automatically ANDs the terms + return String.join(" ", searchTerms); + } + private void addHitsFromQuery(List entryList, String queryURL) throws IOException, FetcherException { String content = new URLDownload(queryURL).asString(); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java b/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java index 92074712488..6c87d9c7b35 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java @@ -6,7 +6,6 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -67,18 +66,10 @@ private static BibEntry parseJsonRespone(JSONObject jsonEntry, Character keyword BibEntry entry = new BibEntry(); switch (jsonEntry.optString("content_type")) { - case "Books": - entry.setType(StandardEntryType.Book); - break; - case "Conferences": - entry.setType(StandardEntryType.InProceedings); - break; - case "Courses": - entry.setType(StandardEntryType.Misc); - break; - default: - entry.setType(StandardEntryType.Article); - break; + case "Books" -> entry.setType(StandardEntryType.Book); + case "Conferences" -> entry.setType(StandardEntryType.InProceedings); + case "Courses" -> entry.setType(StandardEntryType.Misc); + default -> entry.setType(StandardEntryType.Article); } entry.setField(StandardField.ABSTRACT, jsonEntry.optString("abstract")); @@ -115,7 +106,11 @@ private static BibEntry parseJsonRespone(JSONObject jsonEntry, Character keyword entry.setField(StandardField.ISBN, jsonEntry.optString("isbn")); entry.setField(StandardField.ISSN, jsonEntry.optString("issn")); entry.setField(StandardField.ISSUE, jsonEntry.optString("issue")); - entry.addFile(new LinkedFile("", Path.of(jsonEntry.optString("pdf_url")), "PDF")); + try { + entry.addFile(new LinkedFile(new URL(jsonEntry.optString("pdf_url")), "PDF")); + } catch (MalformedURLException e) { + LOGGER.error("Fetched PDF URL String is malformed."); + } entry.setField(StandardField.JOURNALTITLE, jsonEntry.optString("publication_title")); entry.setField(StandardField.DATE, jsonEntry.optString("publication_date")); entry.setField(StandardField.EVENTTITLEADDON, jsonEntry.optString("conference_location")); @@ -236,4 +231,25 @@ public String getName() { public Optional getHelpPage() { return Optional.of(HelpFile.FETCHER_IEEEXPLORE); } + + @Override + public URL getComplexQueryURL(ComplexSearchQuery complexSearchQuery) throws URISyntaxException, MalformedURLException { + URIBuilder uriBuilder = new URIBuilder("https://ieeexploreapi.ieee.org/api/v1/search/articles"); + uriBuilder.addParameter("apikey", API_KEY); + complexSearchQuery.getDefaultField().ifPresent(defaultField -> uriBuilder.addParameter("querytext", defaultField)); + complexSearchQuery.getAuthors().ifPresent(authors -> + uriBuilder.addParameter("author", String.join(" AND ", authors))); + complexSearchQuery.getTitlePhrases().ifPresent(articleTitlePhrases -> + uriBuilder.addParameter("article_title", String.join(" AND ", articleTitlePhrases))); + complexSearchQuery.getJournal().ifPresent(journalTitle -> uriBuilder.addParameter("publication_title", journalTitle)); + complexSearchQuery.getFromYear().map(String::valueOf).ifPresent(year -> uriBuilder.addParameter("start_year", year)); + complexSearchQuery.getToYear().map(String::valueOf).ifPresent(year -> uriBuilder.addParameter("end_year", year)); + complexSearchQuery.getSingleYear().map(String::valueOf).ifPresent(year -> { + uriBuilder.addParameter("start_year", year); + uriBuilder.addParameter("end_year", year); + }); + + URLDownload.bypassSSLVerification(); + return uriBuilder.build().toURL(); + } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/IsbnViaOttoBibFetcher.java b/src/main/java/org/jabref/logic/importer/fetcher/IsbnViaOttoBibFetcher.java index 79081628d6e..28402523e19 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/IsbnViaOttoBibFetcher.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/IsbnViaOttoBibFetcher.java @@ -64,6 +64,7 @@ public Optional performSearchById(String identifier) throws FetcherExc } catch (ParseException e) { throw new FetcherException("An internal parser error occurred", e); } + entry.ifPresent(bibEntry -> doPostCleanup(bibEntry)); return entry; } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/Medra.java b/src/main/java/org/jabref/logic/importer/fetcher/Medra.java index a7f18942888..6e6256f00ae 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/Medra.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/Medra.java @@ -122,5 +122,4 @@ public URL getUrlForIdentifier(String identifier) throws URISyntaxException, Mal public void doPostCleanup(BibEntry entry) { new DoiCleanup().cleanup(entry); } - } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java b/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java index d27ec8998e7..9cdddcfb0fc 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java +++ b/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java @@ -164,6 +164,22 @@ public URL getURLForQuery(String query) throws URISyntaxException, MalformedURLE return uriBuilder.build().toURL(); } + @Override + public URL getComplexQueryURL(ComplexSearchQuery complexSearchQuery) throws URISyntaxException, MalformedURLException, FetcherException { + return getURLForQuery(constructComplexQueryString(complexSearchQuery)); + } + + private String constructComplexQueryString(ComplexSearchQuery complexSearchQuery) { + List searchTerms = new ArrayList<>(); + complexSearchQuery.getAuthors().ifPresent(authors -> authors.forEach(author -> searchTerms.add("name:" + author))); + complexSearchQuery.getTitlePhrases().ifPresent(titlePhrases -> titlePhrases.forEach(title -> searchTerms.add("title:" + title))); + complexSearchQuery.getJournal().ifPresent(journal -> searchTerms.add("journal:" + journal)); + // Since Springer API does not support year range search we ignore formYear and toYear. + complexSearchQuery.getSingleYear().ifPresent(year -> searchTerms.add("year:" + year.toString())); + complexSearchQuery.getDefaultField().ifPresent(defaultField -> searchTerms.add(defaultField)); + return String.join(" AND ", searchTerms); + } + @Override public Parser getParser() { return inputStream -> { diff --git a/src/main/java/org/jabref/logic/util/BuildInfo.java b/src/main/java/org/jabref/logic/util/BuildInfo.java index c6f64a0091c..50fc89bbbd5 100644 --- a/src/main/java/org/jabref/logic/util/BuildInfo.java +++ b/src/main/java/org/jabref/logic/util/BuildInfo.java @@ -5,6 +5,7 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.Locale; +import java.util.Optional; import java.util.Properties; public final class BuildInfo { @@ -48,11 +49,22 @@ public BuildInfo(String path) { authors = properties.getProperty("authors", ""); year = properties.getProperty("year", ""); developers = properties.getProperty("developers", ""); - azureInstrumentationKey = properties.getProperty("azureInstrumentationKey", ""); - springerNatureAPIKey = properties.getProperty("springerNatureAPIKey", ""); - astrophysicsDataSystemAPIKey = properties.getProperty("astrophysicsDataSystemAPIKey", ""); - ieeeAPIKey = properties.getProperty("ieeeAPIKey", ""); + azureInstrumentationKey = BuildInfo.getValue(properties, "azureInstrumentationKey", ""); + springerNatureAPIKey = BuildInfo.getValue(properties, "springerNatureAPIKey", "118d90a519d0fc2a01ee9715400054d4"); + astrophysicsDataSystemAPIKey = BuildInfo.getValue(properties, "AstrophysicsDataSystemAPIKey", "tAhPRKADc6cC26mZUnAoBt3MAjCvKbuCZsB4lI3c"); + ieeeAPIKey = BuildInfo.getValue(properties, "ieeeAPIKey", "5jv3wyt4tt2bwcwv7jjk7pc3"); minRequiredJavaVersion = properties.getProperty("minRequiredJavaVersion", "1.8"); - allowJava9 = "true".equals(properties.getProperty("allowJava9", "")); + allowJava9 = "true".equals(properties.getProperty("allowJava9", "true")); + } + + private static String getValue(Properties properties, String key, String defaultValue) { + String result = Optional.ofNullable(properties.getProperty(key)) + // workaround unprocessed build.properties file --> just remove the reference to some variable used in build.gradle + .map(value -> value.replaceAll("\\$\\{.*\\}", "")) + .orElse(""); + if (!result.equals("")) { + return result; + } + return defaultValue; } } diff --git a/src/main/java/org/jabref/model/cleanup/FieldFormatterCleanup.java b/src/main/java/org/jabref/model/cleanup/FieldFormatterCleanup.java index 61f26317501..1509d1a100e 100644 --- a/src/main/java/org/jabref/model/cleanup/FieldFormatterCleanup.java +++ b/src/main/java/org/jabref/model/cleanup/FieldFormatterCleanup.java @@ -56,6 +56,9 @@ private List cleanupSingleField(Field fieldKey, BibEntry entry) { // Run formatter String newValue = formatter.format(oldValue); + if (formatter instanceof NormalizeNewlinesFormatter) { + newValue = oldValue; + } if (oldValue.equals(newValue)) { return Collections.emptyList(); diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNewlinesFormatter.java b/src/main/java/org/jabref/model/cleanup/NormalizeNewlinesFormatter.java similarity index 92% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNewlinesFormatter.java rename to src/main/java/org/jabref/model/cleanup/NormalizeNewlinesFormatter.java index 37ced90bc91..80c620fcd4e 100644 --- a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNewlinesFormatter.java +++ b/src/main/java/org/jabref/model/cleanup/NormalizeNewlinesFormatter.java @@ -1,10 +1,9 @@ -package org.jabref.logic.formatter.bibtexfields; +package org.jabref.model.cleanup; import java.util.Objects; import org.jabref.logic.l10n.Localization; import org.jabref.logic.util.OS; -import org.jabref.model.cleanup.Formatter; /** * Trim all whitespace characters (defined in java) in the string. diff --git a/src/main/java/org/jabref/model/entry/identifier/DOI.java b/src/main/java/org/jabref/model/entry/identifier/DOI.java index 9d687069831..3a0d9175b7e 100644 --- a/src/main/java/org/jabref/model/entry/identifier/DOI.java +++ b/src/main/java/org/jabref/model/entry/identifier/DOI.java @@ -1,22 +1,16 @@ package org.jabref.model.entry.identifier; -import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; -import java.net.URL; import java.util.Locale; import java.util.Objects; import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.jabref.logic.net.URLDownload; import org.jabref.model.entry.field.Field; import org.jabref.model.entry.field.StandardField; -import kong.unirest.json.JSONArray; -import kong.unirest.json.JSONException; -import kong.unirest.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -260,22 +254,4 @@ public int hashCode() { return Objects.hash(doi.toLowerCase(Locale.ENGLISH)); } - /** - * Returns registration agency. Optional.empty() if no agency is found. - */ - public Optional getAgency() throws IOException { - Optional agency = Optional.empty(); - try { - URLDownload download = new URLDownload(new URL(DOI.AGENCY_RESOLVER + "/" + doi)); - JSONObject response = new JSONArray(download.asString()).getJSONObject(0); - if (response != null) { - agency = Optional.ofNullable(response.optString("RA")); - } - } catch (JSONException e) { - LOGGER.error("Cannot parse agency fetcher repsonse to JSON"); - return Optional.empty(); - } - - return agency; - } } diff --git a/src/main/java/org/jabref/preferences/GeneralPreferences.java b/src/main/java/org/jabref/preferences/GeneralPreferences.java index bcd9c029759..8e80440da53 100644 --- a/src/main/java/org/jabref/preferences/GeneralPreferences.java +++ b/src/main/java/org/jabref/preferences/GeneralPreferences.java @@ -61,7 +61,7 @@ public boolean isCollectTelemetry() { return collectTelemetry; } - public boolean isShowAdvancedHints() { + public boolean shouldShowAdvancedHints() { return showAdvancedHints; } } diff --git a/src/main/java/org/jabref/preferences/JabRefPreferences.java b/src/main/java/org/jabref/preferences/JabRefPreferences.java index 7882c949c7d..b01505755b6 100644 --- a/src/main/java/org/jabref/preferences/JabRefPreferences.java +++ b/src/main/java/org/jabref/preferences/JabRefPreferences.java @@ -53,6 +53,7 @@ import org.jabref.gui.maintable.MainTablePreferences; import org.jabref.gui.mergeentries.MergeEntries; import org.jabref.gui.preferences.ImportTabViewModel; +import org.jabref.gui.search.SearchDisplayMode; import org.jabref.gui.specialfields.SpecialFieldsPreferences; import org.jabref.gui.util.ThemeLoader; import org.jabref.logic.bibtex.FieldContentFormatterPreferences; @@ -217,6 +218,10 @@ public class JabRefPreferences implements PreferencesService { public static final String FILE_BROWSER_COMMAND = "fileBrowserCommand"; public static final String MAIN_FILE_DIRECTORY = "fileDirectory"; + public static final String SEARCH_DISPLAY_MODE = "searchDisplayMode"; + public static final String SEARCH_CASE_SENSITIVE = "caseSensitiveSearch"; + public static final String SEARCH_REG_EXP = "regExpSearch"; + // Currently, it is not possible to specify defaults for specific entry types // When this should be made possible, the code to inspect is org.jabref.gui.preferences.CitationKeyPatternPrefTab.storeSettings() -> LabelPattern keypatterns = getCiteKeyPattern(); etc public static final String DEFAULT_CITATION_KEY_PATTERN = "defaultBibtexKeyPattern"; @@ -428,7 +433,9 @@ private JabRefPreferences() { // like the SearchDisplayMode will never be translated. Localization.setLanguage(getLanguage()); - SearchPreferences.putDefaults(defaults); + defaults.put(SEARCH_DISPLAY_MODE, SearchDisplayMode.FILTER.toString()); + defaults.put(SEARCH_CASE_SENSITIVE, Boolean.FALSE); + defaults.put(SEARCH_REG_EXP, Boolean.FALSE); defaults.put(TEXMAKER_PATH, JabRefDesktop.getNativeDesktop().detectProgramPath("texmaker", "Texmaker")); defaults.put(WIN_EDT_PATH, JabRefDesktop.getNativeDesktop().detectProgramPath("WinEdt", "WinEdt Team\\WinEdt")); @@ -1744,7 +1751,7 @@ public void storeGeneralPreferences(GeneralPreferences preferences) { putBoolean(ALLOW_INTEGER_EDITION_BIBTEX, preferences.isAllowIntegerEditionBibtex()); putBoolean(MEMORY_STICK_MODE, preferences.isMemoryStickMode()); setShouldCollectTelemetry(preferences.isCollectTelemetry()); - putBoolean(SHOW_ADVANCED_HINTS, preferences.isShowAdvancedHints()); + putBoolean(SHOW_ADVANCED_HINTS, preferences.shouldShowAdvancedHints()); } @Override @@ -2356,4 +2363,27 @@ public void storeSpecialFieldsPreferences(SpecialFieldsPreferences specialFields putBoolean(AUTOSYNCSPECIALFIELDSTOKEYWORDS, specialFieldsPreferences.getAutoSyncSpecialFieldsToKeyWords()); putBoolean(SERIALIZESPECIALFIELDS, specialFieldsPreferences.getSerializeSpecialFields()); } + + @Override + public SearchPreferences getSearchPreferences() { + SearchDisplayMode searchDisplayMode; + try { + searchDisplayMode = SearchDisplayMode.valueOf(get(SEARCH_DISPLAY_MODE)); + } catch (IllegalArgumentException ex) { + // Should only occur when the searchmode is set directly via preferences.put and the enum was not used + searchDisplayMode = SearchDisplayMode.valueOf((String) defaults.get(SEARCH_DISPLAY_MODE)); + } + + return new SearchPreferences( + searchDisplayMode, + getBoolean(SEARCH_CASE_SENSITIVE), + getBoolean(SEARCH_REG_EXP)); + } + + @Override + public void storeSearchPreferences(SearchPreferences preferences) { + put(SEARCH_DISPLAY_MODE, Objects.requireNonNull(preferences.getSearchDisplayMode()).toString()); + putBoolean(SEARCH_CASE_SENSITIVE, preferences.isCaseSensitive()); + putBoolean(SEARCH_REG_EXP, preferences.isRegularExpression()); + } } diff --git a/src/main/java/org/jabref/preferences/PreferencesService.java b/src/main/java/org/jabref/preferences/PreferencesService.java index 76b49fa5fc1..4fe3b0be179 100644 --- a/src/main/java/org/jabref/preferences/PreferencesService.java +++ b/src/main/java/org/jabref/preferences/PreferencesService.java @@ -240,4 +240,7 @@ public interface PreferencesService { void storeSpecialFieldsPreferences(SpecialFieldsPreferences specialFieldsPreferences); + SearchPreferences getSearchPreferences(); + + void storeSearchPreferences(SearchPreferences preferences); } diff --git a/src/main/java/org/jabref/preferences/SearchPreferences.java b/src/main/java/org/jabref/preferences/SearchPreferences.java index 9cfc2f9858a..e85594dd7b2 100644 --- a/src/main/java/org/jabref/preferences/SearchPreferences.java +++ b/src/main/java/org/jabref/preferences/SearchPreferences.java @@ -1,103 +1,40 @@ package org.jabref.preferences; -import java.util.Map; -import java.util.Objects; - import org.jabref.gui.search.SearchDisplayMode; public class SearchPreferences { - private static final String SEARCH_DISPLAY_MODE = "searchDisplayMode"; - private static final String SEARCH_CASE_SENSITIVE = "caseSensitiveSearch"; - private static final String SEARCH_REG_EXP = "regExpSearch"; - - private static final String SEARCH_DIALOG_HEIGHT = "searchDialogHeight"; - private static final String SEARCH_DIALOG_WIDTH = "searchDialogWidth"; - private static final String SEARCH_DIALOG_POS_X = "searchDialogPosX"; - private static final String SEARCH_DIALOG_POS_Y = "searchDialogPosY"; - - private final JabRefPreferences preferences; - - public SearchPreferences(JabRefPreferences preferences) { - this.preferences = Objects.requireNonNull(preferences); - } - - public static void putDefaults(Map defaults) { - defaults.put(SEARCH_DISPLAY_MODE, SearchDisplayMode.FILTER.toString()); - defaults.put(SEARCH_CASE_SENSITIVE, Boolean.FALSE); - defaults.put(SEARCH_REG_EXP, Boolean.FALSE); + private final SearchDisplayMode searchDisplayMode; + private final boolean isCaseSensitive; + private final boolean isRegularExpression; - defaults.put(SEARCH_DIALOG_WIDTH, 650); - defaults.put(SEARCH_DIALOG_HEIGHT, 500); - defaults.put(SEARCH_DIALOG_POS_X, 0); - defaults.put(SEARCH_DIALOG_POS_Y, 0); + public SearchPreferences(SearchDisplayMode searchDisplayMode, boolean isCaseSensitive, boolean isRegularExpression) { + this.searchDisplayMode = searchDisplayMode; + this.isCaseSensitive = isCaseSensitive; + this.isRegularExpression = isRegularExpression; } - public SearchDisplayMode getSearchMode() { - try { - return SearchDisplayMode.valueOf(preferences.get(SEARCH_DISPLAY_MODE)); - } catch (IllegalArgumentException ex) { - // Should only occur when the searchmode is set directly via preferences.put and the enum was not used - return SearchDisplayMode.valueOf((String) preferences.defaults.get(SEARCH_DISPLAY_MODE)); - } - } - - public SearchPreferences setSearchMode(SearchDisplayMode searchDisplayMode) { - preferences.put(SEARCH_DISPLAY_MODE, Objects.requireNonNull(searchDisplayMode).toString()); - return this; + public SearchDisplayMode getSearchDisplayMode() { + return searchDisplayMode; } public boolean isCaseSensitive() { - return preferences.getBoolean(SEARCH_CASE_SENSITIVE); - } - - public SearchPreferences setCaseSensitive(boolean isCaseSensitive) { - preferences.putBoolean(SEARCH_CASE_SENSITIVE, isCaseSensitive); - return this; + return isCaseSensitive; } public boolean isRegularExpression() { - return preferences.getBoolean(SEARCH_REG_EXP); - } - - public SearchPreferences setRegularExpression(boolean isRegularExpression) { - preferences.putBoolean(SEARCH_REG_EXP, isRegularExpression); - return this; - } - - public int getSeachDialogWidth() { - return preferences.getInt(SEARCH_DIALOG_WIDTH); - } - - public SearchPreferences setSearchDialogWidth(int width) { - preferences.putInt(SEARCH_DIALOG_WIDTH, width); - return this; - } - - public int getSeachDialogHeight() { - return preferences.getInt(SEARCH_DIALOG_HEIGHT); - } - - public SearchPreferences setSearchDialogHeight(int height) { - preferences.putInt(SEARCH_DIALOG_HEIGHT, height); - return this; - } - - public int getSearchDialogPosX() { - return preferences.getInt(SEARCH_DIALOG_POS_X); + return isRegularExpression; } - public SearchPreferences setSearchDialogPosX(int x) { - preferences.putInt(SEARCH_DIALOG_POS_X, x); - return this; + public SearchPreferences withSearchDisplayMode(SearchDisplayMode newSearchDisplayMode) { + return new SearchPreferences(newSearchDisplayMode, isCaseSensitive, isRegularExpression); } - public int getSearchDialogPosY() { - return preferences.getInt(SEARCH_DIALOG_POS_Y); + public SearchPreferences withCaseSensitive(boolean newCaseSensitive) { + return new SearchPreferences(searchDisplayMode, newCaseSensitive, isRegularExpression); } - public SearchPreferences setSearchDialogPosY(int y) { - preferences.putInt(SEARCH_DIALOG_POS_Y, y); - return this; + public SearchPreferences withRegularExpression(boolean newRegularExpression) { + return new SearchPreferences(searchDisplayMode, isCaseSensitive, newRegularExpression); } } diff --git a/src/main/resources/csl-styles/aerosol-science-and-technology.csl b/src/main/resources/csl-styles/aerosol-science-and-technology.csl index 3e9db45c4ed..505b98ea8c3 100644 --- a/src/main/resources/csl-styles/aerosol-science-and-technology.csl +++ b/src/main/resources/csl-styles/aerosol-science-and-technology.csl @@ -8,12 +8,11 @@ Patrick O'Brien - obrienpat86@gmail.com 0278-6826 - 2017-03-29T13:20:23+00:00 + 2020-07-09T20:19:32+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -88,7 +87,7 @@ - + @@ -97,7 +96,7 @@ - + @@ -111,6 +110,9 @@ + + + @@ -156,7 +158,7 @@ - + @@ -205,7 +207,7 @@ - + diff --git a/src/main/resources/csl-styles/afro-asia.csl b/src/main/resources/csl-styles/afro-asia.csl new file mode 100644 index 00000000000..408dc49a275 --- /dev/null +++ b/src/main/resources/csl-styles/afro-asia.csl @@ -0,0 +1,582 @@ + + diff --git a/src/main/resources/csl-styles/american-marketing-association.csl b/src/main/resources/csl-styles/american-marketing-association.csl index 0422cb7f0d8..eeb611cbc35 100644 --- a/src/main/resources/csl-styles/american-marketing-association.csl +++ b/src/main/resources/csl-styles/american-marketing-association.csl @@ -5,8 +5,8 @@ AMA http://www.zotero.org/styles/american-marketing-association - - + + Sebastian Karcher @@ -14,11 +14,14 @@ Rintze Zelle http://twitter.com/rintzezelle + + Patrick O'Brien +

AMA Reference List Style published by the American Marketing Association - 2014-10-17T21:46:29+00:00 + 2020-07-27T14:58:51+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -189,7 +192,7 @@ - + diff --git a/src/main/resources/csl-styles/american-society-for-microbiology.csl b/src/main/resources/csl-styles/american-society-for-microbiology.csl index fa2d726ed57..c132f6c4c64 100644 --- a/src/main/resources/csl-styles/american-society-for-microbiology.csl +++ b/src/main/resources/csl-styles/american-society-for-microbiology.csl @@ -27,7 +27,7 @@ Style for all American Society for Microbiology journals. - 2015-03-13T23:14:05+00:00 + 2020-07-27T18:54:54+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -105,10 +105,17 @@ - - - - + + + + + + + + + + + diff --git a/src/main/resources/csl-styles/apa-annotated-bibliography.csl b/src/main/resources/csl-styles/apa-annotated-bibliography.csl index dcdfbfa6391..fc8408bc01a 100644 --- a/src/main/resources/csl-styles/apa-annotated-bibliography.csl +++ b/src/main/resources/csl-styles/apa-annotated-bibliography.csl @@ -190,14 +190,14 @@ - + epistula communicationis personalis - + diff --git a/src/main/resources/csl-styles/apa-cv.csl b/src/main/resources/csl-styles/apa-cv.csl index ede70ee0ebe..a04e8b77942 100644 --- a/src/main/resources/csl-styles/apa-cv.csl +++ b/src/main/resources/csl-styles/apa-cv.csl @@ -190,14 +190,14 @@ - + epistula communicationis personalis - + diff --git a/src/main/resources/csl-styles/apa-no-ampersand.csl b/src/main/resources/csl-styles/apa-no-ampersand.csl index 458f4c03bd7..4743fc42f36 100644 --- a/src/main/resources/csl-styles/apa-no-ampersand.csl +++ b/src/main/resources/csl-styles/apa-no-ampersand.csl @@ -190,14 +190,14 @@ - + epistula communicationis personalis - + diff --git a/src/main/resources/csl-styles/apa-single-spaced.csl b/src/main/resources/csl-styles/apa-single-spaced.csl index d0bc51e6b17..0b5a864b3aa 100644 --- a/src/main/resources/csl-styles/apa-single-spaced.csl +++ b/src/main/resources/csl-styles/apa-single-spaced.csl @@ -190,14 +190,14 @@ - + epistula communicationis personalis - + diff --git a/src/main/resources/csl-styles/apa-with-abstract.csl b/src/main/resources/csl-styles/apa-with-abstract.csl index 95ce313693c..491f4463c81 100644 --- a/src/main/resources/csl-styles/apa-with-abstract.csl +++ b/src/main/resources/csl-styles/apa-with-abstract.csl @@ -190,14 +190,14 @@ - + epistula communicationis personalis - + diff --git a/src/main/resources/csl-styles/apa.csl b/src/main/resources/csl-styles/apa.csl index f37038d59d4..a5841ca76f9 100644 --- a/src/main/resources/csl-styles/apa.csl +++ b/src/main/resources/csl-styles/apa.csl @@ -190,14 +190,14 @@ - + epistula communicationis personalis - + diff --git a/src/main/resources/csl-styles/australian-guide-to-legal-citation.csl b/src/main/resources/csl-styles/australian-guide-to-legal-citation.csl index d496f687490..fd268cb2eae 100644 --- a/src/main/resources/csl-styles/australian-guide-to-legal-citation.csl +++ b/src/main/resources/csl-styles/australian-guide-to-legal-citation.csl @@ -14,7 +14,7 @@ Support for the development of the CSL style was provided by the Faculty of Law, University of Technology Sydney. The AGLC is published by the University of Melbourne Faculty of Law. - 2018-09-03T17:14:48+00:00 + 2020-07-09T03:49:56+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -398,17 +398,14 @@ - + + - - - - - + diff --git a/src/main/resources/csl-styles/chinese-medical-journal.csl b/src/main/resources/csl-styles/chinese-medical-journal.csl new file mode 100644 index 00000000000..76685f5cab3 --- /dev/null +++ b/src/main/resources/csl-styles/chinese-medical-journal.csl @@ -0,0 +1,212 @@ + + diff --git a/src/main/resources/csl-styles/collection-du-centre-jean-berard.csl b/src/main/resources/csl-styles/collection-du-centre-jean-berard.csl index 6b3c1a50394..94663e9accd 100644 --- a/src/main/resources/csl-styles/collection-du-centre-jean-berard.csl +++ b/src/main/resources/csl-styles/collection-du-centre-jean-berard.csl @@ -1,5 +1,5 @@ - diff --git a/src/main/resources/csl-styles/dependent/chinese-medical-journal.csl b/src/main/resources/csl-styles/dependent/chinese-medical-journal.csl deleted file mode 100644 index 813b307d931..00000000000 --- a/src/main/resources/csl-styles/dependent/chinese-medical-journal.csl +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/src/main/resources/csl-styles/dependent/health-services-research.csl b/src/main/resources/csl-styles/dependent/health-services-research.csl new file mode 100644 index 00000000000..6098f69e5bc --- /dev/null +++ b/src/main/resources/csl-styles/dependent/health-services-research.csl @@ -0,0 +1,18 @@ + + diff --git a/src/main/resources/csl-styles/dependent/medical-physics.csl b/src/main/resources/csl-styles/dependent/medical-physics.csl new file mode 100644 index 00000000000..6aabd4e5e81 --- /dev/null +++ b/src/main/resources/csl-styles/dependent/medical-physics.csl @@ -0,0 +1,17 @@ + + diff --git a/src/main/resources/csl-styles/dependent/prifysgol-caerdydd-harvard.csl b/src/main/resources/csl-styles/dependent/prifysgol-caerdydd-harvard.csl new file mode 100644 index 00000000000..116ae9e5759 --- /dev/null +++ b/src/main/resources/csl-styles/dependent/prifysgol-caerdydd-harvard.csl @@ -0,0 +1,24 @@ + + diff --git a/src/main/resources/csl-styles/deutsche-gesellschaft-fur-psychologie.csl b/src/main/resources/csl-styles/deutsche-gesellschaft-fur-psychologie.csl index 8ead25b4ba0..54316874276 100644 --- a/src/main/resources/csl-styles/deutsche-gesellschaft-fur-psychologie.csl +++ b/src/main/resources/csl-styles/deutsche-gesellschaft-fur-psychologie.csl @@ -123,7 +123,7 @@ - + diff --git a/src/main/resources/csl-styles/epidemiology-and-infection.csl b/src/main/resources/csl-styles/epidemiology-and-infection.csl index 68ca2a9d7d7..83eac10b9ee 100644 --- a/src/main/resources/csl-styles/epidemiology-and-infection.csl +++ b/src/main/resources/csl-styles/epidemiology-and-infection.csl @@ -5,7 +5,7 @@ http://www.zotero.org/styles/epidemiology-and-infection - + Patrick O'Brien obrienpat86@gmail.com diff --git a/src/main/resources/csl-styles/geographische-zeitschrift.csl b/src/main/resources/csl-styles/geographische-zeitschrift.csl new file mode 100644 index 00000000000..4fd7284821e --- /dev/null +++ b/src/main/resources/csl-styles/geographische-zeitschrift.csl @@ -0,0 +1,289 @@ + + diff --git a/src/main/resources/csl-styles/gewerblicher-rechtsschutz-und-urheberrecht.csl b/src/main/resources/csl-styles/gewerblicher-rechtsschutz-und-urheberrecht.csl index 60d4f380e85..f672fb47a0c 100644 --- a/src/main/resources/csl-styles/gewerblicher-rechtsschutz-und-urheberrecht.csl +++ b/src/main/resources/csl-styles/gewerblicher-rechtsschutz-und-urheberrecht.csl @@ -126,7 +126,7 @@ - + @@ -159,7 +159,7 @@ - + diff --git a/src/main/resources/csl-styles/harvard-institut-fur-praxisforschung-de.csl b/src/main/resources/csl-styles/harvard-institut-fur-praxisforschung-de.csl index 49b125634f7..4addff2d2d3 100644 --- a/src/main/resources/csl-styles/harvard-institut-fur-praxisforschung-de.csl +++ b/src/main/resources/csl-styles/harvard-institut-fur-praxisforschung-de.csl @@ -13,27 +13,28 @@ narrow no break space: uni202F /   - but this is not supported widely! em dash: — --> - + Saskia Mestern saskia.mestern@gmail.com - + A Harvard author-date style variant as used for Political Science and others, mostly German. The in-text citation style is changed to [author year: page], avoiding the abbreviation for pages (S.) and changing the delimiters. - 2012-09-27T22:06:38+00:00 + 2020-07-13T09:24:45+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License o. A. o. J. + Jg. - + @@ -65,25 +66,17 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -92,7 +85,7 @@ - + @@ -101,7 +94,6 @@ - @@ -119,20 +111,27 @@ + + - - - + + + + + + @@ -163,9 +162,9 @@ - - - + + + @@ -176,7 +175,7 @@ - + @@ -215,14 +214,14 @@ - + - + - + @@ -233,7 +232,6 @@ - diff --git a/src/main/resources/csl-styles/health-services-research.csl b/src/main/resources/csl-styles/health-services-research.csl deleted file mode 100644 index 10b4ff5cfc6..00000000000 --- a/src/main/resources/csl-styles/health-services-research.csl +++ /dev/null @@ -1,233 +0,0 @@ - - diff --git a/src/main/resources/csl-styles/instituto-de-investigaciones-sobre-la-universidad-y-la-educacion-moderno.csl b/src/main/resources/csl-styles/instituto-de-investigaciones-sobre-la-universidad-y-la-educacion-moderno.csl index 59efddef356..18fbb1c1588 100644 --- a/src/main/resources/csl-styles/instituto-de-investigaciones-sobre-la-universidad-y-la-educacion-moderno.csl +++ b/src/main/resources/csl-styles/instituto-de-investigaciones-sobre-la-universidad-y-la-educacion-moderno.csl @@ -377,7 +377,7 @@ - + @@ -390,7 +390,7 @@ - + diff --git a/src/main/resources/csl-styles/journal-of-applied-clinical-medical-physics.csl b/src/main/resources/csl-styles/journal-of-applied-clinical-medical-physics.csl index 857fc07b1ee..889e3cbef73 100644 --- a/src/main/resources/csl-styles/journal-of-applied-clinical-medical-physics.csl +++ b/src/main/resources/csl-styles/journal-of-applied-clinical-medical-physics.csl @@ -5,7 +5,7 @@ Journal of Applied Clinical Medical Physics http://www.zotero.org/styles/journal-of-applied-clinical-medical-physics - + Stefano Peca diff --git a/src/main/resources/csl-styles/journal-of-sports-science-and-medicine.csl b/src/main/resources/csl-styles/journal-of-sports-science-and-medicine.csl new file mode 100644 index 00000000000..a1178b9618b --- /dev/null +++ b/src/main/resources/csl-styles/journal-of-sports-science-and-medicine.csl @@ -0,0 +1,188 @@ + + diff --git a/src/main/resources/csl-styles/journal-of-the-american-ceramic-society.csl b/src/main/resources/csl-styles/journal-of-the-american-ceramic-society.csl index 56f5053d00d..c14ca1571f9 100644 --- a/src/main/resources/csl-styles/journal-of-the-american-ceramic-society.csl +++ b/src/main/resources/csl-styles/journal-of-the-american-ceramic-society.csl @@ -4,7 +4,7 @@ Journal of the American Ceramic Society http://www.zotero.org/styles/journal-of-the-american-ceramic-society - + Sebastian Karcher diff --git a/src/main/resources/csl-styles/journal-of-the-royal-society-of-western-australia.csl b/src/main/resources/csl-styles/journal-of-the-royal-society-of-western-australia.csl index c4154ff82b5..4cf5e8fd74b 100644 --- a/src/main/resources/csl-styles/journal-of-the-royal-society-of-western-australia.csl +++ b/src/main/resources/csl-styles/journal-of-the-royal-society-of-western-australia.csl @@ -202,6 +202,7 @@ + diff --git a/src/main/resources/csl-styles/karstenia.csl b/src/main/resources/csl-styles/karstenia.csl new file mode 100644 index 00000000000..3b3998d5e1d --- /dev/null +++ b/src/main/resources/csl-styles/karstenia.csl @@ -0,0 +1,163 @@ + + diff --git a/src/main/resources/csl-styles/kunstakademie-munster.csl b/src/main/resources/csl-styles/kunstakademie-munster.csl new file mode 100644 index 00000000000..58f6c92299d --- /dev/null +++ b/src/main/resources/csl-styles/kunstakademie-munster.csl @@ -0,0 +1,259 @@ + + diff --git a/src/main/resources/csl-styles/lancaster-university-harvard.csl b/src/main/resources/csl-styles/lancaster-university-harvard.csl index 3c597b4306a..4d2dfd7cd93 100644 --- a/src/main/resources/csl-styles/lancaster-university-harvard.csl +++ b/src/main/resources/csl-styles/lancaster-university-harvard.csl @@ -6,13 +6,14 @@ + Andy Hartland The Harvard author-date style - adapted for Lancaster University - 2020-01-19T19:35:00+00:00 + 2020-07-22T08:41:45+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -436,7 +437,7 @@ - + diff --git a/src/main/resources/csl-styles/medical-physics.csl b/src/main/resources/csl-styles/medical-physics.csl deleted file mode 100644 index 0013d550771..00000000000 --- a/src/main/resources/csl-styles/medical-physics.csl +++ /dev/null @@ -1,151 +0,0 @@ - - diff --git a/src/main/resources/csl-styles/nejm-catalyst-innovations-in-care-delivery.csl b/src/main/resources/csl-styles/nejm-catalyst-innovations-in-care-delivery.csl new file mode 100644 index 00000000000..e463ec17fe5 --- /dev/null +++ b/src/main/resources/csl-styles/nejm-catalyst-innovations-in-care-delivery.csl @@ -0,0 +1,176 @@ + + diff --git a/src/main/resources/csl-styles/society-of-biblical-literature-author-date.csl b/src/main/resources/csl-styles/society-of-biblical-literature-author-date.csl index 86b33d5a11a..14a5d8efcf2 100644 --- a/src/main/resources/csl-styles/society-of-biblical-literature-author-date.csl +++ b/src/main/resources/csl-styles/society-of-biblical-literature-author-date.csl @@ -30,7 +30,7 @@ - + @@ -481,7 +481,7 @@ - + diff --git a/src/main/resources/csl-styles/society-of-biblical-literature-fullnote-bibliography.csl b/src/main/resources/csl-styles/society-of-biblical-literature-fullnote-bibliography.csl index 9b042ac0548..339f85a8bbf 100644 --- a/src/main/resources/csl-styles/society-of-biblical-literature-fullnote-bibliography.csl +++ b/src/main/resources/csl-styles/society-of-biblical-literature-fullnote-bibliography.csl @@ -48,7 +48,7 @@ - + diff --git a/src/main/resources/csl-styles/thieme-german.csl b/src/main/resources/csl-styles/thieme-german.csl index c1a0fa6ee7d..c2b3dbdd07e 100644 --- a/src/main/resources/csl-styles/thieme-german.csl +++ b/src/main/resources/csl-styles/thieme-german.csl @@ -1,6 +1,6 @@ - diff --git a/src/main/resources/csl-styles/universidade-estadual-de-alagoas-abnt.csl b/src/main/resources/csl-styles/universidade-estadual-de-alagoas-abnt.csl new file mode 100644 index 00000000000..1789d030c17 --- /dev/null +++ b/src/main/resources/csl-styles/universidade-estadual-de-alagoas-abnt.csl @@ -0,0 +1,721 @@ + + diff --git a/src/main/resources/csl-styles/universidade-federal-de-sergipe-departamento-de-engenharia-de-producao-abnt.csl b/src/main/resources/csl-styles/universidade-federal-de-sergipe-departamento-de-engenharia-de-producao-abnt.csl new file mode 100644 index 00000000000..69e9a2d1c40 --- /dev/null +++ b/src/main/resources/csl-styles/universidade-federal-de-sergipe-departamento-de-engenharia-de-producao-abnt.csl @@ -0,0 +1,745 @@ + + diff --git a/src/main/resources/csl-styles/universita-cattolica-del-sacro-cuore.csl b/src/main/resources/csl-styles/universita-cattolica-del-sacro-cuore.csl index 312ca152259..14df6b9c24a 100644 --- a/src/main/resources/csl-styles/universita-cattolica-del-sacro-cuore.csl +++ b/src/main/resources/csl-styles/universita-cattolica-del-sacro-cuore.csl @@ -544,7 +544,7 @@ - + diff --git a/src/main/resources/csl-styles/universite-de-montreal-apa.csl b/src/main/resources/csl-styles/universite-de-montreal-apa.csl index d1872670ef2..8c2f5654e0b 100644 --- a/src/main/resources/csl-styles/universite-de-montreal-apa.csl +++ b/src/main/resources/csl-styles/universite-de-montreal-apa.csl @@ -25,8 +25,8 @@ - Adaptation en français canadien des normes de citation de l'APA (6e édition) basée sur le guide des Bibliothèques de l'Université de Montréal. - 2019-08-14T05:14:01+00:00 + Adaptation en français canadien des normes de citation de l'APA (7e édition) basée sur le guide des Bibliothèques de l'Université de Montréal. + 2020-07-10T04:04:36+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -64,24 +64,55 @@ - - - - + + @@ -94,7 +125,7 @@ - + @@ -110,37 +141,46 @@ - - - + + - - - - - + - + - + + + + + + + + + + + + + + + @@ -150,13 +190,12 @@ - - - + + + - @@ -174,7 +213,7 @@ - + @@ -195,11 +234,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -209,34 +276,20 @@ - - - - - - - + - + - - - - - - - - - - - - + + + + - + @@ -246,8 +299,12 @@ - - + + + + + + @@ -273,9 +330,9 @@ - + - + @@ -348,7 +405,6 @@ - @@ -401,21 +457,53 @@ - + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -440,10 +528,17 @@ - + + + + + + + + @@ -482,7 +577,7 @@ - + @@ -495,7 +590,7 @@ - + @@ -503,12 +598,35 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/csl-styles/zeitschrift-fur-zahnarztliche-implantologie.csl b/src/main/resources/csl-styles/zeitschrift-fur-zahnarztliche-implantologie.csl new file mode 100644 index 00000000000..1509ea92e6b --- /dev/null +++ b/src/main/resources/csl-styles/zeitschrift-fur-zahnarztliche-implantologie.csl @@ -0,0 +1,161 @@ + + diff --git a/src/main/resources/l10n/JabRef_da.properties b/src/main/resources/l10n/JabRef_da.properties index c9be18e6a8a..e9fe5629f89 100644 --- a/src/main/resources/l10n/JabRef_da.properties +++ b/src/main/resources/l10n/JabRef_da.properties @@ -65,11 +65,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Tilføjede %0 poster til gruppen "%1". Assigned\ 1\ entry\ to\ group\ "%0".=Tilføjede 1 post til gruppen "%0". -Autogenerate\ BibTeX\ keys=Autogenerer BibTeX-nøgler -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Autolink filer med navn som starter med BibTeX-nøglen -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Autolink kun filer med navn som svarer til BibTeX-nøglen Automatically\ create\ groups=Generer grupper automatisk @@ -137,7 +134,6 @@ Copied=Kopierede Copy=Kopier -Copy\ BibTeX\ key=Kopier BibTeX-nøgle Copy\ to\ clipboard=Kopier til udklipsholder @@ -347,15 +343,12 @@ General=Generelt Generate=Generer -Generate\ BibTeX\ key=Generer BibTeX-nøgle Generate\ keys=Generer nøgler Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Generer nøgler før gemning (for poster uden nøgle) -Generated\ BibTeX\ key\ for=Genererede BibTeX-nøgle for -Generating\ BibTeX\ key\ for=Genererer BibTeX-nøgle for Gray\ out\ non-hits=Skraver ikke-træffere @@ -409,7 +402,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Uafhængig gruppe\: Vis kun denne gruppes poster -Invalid\ BibTeX\ key=Ugyldig BibTeX-nøgle Invalid\ date\ format=Ugyldigt datoformat @@ -756,7 +748,6 @@ The\ search\ is\ case\ sensitive.=Søgningen skelner mellem store og små bogsta There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Der findes mulige dubletter (mærket med et ikon) som ikke er blevet håndteret. Fortsæt? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Denne operation kræver, at alle valgte poster har definerede BibTeX-nøgler. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Denne operation kræver, at en eller flere poster er valgt. @@ -838,7 +829,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Library-beskyttelse Unable\ to\ save\ library=Kan ikke gemme library -BibTeX\ key\ generator=BibTeX-nøglegenerator Unable\ to\ open\ link.=Kan ikke åbne link. MIME\ type=MIME-type @@ -877,9 +867,7 @@ search\ expression=søge-udtry Optional\ fields\ 2=Valgfri felter 2 Waiting\ for\ save\ operation\ to\ finish=Venter på gemme-operation -Find\ and\ remove\ duplicate\ BibTeX\ keys=Find og fjern dublederede BibTeX-nøgler Expected\ syntax\ for\ --fetch\='\:'=Forventet syntaks for --fetch\='\:' -Duplicate\ BibTeX\ key=Dubleret BibTeX-nøgle General\ file\ directory=Generelt filbibliotek @@ -925,7 +913,6 @@ Connected\ to\ document=Forbundet til dokument Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Indsæt en reference uden tekst (referencen optræder i referencelisten) Cite\ selected\ entries\ with\ extra\ information=Referer valgte poster med ekstra information Ensure\ that\ the\ bibliography\ is\ up-to-date=Sørg for at bibliografien er opdateret -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Dit OpenOffice/LibreOffice-dokument refererer til BibTeX-nøglen '%0', som ikke kunne findes i din aktuelle library. Unable\ to\ synchronize\ bibliography=Kunne ikke synkronisere bibliografi Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Kombiner referencepar der kun er adskilt med mellemrum Autodetection\ failed=Autodetektion fejlede @@ -988,15 +975,12 @@ Path\ to\ %0=Sti til %0 Could\ not\ connect\ to\ %0=Kunne ikke forbinde til %0 -Copy\ \\cite{BibTeX\ key}=Kopier \\cite{BibTeX-nøgler} -Copy\ BibTeX\ key\ and\ title=Kopier BibTeX-nøgle og titel Invalid\ DOI\:\ '%0'.=Ugyldig DOI\: '%0'. Focus\ entry\ table=Fokus på hovedtabel Import\ into\ current\ library=Importer til den aktive library Import\ into\ new\ library=Importer til ny library -Resolve\ duplicate\ BibTeX\ keys=Udred dublerede BibTeX-nøgler Save\ all=Gem alle @@ -1104,3 +1088,5 @@ Default\ pattern=Standardmønster + + diff --git a/src/main/resources/l10n/JabRef_de.properties b/src/main/resources/l10n/JabRef_de.properties index 6ce38c1a3e5..751e342bbd7 100644 --- a/src/main/resources/l10n/JabRef_de.properties +++ b/src/main/resources/l10n/JabRef_de.properties @@ -73,11 +73,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 Einträge zu Gruppe "%1" hinzugefügt Assigned\ 1\ entry\ to\ group\ "%0".=1 Eintrag zu Gruppe "%0" hinzugefügt. -Autogenerate\ BibTeX\ keys=BibTeX-Keys automatisch generieren -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Dateien, deren Namen mit dem BibTeX-Key beginnen, automatisch verlinken -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Nur Dateien verlinken, deren Namen dem BibTeX-Key entsprechen Automatically\ create\ groups=Gruppen automatisch erstellen @@ -155,7 +152,6 @@ Copied=Kopiert Copy=Kopieren -Copy\ BibTeX\ key=BibTeX-Key kopieren Copy\ to\ clipboard=In die Zwischenablage kopieren @@ -385,15 +381,12 @@ General\ Fields=Allgemeine Felder Generate=Erzeugen -Generate\ BibTeX\ key=BibTeX-Key generieren Generate\ keys=Erstelle Key Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Keys vor dem Speichern erstellen (für Einräge ohne Key) -Generated\ BibTeX\ key\ for=BibTeX-Key erzeugt für -Generating\ BibTeX\ key\ for=Erzeuge BibTeX-Key für Get\ fulltext=Hole Volltext Gray\ out\ non-hits=Nicht-Treffer grau einfärben @@ -456,7 +449,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Unabhängige Gruppen\: Nur die Einträge dieser Gruppe anzeigen I\ Agree=Ich stimme zu -Invalid\ BibTeX\ key=Ungültiger BibTeX-Key Invalid\ date\ format=Ungültiges Datumsformat @@ -859,7 +851,6 @@ The\ search\ is\ case\ sensitive.=Groß-/Kleinschreibung wird unterschieden. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Es gibt mögliche Duplikate (markiert mit einem Icon), die nicht geklärt werden konnten. Fortfahren? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Für diesen Vorgang müssen alle ausgewählen Einträge einen BibTeX-Key haben. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Für diesen Vorgang muss mindestens ein Eintrag ausgewählt sein. @@ -957,7 +948,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Bibliotheksschutz Unable\ to\ save\ library=Speichern der Bibliothek nicht möglich -BibTeX\ key\ generator=BibTeX-Key-Generator Unable\ to\ open\ link.=Öffnen des Links nicht möglich MIME\ type=MIME-Typ @@ -965,9 +955,6 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Fetcher ausführen When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Beim Öffnen des Dateilinks die passende Datei suchen, falls keine verlinkt ist -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Zeile %0\: Beschädigter BibTeX-Key %1 gefunden. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Zeile %0\: Beschädigter BibTeX-Key %1 gefunden (enthält Leerzeichen). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Zeile %0\: Beschädigter BibTeX-Key %1 gefunden (Komma fehlt). No\ full\ text\ document\ found=Kein Volltext-Dokument gefunden Download\ from\ URL=Download von URL Rename\ field=Feld umbenennen @@ -1010,9 +997,7 @@ Optional\ fields\ 2=Optionale Felder 2 Waiting\ for\ save\ operation\ to\ finish=Das Ende des Speichervorgangs wird abgewartet Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=Warte auf das Beenden von Hintergrundprozessen. Trotzdem beenden? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Finde und entferne doppelte BibTeX-Keys Expected\ syntax\ for\ --fetch\='\:'=Erwartete Syntax für --fetch\='\:' -Duplicate\ BibTeX\ key=Doppelter BibTeX-Key General\ file\ directory=Standard-Dateiverzeichnis @@ -1067,7 +1052,6 @@ Connected\ to\ document=Verbindung zum Dokument hergestellt Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Literaturverweis ohne Text einfügen (der Eintrag wird in der Literaturliste erscheinen) Cite\ selected\ entries\ with\ extra\ information=Ausgewählte Einträge mit Zusatzinformation zitieren Ensure\ that\ the\ bibliography\ is\ up-to-date=Sicherstellen, dass die Bibliographie aktuell ist -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Ihr OpenOffice/LibreOffice-Dokument verweist auf den BibTeX-Key '0%', der in der aktuellen Bibliothek nicht gefunden wurde. Unable\ to\ synchronize\ bibliography=Synchronisieren der Bibliographie fehlgeschlagen Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Verbinde Paare von Literaturverweisen, die nur durch Leerzeichen voneinander getrennt sind Autodetection\ failed=Automatische Erkennung fehlgeschlagen @@ -1146,7 +1130,6 @@ Searching\ file\ system...=Dateisystem wird durchsucht... Select\ directory=Verzeichnis wählen Select\ files=Dateien wählen BibTeX\ entry\ creation=Erstellung eines BibTeX-Eintrags -BibTeX\ key\ patterns=BibTeX-Key-Muster Clear\ priority=Priorität aufheben Clear\ rank=Bewertung aufheben Enable\ special\ fields=Spezielle Felder aktivieren @@ -1296,7 +1279,6 @@ Select\ export\ format=Export-Format wählen Return\ to\ JabRef=Zurück zu JabRef Could\ not\ connect\ to\ %0=Verbindung zu %0 fehlgeschlagen Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Warnung\: %0 von %1 Einträgen haben keinen Titel. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Warnung\: %0 von %1 Einträgen haben keinen BibTeX-Key. Really\ delete\ the\ selected\ entry?=Ausgewählten Eintrag wirklich löschen? Really\ delete\ the\ %0\ selected\ entries?=Wirklich alle %0 ausgewählten Einträge löschen? Keep\ merged\ entry\ only=Nur den zusammengeführten Eintrag beibehalten @@ -1310,8 +1292,6 @@ Discard\ changes=Änderungen verwerfen Library\ '%0'\ has\ changed.=Die Bibliothek '%0' wurde geändert. Print\ entry\ preview=Eintragsvorschau drucken Copy\ title=Kopiere Titel -Copy\ \\cite{BibTeX\ key}=\\cite{BibTeX key} kopieren -Copy\ BibTeX\ key\ and\ title=BibTeX-Key und Titel kopieren Invalid\ DOI\:\ '%0'.=Ungültiger DOI\: '%0'. Same\ DOI\ used\ in\ multiple\ entries=Gleiche DOI wird in mehreren Einträgen benutzt should\ start\ with\ a\ name=sollte mit einem Name beginnen @@ -1355,7 +1335,6 @@ New\ unpublished=Neu unveröffentlicht Preamble\ editor,\ store\ changes=Präambeleditor, speichere Änderungen Push\ to\ application=In Applikation einfügen Refresh\ OpenOffice/LibreOffice=Aktualisiere OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Doppelte BibTeX-Keys beseitigen Save\ all=Alle speichern String\ dialog,\ add\ string=Stringdialog, String hinzufügen String\ dialog,\ remove\ string=Stringdialog, String entfernen @@ -1364,7 +1343,6 @@ Unabbreviate=Abkürzung aufheben should\ contain\ a\ protocol=sollte ein Protokoll beinhalten Copy\ preview=Kopiere Vorschau Automatically\ setting\ file\ links=Dateilinks werden automatisch gesetzt -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Regeneriere BibTeX-Keys anhand ihrer Metadaten Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Regeneriere alle BibTeX-Keys für Einträge in einer BibTeX Datei Show\ debug\ level\ messages=Zeige Debug Level Meldungen Default\ bibliography\ mode=Standard Bibliographiemodus @@ -1396,7 +1374,6 @@ Name\ cannot\ be\ empty=Name darf nicht leer sein Display\ keywords\ appearing\ in\ ALL\ entries=Zeige Schlüsselwörter die in ALLEN Einträgen vorkommen Display\ keywords\ appearing\ in\ ANY\ entry=Zeige Schlüsselwörter die in mind. EINEM Eintrag vorkommen None\ of\ the\ selected\ entries\ have\ titles.=Keiner der selektierten Einträge besitzt einen Titel. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Keiner der selektieren Einträge besitzt BibTeX-Keys. Unabbreviate\ journal\ names=Abkürzung der Zeitschriftentitel aufheben Unabbreviating...=Hebe Abkürzungen auf... Usage=Bedienung @@ -1535,7 +1512,6 @@ incorrect\ control\ digit=Falsche Prüfziffer incorrect\ format=Falsches Format Copied\ version\ to\ clipboard=Version in die Zwischenablage kopiert -BibTeX\ key=BibTeX-Key Message=Nachricht @@ -1655,7 +1631,6 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Unter Benutzung der "Rückgängig"-Funktion kann der Eintrag wiederhergestellt werden. You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Eine Datenbankverbindung mit den eingegebenen Verbindungsinformationen besteht bereits. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Kann keine Einträge ohne BibTeX-Key zitieren. Keys jetzt generieren? New\ technical\ report=Neuer technischer Bericht %0\ file=%0-Datei @@ -1675,7 +1650,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Die However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Dennoch wurde eine neue Datenbank neben der alten Datenbank erzeugt. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Öffnet eine Seite auf der die aktuellste Entwicklungsversion heruntergeladen werden kann See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Beschreibt was in den verschiedenen JabRef-Versionen geändert wurde -Referenced\ BibTeX\ key\ does\ not\ exist=Referenzierter BibTeX-Key existiert nicht Full\ text\ document\ for\ entry\ %0\ already\ linked.=Volltextdokument für Eintrag %0 bereits verknüpft. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Download des Volltextdokuments für Eintrag %0 komplett Download\ full\ text\ documents=Volltext-Dokumente herunterladen @@ -1712,7 +1686,6 @@ should\ be\ normalized=Sollte normalisiert sein Empty\ search\ ID=Leere Such-ID The\ given\ search\ ID\ was\ empty.=Die übergebene Such-ID ist leer. -Copy\ BibTeX\ key\ and\ link=BibTeX-Key und Link kopieren biblatex\ field\ only=Nur ein biblatex-Feld Error\ while\ generating\ fetch\ URL=Fehler beim generieren der Abruf URL @@ -1733,7 +1706,6 @@ File\ directory\ pattern=Dateiverzeichnis-Pattern Update\ with\ bibliographic\ information\ from\ the\ web=Aktualisiere mit bibliographischen Information aus dem Internet Could\ not\ find\ any\ bibliographic\ information.=Keine bibliographischen Informationen gefunden. -BibTeX\ key\ deviates\ from\ generated\ key=BibTeX-Key weicht vom generierten Key ab DOI\ %0\ is\ invalid=DOI %0 ist ungültig Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Wählen Sie alle angepassten Eintragstypen, die in den lokalen Einstellungen gespeichert werden sollen\: @@ -1809,7 +1781,6 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=Eintrag von %0 konnte nicht analysiert Invalid\ identifier\:\ '%0'.=Ungültige Kennung\: "%0". This\ paper\ has\ been\ withdrawn.=Dieses Paper wurde zurückgezogen. Finished\ writing\ XMP\ metadata.=Schreiben von XMP Metadaten abgeschlossen. -empty\ BibTeX\ key=Leerer BibTeX-Key Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Ihre Java Laufzeitumgebung befindet sich in %0. Aux\ file=Aux-Datei Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Gruppe mit Einträgen die in einer vorhanden Tex-Datei zitiert worden sind @@ -1932,7 +1903,6 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=Sind Sie sicher, dass Si Reset\ to\ default=Auf Standard zurücksetzen Edit\ string\ constants=Zeichenketten-Konstanten bearbeiten Export\ all\ entries=Alle Einträge exportieren -Generate\ BibTeX\ keys=BibTeX-Key erzeugen Groups\ interface=Gruppen Manage\ field\ names\ &\ content=Feldnamen & Inhalt verwalten New\ library=Neue Bibliothek @@ -1986,7 +1956,6 @@ LaTeX\ Citations=LaTeX-Zitate Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=Zitate für diesen Eintrag in LaTeX-Dateien suchen No\ citations\ found=Keine Zitate gefunden No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=Es wurden keine LaTeX-Dateien mit diesem Eintrag gefunden. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=Der ausgewählte Eintrag hat keinen zugehörigen BibTeX-Schlüssel. Current\ search\ directory\:=Aktuelles Suchverzeichnis\: Set\ LaTeX\ file\ directory=LaTeX-Dateiverzeichnis festlegen Import\ entries\ from\ LaTeX\ files=Einträge aus LaTeX-Dateien importieren @@ -2007,7 +1976,7 @@ Synchronize\ special\ fields\ to\ keywords=Spezielle Felder mit keywords synchro Serialize\ special\ fields=Spezialfelder serialisieren List\ must\ not\ be\ empty.=Liste darf nicht leer sein. -Order=Sortierung +Order=Reihenfolge Add\ field\ to\ filter\ list=Feld zur Filterliste hinzufügen Add\ formatter\ to\ list=Formatierer zur Liste hinzufügen @@ -2079,7 +2048,6 @@ Add\ to\ current\ library=Zur aktuellen Bibliothek hinzufügen Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=Startet die Extraktion und fügt die resultierenden Einträge der aktuell geöffneten Datenbank hinzu Your\ text\ is\ being\ parsed...=Ihr Text wird analysiert... -BibTeX\ key\ filters=BibTeX-Schlüsselfilter Field\ filters=Feld-Filter Message\ filters=Nachrichtenfilter Clear\ filters=Filter zurücksetzen @@ -2206,4 +2174,8 @@ User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Benutzerspe Remove\ formatter\ for\ %0=Formatierer für %0 entfernen Remove\ formatter\ '%0'=Formatierer '%0 ' entfernen +A\ multi-volume\ "Book".=Ein mehrbändiges "Buch". +A\ multi-volume\ "Collection".=Eine mehrbändige "Sammlung". + + diff --git a/src/main/resources/l10n/JabRef_el.properties b/src/main/resources/l10n/JabRef_el.properties index 69c6496d574..616ff84bb1b 100644 --- a/src/main/resources/l10n/JabRef_el.properties +++ b/src/main/resources/l10n/JabRef_el.properties @@ -68,11 +68,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Ανατέθηκαν %0 καταχωρή Assigned\ 1\ entry\ to\ group\ "%0".=Ανατέθηκε 1 καταχώρηση στην ομάδα "%0". -Autogenerate\ BibTeX\ keys=Αυτόματη δημιουργία κλειδιών BibTeX -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Αυτόματη σύνδεση αρχείων με ονόματα που ξεκινούν με το κλειδί BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Αυτόματη σύνδεση μόνο των αρχείων που ταιριάζουν με το κλειδί BibTeX Automatically\ create\ groups=Αυτόματη δημιουργία ομάδων @@ -142,7 +139,6 @@ Copied=Αντιγράφηκε Copy=Αντιγραφή -Copy\ BibTeX\ key=Αντιγραφή κλειδιού BibTeX Copy\ to\ clipboard=Αντιγραφή στο πρόχειρο @@ -355,15 +351,12 @@ General=Γενικά Generate=Δημιουργία -Generate\ BibTeX\ key=Δημιουργία κλειδιού BibTeX Generate\ keys=Δημιουργία κλειδιών Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Δημιουργία κλειδιών πριν την αποθήκευση (για καταχωρήσεις χωρίς κλειδί) -Generated\ BibTeX\ key\ for=Δημιουργήθηκε κλειδί BibTeX για -Generating\ BibTeX\ key\ for=Δημιουργείται κλειδί BibTeX για Get\ fulltext=Αποκτήστε το πλήρες κείμενο Gray\ out\ non-hits=Γκριζάρισμα των καταχωρήσεων που δεν αντιστοιχούν @@ -425,7 +418,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Ανεξάρτητη ομάδα\: Όταν επιλεχθεί αυτό, προβάλλονται οι καταχωρήσεις μόνο αυτής της ομάδας -Invalid\ BibTeX\ key=Μη έγκυρο κλειδί BibTeX Invalid\ date\ format=Μη έγκυρη μορφή ημερομηνίας @@ -541,7 +533,7 @@ Open\ file=Άνοιγμα αρχείου Open\ last\ edited\ libraries\ at\ startup=Άνοιγμα των βιβλιοθηκών που τροποποιήθηκαν πρόσφατα κατά την εκκίνηση -Connect\ to\ shared\ database=Σύνδεση σε κοινόχρηστη βάση δεδομένων +Connect\ to\ shared\ database=Σύνδεση σε κοινόχρηστη Βάση Δεδομένων Open\ terminal\ here=Άνοιγμα τερματικού εδώ @@ -796,7 +788,6 @@ The\ search\ is\ case\ sensitive.=Η αναζήτηση επηρεάζεται There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Υπάρχουν πιθανά διπλότυπα (σημειώνονται με εικονίδιο), που δεν έχουν επιλυθεί. Συνέχεια; -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Αυτή η ενέργεια απαιτεί όλες οι επιλεγμένες καταχωρήσεις να έχουν καθορισμένα κλειδιά BibTeX. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Αυτή η ενέργεια απαιτεί να έχουν επιλεχθεί μία ή περισσότερες καταχωρήσεις. @@ -878,7 +869,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Προστασία βιβλιοθήκης Unable\ to\ save\ library=Αδυναμία αποθήκευσης βιβλιοθήκης -BibTeX\ key\ generator=Γεννήτρια κλειδιών BibTeX Unable\ to\ open\ link.=Αδυναμία ανοίγματος συνδέσμου. MIME\ type=Τύπος MIME @@ -925,9 +915,7 @@ search\ expression=έκφραση αναζήτησης Optional\ fields\ 2=Προαιρετικά πεδία 2 Waiting\ for\ save\ operation\ to\ finish=Αναμονή για ολοκλήρωση της λειτουργίας αποθήκευσης -Find\ and\ remove\ duplicate\ BibTeX\ keys=Εύρεση και αφαίρεση των διπλότυπων κλειδιών BibTeX Expected\ syntax\ for\ --fetch\='\:'=Αναμενόμενη σύνταξη για --fetch\='<όνομα ανακτητή>\:<αίτημα>' -Duplicate\ BibTeX\ key=Διπλότυπο κλειδί BibTeX General\ file\ directory=Γενικός φάκελος αρχείου @@ -962,7 +950,7 @@ Connecting...=Πραγματοποιείται σύνδεση... Could\ not\ resolve\ BibTeX\ entry\ for\ citation\ marker\ '%0'.=Αδυναμία επίλυσης της καταχώρησης BibTeX για τον δείκτη αναφοράς '%0'. Select\ style=Επιλογή στυλ Journals=Περιοδικά -Cite=Αναφορά +Cite=Αναφέρει Cite\ in-text=Αναφορά μέσα στο κείμενο Insert\ empty\ citation=Εισαγωγή κενής αναφοράς Merge\ citations=Συγχώνευση αναφορών @@ -974,7 +962,6 @@ Connected\ to\ document=Συνδέθηκε στο έγγραφο Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Εισάγετε μια αναφορά χωρίς κείμενο (η καταχώρηση θα εμφανιστεί στη λίστα παραπομπών) Cite\ selected\ entries\ with\ extra\ information=Αναφορά επιλεγμένων καταχωρήσεων με περισσότερες πληροφορίες Ensure\ that\ the\ bibliography\ is\ up-to-date=Βεβαιωθείτε πως η βιβλιογραφία έχει ενημερωθεί -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Το έγγραφο OpenOffice/LibreOffice παραπέμπει στο κλειδί BibTeX key '%0', το οποίο δεν μπόρεσε να βρεθεί στην τρέχουσα βιβλιοθήκη σας. Unable\ to\ synchronize\ bibliography=Αδυναμία συγχρονισμού βιβλιογραφίας Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Συνδυασμός ζευγών αναφορών που χωρίζονται μόνο με κενό Autodetection\ failed=Αποτυχία αυτόματης εύρεσης @@ -1050,7 +1037,6 @@ Searching\ file\ system...=Πραγματοποιείται αναζήτηση Select\ directory=Επιλογή φακέλου Select\ files=Επιλογή αρχείων BibTeX\ entry\ creation=Δημιουργία καταχώρησης BibTeX -BibTeX\ key\ patterns=Μοτίβα κλειδιών BibTeX Clear\ priority=Εκκαθάριση προτεραιότητας Clear\ rank=Εκκαθάριση ιεράρχησης Enable\ special\ fields=Ενεργοποίηση ειδικών πεδίων @@ -1190,7 +1176,6 @@ Select\ export\ format=Επιλογή μορφής εξαγωγής Return\ to\ JabRef=Επιστροφή στο JabRef Could\ not\ connect\ to\ %0=Αδυναμία σύνδεσης στη %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Προειδοποίηση\: %0 από %1 καταχωρήσεις δεν έχουν ορισμένο τίτλο. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Προειδοποίηση\: %0 από %1 καταχωρήσεις δεν έχουν ορισμένο κλειδί BibTeX. Really\ delete\ the\ selected\ entry?=Θέλετε όντως να διαγράψετε την επιλεγμένη καταχώρηση; Really\ delete\ the\ %0\ selected\ entries?=Θέλετε όντως να διαγράψετε τις %0 επιλεγμένες καταχωρήσεις; Keep\ merged\ entry\ only=Διατήρηση μόνο της συγχωνευμένης καταχώρησης @@ -1204,8 +1189,6 @@ Discard\ changes=Απόρριψη αλλαγών Library\ '%0'\ has\ changed.=Η βιβλιοθήκη '%0' έχει αλλάξει. Print\ entry\ preview=Προεπισκόπηση εκτύπωσης καταχώρησης Copy\ title=Αντιγραφή τίτλου -Copy\ \\cite{BibTeX\ key}=Αντιγραφή \\cite{BibTeX key} -Copy\ BibTeX\ key\ and\ title=Αντιγραφή BibTeX και τίτλου Invalid\ DOI\:\ '%0'.=Μη έγκυρο DOI\: '%0'. should\ start\ with\ a\ name=πρέπει να ξεκινάει με όνομα should\ end\ with\ a\ name=πρέπει να τελειώνει με όνομα @@ -1246,7 +1229,6 @@ New\ unpublished=Νέο αδημοσίευτο Preamble\ editor,\ store\ changes=Επεξεργαστής κειμένου εισαγωγής, αποθήκευση αλλαγών Push\ to\ application=Προώθηση προς εφαρμογή Refresh\ OpenOffice/LibreOffice=Ανανέωση OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Resolve διπλότυπων BibTeX keys Save\ all=Αποθήκευση όλων String\ dialog,\ add\ string=Παράθυρο διαλόγου συμβολοσειράς, προσθήκη συμβολοσειράς String\ dialog,\ remove\ string=Παράθυρο διαλόγου συμβολοσειράς, αφαίρεση συμβολοσειράς @@ -1255,7 +1237,6 @@ Unabbreviate=Αποσύμπτυξη should\ contain\ a\ protocol=πρέπει να περιέχει ένα πρωτόκολλο Copy\ preview=Αντιγραφή προεπισκόπησης Automatically\ setting\ file\ links=Αυτόματος ορισμός συνδέσμων αρχείου -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Πραγματοποιείται αναδημιουργία κλειδιών BibTeX σύμφωνα με τα μεταδεδομένα Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Αναδημιουργία όλων των κλειδιών για τις καταχωρήσεις σε ένα αρχείο BibTeX Show\ debug\ level\ messages=Εμφάνιση μηνυμάτων επιπέδου αποσφαλμάτωσης Default\ bibliography\ mode=Προεπιλεγμένη λειτουργία βιβλιογραφίας @@ -1286,7 +1267,6 @@ Name\ cannot\ be\ empty=Το όνομα δεν μπορεί να είναι κε Display\ keywords\ appearing\ in\ ALL\ entries=Προβολή λέξεων-κλειδιών που εμφανίζονται σε ΟΛΕΣ τις καταχωρήσεις Display\ keywords\ appearing\ in\ ANY\ entry=Προβολή λέξεων-κλειδιών που εμφανίζονται σε ΟΠΟΙΑΔΗΠΟΤΕ καταχώρηση None\ of\ the\ selected\ entries\ have\ titles.=Καμία από τις επιλεγμένες καταχωρήσεις δεν έχουν τίτλους. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Καμία από τις επιλεγμένες καταχωρήσεις δεν έχουν κλειδιά BibTeX. Unabbreviate\ journal\ names=Ονόματα περιοδικών χωρίς συντομογραφία Unabbreviating...=Πραγματοποιείται αναίρεση σύμπτυξης... Usage=Χρήση @@ -1421,7 +1401,6 @@ incorrect\ control\ digit=εσφαλμένο ψηφίο ελέγχου incorrect\ format=εσφαλμένη μορφή Copied\ version\ to\ clipboard=Η έκδοση αντιγράφτηκε στο πρόχειρο -BibTeX\ key=Κλειδί BibTeX Message=Μήνυμα @@ -1531,7 +1510,6 @@ Shared\ entry\ is\ no\ longer\ present=Η κοινόχρηστη καταχώρ You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Μπορείτε να επαναφέρετε την καταχώρηση με τη χρήση της λειτουργίας "Αναίρεση". You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Είστε ήδη συνδεδεμένοι σε μια βάση δεδομένων χρησιμοποιώντας τις καταχωρημένες λεπτομέρειες σύνδεσης. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Αδυναμία αναφοράς καταχωρήσεων χωρίς τα κλειδιά BibTeX. Δημιουργία κλειδιών τώρα; New\ technical\ report=Νέα τεχνική αναφορά %0\ file=Αρχείο %0 @@ -1551,7 +1529,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Η However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Παρόλα αυτά, μια νέα βάση δεδομένων δημιουργήθηκε παράλληλα με τη βάση δεδομένων για την παλαιότερη της 3.6 έκδοσης. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Ανοίγει έναν σύνδεσμο μέσω του οποίου μπορεί να γίνει λήψη της τρέχουσας έκδοσης υπό ανάπτυξη See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Δείτε τις αλλαγές που έγιναν στις εκδόσεις JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=Το αναφερόμενο κλειδί BibTeX δεν υπάρχει Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Η λήψη του αρχείου πλήρους κειμένου για την καταχώρηση %0 ολοκληρώθηκε. last\ four\ nonpunctuation\ characters\ should\ be\ numerals=οι τελευταίοι τέσσερις χαρακτήρες που δεν είναι σημεία στίξης, πρέπει να είναι αριθμοί @@ -1583,7 +1560,6 @@ should\ be\ normalized=πρέπει να είναι στρογγυλοποιημ Empty\ search\ ID=Κενό ID αναζήτησης The\ given\ search\ ID\ was\ empty.=Το δεδομένο ID αναζήτησης ήταν κενό. -Copy\ BibTeX\ key\ and\ link=Αντιγραφή BibTeX και συνδέσμου (link) biblatex\ field\ only=μόνο biblatex πεδίο Error\ while\ generating\ fetch\ URL=Σφάλμα κατά τη δημιουργία διεύθυνσης URL ανάκτησης @@ -1604,7 +1580,6 @@ File\ directory\ pattern=Μοτίβο φακέλου αρχείου Update\ with\ bibliographic\ information\ from\ the\ web=Ενημέρωση με πληροφορίες βιβλιογραφίας από το διαδίκτυο Could\ not\ find\ any\ bibliographic\ information.=Αδυναμία εύρεσης οποιασδήποτε πληροφορίας βιβλιογραφίας. -BibTeX\ key\ deviates\ from\ generated\ key=Το κλειδί BibTeX αποκλίνει από το κλειδί που δημιουργήθηκε DOI\ %0\ is\ invalid=Μη έγκυρο DOI %0 Different\ customization,\ current\ settings\ will\ be\ overwritten=Διαφορετική προσαρμογή από το χρήστη, οι τρέχουσες ρυθμίσεις θα αντικατασταθούν @@ -1671,7 +1646,6 @@ Could\ not\ retrieve\ entry\ data\ from\ '%0'.=Αδυναμία ανάκτηση Entry\ from\ %0\ could\ not\ be\ parsed.=Αδυναμία ανάλυσης καταχώρησης από %0. Invalid\ identifier\:\ '%0'.=Μη έγκυρο αναγνωριστικό\: '%0'. This\ paper\ has\ been\ withdrawn.=Αυτή η εργασία έχει αποσυρθεί. -empty\ BibTeX\ key=κενό κλειδί BibTeX Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Το Περιβάλλον Λειτουργίας Java βρίσκεται στο %0. Aux\ file=Αρχείο AUX Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Ομάδα που περιέχει καταχωρήσεις που αναφέρονται σε ένα συγκεκριμένο αρχείο TeX @@ -1718,7 +1692,7 @@ Jump\ to\ entry=Μετάβαση στην καταχώρηση The\ group\ name\ contains\ the\ keyword\ separator\ "%0"\ and\ thus\ probably\ does\ not\ work\ as\ expected.=Το όνομα ομάδας περιέχει τον διαχωριστή λέξεων-κλειδιών "%0", και πιθανότατα γι' αυτόν το λόγο δεν λειτούργησε όπως αναμενόταν. Blog=Ιστολόγιο Check\ integrity=Έλεγχος συνοχής -Copy\ DOI\ url=Αντιγραφή διεύθυνσης URL DOI +Copy\ DOI\ url=Αντιγραφή DOI URL Copy\ citation=Αντιγραφή αναφοράς Development\ version=Έκδοση ανάπτυξης λογισμικού Export\ selected\ entries=Εξαγωγή επιλεγμένων καταχωρήσεων @@ -1770,3 +1744,5 @@ Default\ pattern=Προεπιλεγμένο μοτίβο + + diff --git a/src/main/resources/l10n/JabRef_es.properties b/src/main/resources/l10n/JabRef_es.properties index 7eefb02d73e..445ec8c764b 100644 --- a/src/main/resources/l10n/JabRef_es.properties +++ b/src/main/resources/l10n/JabRef_es.properties @@ -73,11 +73,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Se han asignado %0 entradas al grupo "%1 Assigned\ 1\ entry\ to\ group\ "%0".=Asignada una entrada al grupo "%0". -Autogenerate\ BibTeX\ keys=Autogenerar claves BibTeX -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Autoenlazar con nombres comenzando por la clave BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Autoenlazar sólo archivos cuyo nombre coincida con la clave BibTeX Automatically\ create\ groups=Crear grupos automáticamente @@ -91,8 +88,11 @@ Available\ import\ formats=Formatos disponibles para importar %0\ source=Origen %0 +Background\ Tasks=Tareas de fondo +Background\ Tasks\ are\ running=Las tareas de fondo están en marcha +Background\ Tasks\ are\ done=Las tareas de fondo están terminadas Browse=Explorar @@ -152,7 +152,6 @@ Copied=Copiado Copy=Copiar -Copy\ BibTeX\ key=Copiar clave BibTeXt Copy\ to\ clipboard=Copiar al portapapeles @@ -211,6 +210,7 @@ Default\ encoding=Codificación por defecto Default\ grouping\ field=Campo de agrupación por defecto +Downloading=Descargando Execute\ default\ action\ in\ dialog=Ejecutar acción por defecto en el cuadro de diálogo @@ -371,6 +371,7 @@ Formatter\ name=Nombre del formateador found\ in\ AUX\ file=encontrado en archivo AUX +Fulltext\ for=Texto completo de Further\ information\ about\ Mr.\ DLib\ for\ JabRef\ users.=Más información sobre el Mr. DLib para los usuarios de JabRef. @@ -380,15 +381,12 @@ General\ Fields=Campos generales Generate=Generar -Generate\ BibTeX\ key=Generar clave BibTeX Generate\ keys=Generar claves Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Generar claves antes de guardar (para entradas sin clave) -Generated\ BibTeX\ key\ for=Generar clabe BibTeX para -Generating\ BibTeX\ key\ for=Generarando clave BibTeX para Get\ fulltext=Obtener texto completo Gray\ out\ non-hits=Poner en gris los no encontrados @@ -451,7 +449,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Grupo independiente\: ver sólo las entradas de este grupo cuando esté seleccionado. I\ Agree=Acepto -Invalid\ BibTeX\ key=Clave BibTeX inválida Invalid\ date\ format=Formato de fecha no válido @@ -700,6 +697,7 @@ Remove\ link=Eliminar enlace Remove\ old\ entry=Eliminar vieja entrada +Remove\ string\ %0=Eliminar cadena %0 Removed\ group\ "%0".=el grupo "%0" se ha eliminado. @@ -853,7 +851,6 @@ The\ search\ is\ case\ sensitive.=La búsqueda distingue mayúsculas/minúsculas There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Hay posibles duplicados (marcados con el icono) que no han sido resueltos. ¿Continuar? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Esta operación requiere que todas las entradas seleccionadas tengan claves BibTeX definidas. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Esta operación requiere seleccionar una o más entradas. @@ -951,7 +948,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Proteccion de la biblioteca Unable\ to\ save\ library=No es posible guardar la biblioteca -BibTeX\ key\ generator=Generador de claves BibTeX Unable\ to\ open\ link.=No es posible abrir el enlace. MIME\ type=Tipo MIME @@ -959,9 +955,6 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Ejecutar fetcher When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Al abrir el enlace al archivo, buscar por archivo coincidente si no hay enlace definido -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Línea %0\: Se ha encontrado una clave BibTeX corrupta %1. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Línea %0\: Se ha encontrado una clave BibTeX corrupta %1 (contiene espacios en blanco). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Línea %0\: Se ha encontrado una clave BibTeX corrupta %1 (falta coma). No\ full\ text\ document\ found=No se encontró un documento de texto completo Download\ from\ URL=Descargar desde URL Rename\ field=Renombrar campo @@ -1002,10 +995,9 @@ search\ expression=expresión de búsqueda Optional\ fields\ 2=Campos opcionales 2 Waiting\ for\ save\ operation\ to\ finish=Esperando a que acabe la operación de guardado +Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=Esperando a que terminen las tareas de fondo. ¿Renunciar de todos modos? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Encontrar y eliminar entradas BibTeX duplicadas Expected\ syntax\ for\ --fetch\='\:'=Sintaxis esperada para --fetch\='\:' -Duplicate\ BibTeX\ key=Clave BibTeX duplicada General\ file\ directory=Carpeta general de archivos. @@ -1025,6 +1017,11 @@ Subject\ for\ sending\ an\ email\ with\ references=Asunto para enviar email con Automatically\ open\ folders\ of\ attached\ files=Abrir carpetas de los archivos adjuntos automáticamente Error\ creating\ email=Error creando email Entries\ added\ to\ an\ email=Entradas añadidas al email +Custom\ applications=Aplicaciones personalizadas +Please\ specify\ a\ file\ browser.=Por favor, especifique un explorador de archivos. +Please\ specify\ a\ terminal\ application.=Por favor, especifique una aplicación de terminal. +Use\ custom\ file\ browser=Usar el explorador de archivos personalizado +Use\ custom\ terminal\ emulator=Usar el emulador de terminal personalizado exportFormat=Formato de exportación Output\ file\ missing=Fichero de salida no encontrado No\ search\ matches.=No hay coincidencias en la búsqueda. @@ -1055,7 +1052,6 @@ Connected\ to\ document=Conectado al documento Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Insertar una cita sin texto (la entrada aparecerá en la lista de referencias) Cite\ selected\ entries\ with\ extra\ information=Citar los papeles seleccionados con información extra Ensure\ that\ the\ bibliography\ is\ up-to-date=Asegurar que la bibliografía está actualizada -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Su documento OpenOffice/LibreOffice hace referencia a la clave BibTeX '%0' que no puede ser encontrada en la biblioteca actual. Unable\ to\ synchronize\ bibliography=No es posible sincronizar la bibliografía Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Combinar pares de citas que están separadas únicamente por espacios Autodetection\ failed=Falló la autodetección @@ -1084,6 +1080,7 @@ Web\ search=Búsqueda web Style\ selection=Selección de estilo No\ valid\ style\ file\ defined=No se ha definido un archivo de estilo válido Choose\ pattern=Escoger patrón +Search\ and\ store\ files\ relative\ to\ library\ file\ location=Buscar y guardar archivos en relación con la ubicación de los archivos de la biblioteca Could\ not\ run\ the\ gnuclient/emacsclient\ program.\ Make\ sure\ you\ have\ the\ emacsclient/gnuclient\ program\ installed\ and\ available\ in\ the\ PATH.=No se puede ejecutar el programa gnuclient/emacsclient. Asegúrese de que están instalados y disponibles en el PATH. You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=Debe seleccionar un archivo de estilo válido o usar uno de los estilos por defecto. @@ -1133,7 +1130,6 @@ Searching\ file\ system...=Buscando en el sistema de archivos... Select\ directory=Seleccionar carpeta Select\ files=Seleccionar archivos BibTeX\ entry\ creation=Creación de entrada BibTeX -BibTeX\ key\ patterns=Patrones de clave BibTeX Clear\ priority=Limpiar prioridad Clear\ rank=Limpiar rango Enable\ special\ fields=Habilitar campos especiales @@ -1209,6 +1205,7 @@ Please\ specify\ a\ port=Por favor, especifica un puerto Please\ specify\ a\ username=Por favor, especifique un nombre de usuario Please\ specify\ a\ password=Por favor, especifique una contraseña +Proxy\ configuration=Configuración del proxy Use\ custom\ proxy\ configuration=Usar configuración de proxy personalizada Proxy\ requires\ authentication=El proxi requiere autenticación Attention\:\ Password\ is\ stored\ in\ plain\ text\!=Atención\: ¡La contraseña está almacenada como texto plano\! @@ -1282,7 +1279,6 @@ Select\ export\ format=Seleccionar formato para exportar Return\ to\ JabRef=Volver a JabRef Could\ not\ connect\ to\ %0=No se puede conectar a %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Atención\: %0 de %1 entradas tienen el título sin definir -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Atención\: %0 de un total de %1 entradas tienen clave BibTex indefinida. Really\ delete\ the\ selected\ entry?=¿Borrar realmente la entrada seleccionada? Really\ delete\ the\ %0\ selected\ entries?=¿Realmente desea eliminar %0 entradas? Keep\ merged\ entry\ only=Mantener sólo la entrada fusionada @@ -1296,9 +1292,8 @@ Discard\ changes=Descartar cambios Library\ '%0'\ has\ changed.=La biblioteca '%0' ha cambiado. Print\ entry\ preview=Imprimir vista previa de la entrada Copy\ title=Copiar título -Copy\ \\cite{BibTeX\ key}=Copiar \\cite{clave BibTeX} -Copy\ BibTeX\ key\ and\ title=Copiar clave y título BibTeX Invalid\ DOI\:\ '%0'.=DOI no válida\: '%0'. +Same\ DOI\ used\ in\ multiple\ entries=El mismo DOI usado en múltiples entradas should\ start\ with\ a\ name=debería comenzar por un nombre should\ end\ with\ a\ name=debería acabar por un nombre unexpected\ closing\ curly\ bracket=Llave de cierre inesperada @@ -1340,7 +1335,6 @@ New\ unpublished=Nuevo sin publicar Preamble\ editor,\ store\ changes=Editor de preámbulos, guardar cambios Push\ to\ application=Enviar a aplicación Refresh\ OpenOffice/LibreOffice=REfrescar OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Resolver claves BibTeX duplicadas Save\ all=Guardar todo String\ dialog,\ add\ string=Diálogo de cadena, añadir cadena String\ dialog,\ remove\ string=Diálogo de cadena, eliminar cadena @@ -1349,7 +1343,6 @@ Unabbreviate=Eliminar abreviatura should\ contain\ a\ protocol=Debería contener un protocolo Copy\ preview=Copiar vista previa Automatically\ setting\ file\ links=Estableciendo automáticamente enlaces de archivo -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Regenerando claves BibTeX de acuerdo a los metadatos Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Regenerar todas las claves para las entradas de un archivo BibTeX Show\ debug\ level\ messages=Mostrar mensajes de nivel de depuración Default\ bibliography\ mode=Modo de bibliografía por defecto @@ -1381,7 +1374,6 @@ Name\ cannot\ be\ empty=El nombre no puede estar vacío Display\ keywords\ appearing\ in\ ALL\ entries=Mostrar palabras clave que aparezcan en TODAS las entradas Display\ keywords\ appearing\ in\ ANY\ entry=Mostrar palabras clave que aparezcan en ALGUNA entrada None\ of\ the\ selected\ entries\ have\ titles.=Ninguna de las entradas seleccionadas tiene título -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Ninguna de las entradas seleccionadas tiene clave BibTeX Unabbreviate\ journal\ names=Quitar abreviatción de nombres de journal Unabbreviating...=Eliminando abreviaturas... Usage=Uso @@ -1519,7 +1511,6 @@ incorrect\ control\ digit=dígito de control incorrecto incorrect\ format=formato incorrecto Copied\ version\ to\ clipboard=Version copiada al portapapeles -BibTeX\ key=Clave BibTeX Message=Mensaje @@ -1639,7 +1630,6 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Puede restaurar la entrada mediante la operación "Deshacer" You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Ya esa conectado a una vase de datos usando los detalles de la conexión introducidos. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=No se puede citar entradas sin las claves BibTeX. ¿Generar ahora? New\ technical\ report=Nuevo informe técnico %0\ file=Archvo %0 @@ -1659,7 +1649,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=La However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=En todo caso, una nueva biblioteca ha sido creada junto a la previa a la versión 3.6. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Abre un enlace donde descarga la versión de desarrollo See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Vea lo que se ha cambiado en las versiones de JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=La clave BibTex referenciada no existe Full\ text\ document\ for\ entry\ %0\ already\ linked.=El documento de texto completo para la entrada %0 ya está enlazado. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Se ha completado la descarga del texto completo para la entrada %0. Download\ full\ text\ documents=Descargar documentos de texto completo @@ -1696,7 +1685,6 @@ should\ be\ normalized=debería ser normalizado Empty\ search\ ID=Vaciar ID de búsqueda The\ given\ search\ ID\ was\ empty.=La ID de búsqueda está vacía. -Copy\ BibTeX\ key\ and\ link=Copiar clave BibTeX y enlace biblatex\ field\ only=Sólo campo biblatex Error\ while\ generating\ fetch\ URL=Error al generar la URL de recolección @@ -1717,7 +1705,6 @@ File\ directory\ pattern=Patrón de carpetas Update\ with\ bibliographic\ information\ from\ the\ web=Actualizar con información bibliográfica desde la web Could\ not\ find\ any\ bibliographic\ information.=No se puede encontrar información bibliográfica -BibTeX\ key\ deviates\ from\ generated\ key=La clave BibTeX difiere de la generada DOI\ %0\ is\ invalid=El DOI %0 no es válido Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Seleccione todos los tipos personalizados que se almacenarán en las preferencias locales\: @@ -1793,7 +1780,6 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=No se pudo analizar la entrada de %0. Invalid\ identifier\:\ '%0'.=Identificador no válido\: '%0'. This\ paper\ has\ been\ withdrawn.=Este artículo ha sido retirado. Finished\ writing\ XMP\ metadata.=Terminó de escribir metadatos XMP. -empty\ BibTeX\ key=vaciar clave BibTeX Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Su Java Runtime Environment se encuentra en %0. Aux\ file=Archivo Aux Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Grupo que contiene las entradas citadas en un archivo TeX determinado @@ -1896,6 +1882,7 @@ Import\ canceled=Importación cancelada Select\ all\ new\ entries=Seleccionar todas las nuevas entradas Total\ items\ found\:=Total de elementos encontrados\: Selected\ items\:=Elementos seleccionados\: +Download\ linked\ online\ files=Descargue los archivos en línea enlazados Select\ the\ entries\ to\ be\ imported\:=Seleccionar las entradas a importar\: Add\ new\ String=Añadir una nueva cadena de caracteres Must\ not\ be\ empty\!=¡No puede estar vacío\! @@ -1915,7 +1902,6 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=¿Está seguro de que de Reset\ to\ default=Restablecer los valores por defecto Edit\ string\ constants=Editar constantes de la cadena Export\ all\ entries=Exportar todas las entradas -Generate\ BibTeX\ keys=Generar claves BibTeX Groups\ interface=Interfaz de grupos Manage\ field\ names\ &\ content=Gestionar nombres y contenido de los campos New\ library=Nueva biblioteca @@ -1969,7 +1955,6 @@ LaTeX\ Citations=Citas LaTeX Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=Buscar citas a esta entrada en archivos LaTeX No\ citations\ found=No se han encontrado citas No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=No se han encontrado archivos LaTeX que contengan esta entrada. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=La entrada seleccionada no tiene asociada una clave BibTeX. Current\ search\ directory\:=Directorio de búsqueda actual\: Set\ LaTeX\ file\ directory=Establecer directorio de archivos LaTeX Import\ entries\ from\ LaTeX\ files=Importar entradas desde archivos LaTeX @@ -1990,6 +1975,7 @@ Synchronize\ special\ fields\ to\ keywords=Sincronizar campos especiales a palab Serialize\ special\ fields=Serializar campos especiales List\ must\ not\ be\ empty.=La lista no debe estar vacía. +Order=Orden Add\ field\ to\ filter\ list=Añadir campo a lista de filtros Add\ formatter\ to\ list=Añadir formateador a la lista @@ -2059,7 +2045,6 @@ Add\ to\ current\ library=Añade a la biblioteca actual Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=Inicia la extracción y añade las entradas resultantes a la base de datos abierta actualmente Your\ text\ is\ being\ parsed...=Su texto está siendo analizado... -BibTeX\ key\ filters=Filtros de claves BibTeX Field\ filters=Filtros de campo Message\ filters=Filtros de mensajes Clear\ filters=Reiniciar los filtros @@ -2151,3 +2136,8 @@ Type\ of\ editorial\ role\ performed\ by\ the\ "Editor".=Tipo de papel editorial +Remove\ the\ following\ characters\:=Eliminar los siguientes caracteres\: +Truncate=Truncar +Truncates\ a\ string\ after\ a\ given\ index.=Trunca una cadena después de un índice dado. + + diff --git a/src/main/resources/l10n/JabRef_fa.properties b/src/main/resources/l10n/JabRef_fa.properties index 96a4033845e..38668037181 100644 --- a/src/main/resources/l10n/JabRef_fa.properties +++ b/src/main/resources/l10n/JabRef_fa.properties @@ -7,17 +7,26 @@ +Abbreviation=مخفف +Abbreviations=اختصارات +About\ JabRef=درباره JabRef +Abstract=چکیده +Accept=پذیرش +Accept\ change=پذیرفتن تغییرات +Action=عملیات +Add=افزودن +Add\ subgroup=افزودن زیرگروه @@ -30,6 +39,7 @@ Appearance=ظاهر +Apply=اعمال کردن @@ -48,6 +58,7 @@ Appearance=ظاهر +Browse=مرور by=توسط @@ -66,15 +77,20 @@ by=توسط +Clear=پاکسازی +Clear\ fields=پاک کردن فیلدها +Comments=نظرات +Content=محتوا +Copied=کپی شد @@ -96,6 +112,7 @@ by=توسط +Cut=برش @@ -103,11 +120,14 @@ by=توسط +Default=پیش‌فرض +Downloading=درحال بارگیری +Delete=حذف Delete\ entry=حذف مدخل @@ -127,6 +147,7 @@ Delete\ entry=حذف مدخل Donate\ to\ JabRef=هدیه دادن به JabRef +Download\ file=بارگیری پرونده @@ -134,6 +155,7 @@ Donate\ to\ JabRef=هدیه دادن به JabRef +Edit=ویرایش @@ -143,7 +165,9 @@ Donate\ to\ JabRef=هدیه دادن به JabRef +entry=ورودی +Entry\ editor=ویرایشگر ورودی @@ -476,13 +500,11 @@ Save\ selected\ as\ plain\ BibTeX...=.\=منتخب‌شده را به صورت -Copy\ BibTeX\ key\ and\ title=رونوشت کلید BibTeX و عنوان Focus\ entry\ table=تمرکز بر جدول ورودی Import\ into\ current\ library=وارد کردن به پایگاه داده‌ی فعلی Import\ into\ new\ library=وارد کردن به پایگاه داده‌ی جدید -Resolve\ duplicate\ BibTeX\ keys=حل کلیدهای تکراری BibTeX Save\ all=ذخیره‌ی همه @@ -577,6 +599,8 @@ Push\ entries\ to\ external\ application\ (%0)=(نشاندن ورودی‌ها + + diff --git a/src/main/resources/l10n/JabRef_fr.properties b/src/main/resources/l10n/JabRef_fr.properties index e6480031795..281d5042e81 100644 --- a/src/main/resources/l10n/JabRef_fr.properties +++ b/src/main/resources/l10n/JabRef_fr.properties @@ -1,3 +1,4 @@ +Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=Impossible de surveiller les changements de fichiers. Veuillez fermer les fichiers et les traitements puis redémarrer. Vous pourriez rencontrer des erreurs si vous continuez avec cette session. %0\ contains\ the\ regular\ expression\ %1=%0 contient l'expression régulière %1 %0\ contains\ the\ term\ %1=%0 contient le terme %1 @@ -73,11 +74,11 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 entrées ajoutées au groupe « %1 » Assigned\ 1\ entry\ to\ group\ "%0".=Une entrée ajoutée au groupe « %0 ». -Autogenerate\ BibTeX\ keys=Création automatique des clefs BibTeX +Autogenerate\ citation\ keys=Génération automatique des clefs de citation -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Lier automatiquement les fichiers commençant par la clef BibTeX +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=Lier automatiquement les fichiers commençant par la clef de citation -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Lier automatiquement les fichiers correspondant exactement à la clef BibTeX +Autolink\ only\ files\ that\ match\ the\ citation\ key=Ne lier automatiquement que les fichiers correspondant exactement à la clef de citation Automatically\ create\ groups=Créer automatiquement des groupes @@ -155,7 +156,7 @@ Copied=Copié Copy=Copier -Copy\ BibTeX\ key=Copier la clef BibTeX +Copy\ citation\ key=Copier la clef de citation Copy\ to\ clipboard=Copier dans le presse-papier @@ -214,6 +215,7 @@ Default\ encoding=Encodage par défaut Default\ grouping\ field=Champ par défaut pour les groupes +Downloading=Téléchargement Execute\ default\ action\ in\ dialog=Exécuter l'action par défaut dans la boîte de dialogue @@ -374,6 +376,7 @@ Formatter\ name=Nom de formateur found\ in\ AUX\ file=trouvées dans le fichier AUX +Fulltext\ for=Document pour Further\ information\ about\ Mr.\ DLib\ for\ JabRef\ users.=Informations supplémentaires sur Mr. Dlib pour les utilisateurs de JabRef. @@ -383,15 +386,15 @@ General\ Fields=Champs généraux Generate=Créer -Generate\ BibTeX\ key=Créer la clef BibTeX +Generate\ citation\ key=Générer la clef de citation Generate\ keys=Générer les clefs Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Générer les clefs avant d'enregistrer (pour les entrées sans clef) -Generated\ BibTeX\ key\ for=Création terminée de la clef BibTeX pour +Generated\ citation\ key\ for=Clef de citation générée pour -Generating\ BibTeX\ key\ for=Création en cours d'une clef BibTeX pour +Generating\ citation\ key\ for=Génération de la clef de citation pour Get\ fulltext=Obtenir le document Gray\ out\ non-hits=Griser les entrées non correspondantes @@ -454,7 +457,7 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Groupe indépendant \: Quand sélectionné, afficher uniquement les entrées de ce groupe I\ Agree=J’accepte -Invalid\ BibTeX\ key=Clef BibTeX invalide +Invalid\ citation\ key=Clef de citation invalide Invalid\ date\ format=Format de date invalide @@ -703,6 +706,7 @@ Remove\ link=Supprimer le lien Remove\ old\ entry=Supprimer l'ancienne entrée +Remove\ string\ %0=Supprimer la chaîne %0 Removed\ group\ "%0".=Groupe « %0 » supprimé. @@ -856,7 +860,7 @@ The\ search\ is\ case\ sensitive.=La recherche est sensible à la casse. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Il y a des doublons potentiels (marqué avec un icône) qui n'ont pas été traités. Continuer ? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Cette opération nécessite que toutes les entrées sélectionnées aient des clefs BibTeX définies. +This\ operation\ requires\ all\ selected\ entries\ to\ have\ citation\ keys\ defined.=Cette opération nécessite que toutes les entrées sélectionnées aient des clefs de citation définies. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Cette opération nécessite qu'une ou plusieurs entrées soient sélectionnées. @@ -954,7 +958,7 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Protection du fichier Unable\ to\ save\ library=Impossible d'enregistrer le fichier -BibTeX\ key\ generator=Générateur de clefs BibTeX +Citation\ key\ generator=Générateur de clefs de citation Unable\ to\ open\ link.=Impossible d'ouvrir le lien. MIME\ type=Type MIME @@ -962,9 +966,9 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Lancer l'outil de recherche When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=À l'ouverture d'un lien de fichier, si aucun lien n'est défini, rechercher le fichier correspondant -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Ligne %0 \: clef BibTeX corrompue %1. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Ligne %0 \: clef BibTeX corrompue %1 (contient des espaces). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Ligne %0 \: clef BibTeX corrompue %1 (virgule manquante). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=Ligne %0 \: clef de citation corrompue %1. +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Ligne %0 \: clef de citation corrompue %1 (contient des espaces). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Ligne %0 \: clef de citation corrompue %1 (virgule manquante). No\ full\ text\ document\ found=Aucun texte intégral trouvé Download\ from\ URL=Télécharger depuis l'URL Rename\ field=Renommer le champ @@ -1005,10 +1009,11 @@ search\ expression=expression de recherche Optional\ fields\ 2=Champs optionnels 2 Waiting\ for\ save\ operation\ to\ finish=Attente de la fin de l'opération de sauvegarde +Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=En attente de la fin des tâches en arrière-plan. Quitter quand même ? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Recherche et supprime les clefs BibTeX dupliquées +Find\ and\ remove\ duplicate\ citation\ keys=Rechercher et supprimer les clefs de citation dupliquées Expected\ syntax\ for\ --fetch\='\:'=Syntaxe attendue pour --fetch\='\:' -Duplicate\ BibTeX\ key=Clef BibTeX dupliquée +Duplicate\ citation\ key=Clef de citation dupliquée General\ file\ directory=Répertoire général @@ -1028,6 +1033,11 @@ Subject\ for\ sending\ an\ email\ with\ references=Sujet des courriels envoyant Automatically\ open\ folders\ of\ attached\ files=Ouvrir automatiquement les répertoires des fichiers attachés Error\ creating\ email=Erreur lors de la création du courriel Entries\ added\ to\ an\ email=Entrées ajoutées à un courriel +Custom\ applications=Applications personnalisées +Please\ specify\ a\ file\ browser.=Veuillez spécifier un navigateur de fichiers. +Please\ specify\ a\ terminal\ application.=Veuillez spécifier une application de terminal. +Use\ custom\ file\ browser=Utiliser une navigateur de fichiers personnalisé +Use\ custom\ terminal\ emulator=Utiliser un émulateur de terminal personnalisé exportFormat=Format d'exportation Output\ file\ missing=Fichier de sortie manquant No\ search\ matches.=Recherche sans correspondance. @@ -1058,7 +1068,7 @@ Connected\ to\ document=Connecté au document Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Insérer une citation sans texte (l'entrée apparaîtra dans la liste des références) Cite\ selected\ entries\ with\ extra\ information=Citer les entrées sélectionnées avec des informations complémentaires Ensure\ that\ the\ bibliography\ is\ up-to-date=Assure que la bibliographie est à jour -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Votre document OpenOffice/LibreOffice appelle la clef BibTeX « %0 », qui n'a pas pu être trouvée dans votre fichier actuel. +Your\ OpenOffice/LibreOffice\ document\ references\ the\ citation\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Votre document OpenOffice/LibreOffice fait référence à la clef de citation '%0', qui n'a pas été trouvée dans votre fichier actuel. Unable\ to\ synchronize\ bibliography=Impossible de synchroniser la bibliographie Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Combiner les paires de citations qui ne sont séparées que par des espaces Autodetection\ failed=La détection automatique a échouée @@ -1087,6 +1097,7 @@ Web\ search=Recherche web Style\ selection=Sélection du style No\ valid\ style\ file\ defined=Aucun style de fichier valide n'est défini Choose\ pattern=Choisir un modèle +Search\ and\ store\ files\ relative\ to\ library\ file\ location=Rechercher et stocker des fichiers par rapport au répertoire du fichier bibliographique Could\ not\ run\ the\ gnuclient/emacsclient\ program.\ Make\ sure\ you\ have\ the\ emacsclient/gnuclient\ program\ installed\ and\ available\ in\ the\ PATH.=Le programme gnuclient/emacsclient n'a pas pu être lancé. Assurez-vous que les programmes gnuclient/emacsclient sont installés et disponibles dans le PATH. You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=Vous devez sélectionner soit un style de fichier valide, soit utiliser un des styles par défaut. @@ -1136,7 +1147,7 @@ Searching\ file\ system...=Recherche dans le système de fichiers... Select\ directory=Sélectionner un répertoire Select\ files=Sélectionner des fichiers BibTeX\ entry\ creation=Création d'un entrée BibTeX -BibTeX\ key\ patterns=Modèles de clef BibTeX +Citation\ key\ patterns=Modèles de clef de citation Clear\ priority=Effacer la priorité Clear\ rank=Effacer le rang Enable\ special\ fields=Autoriser les champs spéciaux @@ -1212,6 +1223,7 @@ Please\ specify\ a\ port=Veuillez spécifier un port Please\ specify\ a\ username=Veuillez spécifier un nom d'utilisateur Please\ specify\ a\ password=Veuillez spécifier un mot de passe +Proxy\ configuration=Configuration du Proxy Use\ custom\ proxy\ configuration=Utiliser une configuration de proxy personnalisée Proxy\ requires\ authentication=Le proxy nécessite une authentification Attention\:\ Password\ is\ stored\ in\ plain\ text\!=Attention \: Le mot de passe est stocké en clair dans du texte brut \! @@ -1285,7 +1297,7 @@ Select\ export\ format=Sélectionner un format d'exportation Return\ to\ JabRef=Revenir à JabRef Could\ not\ connect\ to\ %0=La connexion à %0 n'a pas pu être établie Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Attention \: %0 des %1 entrées n'ont pas de titre. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Attention \: %0 des %1 entrées n'ont pas de clef BibTeX. +Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ citation\ key.=Attention \: %0 des %1 entrées n'ont pas de clef de citation. Really\ delete\ the\ selected\ entry?=Voulez-vous vraiment supprimer l'entrée sélectionnée ? Really\ delete\ the\ %0\ selected\ entries?=Voulez-vous vraiment supprimer les %0 entrées sélectionnées ? Keep\ merged\ entry\ only=Ne conserver que les entrées fusionnées @@ -1299,9 +1311,10 @@ Discard\ changes=Abandonner les modifications Library\ '%0'\ has\ changed.=Le fichier « %0 » a été modifié. Print\ entry\ preview=Imprimer la prévisualisation de l'entrée Copy\ title=Copier le titre -Copy\ \\cite{BibTeX\ key}=Copier \\cite{clé BibTeX} -Copy\ BibTeX\ key\ and\ title=Copier la clef BibTeX et le titre +Copy\ \\cite{citation\ key}=Copier \\cite{citation key} +Copy\ citation\ key\ and\ title=Copier la clef de citation et le titre Invalid\ DOI\:\ '%0'.=DOI invalide \: « %0 ». +Same\ DOI\ used\ in\ multiple\ entries=Un DOI identique est présent dans plusieurs entrées should\ start\ with\ a\ name=Devrait débuter par un nom should\ end\ with\ a\ name=Devrait se terminer par un nom unexpected\ closing\ curly\ bracket=accolade fermante incongrue @@ -1343,7 +1356,7 @@ New\ unpublished=Nouveau Unpublished Preamble\ editor,\ store\ changes=Éditeur de préambule, enregistrer les changements Push\ to\ application=Envoyer vers le logiciel Refresh\ OpenOffice/LibreOffice=Rafraîchir OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Traitement des clefs BibTeX dupliquées +Resolve\ duplicate\ citation\ keys=Traiter les clefs de citation dupliquées Save\ all=Enregistrer tout String\ dialog,\ add\ string=Chaîne de dialogue, ajouter une chaîne String\ dialog,\ remove\ string=Chaîne de dialogue, supprimer une chaîne @@ -1352,8 +1365,8 @@ Unabbreviate=Développer should\ contain\ a\ protocol=doit contenir un protocole Copy\ preview=Copier la prévisualisation Automatically\ setting\ file\ links=Définition automatique des liens de fichier -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Régénération des clefs BibTeX à partir des métadonnées -Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Régénére toutes les clefs pour les entrées d'un fichier BibTeX +Regenerating\ citation\ keys\ according\ to\ metadata=Regénérer les clef de citation en fonction des métadonnées +Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Régénère toutes les clefs pour les entrées d'un fichier BibTeX Show\ debug\ level\ messages=Afficher les messages de débogage Default\ bibliography\ mode=Mode bibliographique par défaut Show\ only\ preferences\ deviating\ from\ their\ default\ value=Afficher uniquement les préférences différentes de leur valeur par défaut @@ -1384,7 +1397,7 @@ Name\ cannot\ be\ empty=Le nom ne peut pas être vide Display\ keywords\ appearing\ in\ ALL\ entries=Afficher les mots-clefs apparaissant dans TOUTES les entrées Display\ keywords\ appearing\ in\ ANY\ entry=Afficher les mots-clefs apparaissant dans AU MOINS UNE entrée None\ of\ the\ selected\ entries\ have\ titles.=Aucune des entrées sélectionnées n'a un titre. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Aucune des entrées sélectionnées n'a une clef BibTeX. +None\ of\ the\ selected\ entries\ have\ citation\ keys.=Aucune des entrées sélectionnées n'a de clef de citation. Unabbreviate\ journal\ names=Développer les noms de journaux Unabbreviating...=Développement... Usage=Utilisation @@ -1523,7 +1536,7 @@ incorrect\ control\ digit=chiffre de contrôle incorrect incorrect\ format=format incorrect Copied\ version\ to\ clipboard=Version copiée dans le presse-papiers -BibTeX\ key=Clef BibTeX +Citation\ key=Clef de citation Message=Message @@ -1643,7 +1656,7 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Vous pouvez restaurer l'entrée en utilisant l'opération « Annuler ». You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Vous êtes déjà connecté à une base de données en utilisant les informations de connexion entrées. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Citation impossible sans clef BibTeX. Générer les clefs maintenant ? +Cannot\ cite\ entries\ without\ citation\ keys.\ Generate\ keys\ now?=Impossible de citer des entrées n'ayant pas une clef de citation. Générer des clefs maintenant ? New\ technical\ report=Nouveau rapport technique %0\ file=%0 fichier @@ -1663,7 +1676,7 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Ce However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Ainsi, un nouveau fichier a été créée en parallèle de celle antérieure à la version 3.6. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Ouvre un lien à partir duquel la version de développement actuelle peut être téléchargée See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Afficher les changements dans les versions de JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=La clef BibTeX référencée n'existe pas +Referenced\ citation\ key\ does\ not\ exist=La clef de citation référencée n'existe pas Full\ text\ document\ for\ entry\ %0\ already\ linked.=Texte intégral pour l'entrée %0 déjà lié. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Téléchargement terminé pour le texte intégral de l'entrée %0. Download\ full\ text\ documents=Télécharger les textes intégraux @@ -1700,7 +1713,7 @@ should\ be\ normalized=Devrait être une abréviation standard Empty\ search\ ID=Identifiant de recherche vide The\ given\ search\ ID\ was\ empty.=L'Identifiant de recherche entré était vide. -Copy\ BibTeX\ key\ and\ link=Copier la clef BibTeX et le lien +Copy\ citation\ key\ and\ link=Copier la clef de citation et le lien biblatex\ field\ only=Champ biblatex uniquement Error\ while\ generating\ fetch\ URL=Erreur lors de la création de l'URL de recherche @@ -1721,7 +1734,7 @@ File\ directory\ pattern=Modèle de répertoire de fichiers Update\ with\ bibliographic\ information\ from\ the\ web=Mettre à jour avec les informations bibliographiques trouvées sur le web Could\ not\ find\ any\ bibliographic\ information.=Aucune information bibliographique n'a été trouvée. -BibTeX\ key\ deviates\ from\ generated\ key=La clef BibTeX diffère de la clef générée +Citation\ key\ deviates\ from\ generated\ key=La clef de citation diffère de la clef générée DOI\ %0\ is\ invalid=Le DOI %0 est invalide Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Sélectionnez tous les types personnalisés à stocker dans les préférences locales \: @@ -1797,9 +1810,9 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=Entrée de %0 n’a pas pu être analys Invalid\ identifier\:\ '%0'.=Identifiant non valide \: « %0 ». This\ paper\ has\ been\ withdrawn.=Cet article a été retiré. Finished\ writing\ XMP\ metadata.=Écriture des métadonnées XMP terminée. -empty\ BibTeX\ key=Clef BibTeX vide +empty\ citation\ key=clef de citation vide Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Votre environnement d’exécution Java se trouve dans %0. -Aux\ file=Fichier aux +Aux\ file=Fichier AUX Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Groupe contenant les entrées citées dans un fichier TeX spécifique Any\ file=N’importe quel fichier @@ -1900,6 +1913,7 @@ Import\ canceled=Importation annulée Select\ all\ new\ entries=Sélectionner toutes les nouvelles entrées Total\ items\ found\:=Nombre total d'éléments trouvés \: Selected\ items\:=Éléments sélectionnés \: +Download\ linked\ online\ files=Télécharger les fichiers en ligne liés Select\ the\ entries\ to\ be\ imported\:=Sélectionnez les entrées à importer \: Add\ new\ String=Ajouter une nouvelle chaîne Must\ not\ be\ empty\!=Ne doit pas être vide \! @@ -1919,7 +1933,7 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=Êtes-vous sûr de voulo Reset\ to\ default=Restaurer les valeurs par défaut Edit\ string\ constants=Modifier les constantes de chaîne Export\ all\ entries=Exporter toutes les entrées -Generate\ BibTeX\ keys=Générer les clefs BibTeX +Generate\ citation\ keys=Générer les clefs de citation Groups\ interface=Interface des groupes Manage\ field\ names\ &\ content=Gérer les noms de champs et leur contenu New\ library=Nouveau fichier @@ -1973,7 +1987,7 @@ LaTeX\ Citations=Citations LaTeX Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=Rechercher des citations de cette entrée dans les fichiers LaTeX No\ citations\ found=Aucune citation trouvée No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=Aucun fichier LaTeX contenant cette entrée n'a été trouvé. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=L'entrée sélectionnée n'a pas de clef BibTeX associée. +Selected\ entry\ does\ not\ have\ an\ associated\ citation\ key.=L'entrée sélectionnée n'a pas de clef de citation associée. Current\ search\ directory\:=Répertoire de recherche actuel \: Set\ LaTeX\ file\ directory=Configurer le répertoire des fichiers LaTeX Import\ entries\ from\ LaTeX\ files=Importer des entrées à partir des fichiers LaTeX @@ -1994,6 +2008,7 @@ Synchronize\ special\ fields\ to\ keywords=Synchroniser les champs spéciaux ave Serialize\ special\ fields=Individualiser les champs spéciaux List\ must\ not\ be\ empty.=La liste ne doit pas être vide. +Order=Ordre Add\ field\ to\ filter\ list=Ajouter un champ à la liste de filtres Add\ formatter\ to\ list=Ajouter un formateur à la liste @@ -2051,6 +2066,7 @@ Specified\ keywords=Mots-clefs fournis Cited\ entries=Entrées citées Search\ term\ is\ empty.=Le terme de recherche est vide. Invalid\ regular\ expression.=Expression régulière invalide. +Please\ provide\ a\ valid\ aux\ file.=Veuillez fournir un fichier AUX valide. Keyword\ delimiter=Séparateur de mots-clefs Hierarchical\ keyword\ delimiter=Séparateur de mots-clefs hiérarchique Escape\ ampersands=Échapper les esperluettes @@ -2065,7 +2081,7 @@ Add\ to\ current\ library=Ajouter au fichier courant Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=Démarre l'extraction et ajoute les entrées résultantes au fichier actuellement ouvert Your\ text\ is\ being\ parsed...=Votre texte est en cours d'analyse... -BibTeX\ key\ filters=Filtres de clefs BibTeX +Citation\ key\ filters=Filtres des clefs de citation Field\ filters=Filtres de champ Message\ filters=Filtres de messages Clear\ filters=Effacer les filtres @@ -2178,7 +2194,7 @@ Translator(s)\ of\ the\ "Title"\ or\ "Booktitle",\ depending\ on\ the\ entry\ ty Type\ of\ a\ "Manual",\ "Patent",\ "Report",\ or\ "Thesis".=Type d'un "Manual", "Patent", "Report" ou "Thesis". This\ field\ holds\ an\ entry\ key\ for\ the\ cross-referencing\ feature.\ Child\ entries\ with\ a\ "Crossref"\ field\ inherit\ data\ from\ the\ parent\ entry\ specified\ in\ the\ "Crossref"\ field.=Ce champ contient une clef d'entrée pour la fonction de référencement croisé. Les entrées filles avec un champ "Crossref" héritent des données de l'entrée mère spécifiée dans le champ "Crossref". Gender\ of\ the\ author\ or\ gender\ of\ the\ editor,\ if\ there\ is\ no\ author.=Sexe de l'auteur, ou de l'éditeur s'il n'y a pas d'auteur. -Citation\ keys\ of\ other\ entries\ which\ have\ a\ relationship\ to\ this\ entry.=Clefs de référence d'autres entrées ayant une relation avec cette entrée. +Citation\ keys\ of\ other\ entries\ which\ have\ a\ relationship\ to\ this\ entry.=Clefs de citation d'autres entrées ayant une relation avec cette entrée. This\ field\ is\ an\ alternative\ cross-referencing\ mechanism.\ It\ differs\ from\ "Crossref"\ in\ that\ the\ child\ entry\ will\ not\ inherit\ any\ data\ from\ the\ parent\ entry\ specified\ in\ the\ "Xref"\ field.=Ce champ est un mécanisme alternatif de référencement. Il diffère de « Crossref » dans la mesure où l'entrée fille n'héritera d'aucune donnée de l'entrée mère spécifiée dans le champ « Xref ». Owner/creator\ of\ this\ entry.=Propriétaire/créateur de cette entrée. Timestamp\ of\ this\ entry,\ when\ it\ has\ been\ created\ or\ last\ modified.=Horodatage de cette entrée, au moment de sa création ou de sa dernière modification. @@ -2226,3 +2242,23 @@ Computer\ software.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ A\ data\ set\ or\ a\ similar\ collection\ of\ (mostly)\ raw\ data.=Un jeu de données ou une collection similaire de données (principalement) brutes. Display\ count\ of\ items\ in\ group=Afficher le nombre d'éléments de chaque groupe +Remove\ the\ following\ characters\:=Supprimer les caractères suivants \: +Truncate=Tronquer +Truncates\ a\ string\ after\ a\ given\ index.=Tronque une chaîne après un index donné. +Close=Fermer +Close\ all=Fermer tout +Close\ all\ libraries=Fermer tous les fichiers +Close\ other\ libraries=Fermer les autres fichiers +Close\ others=Fermer les autres +Reveal\ in\ file\ explorer=Montrer dans l'explorateur de fichiers + +Reset=Restaurer +Reset\ entry\ types\ and\ fields\ to\ defaults=Réinitialiser les types d'entrées et les champs par défaut +This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Cela réinitialisera tous les types d'entrée à leurs valeurs par défaut et supprimera tous les types d'entrée personnalisés + +Replace\ tabs\ with\ space=Remplacer les tabulations par une espace +Replace\ tabs\ with\ space\ in\ the\ field\ content.=Remplacer les tabulations par une espace dans le contenu du champ. +Remove\ redundant\ spaces=Supprimer les espaces redondantes +Replaces\ consecutive\ spaces\ with\ a\ single\ space\ in\ the\ field\ content.=Remplace les espaces consécutives par un espace unique dans le contenu du champ. +Remove\ digits=Supprimer les chiffres +Removes\ digits.=Supprime les chiffres. diff --git a/src/main/resources/l10n/JabRef_in.properties b/src/main/resources/l10n/JabRef_in.properties index f59b9a8dbcc..0d26070ff70 100644 --- a/src/main/resources/l10n/JabRef_in.properties +++ b/src/main/resources/l10n/JabRef_in.properties @@ -68,11 +68,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Diterapkan %0 entri ke grup "%1". Assigned\ 1\ entry\ to\ group\ "%0".=Diterapkan 1 entri ke grup "%0". -Autogenerate\ BibTeX\ keys=Kunci BibTeX dibuat otomatis -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Tautan otomatis berkas dgn nama yang sama kunci BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Tautan otomatis hanya pada berkas sesuai dgn kunci BibTeX Automatically\ create\ groups=Otomatis membuat grup @@ -140,7 +137,6 @@ Copied=Disalin Copy=Salin -Copy\ BibTeX\ key=Salin kunci bibTeX Copy\ to\ clipboard=Salin ke papan klip @@ -352,15 +348,12 @@ General=Umum Generate=Membuat -Generate\ BibTeX\ key=Membuat kunci BibTeX Generate\ keys=Membuat kunci Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Buat kunci sebelum menyimpan (untuk entri tanpa kunci) -Generated\ BibTeX\ key\ for=Kunci BibTeX dibuat untuk -Generating\ BibTeX\ key\ for=Membuat kunci BibTeX untuk Get\ fulltext=Mendapatkan teks penuh Gray\ out\ non-hits=Kelabukan non-hits @@ -421,7 +414,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Grup bebas\: Ketika dipilih, lihat hanya entri grup ini -Invalid\ BibTeX\ key=Kunci BibTeX salah Invalid\ date\ format=Format hari salah @@ -786,7 +778,6 @@ The\ search\ is\ case\ sensitive.=Pencarian meperhitungkan huruf besar kecil. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Ada kemungkinan sama (ditandai dengan ikon) yang belum diselesaikan. Teruskan? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Operasi ini memerlukan semua entri mempunyai kunci BibTeX. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Operasi ini memerlukan satu atau lebih entri yang dipilih. @@ -868,7 +859,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Perlindungan basisdata Unable\ to\ save\ library=Tidak bisa menyimpan basisdata -BibTeX\ key\ generator=Pembuat kunci BibTeX Unable\ to\ open\ link.=Tidak bisa membuka tautan. MIME\ type=Tipe MIME @@ -914,9 +904,7 @@ search\ expression=ekspresi pencarian Optional\ fields\ 2=Bidang tambahan 2 Waiting\ for\ save\ operation\ to\ finish=Menunggu proses menyimpan selesai -Find\ and\ remove\ duplicate\ BibTeX\ keys=Temukan dan hapus kunci BibTeX yang sama Expected\ syntax\ for\ --fetch\='\:'=Sintaks yang diharapkan untuk --fetch\='\:' -Duplicate\ BibTeX\ key=kunci BibTeX sama General\ file\ directory=Direktori berkas umum @@ -963,7 +951,6 @@ Connected\ to\ document=Ditautkan ke dokumen Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Sisipkan acuan tanpa teks (entri akan muncul dalam daftar acuan) Cite\ selected\ entries\ with\ extra\ information=Acu entri pilihan dengan informasi ekstra Ensure\ that\ the\ bibliography\ is\ up-to-date=Pastikan bahwa bibliografi adalah yang mutakhir -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Acuan dokumen OpenOffice/LibreOffice dengan kunci BibTeX '%0', yang tidak ditemukan dalam basisdata sekarang. Unable\ to\ synchronize\ bibliography=Tidak bisa mensinkronkan bibliografi Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Menggabungkan pasangan acuan yang dipisahkan hanya dengan spasi Autodetection\ failed=Deteksi otomatis gagal @@ -1039,7 +1026,6 @@ Searching\ file\ system...=Pencarian dalam sistem berkas... Select\ directory=Pilih direktori Select\ files=Pilih berkas BibTeX\ entry\ creation=Pembuatan entri BibTeX -BibTeX\ key\ patterns=Pola kunci BibTeX Clear\ priority=Hapus prioritas Clear\ rank=Hapus pangkat Enable\ special\ fields=Aktifkan bidang khusus @@ -1178,7 +1164,6 @@ Select\ export\ format=Pilih format ekspor Return\ to\ JabRef=Kembali ke JabRef Could\ not\ connect\ to\ %0=Tidak bisa menghubungi %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Peringatan\: %0 dari %1 entri memiliki judul yang tidak terdefinisi. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Peringatan\: %0 dari %1 entri ada kunci BibTeX yang tidak terdefinisi. Really\ delete\ the\ selected\ entry?=Apa benar-benar mau menghapus entri pilihan? Really\ delete\ the\ %0\ selected\ entries?=Apa benar-benar mau menghapus %0 entri yang dipilih? Keep\ merged\ entry\ only=Terus bergabung masuk saja @@ -1192,8 +1177,6 @@ Discard\ changes=Perubahan dibuang Library\ '%0'\ has\ changed.=Basisdata %0 telah berubah. Print\ entry\ preview=Cetak pratinjau entri Copy\ title=Kopi judul -Copy\ \\cite{BibTeX\ key}=Salin \\cite{kunci BibTeX} -Copy\ BibTeX\ key\ and\ title=Salin kunci BibTeX dan judul Invalid\ DOI\:\ '%0'.=DOI salah\: '%0'. should\ start\ with\ a\ name=harus bermula dengan nama should\ end\ with\ a\ name=harus berakhiran nama @@ -1233,7 +1216,6 @@ New\ proceedings=Proses baru New\ unpublished=Baru tidak diterbitkan Preamble\ editor,\ store\ changes=Pembukaan editor, menyimpan perubahan Push\ to\ application=Aplikasi dorong -Resolve\ duplicate\ BibTeX\ keys=Menyelesaikan kesamaan kunci BibTeX Save\ all=Simpan semua String\ dialog,\ add\ string=Dialog string, tambah string String\ dialog,\ remove\ string=Dialog string, hapus string @@ -1242,7 +1224,6 @@ Unabbreviate=Tidak disingkat should\ contain\ a\ protocol=harus berisi sebuah protokol Copy\ preview=Tinjauan Salinan Automatically\ setting\ file\ links=Pengaturan link file secara otomatis -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Regenerasi BibTeX kunci menurut metadata Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Regenerasi semua kunci pada entri di BibTeX file Show\ debug\ level\ messages=Tampilkan pesan debug Default\ bibliography\ mode=Mode bibliografi bawaan @@ -1272,7 +1253,6 @@ Name\ cannot\ be\ empty=Kolom Nama tidak boleh kosong Display\ keywords\ appearing\ in\ ALL\ entries=Tampilkan katakunci yang ada dalam semua entri Display\ keywords\ appearing\ in\ ANY\ entry=Menampilkan kata kunci yang muncul dalam ANY entri None\ of\ the\ selected\ entries\ have\ titles.=Tak satu pun dari entri yang dipilih memiliki judul. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Tak satu pun dari entri yang dipilih memiliki kunci BibTeX. Unabbreviate\ journal\ names=Nama jurnal tidak disingkat Unabbreviating...=Tidak ada singkatan... Usage=Penggunaan @@ -1402,7 +1382,6 @@ incorrect\ control\ digit=digit kontrol salah incorrect\ format=format salah Copied\ version\ to\ clipboard=Versi disalin ke clipboard -BibTeX\ key=Kunci BibTeX Message=Pesan @@ -1512,7 +1491,6 @@ Shared\ entry\ is\ no\ longer\ present=Entri bersama sudah tidak ada lagi You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Anda dapat mengembalikan entri menggunakan operasi "Undo". You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Anda sudah terhubung ke database menggunakan rincian koneksi yang dimasukkan. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Tidak bisa mengutip entri tanpa kunci BibTeX. Buat kunci sekarang? New\ technical\ report=Laporan teknis baru %0\ file=%0 file @@ -1532,7 +1510,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Mem However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Namun, database baru dibuat bersamaan dengan pra-3.6 satu. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Membuka tautan dimana versi pengembangan saat ini dapat diunduh See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Lihat apa yang telah diubah di versi JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=Kunci BibTeX yang dirujuk tidak ada Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Selesai mendownload dokumen teks lengkap untuk masuk %0. last\ four\ nonpunctuation\ characters\ should\ be\ numerals=terakhir empat karakter non kata kunci harus berupa angka @@ -1564,7 +1541,6 @@ should\ be\ normalized=harus dinormalisasi Empty\ search\ ID=ID pencarian kosong The\ given\ search\ ID\ was\ empty.=ID pencarian yang diberikan kosong. -Copy\ BibTeX\ key\ and\ link=Salin kunci dan link BibTeX biblatex\ field\ only=bidang biblatex saja Error\ while\ generating\ fetch\ URL=Kesalahan saat membuat fetch URL @@ -1585,7 +1561,6 @@ File\ directory\ pattern=Pola direktori file Update\ with\ bibliographic\ information\ from\ the\ web=Update dengan informasi bibliografi dari web Could\ not\ find\ any\ bibliographic\ information.=Tidak dapat menemukan informasi bibliografi apa pun. -BibTeX\ key\ deviates\ from\ generated\ key=Kunci BibTeX menyimpang dari kunci yang dihasilkan DOI\ %0\ is\ invalid=DOI % 0 tidak valid Different\ customization,\ current\ settings\ will\ be\ overwritten=Kustomisasi yang berbeda, pengaturan saat ini akan ditimpa @@ -1652,7 +1627,6 @@ Could\ not\ retrieve\ entry\ data\ from\ '%0'.=Tidak dapat mengambil data entri Entry\ from\ %0\ could\ not\ be\ parsed.=Entri dari % 0 tidak dapat diuraikan. Invalid\ identifier\:\ '%0'.=Pengenal tidak valid\: ' % 0 '. This\ paper\ has\ been\ withdrawn.=Makalah ini telah ditarik. -empty\ BibTeX\ key=kosongkan tombol BibTeX @@ -1711,3 +1685,5 @@ Default\ pattern=Pola bawaan + + diff --git a/src/main/resources/l10n/JabRef_it.properties b/src/main/resources/l10n/JabRef_it.properties index ef5a4b0e246..7cc035c0854 100644 --- a/src/main/resources/l10n/JabRef_it.properties +++ b/src/main/resources/l10n/JabRef_it.properties @@ -1,3 +1,4 @@ +Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=Impossibile monitorare le modifiche ai file. Si prega di chiudere i file e i processi e riavviare. Si possono riscontrare errori continuando con questa sessione. %0\ contains\ the\ regular\ expression\ %1=%0 contiene l'espressione regolare %1 %0\ contains\ the\ term\ %1=%0 contiene il termine %1 @@ -73,11 +74,11 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Assegnate %0 voci al gruppo "%1". Assigned\ 1\ entry\ to\ group\ "%0".=Una voce assegnata al gruppo "%0". -Autogenerate\ BibTeX\ keys=Generazione automatica delle chiavi BibTeX +Autogenerate\ citation\ keys=Generazione automatica delle chiavi BibTeX -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Collegare automaticamente i file con nomi che iniziano con la chiave BibTeX +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=Collegare automaticamente i file con nomi che iniziano con la chiave BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Collegare automaticamente solo i file con nome corrispondente alla chiave BibTeX +Autolink\ only\ files\ that\ match\ the\ citation\ key=Collegare automaticamente solo i file con nome corrispondente alla chiave BibTeX Automatically\ create\ groups=Crea automaticamente i gruppi @@ -155,7 +156,7 @@ Copied=Copiato Copy=Copia -Copy\ BibTeX\ key=Copia chiave BibTeX +Copy\ citation\ key=Copia la chiave BibTeX Copy\ to\ clipboard=Copia negli appunti @@ -385,15 +386,15 @@ General\ Fields=Campi generali Generate=Genera -Generate\ BibTeX\ key=Genera la chiave BibTeX +Generate\ citation\ key=Genera la chiave BibTeX Generate\ keys=Genera le chiavi Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Genera le chiavi prima di salvare (per le voci senza chiave) -Generated\ BibTeX\ key\ for=Generata la chiave BibTeX per +Generated\ citation\ key\ for=Chiave BibTeX generata per -Generating\ BibTeX\ key\ for=Generazione in corso della chiave BibTeX per +Generating\ citation\ key\ for=Generazione in corso della chiave BibTeX per Get\ fulltext=Prendi testo completo Gray\ out\ non-hits=Disattiva le voci non corrispondenti @@ -456,7 +457,7 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Gruppo indipendente\: Quando selezionato, mostra solo le voci di questo gruppo I\ Agree=Accetto -Invalid\ BibTeX\ key=Chiave BibTeX non valida +Invalid\ citation\ key=Chiave BibTeX non valida Invalid\ date\ format=Formato data non valido @@ -859,7 +860,7 @@ The\ search\ is\ case\ sensitive.=La ricerca distingue maiuscole e minuscole. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Ci sono dei potenziali duplicati (contrassegnati con una icona 'D') che non possono essere risolti. Continuare? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Per questa operazione è necessario che tutte le voci selezionate abbiano la chiave BibTeX definita +This\ operation\ requires\ all\ selected\ entries\ to\ have\ citation\ keys\ defined.=Per questa operazione è necessario che tutte le voci selezionate abbiano la chiave BibTeX definita. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Per questa operazione una o più voci devono essere selezionate @@ -957,7 +958,7 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Protezione della libreria Unable\ to\ save\ library=Impossibile salvare la libreria -BibTeX\ key\ generator=Generatore di chiavi BibTeX +Citation\ key\ generator=Generatore di chiavi BibTeX Unable\ to\ open\ link.=Impossibile aprire il collegamento. MIME\ type=Tipo MIME @@ -965,9 +966,9 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Esegui fetcher When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=All'apertura di un collegamento ad un file, ricercare un file corrispondente se non ne è definito uno. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Riga %0\: chiave BibTeX corrotta %1. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Riga %0\: Chiave BibTeX corrotta %1 (contiene spazi). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Riga %0\: chiave BibTeX corrotta %1 (virgola mancante). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=Riga %0\: Trovata chiave BibTeX corrotta %1. +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Riga %0\: Trovata chiave BibTeX corrotta %1 (contiene spazi bianchi). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Riga %0\: Trovata chiave BibTeX corrotta %1 (virgola mancante). No\ full\ text\ document\ found=Nessun documento di testo completo trovato Download\ from\ URL=Scarica dall'URL Rename\ field=Rinomina il campo @@ -1010,9 +1011,9 @@ Optional\ fields\ 2=Campi opzionali 2 Waiting\ for\ save\ operation\ to\ finish=In attesa del termine del salvataggio Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=In attesa che le attività in background finiscano. Esci comunque? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Trova e rimuovi le chiavi BibTeX duplicate +Find\ and\ remove\ duplicate\ citation\ keys=Trova e rimuovi le chiavi BibTeX duplicate Expected\ syntax\ for\ --fetch\='\:'=Sintassi attesa per --fetch\='\:' -Duplicate\ BibTeX\ key=Chiave BibTeX duplicata +Duplicate\ citation\ key=Chiave BibTeX duplicata General\ file\ directory=Cartella dei file generale @@ -1067,7 +1068,7 @@ Connected\ to\ document=Connesso al documento Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Inserire una citazione senza testo (la voce comparirà nella lista dei riferimenti) Cite\ selected\ entries\ with\ extra\ information=Cita le voci selezionate con informazioni aggiuntive Ensure\ that\ the\ bibliography\ is\ up-to-date=Assicura che la bibliografia sia aggiornata -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Il tuo documento OpenOffice/LibreOffice fa riferimento alla chiave BibTeX '%0', non presente nella libreria corrente. +Your\ OpenOffice/LibreOffice\ document\ references\ the\ citation\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Il tuo documento OpenOffice/LibreOffice fa riferimento alla chiave BibTeX '%0', non presente nella libreria corrente. Unable\ to\ synchronize\ bibliography=Impossiblile sincronizzare la bibliografia Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Combina le coppie di citazioni separate solo da spazi Autodetection\ failed=Autorilevamento non riuscito @@ -1146,7 +1147,7 @@ Searching\ file\ system...=Ricerca nel filesystem... Select\ directory=Seleziona cartella Select\ files=Seleziona file BibTeX\ entry\ creation=Creazione della voce BibTeX -BibTeX\ key\ patterns=Modelli delle chiavi BibTeX +Citation\ key\ patterns=Modelli chiave BibTeX Clear\ priority=Azzera le priorità Clear\ rank=Azzera la valutazione Enable\ special\ fields=Abilita campi speciali @@ -1296,7 +1297,7 @@ Select\ export\ format=Selezionare il formato di esportazione Return\ to\ JabRef=Ritorna a JabRef Could\ not\ connect\ to\ %0=Impossibile la connessione a %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Attenzione\: %0 di %1 voci non hanno un titolo definito. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Attenzione\: %0 di %1 voci hanno chiavi BibTeX non definite. +Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ citation\ key.=Attenzione\: %0 di %1 voci hanno chiavi BibTeX non definite. Really\ delete\ the\ selected\ entry?=Cancellare veramente la voce selezionata? Really\ delete\ the\ %0\ selected\ entries?=Cancellare veramente le %0 voci selezionate? Keep\ merged\ entry\ only=Tieni solo i voci accorpate @@ -1310,8 +1311,8 @@ Discard\ changes=Scarta le modifiche Library\ '%0'\ has\ changed.=La libreria '%0' è stato modificata. Print\ entry\ preview=Stampa l'anteprima della voce Copy\ title=Copia titolo -Copy\ \\cite{BibTeX\ key}=Copia \\cite{chiave BibTeX} -Copy\ BibTeX\ key\ and\ title=Copia la chiave BibTeX ed il titolo +Copy\ \\cite{citation\ key}=Copia \\cite{citation key} +Copy\ citation\ key\ and\ title=Copia la chiave BibTeX ed il titolo Invalid\ DOI\:\ '%0'.=DOI non valido\: '%0'. Same\ DOI\ used\ in\ multiple\ entries=Stesso DOI usato in più voci should\ start\ with\ a\ name=deve cominciare con un nome @@ -1355,7 +1356,7 @@ New\ unpublished=Nuovo non pubblicato Preamble\ editor,\ store\ changes=Editor di preambolo Push\ to\ application=Manda all'applicazione Refresh\ OpenOffice/LibreOffice=Ricarica OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Risolvi le chiavi BibTeX duplicate +Resolve\ duplicate\ citation\ keys=Risolvi le chiavi BibTeX duplicate Save\ all=Salva tutti String\ dialog,\ add\ string=Dialogo stringhe, aggiungi una stringa String\ dialog,\ remove\ string=Dialogo stringhe, cancella una stringa @@ -1364,7 +1365,7 @@ Unabbreviate=Togli abbreviazioni should\ contain\ a\ protocol=deve contenere un protocollo Copy\ preview=Copia l'anteprima Automatically\ setting\ file\ links=Seleziona automaticamente i collegamenti ai file -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Rigenera le chiavi BibTeX secondo i metadati +Regenerating\ citation\ keys\ according\ to\ metadata=Rigenera le chiavi BibTeX secondo i metadati Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Rigenera tutte le chiavi per i campi di un file BibTeX Show\ debug\ level\ messages=Mostra i messaggi del livello di debug Default\ bibliography\ mode=Modalità bibliografica predefinita @@ -1396,7 +1397,7 @@ Name\ cannot\ be\ empty=Il nome non può essere vuoto Display\ keywords\ appearing\ in\ ALL\ entries=Mostra le parole chiave che compaiono in TUTTI le voci Display\ keywords\ appearing\ in\ ANY\ entry=Mostra le parole chiave che compaiono in QUALSIASI voce None\ of\ the\ selected\ entries\ have\ titles.=Nessuna delle voci selezionate ha un titolo. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Nessuno delle voci selezionate ha chiavi BibTeX. +None\ of\ the\ selected\ entries\ have\ citation\ keys.=Nessuno delle voci selezionate ha chiavi BibTeX. Unabbreviate\ journal\ names=Espandi nomi delle riviste (MEDLINE) Unabbreviating...=Elimino le abbreviazioni Usage=Uso @@ -1535,7 +1536,7 @@ incorrect\ control\ digit=carattere di controllo non corretto incorrect\ format=formato non corretto Copied\ version\ to\ clipboard=Versione copiata negli appunti -BibTeX\ key=Chiave BibTeX +Citation\ key=Chiave BibTeX Message=Messaggio @@ -1655,7 +1656,7 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Puoi ripristinare la voce usando l'"Undo". You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Sei già connesso ad un database con i dettagli di connessione specificati. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Non posso citare voci senza chiavi BibTeX. Le genero ora? +Cannot\ cite\ entries\ without\ citation\ keys.\ Generate\ keys\ now?=Non posso citare voci senza chiavi BibTeX. Le genero ora? New\ technical\ report=Nuovo rapporto tecnico %0\ file=file %0 @@ -1675,7 +1676,7 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Il However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Tuttavia è stato creato un nuovo database accanto a quello pre-3.6. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Apri un collegamento da cui scaricare la versione di sviluppo See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Vedi cosa è cambiato tra le versioni di JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=La chiave BibTeX a cui ci si riferisce non esiste +Referenced\ citation\ key\ does\ not\ exist=La chiave BibTeX a cui ci si riferisce non esiste Full\ text\ document\ for\ entry\ %0\ already\ linked.=Documento di testo per la voce %0 già collegato. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Lo scaricamento del testo completo del documento della voce %0 è terminato. Download\ full\ text\ documents=Scarica documenti di testo @@ -1712,7 +1713,7 @@ should\ be\ normalized=dovrebbe essere normalizzato Empty\ search\ ID=ID della ricerca vuoto The\ given\ search\ ID\ was\ empty.=L'ID della ricerca usato era vuoto. -Copy\ BibTeX\ key\ and\ link=Copia la chiave e il link BibTeX +Copy\ citation\ key\ and\ link=Copia la chiave BibTeX ed il collegamento biblatex\ field\ only=campo solo biblatex Error\ while\ generating\ fetch\ URL=Errore generando l'URL per l'estrazione @@ -1733,7 +1734,7 @@ File\ directory\ pattern=Modello della cartella dei file Update\ with\ bibliographic\ information\ from\ the\ web=Aggiorna con informazioni bibliografiche dal web Could\ not\ find\ any\ bibliographic\ information.=Non ho trovato informazioni bibliografiche. -BibTeX\ key\ deviates\ from\ generated\ key=Chiave BibTeX diversa dalla chiave generata +Citation\ key\ deviates\ from\ generated\ key=Chiave BibTeX diversa dalla chiave generata DOI\ %0\ is\ invalid=DOI %0 non valido Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Seleziona tutti i tipi personalizzati da memorizzare nelle preferenze locali\: @@ -1809,7 +1810,7 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=Non è stato possibile analizzare la vo Invalid\ identifier\:\ '%0'.=Identificatore non valido\: '%0'. This\ paper\ has\ been\ withdrawn.=Questo documento è stato ritirato. Finished\ writing\ XMP\ metadata.=Terminata la scrittura dei metadati XMP. -empty\ BibTeX\ key=chiave BibTeX vuota +empty\ citation\ key=chiave BibTeX vuota Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Il tuo ambiente di Runtime di Java si trova in %0. Aux\ file=File aux Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Gruppo contenente voci citate in un determinato file TeX @@ -1932,7 +1933,7 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=Sei sicuro di voler rimu Reset\ to\ default=Ripristina impostazioni predefinite Edit\ string\ constants=Modifica costanti di stringa Export\ all\ entries=Esporta tutte le voci -Generate\ BibTeX\ keys=Genera chiavi BibTeX +Generate\ citation\ keys=Genera le chiavi BibTeX Groups\ interface=Interfaccia gruppi Manage\ field\ names\ &\ content=Gestione nomi di campi e contenuto New\ library=Nuova libreria @@ -1986,7 +1987,7 @@ LaTeX\ Citations=Citazioni LaTeX Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=Cerca citazioni per questa voce nei file LaTeX No\ citations\ found=Nessuna citazione trovata No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=Nessun file LaTeX contenente questa voce è stato trovato. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=La voce selezionata non ha una chiave BibTeX associata. +Selected\ entry\ does\ not\ have\ an\ associated\ citation\ key.=La voce selezionata non ha una chiave BibTeX associata. Current\ search\ directory\:=Cartella di ricerca corrente\: Set\ LaTeX\ file\ directory=Imposta la cartella dei file LaTeX Import\ entries\ from\ LaTeX\ files=Importa le voci da file LaTeX @@ -2065,6 +2066,7 @@ Specified\ keywords=Parole chiave specificate Cited\ entries=Voci citate Search\ term\ is\ empty.=Il termine di ricerca è vuoto. Invalid\ regular\ expression.=Espressione regolare non valida. +Please\ provide\ a\ valid\ aux\ file.=Ti preghiamo di fornire un file aux valido. Keyword\ delimiter=Delimitatore parole chiave Hierarchical\ keyword\ delimiter=Delimitatore di parole chiave gerarchiche Escape\ ampersands=Preserva le e commerciali @@ -2079,7 +2081,7 @@ Add\ to\ current\ library=Aggiungi alla libreria corrente Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=Avvia l'estrazione e aggiunge le voci risultanti al database attualmente aperto Your\ text\ is\ being\ parsed...=Il testo è in fase di analisi... -BibTeX\ key\ filters=Filtri chiavi BibTeX +Citation\ key\ filters=Filtri chiave BibTeX Field\ filters=Filtri campo Message\ filters=Filtri messaggi Clear\ filters=Rimuovi filtri @@ -2243,3 +2245,20 @@ Display\ count\ of\ items\ in\ group=Visualizza il conteggio degli elementi nel Remove\ the\ following\ characters\:=Rimuovi i seguenti caratteri\: Truncate=Tronca Truncates\ a\ string\ after\ a\ given\ index.=Tronca una stringa dopo un dato indice. +Close=Chiudi +Close\ all=Chiudi tutti +Close\ all\ libraries=Chiudi tutte le Librerie +Close\ other\ libraries=Chiudi le altre librerie +Close\ others=Chiudi gli altri +Reveal\ in\ file\ explorer=Rivela nel file explorer + +Reset=Ripristina +Reset\ entry\ types\ and\ fields\ to\ defaults=Reimposta i tipi di voci e i campi ai valori predefiniti +This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Questo reimposterà tutti i tipi di voci ai loro valori predefiniti e rimuoverà tutti i tipi di voci personalizzate + +Replace\ tabs\ with\ space=Sostituisci le tabulazioni con spazio +Replace\ tabs\ with\ space\ in\ the\ field\ content.=Sostituisci le tabulazioni con spazio nel contenuto del campo. +Remove\ redundant\ spaces=Rimuovi spazi ridondanti +Replaces\ consecutive\ spaces\ with\ a\ single\ space\ in\ the\ field\ content.=Sostituisce gli spazi consecutivi con uno spazio singolo nel contenuto del campo. +Remove\ digits=Rimuovi le cifre +Removes\ digits.=Rimuove le cifre. diff --git a/src/main/resources/l10n/JabRef_ja.properties b/src/main/resources/l10n/JabRef_ja.properties index 34356434614..9f8df3afdb4 100644 --- a/src/main/resources/l10n/JabRef_ja.properties +++ b/src/main/resources/l10n/JabRef_ja.properties @@ -73,11 +73,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0項目をグループ「%1」に割り Assigned\ 1\ entry\ to\ group\ "%0".=1項目をグループ「%1」に割り当てました. -Autogenerate\ BibTeX\ keys=BibTeX鍵を自動生成 -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=BibTeX鍵で始まるファイル名を持つファイルを自動リンク -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=BibTeX鍵に一致するファイルのみを自動リンク Automatically\ create\ groups=グループを自動生成 @@ -151,7 +148,6 @@ Copied=コピーしました Copy=コピー -Copy\ BibTeX\ key=BibTeX鍵をコピー Copy\ to\ clipboard=クリップボードにコピーします. @@ -377,15 +373,12 @@ General\ Fields=汎用フィールド Generate=生成 -Generate\ BibTeX\ key=BibTeX鍵を生成 Generate\ keys=鍵を生成 Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=保存前に鍵を生成(鍵のない項目に対して) -Generated\ BibTeX\ key\ for=以下の項目のBibTeX鍵を生成しました: -Generating\ BibTeX\ key\ for=以下の項目のBibTeX鍵を生成しています: Get\ fulltext=文書本体を得る Gray\ out\ non-hits=合致しないものを淡色化 @@ -448,7 +441,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=独立グループ:このグループの項目のみを表示 I\ Agree=同意する -Invalid\ BibTeX\ key=無効なBibTeX鍵です Invalid\ date\ format=無効な日付書式です @@ -850,7 +842,6 @@ The\ search\ is\ case\ sensitive.=検索は大小文字を区別します. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=解消されていない重複と思われるものが存在します(「D」アイコンで標識されています).先に進みますか? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=この操作を行うには,選択された全項目にBibTeX鍵が定義されている必要があります. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=この操作を行うには,1つ以上の項目が選択されている必要があります. @@ -948,7 +939,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=ライブラリ保護 Unable\ to\ save\ library=ライブラリを保存することができませんでした -BibTeX\ key\ generator=BibTeX鍵の生成 Unable\ to\ open\ link.=リンクを開くことができませんでした. MIME\ type=MIME型 @@ -956,9 +946,6 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=取得子を実行 When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=ファイルリンクを開く際,リンクが定義されていなければ,一致するファイルを検索する -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=第%0行:破損したBibTeX鍵%1を検出しました. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=第%0行:破損したBibTeX鍵%1を検出しました(空白混入). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=第%0行:破損したBibTeX鍵%1を発見しました(コンマ欠落). No\ full\ text\ document\ found=文書本体が見つかりません Download\ from\ URL=URLからダウンロード Rename\ field=フィールドを改名しました @@ -1000,9 +987,7 @@ search\ expression=検索表現 Optional\ fields\ 2=非必須フィールド2 Waiting\ for\ save\ operation\ to\ finish=保存操作が終了するのを待っています -Find\ and\ remove\ duplicate\ BibTeX\ keys=重複BibTeX鍵を検出して削除 Expected\ syntax\ for\ --fetch\='\:'=--fetch\='<取得子名>\:<問い合わせ>'に期待される文法 -Duplicate\ BibTeX\ key=重複したBibTeX鍵 General\ file\ directory=一般ファイルディレクトリ @@ -1052,7 +1037,6 @@ Connected\ to\ document=文書に接続しました Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=表示なしで引用を挿入(項目は参考文献一覧にのみ表示されます) Cite\ selected\ entries\ with\ extra\ information=選択した項目を追加情報とともに引用 Ensure\ that\ the\ bibliography\ is\ up-to-date=書誌情報が最新であることを確認する -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=お使いのOpenOffice/LibreOffice文書がBibTeX鍵「%0」を参照していますが,現在のライブラリ中には見当たりません. Unable\ to\ synchronize\ bibliography=書誌情報を同期することができませんでした Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=空白で区切られている引用のペアのみを連結してください Autodetection\ failed=自動検出に失敗しました @@ -1130,7 +1114,6 @@ Searching\ file\ system...=ファイルシステムを検索しています... Select\ directory=辞書を選択 Select\ files=ファイルを選択 BibTeX\ entry\ creation=BibTeX項目の引用 -BibTeX\ key\ patterns=BibTeX鍵パターン Clear\ priority=優先度を消去 Clear\ rank=評価を消去 Enable\ special\ fields=特殊フィールドを使用する @@ -1278,7 +1261,6 @@ Select\ export\ format=書き出し形式を選んでください Return\ to\ JabRef=JabRefに戻る Could\ not\ connect\ to\ %0=%0に接続することができませんでした Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=警告;%1項目中%0項目に定義されていないタイトルがあります. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=警告;%1項目中%0項目に定義されていないBibTeX鍵があります. Really\ delete\ the\ selected\ entry?=選択した項目を本当に削除しますか? Really\ delete\ the\ %0\ selected\ entries?=選択した%0項目を本当に削除しますか? Keep\ merged\ entry\ only=統合した項目のみを維持 @@ -1292,8 +1274,6 @@ Discard\ changes=変更を放棄 Library\ '%0'\ has\ changed.=ライブラリ「%0」に変更が加えられました. Print\ entry\ preview=項目プレビューを印刷 Copy\ title=タイトルをコピー -Copy\ \\cite{BibTeX\ key}=\\cite{BibTeX鍵}をコピー -Copy\ BibTeX\ key\ and\ title=BibTeX鍵とタイトルをコピー Invalid\ DOI\:\ '%0'.=無効なDOIです:'%0'. should\ start\ with\ a\ name=始まりは名前でなくてはなりません should\ end\ with\ a\ name=終わりは名前でなくてはなりません @@ -1335,7 +1315,6 @@ New\ unpublished=新規unpublished Preamble\ editor,\ store\ changes=プリアンブルエディタ・変更を保存 Push\ to\ application=アプリケーションにプッシュ Refresh\ OpenOffice/LibreOffice=OpenOffice/LibreOfficeを更新 -Resolve\ duplicate\ BibTeX\ keys=重複したBibTeX鍵を解消する Save\ all=すべて保存 String\ dialog,\ add\ string=文字列ダイアログ・文字列を追加 String\ dialog,\ remove\ string=文字列ダイアログ・文字列を削除 @@ -1344,7 +1323,6 @@ Unabbreviate=短縮解除 should\ contain\ a\ protocol=プロトコルを含む必要あり Copy\ preview=プレビューをコピー Automatically\ setting\ file\ links=ファイルリンクを自動的に設定 -Regenerating\ BibTeX\ keys\ according\ to\ metadata=メタデータにしたがってBibTeX鍵を再生成 Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=BibTeXファイル中全項目の鍵を再生成 Show\ debug\ level\ messages=デバッグレベルメッセージを表示 Default\ bibliography\ mode=既定の書誌情報モード @@ -1376,7 +1354,6 @@ Name\ cannot\ be\ empty=名称は空にはできません Display\ keywords\ appearing\ in\ ALL\ entries=全ての項目に現れるキーワードを表示 Display\ keywords\ appearing\ in\ ANY\ entry=いずれかの項目に現れるキーワードを表示 None\ of\ the\ selected\ entries\ have\ titles.=選択した項目のいずれにもタイトルがありません. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=選択した項目のいずれにもBibTeX鍵がありません. Unabbreviate\ journal\ names=学術誌名を非短縮形に Unabbreviating...=短縮解除中... Usage=使用法 @@ -1514,7 +1491,6 @@ incorrect\ control\ digit=誤った制御数字 incorrect\ format=誤った書式 Copied\ version\ to\ clipboard=クリップボードにコピーされたバージョン -BibTeX\ key=BibTeX鍵 Message=メッセージ @@ -1634,7 +1610,6 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=「取り消し」操作を行って項目を復活させることができます. You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=入力済みの接続詳細情報を使って,データベースにすでに接続されています. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=BibTeX鍵がないと,項目を引用することができません.ここで鍵を生成しますか? New\ technical\ report=新規technical report %0\ file=%0ファイル @@ -1654,7 +1629,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=入 However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=しかしながら,pre-3.6データベースに従って,新しいデータベースが生成されました. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=現行開発版をダウンロードできる場所へのリンクを開きます See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=JabRefの各版における変更点を見ます -Referenced\ BibTeX\ key\ does\ not\ exist=参照されたBibTeX鍵は存在しません Full\ text\ document\ for\ entry\ %0\ already\ linked.=項目%0の文書本体は既にリンク済みです. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=項目%0の文書本体のダウンロードが終了しました. Download\ full\ text\ documents=文書本体をダウンロード @@ -1690,7 +1664,6 @@ should\ be\ normalized=標準化されたものでなくてはなりません Empty\ search\ ID=検索IDが空 The\ given\ search\ ID\ was\ empty.=提示された検索IDが空です. -Copy\ BibTeX\ key\ and\ link=BibTeX鍵とリンクをコピー biblatex\ field\ only=biblatexフィールドのみ Error\ while\ generating\ fetch\ URL=取得URLを生成中にエラー発生 @@ -1711,7 +1684,6 @@ File\ directory\ pattern=ファイルディレクトリのパターン Update\ with\ bibliographic\ information\ from\ the\ web=ウェブからの文献情報を使用して更新 Could\ not\ find\ any\ bibliographic\ information.=文献情報を見つけることができませんでした. -BibTeX\ key\ deviates\ from\ generated\ key=BibTeX鍵は生成された鍵と異なります DOI\ %0\ is\ invalid=DOI %0は有効ではありません Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=ローカル設定に保管されるカスタム型を全て選択: @@ -1786,7 +1758,6 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=%0 からの項目を解析すること Invalid\ identifier\:\ '%0'.=「%0」は識別子として無効です. This\ paper\ has\ been\ withdrawn.=この論文は撤回されました. Finished\ writing\ XMP\ metadata.=XMPメタデータを書き終えました. -empty\ BibTeX\ key=空のBibTeX鍵 Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=お使いのJava Runtime Environmentは%0にあります. Aux\ file=auxファイル Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=特定のTeXファイルでの引用項目を集めたグループ @@ -1906,7 +1877,6 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=本当にキーワード Reset\ to\ default=既定値に戻す Edit\ string\ constants=文字列定数の編集 Export\ all\ entries=全項目を書き出す -Generate\ BibTeX\ keys=BibTeX鍵を生成 Groups\ interface=グループ操作面 Manage\ field\ names\ &\ content=フィールド名・フィールド値の管理 New\ library=新規ライブラリ @@ -1960,7 +1930,6 @@ LaTeX\ Citations=LaTeXでの引用 Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=この項目を含む引用が他のLaTeXファイル中にないか検索 No\ citations\ found=引用はありません No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=この項目を含むLaTeXファイルは検出されませんでした。 -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=選択された項目には,対応するBibTeX鍵がありません. Current\ search\ directory\:=現在の検索ディレクトリ: Set\ LaTeX\ file\ directory=LaTeXファイルディレクトリを指定する Import\ entries\ from\ LaTeX\ files=LaTeXファイルから項目を読み込む @@ -2040,3 +2009,5 @@ Required=必須 + + diff --git a/src/main/resources/l10n/JabRef_nl.properties b/src/main/resources/l10n/JabRef_nl.properties index 2e9d415a2b8..54f51189764 100644 --- a/src/main/resources/l10n/JabRef_nl.properties +++ b/src/main/resources/l10n/JabRef_nl.properties @@ -69,11 +69,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 invoergegevens aan groep "%1" toegewe Assigned\ 1\ entry\ to\ group\ "%0".=1 invoer aan groep "%0" toegewezen. -Autogenerate\ BibTeX\ keys=BibTeX-sleutels automatisch genereren -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Autolink bestanden met namen starten met de BibTeX sleutel -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Autolink alleen bestanden die overeenkomen met de BibTeX sleutel Automatically\ create\ groups=Groepen automatisch aanmaken @@ -144,7 +141,6 @@ Copied=Gekopieerd Copy=Kopiëren -Copy\ BibTeX\ key=Kopieer BibTeX-sleutel Copy\ to\ clipboard=Kopiëren naar klembord @@ -360,15 +356,12 @@ General\ Fields=Algemene Velden Generate=Genereren -Generate\ BibTeX\ key=Genereer BibTeX-sleutel Generate\ keys=Genereer sleutels Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Genereer sleutels voor het opslaan (voor entries zonder een sleutel) -Generated\ BibTeX\ key\ for=Gegenereerde BibTeX-sleutel voor -Generating\ BibTeX\ key\ for=BibTeX-sleutel aan het genereren voor Get\ fulltext=Verkrijg volledige tekst Gray\ out\ non-hits=Maak niet gevonden items grijs @@ -431,7 +424,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Onafhankelijke groep\: Wanneer geselecteerd, toon enkel de invoergegevens van deze groep I\ Agree=Ik ga akkoord -Invalid\ BibTeX\ key=Ongeldige BibTeX-sleutel Invalid\ date\ format=Ongeldig datumformaat @@ -813,7 +805,6 @@ The\ search\ is\ case\ sensitive.=De zoekopdracht is hoofdlettergevoelig. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Er zijn mogelijke duplicaten (aangeduid met een icoon) die nog niet zijn opgelost. Doorgaan? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Deze operatie vereist dat alle geselecteerde invoergegevens BibTeX-sleutels gedefinieerd hebben. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Deze operatie vereist dat een of meerdere invoergegevens geselecteerd zijn. @@ -899,7 +890,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Bibliotheek bescherming Unable\ to\ save\ library=Kan bibliotheek niet opslaan -BibTeX\ key\ generator=BibTex sleutel generator Unable\ to\ open\ link.=Link openen niet mogelijk. MIME\ type=MIME type @@ -945,9 +935,7 @@ search\ expression=zoek expressie Optional\ fields\ 2=Optionele velden 2 Waiting\ for\ save\ operation\ to\ finish=Aan het wachten tot de operatie geslaagd is -Find\ and\ remove\ duplicate\ BibTeX\ keys=Vinden en verwijderen dubbele BibTeX-sleutels Expected\ syntax\ for\ --fetch\='\:'=Verwachte syntax voor --fetch\='\:' -Duplicate\ BibTeX\ key=BibTeX duplicaatsleutel General\ file\ directory=Algemene bestandsmap @@ -994,7 +982,6 @@ Connected\ to\ document=Verbonden met document Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Invoegen van een citaat zonder tekst (de vermelding wordt weergegeven in de referentielijst) Cite\ selected\ entries\ with\ extra\ information=Citeer geselecteerde invoergegevens met extra informatie Ensure\ that\ the\ bibliography\ is\ up-to-date=Zorg ervoor dat de bibliografie actueel is -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Uw OpenOffice/LibreOffice document refereert naar de BibTeX-sleutel '%0', welke niet kon worden gevonden in uw huidige bibliotheek. Unable\ to\ synchronize\ bibliography=Niet in staat om bibliografie te synchroniseren Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Combineer citaat-koppels die alleen door spaties worden gescheiden Autodetection\ failed=Autodetectie mislukt @@ -1070,7 +1057,6 @@ Searching\ file\ system...=Zoeken in bestandssysteem... Select\ directory=Map selecteren Select\ files=Bestand selecteren BibTeX\ entry\ creation=Maak BibTeX invoer -BibTeX\ key\ patterns=BibTeX sleutelpatronen Clear\ priority=Prioriteit wissen Clear\ rank=Rang wissen Enable\ special\ fields=Speciale velden inschakelen @@ -1210,7 +1196,6 @@ Select\ export\ format=Selecteer exportindeling Return\ to\ JabRef=Terug naar JabRef Could\ not\ connect\ to\ %0=Kon niet verbinden met%0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Waarschuwing\: %0 van de %1 invoergegevens hebben een ongedefinieerde titel. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Waarschuwing\: %0 van de %1 invoergegevens hebben een ongedefinieerde BibTeX-sleutel. Really\ delete\ the\ selected\ entry?=Geselecteerde invoer echt verwijderen? Really\ delete\ the\ %0\ selected\ entries?=Weet u zeker dat u de %0 geselecteerde invoeren wenst te verwijderen? Keep\ merged\ entry\ only=Enkel samengevoegde invoer behouden @@ -1224,8 +1209,6 @@ Discard\ changes=Verwerp wijzigingen Library\ '%0'\ has\ changed.=Bibliotheek '%0' is veranderd. Print\ entry\ preview=Afdrukvoorbeeld printen Copy\ title=Titel kopiëren -Copy\ \\cite{BibTeX\ key}=Kopieer \\cite{BibTeX-sleutel} -Copy\ BibTeX\ key\ and\ title=Kopieer BibTeX sleutel en titel Invalid\ DOI\:\ '%0'.=Ongeldig DOI\: '%0'. should\ start\ with\ a\ name=moet beginnen met een naam should\ end\ with\ a\ name=moet eindigen met een naam @@ -1266,7 +1249,6 @@ New\ unpublished=Nieuw ongepubliceerd Preamble\ editor,\ store\ changes=Preambule-editor, winkelwijzigingen Push\ to\ application=Verplaatsen naar applicatie Refresh\ OpenOffice/LibreOffice=OpenOffice/LibreOffice vernieuwen -Resolve\ duplicate\ BibTeX\ keys=Dubbele BibTeX steutels aanpakken Save\ all=Bewaar alles String\ dialog,\ add\ string=Tekenreeks dialoog, voeg reeks toe String\ dialog,\ remove\ string=Tekenreeks dialoog, verwijder reeks @@ -1275,7 +1257,6 @@ Unabbreviate=Niet afkorten should\ contain\ a\ protocol=zou een protocol moeten bevatten Copy\ preview=Kopie voorbeeld Automatically\ setting\ file\ links=Bestandslinks automatisch instellen -Regenerating\ BibTeX\ keys\ according\ to\ metadata=BibTeX-sleutels opnieuw genereren op basis van metagegevens Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Alle sleutels voor de invoergegevens in een BibTeX-bestand opnieuw genereren Show\ debug\ level\ messages=Foutopsporingsberichten tonen Default\ bibliography\ mode=Standaard bibliografiemodus @@ -1306,7 +1287,6 @@ Name\ cannot\ be\ empty=Naam mag niet leeg zijn Display\ keywords\ appearing\ in\ ALL\ entries=Trefwoorden die voorkomen in ALLE invoergegevens weergeven Display\ keywords\ appearing\ in\ ANY\ entry=Trefwoorden die voorkomen in ELKE invoer weergeven None\ of\ the\ selected\ entries\ have\ titles.=Geen van de geselecteerde invoergegevens hebben bevatten titels. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Geen van de gelecteerde invoergegevens bevatten BibTeX sleutels. Unabbreviate\ journal\ names=Maak afkorting van logboeknamen ongedaan Unabbreviating...=Niet afkorten... Usage=Gebruik @@ -1441,7 +1421,6 @@ incorrect\ control\ digit=onjuist controlegetal incorrect\ format=onjuiste format Copied\ version\ to\ clipboard=Versie gekopieerd naar klembord -BibTeX\ key=BibTeX-sleutel Message=Bericht @@ -1552,7 +1531,6 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=U kunt de invoer herstellen met de bewerking "Ongedaan maken". You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=U bent al verbonden met een database via ingevoerde verbindingsdetails. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Invoergegevens zonder BibTeX-sleutels kunnen niet worden geciteerd. Sleutels nu genereren? New\ technical\ report=Nieuw technisch verslag %0\ file=%0 bestand @@ -1572,7 +1550,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Ing However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Er is echter een nieuwe database gemaakt naast de pre-3.6. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Opent een link waar de huidige ontwikkelingsversie kan worden gedownload See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Zie wat er is veranderd in de JabRef versies -Referenced\ BibTeX\ key\ does\ not\ exist=Gerefereerde BibTeX-sleutel bestaat niet Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Klaar met downloaden volledig tekstdocument voor invoer %0. last\ four\ nonpunctuation\ characters\ should\ be\ numerals=de laatste vier niet-leestekens zouden cijfers moeten zijn @@ -1604,7 +1581,6 @@ should\ be\ normalized=zou moeten worden genormaliseerd Empty\ search\ ID=Leeg zoek ID The\ given\ search\ ID\ was\ empty.=Het opgegeven zoek ID was leeg. -Copy\ BibTeX\ key\ and\ link=Kopieer BibTeX sleutel en koppeling biblatex\ field\ only=uitsluitend biblatex veld Error\ while\ generating\ fetch\ URL=Fout bij genereren fetch URL @@ -1625,7 +1601,6 @@ File\ directory\ pattern=Bestandsmap patroon Update\ with\ bibliographic\ information\ from\ the\ web=Met bibliografische informatie van het web bijwerken Could\ not\ find\ any\ bibliographic\ information.=Geen bibliografische informatie gevonden. -BibTeX\ key\ deviates\ from\ generated\ key=BibTeX-sleutel wijkt af van gegenereerde sleutel DOI\ %0\ is\ invalid=DOI %0 is ongeldig Different\ customization,\ current\ settings\ will\ be\ overwritten=Verschillende aanpassingen, de huidige instellingen worden overschreven @@ -1692,7 +1667,6 @@ Could\ not\ retrieve\ entry\ data\ from\ '%0'.=Kon geen data ophalen van '%0'. Entry\ from\ %0\ could\ not\ be\ parsed.=Invoer van %0 kon niet worden geparseerd. Invalid\ identifier\:\ '%0'.=Ongeldig Id\: '%0'. This\ paper\ has\ been\ withdrawn.=Dit artikel is ingetrokken. -empty\ BibTeX\ key=lege BibTeX-sleutel Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Uw Java Runtime Environment bevindt zich op %0. Aux\ file=Aux bestand Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Groep bevat invoergegevens aangehaald in een bepaald TeX-bestand @@ -1806,3 +1780,5 @@ Default\ pattern=Standaard patroon + + diff --git a/src/main/resources/l10n/JabRef_no.properties b/src/main/resources/l10n/JabRef_no.properties index ea550e3f14f..e7e614014bc 100644 --- a/src/main/resources/l10n/JabRef_no.properties +++ b/src/main/resources/l10n/JabRef_no.properties @@ -67,11 +67,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=La til %0 oppføringer i gruppen "%1". Assigned\ 1\ entry\ to\ group\ "%0".=La til 1 enhet til gruppen "%0". -Autogenerate\ BibTeX\ keys=Autogenerer BibTeX-nøkler -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Autolink filer med navn som starter med BibTeX-nøkkelen -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Autolink bare filer med navn som samsvarer med BibTeX-nøkkelen Automatically\ create\ groups=Generer grupper automatisk @@ -143,7 +140,6 @@ Copied=Kopierte Copy=Kopier -Copy\ BibTeX\ key=Kopier BibTeX-nøkkel Copy\ to\ clipboard=Kopier til utklippstavle @@ -360,15 +356,12 @@ General\ Fields=Generelle felter Generate=Generer -Generate\ BibTeX\ key=Generere BibTeX-nøkkel Generate\ keys=Generer nøkler Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Generer nøkler før lagring (for enheter uten nøkkel)) -Generated\ BibTeX\ key\ for=Genererte BibTeX-nøkkel for -Generating\ BibTeX\ key\ for=Genererer BibTeX-nøkkel for Gray\ out\ non-hits=Vis ikke-treff i-grått @@ -428,7 +421,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Uavhengig gruppe\: Vis bare denne gruppens enheter I\ Agree=Jeg godtar -Invalid\ BibTeX\ key=Ugyldig BibTeX-nøkkel Invalid\ date\ format=Ugyldig datoformat @@ -799,7 +791,6 @@ The\ search\ is\ case\ sensitive.=Søket skiller mellom store og små bokstaver. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Det finnes mulige duplikater (merket med et ikon) som ikke har blitt håndtert. Fortsette? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Denne operasjonen krever at alle valgte enheter har definerte BibTeX-nøkler. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Denne operasjonen krever at en eller flere enheter er valgt. @@ -881,7 +872,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Biblioteksbeskyttelse Unable\ to\ save\ library=Kan ikke lagre biblioteket -BibTeX\ key\ generator=BibTeX-nøkkelgenerator Unable\ to\ open\ link.=Kan ikke åpne link. MIME\ type=MIME-type @@ -922,8 +912,6 @@ search\ expression=s¸keutryk Optional\ fields\ 2=Valgfrie felter 2 Waiting\ for\ save\ operation\ to\ finish=Venter på lagringsoperasjon -Find\ and\ remove\ duplicate\ BibTeX\ keys=Finn og fjern dupliserte BibTeX-nøkler -Duplicate\ BibTeX\ key=Duplisert BibTeX-nøkkel General\ file\ directory=Standard filkatalog @@ -970,7 +958,6 @@ Connected\ to\ document=Koblet til dokument Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Sett inn en referanse uten tekst (enheten vil bli med i referanselisten) Cite\ selected\ entries\ with\ extra\ information=Referer valgte enheter med ekstra informasjon Ensure\ that\ the\ bibliography\ is\ up-to-date=Sørg for at bibliografien er oppdatert -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=OpenOffice/LibreOffice-dokumentet referer til BibTeX-nøkkelen '%0', som ikke finnes i ditt aktuelle bibliotek. Unable\ to\ synchronize\ bibliography=Kunne ikke synkronisere bibliografien Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Slå sammen par av referanser som bare er adskilt av mellomrom Autodetection\ failed=Autodeteksjon mislyktes @@ -1043,8 +1030,6 @@ Path\ to\ %0=Sti til %0 Could\ not\ connect\ to\ %0=Kunne ikke koble til %0 -Copy\ \\cite{BibTeX\ key}=Kopier \\cite{BibTeX-nøkkel} -Copy\ BibTeX\ key\ and\ title=Kopier BibTeX-nøkkel og tittel Invalid\ DOI\:\ '%0'.=Ugyldig DOI\: '%0'. @@ -1052,7 +1037,6 @@ Close\ library=Lukk biblioteket Focus\ entry\ table=Flytt fokus til hovedtabell Import\ into\ current\ library=Importer til det aktive biblioteket Import\ into\ new\ library=Importer til nytt bibliotek -Resolve\ duplicate\ BibTeX\ keys=Søk etter dupliserte BibTeX-nøkler Save\ all=Lagre alle @@ -1193,7 +1177,6 @@ Export\ name=Navn på filter Main\ layout\ file=Hoved-layoutfil Reset\ to\ default=Tilbakestill til standard Export\ all\ entries=Eksporter alle oppføringer -Generate\ BibTeX\ keys=Generer BibTeX-nøkkel New\ library=Nytt bibliotek OpenOffice/LibreOffice=OpenOffice/LibreOffice Find\ and\ replace=Søk og erstatt @@ -1230,3 +1213,5 @@ Default\ pattern=Standardmønster + + diff --git a/src/main/resources/l10n/JabRef_pl.properties b/src/main/resources/l10n/JabRef_pl.properties index 49423304033..befdfb8a4a4 100644 --- a/src/main/resources/l10n/JabRef_pl.properties +++ b/src/main/resources/l10n/JabRef_pl.properties @@ -956,3 +956,5 @@ Reset\ All=Resetuj wszystko + + diff --git a/src/main/resources/l10n/JabRef_pt.properties b/src/main/resources/l10n/JabRef_pt.properties index 8e9a327fcca..a440211d21e 100644 --- a/src/main/resources/l10n/JabRef_pt.properties +++ b/src/main/resources/l10n/JabRef_pt.properties @@ -70,11 +70,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 referências atribuídas ao grupo "%1 Assigned\ 1\ entry\ to\ group\ "%0".=1 referência atribuído ao grupo "%0" -Autogenerate\ BibTeX\ keys=Geração automática de chaves BibTeX -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Criar links automaticamente arquivos com nomes iniciando pela chave BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Criar links automaticamente somente os arquivos que correspondem à chave BibTeX Automatically\ create\ groups=Criar grupos automaticamente @@ -147,7 +144,6 @@ Copied=Copiado Copy=Copiar -Copy\ BibTeX\ key=Copiar chave BibTeX Copy\ to\ clipboard=Copiar para a área de transferência @@ -366,15 +362,12 @@ General\ Fields=Campos Gerais Generate=Gerar -Generate\ BibTeX\ key=Gerar chave BibTeX Generate\ keys=Gerar chaves Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Gerar chaves antes de salvar -Generated\ BibTeX\ key\ for=Chave BibTeX gerada para -Generating\ BibTeX\ key\ for=Gerando chave BibTeX para Get\ fulltext=Obter texto completo Gray\ out\ non-hits=Esmaecer referências não encontradas @@ -437,7 +430,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Grupo independente\: Quando selecionado, mostra apenas as referências deste grupo I\ Agree=Concordo -Invalid\ BibTeX\ key=Chave BibTeX inválida Invalid\ date\ format=Formato de data inválido @@ -812,7 +804,6 @@ The\ search\ is\ case\ sensitive.=A busca é sensível ao caso. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Existem possíveis duplicatadas (marcadas com um ícone) que não foram resolvidas. Continuar? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Esta operação requer que todas as referências selecionadas tenham chaves BibTeX definidas. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Esta operação exige que uma ou mais referências sejam selecionadas @@ -894,7 +885,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Proteção da base de dados Unable\ to\ save\ library=Não foi possível salvar a base de dados -BibTeX\ key\ generator=Gerador de chaves BibTeX Unable\ to\ open\ link.=Não foi possível abrir link. This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ running\ instance\ of\ JabRef\ instead\ of\ opening\ a\ new\ instance.\ For\ instance,\ this\ is\ useful\ when\ you\ open\ a\ file\ in\ JabRef\ from\ your\ web\ browser.\ Note\ that\ this\ will\ prevent\ you\ from\ running\ more\ than\ one\ instance\ of\ JabRef\ at\ a\ time.=Esta funcionalidade permite que novos arquivos sejam abertos ou importados para uma instância do JabRef já aberta ao invés de abrir uma nova instância. Por exemplo, isto é útil quando você abre um arquivo no JabRef a partir de ser navegador web. Note que isto irá previnir que você execute uma ou mais instâncias do JabRef ao mesmo tempo. @@ -936,9 +926,7 @@ search\ expression=expressão de pesquisa Optional\ fields\ 2=Campos opcionais 2 Waiting\ for\ save\ operation\ to\ finish=Aguardando a operação de salvamento ser finalizada -Find\ and\ remove\ duplicate\ BibTeX\ keys=Encontrar e remover chaves BibTeX duplicadas Expected\ syntax\ for\ --fetch\='\:'=Sintaxe esperada para --fetch\='\:' -Duplicate\ BibTeX\ key=Duplicar chave BibTeX General\ file\ directory=Diretório geral de arquivos @@ -983,7 +971,6 @@ Connected\ to\ document=Conectado ao documento Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Inserir uma citação sem texto (a referência aparecerá na lista de referências) Cite\ selected\ entries\ with\ extra\ information=Citar as referências selecionadas com informações adicionais Ensure\ that\ the\ bibliography\ is\ up-to-date=Certifique-se que a bibliografia está atualizada -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Seu documento do OpenOffice/LibreOffice referencia a chave BibTeX '%0', que não foi encontrada em nossa base de dados. Unable\ to\ synchronize\ bibliography=Não foi possível sincronizar a bibliografia Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Combinar pares de citações que são separados apenas por espaços Autodetection\ failed=Falha na detecção automática @@ -1059,7 +1046,6 @@ Searching\ file\ system...=Buscando sistema de arquivo... Select\ directory=Selecionar diretório Select\ files=Selecionar arquivos BibTeX\ entry\ creation=Criação de referência BibTeX -BibTeX\ key\ patterns=Padrões de chaves BibTeX Clear\ priority=Limpar prioridades Clear\ rank=Limpar classificação Enable\ special\ fields=Habilitar campos especiais @@ -1196,7 +1182,6 @@ Select\ export\ format=Selecione o formato de Exportação Return\ to\ JabRef=Retornar ao JabRef Could\ not\ connect\ to\ %0=Não foi possível conectar a %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Alerta\: %0 de %1 referências não tem título definido. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Alerta\: %0 de %1 referências não tem chave definida. Really\ delete\ the\ selected\ entry?=Você realmente deseja remover a referência selecionada? Really\ delete\ the\ %0\ selected\ entries?=Você realmente deseja remover as %0 referências selecionadas? Keep\ merged\ entry\ only=Manter a referência combinada apenas @@ -1210,8 +1195,6 @@ Discard\ changes=Descartar mudanças Library\ '%0'\ has\ changed.=Base de dados '%0' mudou. Print\ entry\ preview=Imprimir preview da referência Copy\ title=Copiar título -Copy\ \\cite{BibTeX\ key}=Copiar como \\cite{chave BibTeX} -Copy\ BibTeX\ key\ and\ title=Copiar chave BibTeX e título Invalid\ DOI\:\ '%0'.=DOI inválida\: '%0'. should\ start\ with\ a\ name=deve iniciar com um nome should\ end\ with\ a\ name=deve terminar com um nome @@ -1251,7 +1234,6 @@ New\ unpublished=Novo não publicado Preamble\ editor,\ store\ changes=Editor do preâmbulo, guardar as alterações Push\ to\ application=Enviar para o aplicativo Refresh\ OpenOffice/LibreOffice=Atualizar OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Resolver chaves BibTeX duplicadas Save\ all=Salvar tudo String\ dialog,\ add\ string=Caixa de diálogo de Expressão, adicionar expressão String\ dialog,\ remove\ string=Caixa de diálogo de Expressão, remover expressão @@ -1260,7 +1242,6 @@ Unabbreviate=Reverter abreviações should\ contain\ a\ protocol=deve conter um protocolo Copy\ preview=Copiar visualização Automatically\ setting\ file\ links=Definir automaticamente ligações para arquivos -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Reformular chaves BibTeX de acordo com os metadados Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Reformular todas as chaves para as referências num arquivo BibTeX Show\ debug\ level\ messages=Mostrar as mensagens de depuração Default\ bibliography\ mode=Modo padrão da bibliografia @@ -1333,7 +1314,6 @@ Existing\ file=Arquivo existente -Copy\ BibTeX\ key\ and\ link=Copiar chave do BibTex e link @@ -1404,3 +1384,5 @@ Default\ pattern=Ppadrão predefinido + + diff --git a/src/main/resources/l10n/JabRef_pt_BR.properties b/src/main/resources/l10n/JabRef_pt_BR.properties index 7c5ee0af289..a1f5e4761fe 100644 --- a/src/main/resources/l10n/JabRef_pt_BR.properties +++ b/src/main/resources/l10n/JabRef_pt_BR.properties @@ -1,3 +1,4 @@ +Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=Não é possível monitorar as alterações de arquivos. Por favor feche os arquivos e os processors e reinicie. Você pode encontrar erros se continuar com esta sessão. %0\ contains\ the\ regular\ expression\ %1=%0 contém a Expressão Regular %1 %0\ contains\ the\ term\ %1=%0 contém o termo %1 @@ -73,11 +74,11 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 referências atribuídas ao grupo "%1 Assigned\ 1\ entry\ to\ group\ "%0".=1 referência atribuído ao grupo "%0" -Autogenerate\ BibTeX\ keys=Geração automática de chaves BibTeX +Autogenerate\ citation\ keys=Gerar chaves de citação automaticamente -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Criar links automaticamente arquivos com nomes iniciando pela chave BibTeX +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=Linkar automaticamente os arquivos com nomes iniciando pela chave da citação (citation key) -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Criar links automaticamente somente os arquivos que correspondem à chave BibTeX +Autolink\ only\ files\ that\ match\ the\ citation\ key=Linkar automativamente apenas os arquivos que correspondem à chave de citação (citation key) Automatically\ create\ groups=Criar grupos automaticamente @@ -91,8 +92,11 @@ Available\ import\ formats=Formatos de importação disponíveis %0\ source=Fonte %0 +Background\ Tasks=Tarefas de segundo plano +Background\ Tasks\ are\ running=Tarefas de segundo plano estão em execução +Background\ Tasks\ are\ done=Tarefas de segundo plano estão finalizadas Browse=Explorar @@ -104,6 +108,7 @@ Cannot\ create\ group=Impossível criar o grupo Cannot\ create\ group.\ Please\ create\ a\ library\ first.=Impossível criar o grupo. Por favor crie antes uma biblioteca. +Cannot\ open\ folder\ as\ the\ file\ is\ an\ online\ link.=Não foi possível abrir a pasta, pois o arquivo é um link online. case\ insensitive=Insensível ao caso @@ -151,7 +156,7 @@ Copied=Copiado Copy=Copiar -Copy\ BibTeX\ key=Copiar chave BibTeX +Copy\ citation\ key=Copiar chave de citação Copy\ to\ clipboard=Copiar para a área de transferência @@ -210,6 +215,7 @@ Default\ encoding=Codificação padrão Default\ grouping\ field=Agrupamento de campo padrão +Downloading=Baixando Execute\ default\ action\ in\ dialog=Executar ação padrão na caixa de diálogo @@ -262,6 +268,7 @@ Dynamically\ group\ entries\ by\ a\ free-form\ search\ expression=Agrupar refer Dynamically\ group\ entries\ by\ searching\ a\ field\ for\ a\ keyword=Agrupar referências dinamicamente selecionando um campo ou palavra-chave +Each\ line\ must\ be\ of\ the\ following\ form\:\ 'tab\:field1;field2;...;fieldN'.=Cada linha deve ter o seguinte formato\: 'tab\:field1;field2;...;fieldN'. Edit=Editar @@ -333,6 +340,7 @@ field=campo Field\ name=Nome do campo +Field\ names\ are\ not\ allowed\ to\ contain\ white\ spaces\ or\ certain\ characters\ (%0).=Nomes de campo não devem conter espaços em branco, nem certos caracteres (%0). Field\ to\ group\ by=Campos como critério de agrupamento @@ -368,6 +376,7 @@ Formatter\ name=Nome do formatador found\ in\ AUX\ file=encontrado em arquivo AUX +Fulltext\ for=Texto completo para Further\ information\ about\ Mr.\ DLib\ for\ JabRef\ users.=Mais informações sobre o Mr. DLib para usuários do JabRef. @@ -377,15 +386,15 @@ General\ Fields=Campos Gerais Generate=Gerar -Generate\ BibTeX\ key=Gerar chave BibTeX +Generate\ citation\ key=Gerar chave de citação Generate\ keys=Gerar chaves Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Gerar chaves antes de salvar -Generated\ BibTeX\ key\ for=Chave BibTeX gerada para +Generated\ citation\ key\ for=Chave de citação gerada para -Generating\ BibTeX\ key\ for=Gerando chave BibTeX para +Generating\ citation\ key\ for=Gerando chave de citação para Get\ fulltext=Obter texto completo Gray\ out\ non-hits=Esmaecer referências não encontradas @@ -448,7 +457,7 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Grupo independente\: Quando selecionado, mostra apenas as referências deste grupo I\ Agree=Concordo -Invalid\ BibTeX\ key=Chave BibTeX inválida +Invalid\ citation\ key=Chave de citação inválida Invalid\ date\ format=Formato de data inválido @@ -628,7 +637,7 @@ Preferences=Preferências Preferences\ recorded.=Preferências salvas. Preview=Previsualização -Citation\ Style=Estilo de Referenciação +Citation\ Style=Estilo de Citação Current\ Preview=Ver previsão Cannot\ generate\ preview\ based\ on\ selected\ citation\ style.=Não é possível gerar pré-visualização com base no estilo de citação selecionado. Bad\ character\ inside\ entry=Caracter inválido na referência @@ -697,6 +706,7 @@ Remove\ link=Remover link Remove\ old\ entry=Remover referência antiga +Remove\ string\ %0=Remover string %0 Removed\ group\ "%0".=Grupo "%0" removido. @@ -850,7 +860,7 @@ The\ search\ is\ case\ sensitive.=A busca é sensível ao caso. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Existem possíveis duplicatadas (marcadas com um ícone) que não foram resolvidas. Continuar? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Esta operação requer que todas as referências selecionadas tenham chaves BibTeX definidas. +This\ operation\ requires\ all\ selected\ entries\ to\ have\ citation\ keys\ defined.=Esta operação requer que todas as referências selecionadas tenham chaves de citação definidas. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Esta operação exige que uma ou mais referências sejam selecionadas @@ -948,7 +958,7 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Proteção da base de dados Unable\ to\ save\ library=Não foi possível salvar a base de dados -BibTeX\ key\ generator=Gerador de chaves BibTeX +Citation\ key\ generator=Gerador de chaves de citação Unable\ to\ open\ link.=Não foi possível abrir link. MIME\ type=MIME type @@ -956,9 +966,9 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Executar o fetcher When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Ao abrir o link do arquivo, procurar por arquivo correspondente se nenhum link está definido -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Linha %0\: Chave BibTeX corrompida encontrada %1. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Linha %0\: Chave BibTeX corrompida encontrada %1 (contém espaços em branco). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Linha %0\: Chave BibTeX corrompida encontrada %1 (vírgula faltando). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=Linha %0\: Chave de citação corrompida encontrada %1. +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Linha %0\: Chave de citação corrompida %1 (contém espaços em branco). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Linha %0\: Encontrada a chave de citação corrompida %1 (vírgula faltando). No\ full\ text\ document\ found=Nenhum documento encontrado Download\ from\ URL=Baixar da URL Rename\ field=Renomear campo @@ -999,10 +1009,11 @@ search\ expression=expressão de pesquisa Optional\ fields\ 2=Campos opcionais 2 Waiting\ for\ save\ operation\ to\ finish=Aguardando a operação de salvamento ser finalizada +Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=Aguardando a finalização de tarefas de segundo plano. Sair mesmo assim? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Encontrar e remover chaves BibTeX duplicadas +Find\ and\ remove\ duplicate\ citation\ keys=Localizar e remover chaves de citação duplicadas Expected\ syntax\ for\ --fetch\='\:'=Sintaxe esperada para --fetch\='\:' -Duplicate\ BibTeX\ key=Duplicar chave BibTeX +Duplicate\ citation\ key=Chave de citação duplicada General\ file\ directory=Diretório geral de arquivos @@ -1022,6 +1033,11 @@ Subject\ for\ sending\ an\ email\ with\ references=Assunto para enviar um email Automatically\ open\ folders\ of\ attached\ files=Abrir pastas de arquivos anexados automaticamente Error\ creating\ email=Erro ao criar email Entries\ added\ to\ an\ email=referências adicionadas para um email +Custom\ applications=Aplicativos personalizados +Please\ specify\ a\ file\ browser.=Por favor, especifique um gerenciador de arquivos. +Please\ specify\ a\ terminal\ application.=Por favor, especifique um aplicativo de terminal. +Use\ custom\ file\ browser=Usar outro gerenciador de arquivos +Use\ custom\ terminal\ emulator=Usar outro emulador de terminal exportFormat=Formato de Exportação Output\ file\ missing=Arquivo de saída não encontrado. No\ search\ matches.=Sem correspondências. @@ -1052,7 +1068,7 @@ Connected\ to\ document=Conectado ao documento Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Inserir uma citação sem texto (a referência aparecerá na lista de referências) Cite\ selected\ entries\ with\ extra\ information=Citar as referências selecionadas com informações adicionais Ensure\ that\ the\ bibliography\ is\ up-to-date=Certifique-se que a bibliografia está atualizada -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Seu documento do OpenOffice/LibreOffice referencia a chave BibTeX '%0', que não foi encontrada em nossa base de dados. +Your\ OpenOffice/LibreOffice\ document\ references\ the\ citation\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Seu documento OpenOffice/LibreOffice faz referência à chave de citação '%0', que não foi encontrada em sua biblioteca atual. Unable\ to\ synchronize\ bibliography=Não foi possível sincronizar a bibliografia Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Combinar pares de citações que são separados apenas por espaços Autodetection\ failed=Falha na detecção automática @@ -1081,6 +1097,7 @@ Web\ search=Pesquisa na Web Style\ selection=Seleção de estilo No\ valid\ style\ file\ defined=Nenhum estilo válido definido Choose\ pattern=Escolher modelo +Search\ and\ store\ files\ relative\ to\ library\ file\ location=Procurar e armazenar arquivos relativos ao local do arquivo da biblioteca Could\ not\ run\ the\ gnuclient/emacsclient\ program.\ Make\ sure\ you\ have\ the\ emacsclient/gnuclient\ program\ installed\ and\ available\ in\ the\ PATH.=Não foi possível executar o programa gnuclient/emacsclient. Certifique-se que você tem o programa gnucliente/emacscliente instalado e descrito na variável de ambiente PATH. You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=Você deve selecionar um arquivo de estilo válido ou utilizar um dos estilos padrão. @@ -1130,7 +1147,7 @@ Searching\ file\ system...=Buscando sistema de arquivo... Select\ directory=Selecionar diretório Select\ files=Selecionar arquivos BibTeX\ entry\ creation=Criação de referência BibTeX -BibTeX\ key\ patterns=Padrões de chaves BibTeX +Citation\ key\ patterns=Padrões de chave de citação Clear\ priority=Limpar prioridades Clear\ rank=Limpar classificação Enable\ special\ fields=Habilitar campos especiais @@ -1206,6 +1223,7 @@ Please\ specify\ a\ port=Por favor, especifique uma porta Please\ specify\ a\ username=Por favor, forneça o nome de usuário Please\ specify\ a\ password=Por favor, especifique a sua senha +Proxy\ configuration=Configuração de proxy Use\ custom\ proxy\ configuration=Usar configurações personalizadas de proxy Proxy\ requires\ authentication=Proxy requer autenticação Attention\:\ Password\ is\ stored\ in\ plain\ text\!=Atenção\: A senha é armazenada em texto simples\! @@ -1279,7 +1297,7 @@ Select\ export\ format=Selecione o formato de Exportação Return\ to\ JabRef=Retornar ao JabRef Could\ not\ connect\ to\ %0=Não foi possível conectar a %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Alerta\: %0 de %1 referências não tem título definido. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Alerta\: %0 de %1 referências não tem chave definida. +Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ citation\ key.=Aviso\: %0 de %1 entradas possuem uma chave de citação indefinida. Really\ delete\ the\ selected\ entry?=Você realmente deseja remover a referência selecionada? Really\ delete\ the\ %0\ selected\ entries?=Você realmente deseja remover as %0 referências selecionadas? Keep\ merged\ entry\ only=Manter a referência combinada apenas @@ -1293,9 +1311,10 @@ Discard\ changes=Descartar mudanças Library\ '%0'\ has\ changed.=Base de dados '%0' mudou. Print\ entry\ preview=Imprimir preview da referência Copy\ title=Copiar título -Copy\ \\cite{BibTeX\ key}=Copiar como \\cite{chave BibTeX} -Copy\ BibTeX\ key\ and\ title=Copiar chave BibTeX e título +Copy\ \\cite{citation\ key}=Copiar \\cite{citation key} +Copy\ citation\ key\ and\ title=Copiar chave de citação e título Invalid\ DOI\:\ '%0'.=DOI inválida\: '%0'. +Same\ DOI\ used\ in\ multiple\ entries=Mesmo DOI usado em múltiplas entradas should\ start\ with\ a\ name=deve iniciar com um nome should\ end\ with\ a\ name=deve terminar com um nome unexpected\ closing\ curly\ bracket=fechamento de chaves inesperado } @@ -1337,7 +1356,7 @@ New\ unpublished=Novo não publicado Preamble\ editor,\ store\ changes=Editor do preâmbulo, guardar as alterações Push\ to\ application=Enviar para o aplicativo Refresh\ OpenOffice/LibreOffice=Atualizar OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Resolver chaves BibTeX duplicadas +Resolve\ duplicate\ citation\ keys=Resolver chaves de citação duplicadas Save\ all=Salvar tudo String\ dialog,\ add\ string=Caixa de diálogo de Expressão, adicionar expressão String\ dialog,\ remove\ string=Caixa de diálogo de Expressão, remover expressão @@ -1346,7 +1365,7 @@ Unabbreviate=Reverter abreviações should\ contain\ a\ protocol=deve conter um protocolo Copy\ preview=Copiar visualização Automatically\ setting\ file\ links=Definir automaticamente ligações para arquivos -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Reformular chaves BibTeX de acordo com os metadados +Regenerating\ citation\ keys\ according\ to\ metadata=Regerar chaves de citação de acordo com os metadados Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Reformular todas as chaves para as referências num arquivo BibTeX Show\ debug\ level\ messages=Mostrar as mensagens de depuração Default\ bibliography\ mode=Modo padrão da bibliografia @@ -1378,7 +1397,7 @@ Name\ cannot\ be\ empty=Nome não pode estar vazio Display\ keywords\ appearing\ in\ ALL\ entries=Mostrar palavras-chave aparecendo em TODAS as referências Display\ keywords\ appearing\ in\ ANY\ entry=Exibir palavras-chave aparecendo em QUALQUER referência None\ of\ the\ selected\ entries\ have\ titles.=Nenhuma das entradas selecionadas tem títulos. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Nenhuma das referências selecionadas tem chaves BibTeX. +None\ of\ the\ selected\ entries\ have\ citation\ keys.=Nenhuma das referências selecionadas tem chaves de citação. Unabbreviate\ journal\ names=Reverter abreviações de nomes de periódicos Unabbreviating...=Revertendo abreviação Usage=Utilização @@ -1396,6 +1415,7 @@ Internal\ style=Estilo interno Add\ style\ file=Adicionar arquivo de estilo Current\ style\ is\ '%0'=Estilo atual é '%0 ' Remove\ style=Remover estilo +You\ must\ select\ a\ valid\ style\ file.\ Your\ style\ is\ probably\ missing\ a\ line\ for\ the\ type\ "default".=Você deve selecionar um arquivo de estilo válido. Seu estilo provavelmente não possui uma linha do tipo "default". Invalid\ style\ selected=Estilo inválido selecionado Reload=Recarregar @@ -1516,7 +1536,7 @@ incorrect\ control\ digit=dígito de controle incorreto incorrect\ format=formato incorreto Copied\ version\ to\ clipboard=Versão copiada para área de transferência -BibTeX\ key=Chave BibTeX +Citation\ key=Chave de citação Message=Mensagem @@ -1636,7 +1656,7 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Você pode restaurar a referência usando a operação "Desfazer". You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Você já está conectado a um banco de dados usando os detalhes de conexão inseridos. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Não é possível citar referências sem chaves BibTeX. Gerar chaves agora? +Cannot\ cite\ entries\ without\ citation\ keys.\ Generate\ keys\ now?=Não é possível citar referências sem chaves de referência. Gerar chaves agora? New\ technical\ report=Novo relatório técnico %0\ file=Arquivo %0 @@ -1656,7 +1676,7 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=A b However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=No entanto, um novo banco de dados foi criado junto do pré-3.6. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Abre um link onde a versão de desenvolvimento atual pode ser baixada See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Veja o que foi alterado nas versões do JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=A chave BibTeX referenciada não existe +Referenced\ citation\ key\ does\ not\ exist=A chave de citação referenciada não existe Full\ text\ document\ for\ entry\ %0\ already\ linked.=Documento relativo à referência %0 já está vinculado. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Download do documento concluído para referência %0. Download\ full\ text\ documents=Baixar documentos @@ -1671,6 +1691,7 @@ shared=compartilhado should\ contain\ an\ integer\ or\ a\ literal=deve conter um inteiro ou um literal should\ have\ the\ first\ letter\ capitalized=deve ter a primeira letra maiúscula edition\ of\ book\ reported\ as\ just\ 1=edição do livro relatado como apenas 1 +no\ integer\ as\ values\ for\ edition\ allowed=nenhum número inteiro permitido como valor para edição Tools=Ferramentas What's\ new\ in\ this\ version?=O que há de novo nesta versão? Want\ to\ help?=Quer ajudar? @@ -1692,7 +1713,7 @@ should\ be\ normalized=deve ser normalizado Empty\ search\ ID=ID de pesquisa vazio The\ given\ search\ ID\ was\ empty.=O ID de pesquisa fornecido estava vazio. -Copy\ BibTeX\ key\ and\ link=Copiar chave do BibTex e link +Copy\ citation\ key\ and\ link=Copiar chave de citação e link biblatex\ field\ only=apenas campo biblatex Error\ while\ generating\ fetch\ URL=Erro ao gerar URL de busca @@ -1713,7 +1734,7 @@ File\ directory\ pattern=Padrão do diretório de arquivos Update\ with\ bibliographic\ information\ from\ the\ web=Atualizar com informações bibliográficas da web Could\ not\ find\ any\ bibliographic\ information.=Não foi possível encontrar nenhuma informação bibliográfica. -BibTeX\ key\ deviates\ from\ generated\ key=A chave BibTeX é diferente da chave gerada +Citation\ key\ deviates\ from\ generated\ key=A chave de citação é diferente da chave gerada DOI\ %0\ is\ invalid=O DOI %0 é inválido Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Selecione todos os tipos personalizados que devem armazenados nas preferências locais\: @@ -1744,6 +1765,7 @@ Show\ this\ document\ until\ unlocked.=Mostra este documento até o desbloqueio. Set\ current\ user\ name\ as\ owner.=Defina o usuário como proprietário. Sort\ all\ subgroups\ (recursively)=Ordenar todos os subgrupos (recursivamente) +Collect\ and\ share\ telemetry\ data\ to\ help\ improve\ JabRef=Colete e compartilhe dados de telemetria para ajudar a melhorar JabRef Don't\ share=Não compartilhar Share\ anonymous\ statistics=Compartilhar estatísticas anônimas Telemetry\:\ Help\ make\ JabRef\ better=Telemetria\: Ajude a melhorar o JabRef @@ -1788,7 +1810,7 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=Não foi possível analisar a referênc Invalid\ identifier\:\ '%0'.=Identificador inválido\: '%0'. This\ paper\ has\ been\ withdrawn.=Este documento foi retirado. Finished\ writing\ XMP\ metadata.=Escrita de metadados XMP finalizada. -empty\ BibTeX\ key=chave BibTeX vazia +empty\ citation\ key=chave de citação vazia Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Seu Java Runtime Environment (JRE) está localizado em %0. Aux\ file=Arquivo Aux Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Grupo contendo referências citadas em um arquivo TeX @@ -1889,6 +1911,9 @@ Cancel\ import=Cancelar Importação Continue\ with\ import=Continuar com a importação Import\ canceled=Importação cancelada Select\ all\ new\ entries=Selecionar todas as novas referências +Total\ items\ found\:=Total de itens encontrados\: +Selected\ items\:=Itens selecionados\: +Download\ linked\ online\ files=Baixar arquivos online vinculados Select\ the\ entries\ to\ be\ imported\:=Selecione as referências a serem importadas\: Add\ new\ String=Adicionar nova String Must\ not\ be\ empty\!=Não pode estar vazio\! @@ -1908,7 +1933,7 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=Tem certeza que deseja r Reset\ to\ default=Restaurar padrão Edit\ string\ constants=Editar constantes Export\ all\ entries=Exportar todas as referências -Generate\ BibTeX\ keys=Gerar chaves BibTeX +Generate\ citation\ keys=Gerar chaves de citação Groups\ interface=Interface de grupos Manage\ field\ names\ &\ content=Gerenciar nomes e conteúdo dos campos New\ library=Nova biblioteca @@ -1962,7 +1987,7 @@ LaTeX\ Citations=Citações LaTeX Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=Pesquisar citações a essa referência nos arquivos LaTeX No\ citations\ found=Nenhuma citação encontrada No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=Nenhum arquivo LaTeX contendo essa referência foi encontrado. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=Referência selecionada não tem uma chave BibTeX associada. +Selected\ entry\ does\ not\ have\ an\ associated\ citation\ key.=O item selecionado não tem uma chave de citação associada. Current\ search\ directory\:=Diretório de pesquisa atual\: Set\ LaTeX\ file\ directory=Definir diretório de arquivos LaTeX Import\ entries\ from\ LaTeX\ files=Importar referências a partir dos arquivos LaTeX @@ -1983,6 +2008,7 @@ Synchronize\ special\ fields\ to\ keywords=Sincronizar campos especiais para pal Serialize\ special\ fields=Serializar campos especiais List\ must\ not\ be\ empty.=A lista não pode estar vazia. +Order=Ordem Add\ field\ to\ filter\ list=Adicionar campo à lista de filtros Add\ formatter\ to\ list=Adicionar formatador à lista @@ -2040,6 +2066,7 @@ Specified\ keywords=Palavras-chave especificadas Cited\ entries=Referências citadas Search\ term\ is\ empty.=O termo de pesquisa está vazio. Invalid\ regular\ expression.=Expressão regular inválida. +Please\ provide\ a\ valid\ aux\ file.=Forneça um arquivo aux válido. Keyword\ delimiter=Delimitador de palavra-chave Hierarchical\ keyword\ delimiter=Delimitador hierárquico de palavra-chave Escape\ ampersands="Escapar" ampersands (&) @@ -2054,7 +2081,7 @@ Add\ to\ current\ library=Adicionar à biblioteca atual Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=Inicia a extração e adiciona as referências resultantes à base de dados aberta Your\ text\ is\ being\ parsed...=O seu texto está sendo analisado... -BibTeX\ key\ filters=Filtros de chave BibTeX +Citation\ key\ filters=Filtros de chave de citação Field\ filters=Filtros de campo Message\ filters=Filtros de mensagens Clear\ filters=Limpar filtros @@ -2077,6 +2104,94 @@ Unable\ to\ open\ ShortScience.=Não foi possível abrir o ShortScience. Shared\ database=Banco de dados compartilhado Lookup=Procurar - - - +Please\ enter\ a\ field\ name\ to\ search\ for\ keywords.=Por favor, digite um nome de campo para buscar palavras-chave. +Access\ date\ of\ the\ address\ specified\ in\ the\ url\ field.=Data de acesso do endereço especificado no campo url. +Additional\ information\ related\ to\ the\ resource\ indicated\ by\ the\ eprint\ field.=Informações adicionais relacionadas ao recurso indicado pelo campo de eprint. +Annex\ to\ the\ eventtitle\ field.=Anexo ao campo eventtitle. +Author(s)\ of\ a\ commentary\ to\ the\ work.=Autor(es) de um comentário da obra. +Author(s)\ of\ an\ afterword\ to\ the\ work.=Autor(es) de um posfácio da obra. +Author(s)\ of\ an\ introduction\ to\ the\ work.=Autor(es) de uma introdução ao trabalho. +Author(s)\ of\ annotations\ to\ the\ work.=Autor(es) de anotações do trabalho. +Author(s)\ of\ the\ work.=Autor(es) da obra. +Can\ be\ used\ for\ known\ event\ acronyms.=Pode ser usado para os acrónimos conhecidos do evento. +Chapter\ or\ section\ or\ any\ other\ unit\ of\ a\ work.=Capítulo ou seção ou qualquer outra unidade de trabalho. +Date\ of\ a\ conference,\ a\ symposium,\ or\ some\ other\ event.=Data de uma conferência, um simpósio ou algum outro evento. +Designation\ to\ be\ used\ by\ the\ citation\ style\ as\ a\ substitute\ for\ the\ regular\ label\ if\ any\ data\ required\ to\ generate\ the\ regular\ label\ is\ missing.=Denominação a ser usada pelo estilo de citação como substituto para o rótulo regular se estiverem faltando quaisquer dados necessários para gerar o rótulo regular. +Digital\ Object\ Identifier\ of\ the\ work.=Identificador Digital de Objeto (DOI) da obra. +Edition\ of\ a\ printed\ publication.=Edição de uma publicação impressa. +Editor(s)\ of\ the\ work\ or\ the\ main\ publication,\ depending\ on\ the\ type\ of\ the\ entry.=Editor(es) da obra ou da publicação principal, dependendo do tipo da referência. +Electronic\ identifier\ of\ a\ work.=Identificador eletrônico de um trabalho. +Electronic\ identifier\ of\ an\ online\ publication.=Identificador eletrônico de uma publicação on-line. +If\ the\ work\ is\ published\ as\ part\ of\ another\ one,\ such\ as\ an\ article\ in\ a\ journal\ or\ a\ collection,\ this\ field\ holds\ the\ relevant\ page\ range\ in\ that\ other\ work.\ It\ may\ also\ be\ used\ to\ limit\ the\ reference\ to\ a\ specific\ part\ of\ a\ work\ (a\ chapter\ in\ a\ book,\ for\ example).\ For\ papers\ in\ electronic\ journals\ with\ anon-classical\ pagination\ setup\ the\ eid\ field\ may\ be\ more\ suitable.=Se o trabalho é publicado como parte de outro, tal qual um artigo em um periódico ou uma coleção, este campo contém o intervalo de páginas relevante nesse outro trabalho. Ele também pode ser usado para limitar a referência a uma parte específica de um trabalho (um capítulo em um livro, por exemplo). Para artigos em revistas eletrônicas com configuração de paginação não-tradicional, o campo eid pode ser mais adequado. +Information\ such\ as\ a\ library\ name\ and\ a\ call\ number.=Informações como nome de biblioteca ou número de chamada. +International\ Standard\ Book\ Number\ of\ a\ book.=Número Padrão Internacional do Livro (ISBN) de um livro. +Issue\ of\ a\ journal.=Edição de um periódico. +Key\ by\ which\ the\ work\ may\ be\ cited.=Chave pela qual o trabalho pode ser citado. +Link(s)\ to\ a\ local\ PDF\ or\ other\ document\ of\ the\ work.=Link(s) para um PDF local ou outro documento do trabalho. +Location\ of\ a\ conference,\ a\ symposium,\ or\ some\ other\ event.=Localização de uma conferência, um simpósio ou algum outro evento. +Main\ title\ of\ a\ multi-volume\ book,\ such\ as\ "Collected\ Works".=Título principal de um livro de vários volumes, como "Coletâneas". +Miscellaneous\ bibliographic\ data\ usually\ printed\ at\ the\ end\ of\ the\ entry.=Dados bibliográficos diversos geralmente impressos no final da referência. +Miscellaneous\ bibliographic\ data\ which\ does\ not\ fit\ into\ any\ other\ field.=Dados bibliográficos diversos que não se encaixam em nenhum outro campo. +Name(s)\ of\ the\ (manual)\ groups\ the\ entry\ belongs\ to.=Nome(s) do(s) grupos (manuais) que a referência pertence. +Name(s)\ of\ the\ publisher(s).=Nome(s) da(s) editora(s). +Name\ of\ a\ journal,\ a\ newspaper,\ or\ some\ other\ periodical.=Nome de um periódico, de um jornal ou de outro periódico. +Name\ of\ a\ publication\ series,\ such\ as\ "Studies\ in...",\ or\ the\ number\ of\ a\ journal\ series.=Nome de uma série de publicação, como "Estudos em...", ou o número de uma série de periódicos. +Name\ of\ a\ university\ or\ some\ other\ institution.=Nome de uma universidade ou outra instituição. +Note\ that\ this\ field\ holds\ the\ plain\ title\ of\ the\ event.\ Things\ like\ "Proceedings\ of\ the\ Fifth\ XYZ\ Conference"\ go\ into\ the\ titleaddon\ or\ booktitleaddon\ field.=Note que este campo contém o título simples do evento. Coisas como "Procedimento da Quinta Conferência XYZ" vão para o campo titleaddon ou booktitleaddon. +Note\ that\ this\ field\ is\ intended\ for\ commented\ editions\ which\ have\ a\ commentator\ in\ addition\ to\ the\ author.\ If\ the\ work\ is\ a\ stand-alone\ commentary,\ the\ commentator\ should\ be\ given\ in\ the\ author\ field.=Note que este campo é destinado a edições comentadas que têm um comentarista além do autor. Se o trabalho é um comentário individual, o comentarista deve ser inserido no campo do autor. +Number\ of\ a\ journal\ or\ the\ volume/number\ of\ a\ book\ in\ a\ series.=Número de um periódico ou o volume/número de um livro em uma série. +One\ or\ more\ page\ numbers\ or\ page\ ranges.=Um ou mais números de páginas ou intervalos de páginas. +Organization(s)\ that\ published\ a\ manual\ or\ an\ online\ resource,\ or\ sponsored\ a\ conference.=Organização(ões) que publicaram um manual ou um recurso online, ou patrocinaram uma conferência. +Publication\ date\ of\ the\ work.=Data de publicação do trabalho. +Publication\ month.=Mês de publicação. +Place(s)\ of\ publication,\ i.\ e.,\ the\ location\ of\ the\ publisher\ or\ institution,\ depending\ on\ the\ entry\ type.=Posição(ões) de publicação, por exemplo, a localização da editora ou instituição, dependendo do tipo de referência. +Title\ of\ the\ work.=Título da obra. +Total\ number\ of\ pages\ of\ the\ work.=Número total de páginas da obra. +Total\ number\ of\ volumes\ of\ a\ multi-volume\ work.=Número total de volumes de trabalho de vários volumes. +URL\ of\ an\ online\ publication.=URL de uma publicação online. +Volume\ of\ a\ multi-volume\ book\ or\ a\ periodical.=Volume de um livro de vários volumes ou periódico. +Year\ of\ publication.=Ano de publicação. +Subtitle\ related\ to\ the\ "Booktitle".=Subtítulo relacionado ao "Booktitle". +Comment\ to\ this\ entry.=Comentar esta referência. +Subtitle\ related\ to\ the\ "Maintitle".=Subtítulo relacionado ao "Maintitle". +Annex\ to\ the\ "Maintitle",\ to\ be\ printed\ in\ a\ different\ font.=Anexo ao "Maintitle", a ser impresso em uma fonte diferente. +Pagination\ of\ the\ work.\ The\ key\ should\ be\ given\ in\ the\ singular\ form.=Paginação do trabalho. A chave deve ser inserida de forma singular. +Number\ of\ a\ partial\ volume.\ This\ field\ applies\ to\ books\ only,\ not\ to\ journals.\ It\ may\ be\ used\ when\ a\ logical\ volume\ consists\ of\ two\ or\ more\ physical\ ones.=Número de um volume parcial. Este campo se aplica somente aos livros, não aos periódicos. Pode ser usado quando um volume lógico consiste em dois ou mais volumes físicos. +Title\ in\ an\ abridged\ form.=Título em forma abreviada. +Annex\ to\ the\ "Title",\ to\ be\ printed\ in\ a\ different\ font.=Anexo ao "Title", a ser impresso em outra fonte. +Translator(s)\ of\ the\ "Title"\ or\ "Booktitle",\ depending\ on\ the\ entry\ type.\ If\ the\ translator\ is\ identical\ to\ the\ "Editor",\ the\ standard\ styles\ will\ automatically\ concatenate\ these\ fields\ in\ the\ bibliography.=Tradutores(s) do "Title" ou "Booktitle", dependendo do tipo de referência. Se o tradutor for idêntico ao "Editor", os estilos padrão concatenarão automaticamente esses campos na bibliografia. +Type\ of\ a\ "Manual",\ "Patent",\ "Report",\ or\ "Thesis".=Tipo de "Manual", "Patent", "Report", or "Thesis". +This\ field\ holds\ an\ entry\ key\ for\ the\ cross-referencing\ feature.\ Child\ entries\ with\ a\ "Crossref"\ field\ inherit\ data\ from\ the\ parent\ entry\ specified\ in\ the\ "Crossref"\ field.=Este campo contém uma chave de entrada para o recurso de referência cruzada. Referências filhas com um campo "Crossref" herdam dados da referência pai especificada no campo "Crossref". +Citation\ keys\ of\ other\ entries\ which\ have\ a\ relationship\ to\ this\ entry.=Chaves de citação de outras referências que tenham uma relação com esta referência. +This\ field\ is\ an\ alternative\ cross-referencing\ mechanism.\ It\ differs\ from\ "Crossref"\ in\ that\ the\ child\ entry\ will\ not\ inherit\ any\ data\ from\ the\ parent\ entry\ specified\ in\ the\ "Xref"\ field.=Este campo é um mecanismo alternativo de referência cruzada. Difere de "Crossref" em que a referência filho não herdará nenhum dado da referência pai especificada no campo "Xref". +Owner/creator\ of\ this\ entry.=Proprietário/criador desta referência. +Timestamp\ of\ this\ entry,\ when\ it\ has\ been\ created\ or\ last\ modified.=Registro de data/hora desta referência, quando ela foi criada ou modificada pela última vez. +User-specific\ printed\ flag,\ in\ case\ the\ entry\ has\ been\ printed.=Indicação impressa específica do usuário, no caso da referência ter sido impressa. +User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=Indicação de relevância específica do usuário, caso a referência seja relevante. + + +An\ article\ in\ a\ work\ of\ reference.\ This\ is\ a\ more\ specific\ variant\ of\ the\ generic\ "InCollection"\ entry\ type.=Um artigo em um trabalho de referência. Esta é uma variante mais específica do tipo de referência genérico de "InCollection". +A\ multi-volume\ "Proceedings"\ entry.=Uma referência "Proceedings" com vários volumes. +A\ multi-volume\ "Reference"\ entry.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ an\ alias\ for\ "MvCollection".=Uma referência "Reference" de vários volumes. Os estilos padrão tratarão este tipo de referência como um apelido para "MvCollection". +This\ entry\ type\ is\ intended\ for\ sources\ such\ as\ web\ sites\ which\ are\ intrinsically\ online\ resources.=Este tipo de referência é destinado a fontes como sites que são recursos intrinsecamente on-line. +An\ entry\ set\ is\ a\ group\ of\ entries\ which\ are\ cited\ as\ a\ single\ reference\ and\ listed\ as\ a\ single\ item\ in\ the\ bibliography.=Um conjunto de referências é um grupo de referências que são citadas como uma única referência e listadas como um único item na bibliografia. +Supplemental\ material\ in\ a\ "Periodical".\ This\ type\ may\ be\ useful\ when\ referring\ to\ items\ such\ as\ regular\ columns,\ obituaries,\ letters\ to\ the\ editor,\ etc.\ which\ only\ have\ a\ generic\ title.=Material suplementar em um "Periodical". Este tipo pode ser útil quando se refere a itens como colunas regulares, obituários, cartas para o editor, etc. que têm apenas um título genérico. +Computer\ software.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ an\ alias\ for\ "Misc".=Software de computador. Os estilos padrão tratarão esse tipo de entrada como um apelido para "Misc". + +Close=Fechar +Close\ all=Fechar Tudo +Close\ all\ libraries=Fechar todas as bibliotecas +Close\ other\ libraries=Fechar outras bibliotecas +Close\ others=Fechar outros +Reveal\ in\ file\ explorer=Mostrar no explorador de arquivos + +Reset=Reset +Reset\ entry\ types\ and\ fields\ to\ defaults=Redefinir tipos de entrada e campos para o padrão +This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Isso redefinirá todos os tipos de referências aos seus valores padrão e removerá todos os tipos de entrada personalizados + +Replace\ tabs\ with\ space=Substituir tabs por espaços +Replace\ tabs\ with\ space\ in\ the\ field\ content.=Substituir tabs por espaços no conteúdo do campo. +Remove\ redundant\ spaces=Remover espaços redundantes +Replaces\ consecutive\ spaces\ with\ a\ single\ space\ in\ the\ field\ content.=Substitui espaços consecutivos por um único espaço no conteúdo do campo. +Remove\ digits=Remover dígitos +Removes\ digits.=Remove dígitos. diff --git a/src/main/resources/l10n/JabRef_ru.properties b/src/main/resources/l10n/JabRef_ru.properties index e8762864fc6..df9f530b8d7 100644 --- a/src/main/resources/l10n/JabRef_ru.properties +++ b/src/main/resources/l10n/JabRef_ru.properties @@ -1,3 +1,4 @@ +Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=Не удается отслеживать изменения файла. Закройте файлы и перезапустите программу. Вы можете столкнуться с ошибками, если продолжите текущую сессию. %0\ contains\ the\ regular\ expression\ %1=%0 содержит регулярное выражение %1 %0\ contains\ the\ term\ %1=%0 содержит условие %1 @@ -73,11 +74,11 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 записей назначено г Assigned\ 1\ entry\ to\ group\ "%0".=Назначена 1 запись группе "%0". -Autogenerate\ BibTeX\ keys=Автосоздание ключей BibTeX +Autogenerate\ citation\ keys=Автосоздание ключей BibTeX -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Автоматическая привязка файлов с именами, начинающимися с ключа BibTeX +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=Автоматическая привязка файлов с именами, начинающимися с ключа цитирования -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Автоматическая привязка только файлов с соответствием ключу BibTeX +Autolink\ only\ files\ that\ match\ the\ citation\ key=Автоматическая привязка только тех файлов, которые соответствуют ключу цитаты Automatically\ create\ groups=Автоматическое создание групп @@ -91,8 +92,11 @@ Available\ import\ formats=Доступные форматы импорта %0\ source=Источник %0 +Background\ Tasks=Фоновые задания +Background\ Tasks\ are\ running=Работают фоновые задачи +Background\ Tasks\ are\ done=Фоновые задачи выполнены Browse=Обзор @@ -152,7 +156,7 @@ Copied=Скопированное Copy=Копировать -Copy\ BibTeX\ key=Копировать ключ BibTeX +Copy\ citation\ key=Копировать ключ цитаты Copy\ to\ clipboard=Копировать в буфер обмена @@ -211,6 +215,7 @@ Default\ encoding=Кодировка по умолчанию Default\ grouping\ field=Поле группировки по умолчанию +Downloading=Загрузка … Execute\ default\ action\ in\ dialog=Выполнить действие по умолчанию в диалоге @@ -371,6 +376,7 @@ Formatter\ name=Имя программы форматирования found\ in\ AUX\ file=найдено в файле AUX +Fulltext\ for=Полный текст для Further\ information\ about\ Mr.\ DLib\ for\ JabRef\ users.=Доп. информация о Mr. DLib для пользователей JabRef. @@ -380,15 +386,15 @@ General\ Fields=Общие поля Generate=Создать -Generate\ BibTeX\ key=Создать ключ BibTeX +Generate\ citation\ key=Сгенерировать ключ цитаты Generate\ keys=Создать ключи Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Создать ключи перед сохранением (для записей без ключей) -Generated\ BibTeX\ key\ for=Создать ключ BibTeX для +Generated\ citation\ key\ for=Сгенерированный ключ цитаты для -Generating\ BibTeX\ key\ for=Создание ключа BibTeX для +Generating\ citation\ key\ for=Генерация ключа цитаты для Get\ fulltext=Получить весь текст Gray\ out\ non-hits=Деактивировать неподходящие @@ -451,7 +457,7 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Независимая группа\: Просмотр записей только этой группы (если выбрано) I\ Agree=Я согласен -Invalid\ BibTeX\ key=Недопустимый ключ BibTeX +Invalid\ citation\ key=Неверный ключ цитаты Invalid\ date\ format=Недопустимый формат даты @@ -700,6 +706,7 @@ Remove\ link=Удалить ссылку Remove\ old\ entry=Удалить старую запись +Remove\ string\ %0=Удалить строку %0 Removed\ group\ "%0".=Группа "%0" удалена. @@ -852,7 +859,7 @@ The\ search\ is\ case\ sensitive.=Поиск с учетом регистра. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Возможно наличие неразрешенных дубликатов (отмечены знаком). Продолжить? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Для этой операции необходимо определение ключей BibTeX всех выбранных записей. +This\ operation\ requires\ all\ selected\ entries\ to\ have\ citation\ keys\ defined.=Эта операция требует указания ключей цитирования для всех выбранных записей. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Для этой операции необходимо выбрать одну или несколько записей. @@ -950,7 +957,7 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Защита БД Unable\ to\ save\ library=Не удалось сохранить БД -BibTeX\ key\ generator=Генератор ключей BibTeX +Citation\ key\ generator=Генератор ключей цитирования Unable\ to\ open\ link.=Не удалось перейти по ссылке. MIME\ type=MIME-тип @@ -958,9 +965,9 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Запустить выборку When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=При переходе по ссылке выполнять поиск соответствующего файла, если ссылка не определена -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Строка %0\: найден поврежденный ключ BibTeX %1. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Строка %0\: найден поврежденный ключ BibTeX %1 (содержит пробелы). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Строка %0\: найден поврежденный ключ BibTeX %1 (пропущена запятая). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=Строка %0\: Найден поврежденный ключ цитаты %1. +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Строка %0\: Найден поврежденный ключ цитирования %1 (содержит пробелы). +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Строка %0\: Найден поврежденный цитатный ключ %1 (запятая отсутствует). Download\ from\ URL=Загрузить из URL-адреса Rename\ field=Переименовать поле Append\ field=Добавить поле @@ -1000,10 +1007,11 @@ search\ expression=выражение для поиска Optional\ fields\ 2=Доп. поля 2 Waiting\ for\ save\ operation\ to\ finish=Ожидается завершение операции сохранения +Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=Ожидается завершение фоновых задач. Все равно выйти? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Найти и удалить дубликаты ключей BibTeX +Find\ and\ remove\ duplicate\ citation\ keys=Найти и удалить дубликаты ключей цитирования Expected\ syntax\ for\ --fetch\='\:'=Стандартный синтаксис --fetch\='<имя инструмента>\:<запрос>' -Duplicate\ BibTeX\ key=Дубликат ключа BibTeX +Duplicate\ citation\ key=Копировать ключ цитаты General\ file\ directory=Общий каталог файлов @@ -1023,6 +1031,11 @@ Subject\ for\ sending\ an\ email\ with\ references=Тема письма эл.п Automatically\ open\ folders\ of\ attached\ files=Автоматически открывать папки для приложенных файлов Error\ creating\ email=Ошибка при создании сообщения эл.почты Entries\ added\ to\ an\ email=Записи, добавленные в сообщение эл.почты +Custom\ applications=Пользовательские приложения +Please\ specify\ a\ file\ browser.=Укажите файловый браузер. +Please\ specify\ a\ terminal\ application.=Пожалуйста, укажите терминальное приложение. +Use\ custom\ file\ browser=Использовать пользовательский файловый браузер +Use\ custom\ terminal\ emulator=Использовать пользовательский эмулятор терминала exportFormat=Формат экспорта Output\ file\ missing=Отсутствует файл вывода No\ search\ matches.=Нет совпадений для поиска. @@ -1053,7 +1066,7 @@ Connected\ to\ document=Подключено к документу Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Вставка цитаты без текста (запись отображается в списке ссылок) Cite\ selected\ entries\ with\ extra\ information=Цитировать выбранные записи с дополнительными сведениями Ensure\ that\ the\ bibliography\ is\ up-to-date=Проверьте актуальность библиографии -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Документ OpenOffice/LibreOffice ссылается на ключ BibTeX '%0', который не удалось найти в текущей БД. +Your\ OpenOffice/LibreOffice\ document\ references\ the\ citation\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Ваш документ OpenOffice/LibreOffice ссылается на ключ цитирования '%0', который не найден в вашей текущей библиотеке. Unable\ to\ synchronize\ bibliography=Не удалось выполнить синхронизацию библиографии Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Объединить пары цитат, разделенные только пробелом Autodetection\ failed=Ошибка автоопределения @@ -1082,6 +1095,7 @@ Web\ search=Веб-поиск Style\ selection=Выбор стиля No\ valid\ style\ file\ defined=Не определен допустимый файл стиля Choose\ pattern=Выбор шаблона +Search\ and\ store\ files\ relative\ to\ library\ file\ location=Поиск и хранение файлов относительно файла библиотеки Could\ not\ run\ the\ gnuclient/emacsclient\ program.\ Make\ sure\ you\ have\ the\ emacsclient/gnuclient\ program\ installed\ and\ available\ in\ the\ PATH.=Не удалось запустить приложение gnuclient/emacsclient. Убедитесь, что приложение gnuclient/emacsclient установлено и доступно по указанному пути PATH. You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=Необходимо использовать допустимый файл стиля или один из стилей по умолчанию. @@ -1131,7 +1145,7 @@ Searching\ file\ system...=Выполняется поиск в файловой Select\ directory=Выбрать каталог файлов Select\ files=Выбрать файлы BibTeX\ entry\ creation=Создание записи BibTeX -BibTeX\ key\ patterns=Шаблоны ключа BibTeX +Citation\ key\ patterns=Шаблоны ключей цитирования Clear\ priority=Очистить значения приоритета Clear\ rank=Очистить значения ранга Enable\ special\ fields=Разрешить поля особых отметок @@ -1207,6 +1221,7 @@ Please\ specify\ a\ port=Пожалуйста укажите порт Please\ specify\ a\ username=Пожалуйста укажите имя пользователя Please\ specify\ a\ password=Пожалуйста укажите пароль +Proxy\ configuration=Конфигурация прокси Use\ custom\ proxy\ configuration=Использовать пользовательские настройки прокси-сервера Proxy\ requires\ authentication=Для прокси-сервера требуется авторизация Attention\:\ Password\ is\ stored\ in\ plain\ text\!=Внимание. Пароль сохранен в виде простого текста. @@ -1280,7 +1295,7 @@ Select\ export\ format=Выбрать формат экспорта Return\ to\ JabRef=Вернуться в JabRef Could\ not\ connect\ to\ %0=Не удалось подключиться к серверу %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Предупреждение\: в %0 из %1 записей нет заглавия. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Предупреждение. Для %0 из %1 записей не определен ключ BibTeX. +Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ citation\ key.=Предупреждение\: %0 из %1 записей не имеют определенного ключа цитирования. Really\ delete\ the\ selected\ entry?=Подтвердите удаление выбранной записи. Really\ delete\ the\ %0\ selected\ entries?=Подтвердите удаление выбранных %0 записей. Keep\ merged\ entry\ only=Сохранить только объединенные записи @@ -1294,9 +1309,10 @@ Discard\ changes=Отменить изменения Library\ '%0'\ has\ changed.=БД '%0' изменена. Print\ entry\ preview=Предварительный просмотр записи для печати Copy\ title=Копировать заглавие -Copy\ \\cite{BibTeX\ key}=Копировать \\цитировать{ключ BibTeX} -Copy\ BibTeX\ key\ and\ title=Копировать ключ и заголовок BibTeX +Copy\ \\cite{citation\ key}=Копировать \\ цитировать{citation key} +Copy\ citation\ key\ and\ title=Копировать ключ цитаты и заголовок Invalid\ DOI\:\ '%0'.=Недопустимый DOI-адрес\: '%0'. +Same\ DOI\ used\ in\ multiple\ entries=Один и тот же DOI используется в нескольких записях should\ start\ with\ a\ name=должно начинаться с имени should\ end\ with\ a\ name=должно заканчиваться именем unexpected\ closing\ curly\ bracket=непредвиденная закрывающая фигурная скобка @@ -1338,7 +1354,7 @@ New\ unpublished=Новое неопубликованное Preamble\ editor,\ store\ changes=Редактор преамбул, сохранить изменения Push\ to\ application=Передать в приложение Refresh\ OpenOffice/LibreOffice=Обновить OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Разрешение дубликатов ключей BibTeX +Resolve\ duplicate\ citation\ keys=Разрешить дубликаты ключей цитат Save\ all=Сохранить все String\ dialog,\ add\ string=Диалоговое окно строк, добавить строку String\ dialog,\ remove\ string=Диалоговое окно строк, удалить строку @@ -1347,7 +1363,7 @@ Unabbreviate=Отменить сокращения should\ contain\ a\ protocol=должно содержать протокол Copy\ preview=Копировать предварительный просмотр Automatically\ setting\ file\ links=Автоуказание ссылок на файлы -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Восстановление ключей BibTeX на основе метаданных +Regenerating\ citation\ keys\ according\ to\ metadata=Восстановление ключей цитирования в соответствии с метаданными Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Восстановление всех ключей для записей в файле BibTeX Show\ debug\ level\ messages=Показать сообщения об отладке Default\ bibliography\ mode=Режим библиографии по умолчанию @@ -1379,7 +1395,7 @@ Name\ cannot\ be\ empty=Имя не может быть пустым Display\ keywords\ appearing\ in\ ALL\ entries=Отображение ключевых слов, относящихся ко ВСЕМ записям Display\ keywords\ appearing\ in\ ANY\ entry=Отображение ключевых слов, относящихся к КАКОЙ-ЛИБО записи None\ of\ the\ selected\ entries\ have\ titles.=Ни одна из выбранных записей не содержит заголовок. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Для выбранных записей отсутствуют ключи BibTeX. +None\ of\ the\ selected\ entries\ have\ citation\ keys.=Ни одна из выбранных записей не имеет ключей цитат. Unabbreviate\ journal\ names=Полные названия журналов Unabbreviating...=Отмена сокращений... Usage=Использование @@ -1518,7 +1534,7 @@ incorrect\ control\ digit=неверное контрольное число incorrect\ format=неверный формат Copied\ version\ to\ clipboard=Версия, скопированная в буфер обмена -BibTeX\ key=Ключ BibTeX +Citation\ key=Ключ цитаты Message=Сообщение @@ -1637,7 +1653,7 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Вы можете восстановить запись, используя операцию "Отменить". You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Вы уже подключены к базе, с помощью введенных данных. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Цитирование записей без ключей BibTeX невозможно. Создать ключи сейчас? +Cannot\ cite\ entries\ without\ citation\ keys.\ Generate\ keys\ now?=Невозможно цитировать записи без ключей цитат. Создать ключи сейчас? New\ technical\ report=Технический отчет %0\ file=Файл %0 @@ -1657,7 +1673,7 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=В However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Вместе с тем была создана новая база данных до 3.6. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Открывает ссылку, где текущая версия для разработчиков может быть загружена See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Посмотрите, что было изменено в версиях JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=Указанный ключ BibTeX не существует +Referenced\ citation\ key\ does\ not\ exist=Ключ ссылки на цитату не существует Full\ text\ document\ for\ entry\ %0\ already\ linked.=Полный текст документа для записи %0 уже привязан. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Завершена загрузка документа для записи %0. Download\ full\ text\ documents=Скачать полный текст документов @@ -1692,7 +1708,7 @@ should\ be\ normalized=должно быть нормализовано Empty\ search\ ID=Пустой поисковый запрос The\ given\ search\ ID\ was\ empty.=Указанный поисковый ID был пустым. -Copy\ BibTeX\ key\ and\ link=Копировать ключ BibTeX и ссылку +Copy\ citation\ key\ and\ link=Скопировать ключ цитаты и ссылку biblatex\ field\ only=только поле типа biblatex Error\ while\ generating\ fetch\ URL=Ошибка генерации URL адреса загрузки @@ -1713,7 +1729,7 @@ File\ directory\ pattern=Шаблон каталога файлов Update\ with\ bibliographic\ information\ from\ the\ web=Обновление библиографической информации из Интернета Could\ not\ find\ any\ bibliographic\ information.=Не удалось найти никакой библиографической информации. -BibTeX\ key\ deviates\ from\ generated\ key=Ключ BibTeX отличается от сгенерированного +Citation\ key\ deviates\ from\ generated\ key=Ключ цитирования отличается от сгенерированного ключа DOI\ %0\ is\ invalid=DOI %0 недопустимый Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Выберите все настраиваемые типы для хранения в локальных настройках\: @@ -1789,7 +1805,7 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=Данные в %0 не могут бы Invalid\ identifier\:\ '%0'.=Неверный идентификатор\: '%0'. This\ paper\ has\ been\ withdrawn.=Настоящий документ был отозван. Finished\ writing\ XMP\ metadata.=Закончилась запись метаданных XMP. -empty\ BibTeX\ key=пустой ключ BibTeX +empty\ citation\ key=пустой ключ цитаты Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Ваша исполнительная среда Java расположена в %0. Aux\ file=Aux файл Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Группа, содержащая записи в заданном TeX файле @@ -1890,6 +1906,7 @@ Import\ canceled=Импорт отменен Select\ all\ new\ entries=Выбрать все новые записи Total\ items\ found\:=Всего найдено\: Selected\ items\:=Выбранные элементы\: +Download\ linked\ online\ files=Скачать связанные онлайн файлы Select\ the\ entries\ to\ be\ imported\:=Выберите записи для импорта\: Add\ new\ String=Добавить новую строку Must\ not\ be\ empty\!=Не может быть пустым\! @@ -1909,7 +1926,7 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=Вы уверены, ч Reset\ to\ default=Сбросить настройки Edit\ string\ constants=Редактировать строковые константы Export\ all\ entries=Экспорт всех записей -Generate\ BibTeX\ keys=Сгенерировать ключи BibTeX +Generate\ citation\ keys=Генерировать ключи цитирования Groups\ interface=Интерфейс групп Manage\ field\ names\ &\ content=Управлять названиями полей и контентом New\ library=Новая БД @@ -1963,7 +1980,7 @@ LaTeX\ Citations=Цитаты LaTeX Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=Поиск цитат для этой записи в файлах LaTeX No\ citations\ found=Цитаты не найдены No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=Не найдено файлов LaTeX, содержащих эту запись. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=Выбранная запись не имеет связанного ключа BibTeX. +Selected\ entry\ does\ not\ have\ an\ associated\ citation\ key.=Выбранная запись не имеет связанного ключа цитирования. Current\ search\ directory\:=Текущий каталог поиска\: Set\ LaTeX\ file\ directory=Задать каталог файлов LaTeX Import\ entries\ from\ LaTeX\ files=Импорт записей из файлов LaTeX @@ -1984,6 +2001,7 @@ Synchronize\ special\ fields\ to\ keywords=Синхронизировать сп Serialize\ special\ fields=Сериализовать специальные поля List\ must\ not\ be\ empty.=Список не должен быть пустым. +Order=Порядок сортировки Add\ field\ to\ filter\ list=Добавить поле в список фильтров Add\ formatter\ to\ list=Добавить форматор в список @@ -2025,9 +2043,11 @@ Select\ all\ changes\ on\ the\ right=Выделить все изменения Dismiss=Отклонить +Please\ provide\ a\ valid\ aux\ file.=Пожалуйста, предоставьте правильный файл aux. +Citation\ key\ filters=Фильтры ключей цитирования Unable\ to\ open\ ShortScience.=Невозможно открыть ShortScience. @@ -2159,7 +2179,7 @@ This\ entry\ type\ is\ intended\ for\ sources\ such\ as\ web\ sites\ which\ are\ A\ single-volume\ work\ of\ reference\ such\ as\ an\ encyclopedia\ or\ a\ dictionary.=Неделимая работа или ссылка, как энциклопедия или словарь. A\ technical\ report,\ research\ report,\ or\ white\ paper\ published\ by\ a\ university\ or\ some\ other\ institution.=Технический отчет, исследовательский отчет, или белая книга, выпущенная институтом или другим учреждением. An\ entry\ set\ is\ a\ group\ of\ entries\ which\ are\ cited\ as\ a\ single\ reference\ and\ listed\ as\ a\ single\ item\ in\ the\ bibliography.=Набор записей представляет собой группу записей, которые приводятся в виде единой ссылки и перечислены в виде одного элемента в библиографии. -Supplemental\ material\ in\ a\ "Book".\ This\ type\ is\ provided\ for\ elements\ such\ as\ prefaces,\ introductions,\ forewords,\ afterwords,\ etc.\ which\ often\ have\ a\ generic\ title\ only.=Дополнительный материал в "Книге" предназначен для таких элементов, как предисловия, введения, послесловия и т.д. +Supplemental\ material\ in\ a\ "Book".\ This\ type\ is\ provided\ for\ elements\ such\ as\ prefaces,\ introductions,\ forewords,\ afterwords,\ etc.\ which\ often\ have\ a\ generic\ title\ only.=Дополнительный материал в "Книге" предназначен для таких элементов, как предисловия, введения, послесловия и т.д. Supplemental\ material\ in\ a\ "Collection".=Дополнительные материалы в "Коллекции". Supplemental\ material\ in\ a\ "Periodical".\ This\ type\ may\ be\ useful\ when\ referring\ to\ items\ such\ as\ regular\ columns,\ obituaries,\ letters\ to\ the\ editor,\ etc.\ which\ only\ have\ a\ generic\ title.=Дополнительные материалы в "Периодическом издании". Этот тип может быть полезен при обращении к таким элементам, как обычные колонки, некрологи, письма к редактору и т.д., которые имеют только общее название. A\ thesis\ written\ for\ an\ educational\ institution\ to\ satisfy\ the\ requirements\ for\ a\ degree.=Тезис, написанный для учебного заведения с целью удовлетворения требований к степени. @@ -2168,3 +2188,23 @@ Computer\ software.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ A\ data\ set\ or\ a\ similar\ collection\ of\ (mostly)\ raw\ data.=Набор данных или аналогичный набор (преимущественно) сырых данных. Display\ count\ of\ items\ in\ group=Показывать количество элементов в группе +Remove\ the\ following\ characters\:=Удалить следующие символы\: +Truncate=Усечение +Truncates\ a\ string\ after\ a\ given\ index.=Усекать строку после указанного номера. +Close=Закрыть +Close\ all=Закрыть всё +Close\ all\ libraries=Закрыть все библиотеки +Close\ other\ libraries=Закрыть другие библиотеки +Close\ others=Закрыть другие +Reveal\ in\ file\ explorer=Показать в обозревателе файлов + +Reset=Сбросить +Reset\ entry\ types\ and\ fields\ to\ defaults=Сбросить типы записей и поля по умолчанию +This\ will\ reset\ all\ entry\ types\ to\ their\ default\ values\ and\ remove\ all\ custom\ entry\ types=Это сбросит все типы записей к их значениям по умолчанию и удалит все пользовательские типы записей + +Replace\ tabs\ with\ space=Заменить знаки табуляции пробелом +Replace\ tabs\ with\ space\ in\ the\ field\ content.=Замените знаки табуляции пробелом в содержимом поля. +Remove\ redundant\ spaces=Удалить лишние пробелы +Replaces\ consecutive\ spaces\ with\ a\ single\ space\ in\ the\ field\ content.=Заменяет последовательные пробелы одним пробелом в содержимом поля. +Remove\ digits=Удалить цифры +Removes\ digits.=Удаляет цифры. diff --git a/src/main/resources/l10n/JabRef_sv.properties b/src/main/resources/l10n/JabRef_sv.properties index bf8d70fbdba..e8e509812a5 100644 --- a/src/main/resources/l10n/JabRef_sv.properties +++ b/src/main/resources/l10n/JabRef_sv.properties @@ -67,11 +67,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Tilldelade %0 poster till gruppen "%1". Assigned\ 1\ entry\ to\ group\ "%0".=Tilldelade en post till gruppen "%0". -Autogenerate\ BibTeX\ keys=Generera BibTeX-nycklar automatiskt -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Länka filer vars namn börjar med BibTeX-nyckeln automatiskt -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Länka bara filer vars namn är BibTeX-nyckeln automatiskt Automatically\ create\ groups=Skapa grupper automatiskt @@ -85,8 +82,11 @@ Available\ import\ formats=Tillgängliga format för import %0\ source=%0 källkod +Background\ Tasks=Bakgrundsuppgifter +Background\ Tasks\ are\ running=Bakgrundsuppgifter körs +Background\ Tasks\ are\ done=Bakgrundsuppgifter är klara Browse=Bläddra @@ -95,7 +95,7 @@ by=med Cancel=Avbryt Cannot\ create\ group=Kan inte skapa grupp -Cannot\ create\ group.\ Please\ create\ a\ library\ first.=Kan inte skapa grupp. Skapa en databas först. +Cannot\ create\ group.\ Please\ create\ a\ library\ first.=Kan inte skapa grupp. Skapa ett bibliotek först. case\ insensitive=ej skiftlägeskänsligt @@ -141,7 +141,6 @@ Copied=Kopierade Copy=Kopiera -Copy\ BibTeX\ key=Kopiera BibTeX-nyckel Copy\ to\ clipboard=Kopiera till urklipp @@ -198,6 +197,7 @@ Default\ encoding=Standardteckenkodning Default\ grouping\ field=Standardfält för gruppering +Downloading=Laddar ner Delete=Radera @@ -349,15 +349,12 @@ General=Allmänt Generate=Generera -Generate\ BibTeX\ key=Generera BibTeX-nyckel Generate\ keys=Generera nycklar Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Generera nycklar innan sparning (för poster utan nyckel) -Generated\ BibTeX\ key\ for=Genererade BibTeX-nycklar för -Generating\ BibTeX\ key\ for=Genererar BibTeX-nycklar för Get\ fulltext=Hämta dokument Gray\ out\ non-hits=Skugga icke-träffar @@ -411,7 +408,6 @@ Importing\ in\ unknown\ format=Importerar i okänt format I\ Agree=Jag godkänner -Invalid\ BibTeX\ key=Ogiltig BibTeX-nyckel Invalid\ date\ format=Ogiltigt datumformat @@ -629,6 +625,7 @@ Remove\ link=Ta bort länk Remove\ old\ entry=Ta bort gammal post +Remove\ string\ %0=Ta bort sträng %0 Removed\ group\ "%0".=Tog bort gruppen "%0". @@ -759,7 +756,6 @@ The\ search\ is\ case\ insensitive.=Sökningen är inte skiftlägeskänslig. The\ search\ is\ case\ sensitive.=Sökningen är skiftlägeskänslig. -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Denna operationen kräver att alla valda poster har en BibTeX-nyckel. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Den här operationen kräver att en eller flera poster är valda. @@ -836,7 +832,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Databasskydd Unable\ to\ save\ library=Kan inte spara databas -BibTeX\ key\ generator=BibTeX-nyckelgenerator Unable\ to\ open\ link.=Kan inte öppna länk. MIME\ type=MIME-typ @@ -873,9 +868,8 @@ search\ expression=sökuttryck Optional\ fields\ 2=Valfria fält 2 Waiting\ for\ save\ operation\ to\ finish=Väntar på att sparningen ska bli färdig +Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=Väntar på att bakgrundsuppgifter slutförs. Avsluta ändå? -Find\ and\ remove\ duplicate\ BibTeX\ keys=Hitta och ta bort duplicerade BibTeX-nycklar -Duplicate\ BibTeX\ key=Dubblerad BibTeX-nyckel General\ file\ directory=Generell filmapp @@ -920,7 +914,6 @@ Connected\ to\ document=Ansluten till dokument Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Infoga en citering utan text (posten kommer visas i referenslistan) Cite\ selected\ entries\ with\ extra\ information=Referera till valda poster och lägg till extra information Ensure\ that\ the\ bibliography\ is\ up-to-date=Se till att bibliografin är uppdaterad -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Ditt OpenOffice/LibreOffice-dokument refererar till BibTeX-nyckeln '%0', som inte kan hittas i din aktuella databas. Unable\ to\ synchronize\ bibliography=Kan inte synkronisera bibliografi Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Slå ihop citeringar som bara separareras av mellanslag Autodetection\ failed=Kunde inte detektera sökvägar @@ -987,7 +980,6 @@ Searching\ file\ system...=Söker på filsystemet... Select\ directory=Välj mapp Select\ files=Välj filer BibTeX\ entry\ creation=Skapande av BibTeX-poster -BibTeX\ key\ patterns=BibTeX-nyckelmönster Clear\ priority=Rensa prioritet Clear\ rank=Rensa ranking Enable\ special\ fields=Aktivera specialfält @@ -1049,6 +1041,7 @@ Resetting\ all\ key\ bindings=Återställer alla tangentbordsbindningar Network=Nätverk Hostname=Värd +Proxy\ configuration=Proxyinställning Use\ custom\ proxy\ configuration=Använd egen proxykonfiguration Proxy\ requires\ authentication=Proxyn kräver autentisering Attention\:\ Password\ is\ stored\ in\ plain\ text\!=OBS\! Lösenordet sparas i klartext\! @@ -1111,7 +1104,6 @@ Removed\ all\ groups=Tog bort alla grupper Accepting\ the\ change\ replaces\ the\ complete\ groups\ tree\ with\ the\ externally\ modified\ groups\ tree.=Om ändringarna accepteras så kommer hela gruppträdet att ersättas av det externt ändrade gruppträdet. Return\ to\ JabRef=Återgå till JabRef Could\ not\ connect\ to\ %0=Kunde inte ansluta till %0 -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Varning\: %0 av %1 poster har odefinierade BibTeX-nycklar. Really\ delete\ the\ selected\ entry?=Verkligen ta bort den valda posten? Really\ delete\ the\ %0\ selected\ entries?=Verkligen ta bort de %0 valda posterna? Keep\ merged\ entry\ only=Behåll bara sammanslagen post @@ -1125,9 +1117,8 @@ Discard\ changes=Ignorera ändringar Library\ '%0'\ has\ changed.=Libraryn '%0' har ändrats. Print\ entry\ preview=Skriv ut postvisning Copy\ title=Kopiera titel -Copy\ \\cite{BibTeX\ key}=Kopiera \\cite{BibTeX-nyckel} -Copy\ BibTeX\ key\ and\ title=Kopiera BibTeX-nyckel och titel Invalid\ DOI\:\ '%0'.=Ogiltig DOI\: '%0'. +Same\ DOI\ used\ in\ multiple\ entries=Samma DOI används i flera poster should\ start\ with\ a\ name=ska börja med ett namn should\ end\ with\ a\ name=ska avslutas med ett namn unexpected\ closing\ curly\ bracket=oväntad avslutande måsvinge @@ -1165,7 +1156,6 @@ New\ unpublished=Ny unpublished-post Preamble\ editor,\ store\ changes=Preamble-editorn, spara ändringar Push\ to\ application=Infoga i program Refresh\ OpenOffice/LibreOffice=Uppdatera OpenOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=Hantera BibTeX-nyckeldubbletter Save\ all=Spara alla String\ dialog,\ add\ string=Strängdialog, lägg till sträng String\ dialog,\ remove\ string=Strängdialog, ta bort sträng @@ -1174,7 +1164,6 @@ Unabbreviate=Expandera förkortning should\ contain\ a\ protocol=ska innehålla ett protokoll Copy\ preview=Kopiera postvisning Automatically\ setting\ file\ links=Skapar fillänkar automatiskt -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Generera BibTeX-nycklar enligt metadata Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Generera BibTeX-nycklar för alla poster i en BibTeX-fil Show\ debug\ level\ messages=Visa fler felmeddelanden för avlusning Default\ bibliography\ mode=Standardläge för databas @@ -1197,7 +1186,6 @@ Abbreviating...=Förkortar... Display\ keywords\ appearing\ in\ ALL\ entries=Visa nyckelord som finns i ALLA poster Display\ keywords\ appearing\ in\ ANY\ entry=Visa nyckelord som finns i NÅGON post -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Ingen av de valda posterna har någon BibTeX-nyckel. Unabbreviate\ journal\ names=Expandera förkortade tidskriftsnamn Unabbreviating...=Expanderar förkortningar... Usage=Användning @@ -1307,7 +1295,6 @@ incorrect\ control\ digit=felaktig kontrollsiffra incorrect\ format=felaktigit format Copied\ version\ to\ clipboard=Kopierade version till urklipp -BibTeX\ key=BibTeX-nyckel Message=Meddelande @@ -1392,7 +1379,6 @@ You\ are\ not\ working\ on\ the\ newest\ version\ of\ BibEntry.=Du arbetar inte Local\ version\:\ %0=Lokal version\: %0 Shared\ version\:\ %0=Delad version\: %0 -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Kan inte citera poster utan BibTeX-nycklar. Generera nycklar nu? New\ technical\ report=Ny teknisk rapport %0\ file=%0-fil @@ -1410,7 +1396,6 @@ One\ file\ found=En fil hittades Migration\ help\ information=Migrationshjälp Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Öpnnar en länk där den senaste utvecklingsversionen kan laddas ned See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Se vad som har ändrats i de olika JabRef-versionerna -Referenced\ BibTeX\ key\ does\ not\ exist=Refererad BibTeX-nyckel finns ej shared=delad Existing\ file=Existerande fil @@ -1418,7 +1403,6 @@ Existing\ file=Existerande fil -Copy\ BibTeX\ key\ and\ link=Kopiera BibTeX-nyckel och länk Show\ 'Related\ Articles'\ tab=Visa fliken "Relaterade artiklar" @@ -1486,11 +1470,11 @@ Remember\ Password=Kom ihåg lösenord Use\ SSL=Använd SSL Export\ name=Exportnamn Main\ layout\ file=Huvudfil för layout +Download\ linked\ online\ files=Ladda ner länkade online-filer Edit\ string\ constants=Redigera strängkonstanter Export\ all\ entries=Exportera alla poster -Generate\ BibTeX\ keys=Generera BibTeX-nycklar Manage\ field\ names\ &\ content=Hantera fältnamn & innehåll -New\ library=Ny databas +New\ library=Nytt bibliotek Find\ and\ replace=Sök och ersätt @@ -1541,3 +1525,8 @@ Shared\ database=Delad databas +Remove\ the\ following\ characters\:=Ta bort följande tecken\: +Truncate=Förkorta +Truncates\ a\ string\ after\ a\ given\ index.=Förkortar en sträng vid givet index. + + diff --git a/src/main/resources/l10n/JabRef_tl.properties b/src/main/resources/l10n/JabRef_tl.properties index 5d6d27cd576..9c79214a940 100644 --- a/src/main/resources/l10n/JabRef_tl.properties +++ b/src/main/resources/l10n/JabRef_tl.properties @@ -68,11 +68,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Magtalaga ng %0 entries para sa grupo "% Assigned\ 1\ entry\ to\ group\ "%0".=Magtalaga ng 1 entry para sa grupo "%0". -Autogenerate\ BibTeX\ keys=Autogenerate BibTeX keys -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Autolink files may pangalan na nagsimula na may susi ng BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Autolink ay mga file lamang na tumugma sa susi ng BibtTeX Automatically\ create\ groups=Awtomatikong paggawa ng grupo @@ -142,7 +139,6 @@ Copied=Na kopya Copy=Kopya -Copy\ BibTeX\ key=Kopyahin ang BibTeX na susi Copy\ to\ clipboard=Kopyahin sa clipboad @@ -352,15 +348,12 @@ General=Pangkalahatan Generate=Pagbuo -Generate\ BibTeX\ key=Pagbuo ng BibTeX na susi Generate\ keys=Pagbuo ng mga susi Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Bumuo ng susi bago mag-save (para sa entries na walang susi) -Generated\ BibTeX\ key\ for=Bumuo ng BibTeX na susi para sa -Generating\ BibTeX\ key\ for=Pagbubuo ng BibTeX na susi para sa Get\ fulltext=Kunin ang buong teksto Gray\ out\ non-hits=Gray ang labas sa mga hindi hits @@ -422,7 +415,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Malayang grupo\: Kapag pumili, tingnan lamang ang grupo ng mga entries -Invalid\ BibTeX\ key=Hindi balido ang susi ng BibTeX Invalid\ date\ format=Hindi balido ang format para sa petsa @@ -787,7 +779,6 @@ The\ search\ is\ case\ sensitive.=Ang paghahanap na kaso ay sensitibo. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Mayron mga posibleng kopya (marka na may icon) na hindi pa nalutos. Ipagpatuloy? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Itong operasyon ay nangangailangan ng lahat na napiling entries upang magkaroon ng BibTeX keys na tukoy. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Ang operasyong ito ay nangangailangan ng isa o higit pang mga entry na mapili. @@ -869,7 +860,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Proteksyon sa library Unable\ to\ save\ library=Hindi mai-save ang library -BibTeX\ key\ generator=BibTeX key generator Unable\ to\ open\ link.=Hindi mabuksan ang link. MIME\ type=Uri ng MIME @@ -915,9 +905,7 @@ search\ expression=ekspresyon sa paghahanap Optional\ fields\ 2=Opsyonal na mga patlang 2 Waiting\ for\ save\ operation\ to\ finish=Naghihintay para i-save ang operasyon upang matapos -Find\ and\ remove\ duplicate\ BibTeX\ keys=Hanapin at alisin ang mga duplicate na mga key ng BibTeX Expected\ syntax\ for\ --fetch\='\:'=Inaasahang syntax para sa --fetch\='\:' -Duplicate\ BibTeX\ key=Doblehin ang key ng BibTeX General\ file\ directory=Pangkalahatang direktoryo ng file @@ -963,7 +951,6 @@ Connected\ to\ document=Nakakonekta sa dokumento Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Magsingit ng isang sipi na walang teksto (ang entry ay lilitaw sa listahan ng sanggunian) Cite\ selected\ entries\ with\ extra\ information=Sipiin ang napiling mga entry na may dagdag na impormasyon Ensure\ that\ the\ bibliography\ is\ up-to-date=Tiyaking napapanahon ang bibliograpiya -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=Tinutukoy ng iyong OpenOffice/LibreOffice na dokumento ang BibTeX key na '%0', na hindi makikita sa iyong kasalukuyang library. Unable\ to\ synchronize\ bibliography=Hindi ma-synchronize ang bibliograpiya Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Pagsamahin ang mga pares ng mga pagsipi na pinaghihiwalay ng mga puwang lamang Autodetection\ failed=Nabigo ang autodetection @@ -1038,7 +1025,6 @@ Searching\ file\ system...=Naghahanap ng file system... Select\ directory=Piliin ang direktoryo Select\ files=Pumili ng mga file BibTeX\ entry\ creation=Paglikha ng BibTeX entry -BibTeX\ key\ patterns=BibTeX key pattern Clear\ priority=I-clear ang prayoridad Clear\ rank=I-clear ang rango Enable\ special\ fields=Paganahin ang mga espesyal na field @@ -1174,7 +1160,6 @@ Select\ export\ format=Pumili ng format na nagpapalabas Return\ to\ JabRef=Bumalik sa JabRef Could\ not\ connect\ to\ %0=Hindi maka konekta sa %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Babala\: %0 mula sa %1 na entries ay hindi natukoy ang pamagat. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Babala\: %0 mula sa %1 na entries ang hindi natukoy sa BibTeX na susi. Really\ delete\ the\ selected\ entry?=Talang tanggalin ang napiling entry? Really\ delete\ the\ %0\ selected\ entries?=Talagang tanggaling ang mga %0 napiling entries? Keep\ merged\ entry\ only=Panatilihin na pagsamahin ang mga entry lamang @@ -1188,7 +1173,6 @@ Discard\ changes=Itapon ang mga pagbabago Library\ '%0'\ has\ changed.=Binago ang Library '%0'. Print\ entry\ preview=I-print ang preview ng entry Copy\ title=Kopyahin ang pamagat -Copy\ \\cite{BibTeX\ key}=Kopyahin \\cite{BibTeX key} Invalid\ DOI\:\ '%0'.=Di-wastong DOI\: '%0'. should\ start\ with\ a\ name=dapat magsimula sa isang pangalan should\ end\ with\ a\ name=dapat magtapos sa isang pangalan @@ -1233,7 +1217,6 @@ Unabbreviate=Hindi pinaikli should\ contain\ a\ protocol=dapat may lamang protocol Copy\ preview=Kopyahin ang pag-preview Automatically\ setting\ file\ links=Awtomatikong magtakda ng file links -Regenerating\ BibTeX\ keys\ according\ to\ metadata=I-regenerate ang BibTeX na susi ayon sa metadata Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=I-regenerate ang lahat na susi para sa mga entries sa BibTeX na file Show\ debug\ level\ messages=Ipakita ang debug na antas ng mensahe @@ -1278,7 +1261,6 @@ Shared\ entry\ is\ no\ longer\ present=Ang nakabahaging entry ay wala na You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=Maaari mong ibalik ang entry gamit ang "I-undo" na operasyon. You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Nakakonekta ka na sa database gamit ang mga detalye ng koneksyon. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=Hindi mai-cite ang mga entry nang walang BibTeX key. Bumuo ng mga key ngayon? New\ technical\ report=Bagong teknikal na ulat %0\ file=%0 file @@ -1298,7 +1280,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Ang However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Gayunpaman, isang bagong database ay nilikha sa tabi ng pre-3.6 na isa. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Binubuksan ang isang link kung saan maaaring ma-download ang kasalukuyang bersyon ng pag-unlad See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=Tingnan kung ano ang nabago sa mga bersyon ng JabRef -Referenced\ BibTeX\ key\ does\ not\ exist=Ang naka-refer na BibTeX key ay hindi umiiral Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=Natapos ang pag-download ng buong dokumento ng teksto para sa entry %0. last\ four\ nonpunctuation\ characters\ should\ be\ numerals=ang huling apat na di-titik na karakter ay dapat na mga numero @@ -1365,7 +1346,6 @@ Could\ not\ retrieve\ entry\ data\ from\ '%0'.=Hindi makuha ang data mula sa ent Entry\ from\ %0\ could\ not\ be\ parsed.=Ang entry mula sa %0 ay hindi ma-parse. Invalid\ identifier\:\ '%0'.=Di-wastong identifier\: '%0'. This\ paper\ has\ been\ withdrawn.=Ang papel na ito ay na-withdraw. -empty\ BibTeX\ key=walang laman na BibTeX key Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Ang iyong Java Runtime Environment ay matatagpuan sa %0. Aux\ file=Aux file Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Grupo na naglalaman ng mga entry na binanggit sa isang ibinigay na file ng TeX @@ -1414,3 +1394,5 @@ Default\ pattern=Default na pattern + + diff --git a/src/main/resources/l10n/JabRef_tr.properties b/src/main/resources/l10n/JabRef_tr.properties index c501e46644b..33eb6151fbf 100644 --- a/src/main/resources/l10n/JabRef_tr.properties +++ b/src/main/resources/l10n/JabRef_tr.properties @@ -73,11 +73,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0 girdi "%1" grubuna atandı. Assigned\ 1\ entry\ to\ group\ "%0".=Bir girdi "%0" grubuna atandı. -Autogenerate\ BibTeX\ keys=BibTeX anahtarlarını otomatik oluştur -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Adları BibTeX anahtarıyla başlayan dosyaları otomatik bağla -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Yalnızca BibTeX anahtarıyla eşleşen dosyaları otomatik bağla Automatically\ create\ groups=Grupları otomatik oluştur @@ -152,7 +149,6 @@ Copied=Kopyalandı Copy=Kopyala -Copy\ BibTeX\ key=BibTeX anahtarını kopyala Copy\ to\ clipboard=Panoya kopyala @@ -380,15 +376,12 @@ General\ Fields=Genel Alanlar Generate=Oluştur -Generate\ BibTeX\ key=BibTeX anahtarı oluştur Generate\ keys=Anahtarları oluştur Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=(Anahtarsız girdiler için) Kaydetmeden önce anahtarları oluştur -Generated\ BibTeX\ key\ for=Şunun için BibTeX anahtarı oluşturuldu -Generating\ BibTeX\ key\ for=Şunun için BibTeX anahtarı oluşturuluyor Get\ fulltext=Tammetni getir Gray\ out\ non-hits=İsabet almayanları grileştir @@ -451,7 +444,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Bağımsız grup\: Seçildiğinde, yalnızca bu grubun girdilerini göster I\ Agree=Kabul Ediyorum -Invalid\ BibTeX\ key=Geçersiz BibTeX anahtarı Invalid\ date\ format=Geçersiz tarih biçemi @@ -853,7 +845,6 @@ The\ search\ is\ case\ sensitive.=Arama büyük/küçük harfe duyarlı. There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Çözümlenmemiş, olası çift nüshalar mevcut (simgesiyle işaretlenmiş). Devam edilsin mi? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Bu işlem, tüm seçili girdilerin tanımlı BibTeX anahtarlarının olmasını gerektirir. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Bu işlem, bir ya da daha çok girdinin seçili olmasını gerektirir. @@ -951,7 +942,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Veirtabanı koruması Unable\ to\ save\ library=Veritabanı kaydedilemedi -BibTeX\ key\ generator=BibTeX anahtar oluşturucusu Unable\ to\ open\ link.=Bağlantı açılamadı. MIME\ type=MIME türü @@ -959,9 +949,6 @@ This\ feature\ lets\ new\ files\ be\ opened\ or\ imported\ into\ an\ already\ ru Run\ fetcher=Getiriciyi çalıştır When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Dosya bağlantısını açarken, eğer link tanımlanmamışsa eşleşen dosyayı ara -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1.=Satır %0\: Bozulmuş BibTeX-anahtarı bulundu %1. -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (contains\ whitespaces).=Satır %0\: Bozulmuş BibTeX-anahtarı bulundu %1 (beyaz boşluk içeriyor). -Line\ %0\:\ Found\ corrupted\ BibTeX\ key\ %1\ (comma\ missing).=Satır %0\: Bozulmuş BibTeX-anahtarı bulundu %1 (virgül kayıp). No\ full\ text\ document\ found=Tam metin belge bulunamadı Download\ from\ URL=URL'den indir Rename\ field=Alanın adını değiştir @@ -1003,9 +990,7 @@ search\ expression=arama ifadesi Optional\ fields\ 2=Opsiyonel alanlar 2 Waiting\ for\ save\ operation\ to\ finish=Kaydetme işleminin bitmesi bekleniyor -Find\ and\ remove\ duplicate\ BibTeX\ keys=Çifte BibTeX anahtarlarını bul ve kaldır Expected\ syntax\ for\ --fetch\='\:'=--fetch için beklenen sözdizimi \:--fetch\='\:' -Duplicate\ BibTeX\ key=Çifte BibTeX anahtarı General\ file\ directory=Genel dosya dizini @@ -1055,7 +1040,6 @@ Connected\ to\ document=Belgeye bağlandı Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=Metinsiz bir atıf seç (girdi kaynak listesinde görünecek) Cite\ selected\ entries\ with\ extra\ information=Seçili girdileri ek bilgiyle alıntıla Ensure\ that\ the\ bibliography\ is\ up-to-date=Kaynakçanın güncel olduğuna emin ol -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=OpenOffice/LibreOffice belgeniz mevcut veri tabanında bulunamayan '%0' BibTeX anahtarını kaynak gösteriyor. Unable\ to\ synchronize\ bibliography=Kaynakça güncellenemiyor Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=Yalnızca boşlukla ayrılmış atıf çiftlerini birleştir Autodetection\ failed=Otomatik algılama başarısız @@ -1133,7 +1117,6 @@ Searching\ file\ system...=Dosya sistemi aranıyor... Select\ directory=Dizin seç Select\ files=Dosya seç BibTeX\ entry\ creation=BibTeX girdisi oluşturma -BibTeX\ key\ patterns=BibTeX anahtar paternleri Clear\ priority=Önceliği sil Clear\ rank=Rütbeyi sil Enable\ special\ fields=Özle alanları etkinleştir @@ -1282,7 +1265,6 @@ Select\ export\ format=Dışa aktarma biçemini seç Return\ to\ JabRef=JabRef'e geri dön Could\ not\ connect\ to\ %0=%0'e bağlanılamadı Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=Uyarı\: %1 girdiden %0'inin tanımlanmamış başlığı var. -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=Uyarı\:%1 girdiden %0'inde tanımlanmamış BibTeX anahtarı var. Really\ delete\ the\ selected\ entry?=Gerçekten seçili girdi silinsin mi? Really\ delete\ the\ %0\ selected\ entries?=Gerçekten seçili %0 girdi silinsin mi? Keep\ merged\ entry\ only=Yalnızca birleşik girdiyi tut @@ -1296,8 +1278,6 @@ Discard\ changes=Değişiklikleri sil Library\ '%0'\ has\ changed.=Veri tabanı '%0' değişti. Print\ entry\ preview=Girdi yazdırma önizleme Copy\ title=Başlığı kopyala -Copy\ \\cite{BibTeX\ key}=\\cite{BibTeX anahtarı}'nı kopyala -Copy\ BibTeX\ key\ and\ title=BibTeX anahtarı ve başlığını kopyala Invalid\ DOI\:\ '%0'.=Geçersiz DOI\: '%0'. should\ start\ with\ a\ name=bir isimle başlamalı should\ end\ with\ a\ name=bir isimle sonlanmalı @@ -1340,7 +1320,6 @@ New\ unpublished=Yeni yayınlanmamış Preamble\ editor,\ store\ changes=Giriş düzenleyici, dükkan değişiklikleri Push\ to\ application=Uygulamaya itele Refresh\ OpenOffice/LibreOffice=Tazele 00 -Resolve\ duplicate\ BibTeX\ keys=Çifte BibTeX anahtarlarını çözümle Save\ all=Tümünü kaydet String\ dialog,\ add\ string=Dizilim iletişim kutusu, dizilim ekle String\ dialog,\ remove\ string=Dizilim iletişim kutusu, dizilim çıkar @@ -1349,7 +1328,6 @@ Unabbreviate=Kısaltmayı kaldır should\ contain\ a\ protocol=bir protokol içermeli Copy\ preview=Kopyalama önizleme Automatically\ setting\ file\ links=Dosya bağlantıları otomatik olarak ayarlanıyor -Regenerating\ BibTeX\ keys\ according\ to\ metadata=Üstveri (metadata) uyarınca BibTeX anahtarları yeniden oluşturuluyor Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=Bir BibTeX dosyasındaki tüm girdiler için tüm anahtarları yeniden oluştur Show\ debug\ level\ messages=Hata ayıklama düzeyi mesajları göster Default\ bibliography\ mode=Öntanımlı bibliyografya kipi @@ -1381,7 +1359,6 @@ Name\ cannot\ be\ empty=İsim boş olamaz Display\ keywords\ appearing\ in\ ALL\ entries=TÜM girdilerde görünen anahtar sözcükleri göster Display\ keywords\ appearing\ in\ ANY\ entry=HERHANGİ BİR girdide görünen anahtar sözcükleri göster None\ of\ the\ selected\ entries\ have\ titles.=Seçili girdilerin hiç birinde başlık yok. -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=Seçili girdilerin hiçbirinde BibTeX anahtarı yok. Unabbreviate\ journal\ names=Kısaltma dergi adlarını aç Unabbreviating...=Kısaltmalar dönüştürülüyor... Usage=Kullanım @@ -1520,7 +1497,6 @@ incorrect\ control\ digit=yanlış kontrol numarası incorrect\ format=yanlış biçem Copied\ version\ to\ clipboard=Sürüm panoya kopyalandı -BibTeX\ key=BibTeX anahtarı Message=Mesaj @@ -1640,7 +1616,6 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.="Geri al" işlemiyle girdiyi restore edebilirsiniz. You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=Girilmiş bağlantı ayarlarıyla bir veritabanına zaten bağlısınız. -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=BibTeX anahtarları olmadan girdiler alıntılanamaz. Anahtarlar şimdi oluşturulsun mu? New\ technical\ report=Yeni teknik rapor %0\ file=%0 dosyası @@ -1660,7 +1635,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=Gir However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=Ancak, 3.6 öncesinin yanı sıra yeni bir veritabanı oluşturuldu. Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=Mevcut geliştirme sürümünün indirilebileceği bir bağlantı açar See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=JabRef sürümlerinde nelerin değişmiş olduğuu görün -Referenced\ BibTeX\ key\ does\ not\ exist=Başvurulan BibTeX anahtarı mevcut değil Full\ text\ document\ for\ entry\ %0\ already\ linked.=%0 girdisi için tam metin belgesi zaten bağlantılı. Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=%0 girdisi için tam metin belgesinin indirilmesi bitti. Download\ full\ text\ documents=Tam metin belgelerini indir @@ -1697,7 +1671,6 @@ should\ be\ normalized=normalleştirilmelidir Empty\ search\ ID=Boş arama IDsi The\ given\ search\ ID\ was\ empty.=Verilen arama IDsi boştu. -Copy\ BibTeX\ key\ and\ link=BibTeX anahtarı ve bağlantısını kopyala biblatex\ field\ only=Yalnızca biblatex alanı Error\ while\ generating\ fetch\ URL=URL'den getirme oluşturulurken hata @@ -1718,7 +1691,6 @@ File\ directory\ pattern=Dosya dizini paterni Update\ with\ bibliographic\ information\ from\ the\ web=Web'deki bibliyografya bilgisiyle güncelle Could\ not\ find\ any\ bibliographic\ information.=Hiç bibliyografya bilgisi bulunamadı. -BibTeX\ key\ deviates\ from\ generated\ key=BibTeX anahtarı oluşturulan anahtardan farklı DOI\ %0\ is\ invalid=%0 DOI geçersiz Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=Tüm özelleştirilmiş türleri yerel tercihlerde sakla\: @@ -1794,7 +1766,6 @@ Entry\ from\ %0\ could\ not\ be\ parsed.=%0'dan girdi çözümlenemedi. Invalid\ identifier\:\ '%0'.=Geçersiz tanımlayıcı\: '%0 '. This\ paper\ has\ been\ withdrawn.=Bu yayın geri çekildi. Finished\ writing\ XMP\ metadata.=XMP metaveri yazımı bitti. -empty\ BibTeX\ key=boş BibTeX anahtarı Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=Sizin Java Runtime Environment'ınız %0'da yer alır. Aux\ file=Aux dosya Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=Belirli bir TeX dosyasında alıntılanmış girdileri içeren grup @@ -1916,7 +1887,6 @@ Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=Anahtar sözcüğü silm Reset\ to\ default=Öntanımlıya sıfırla Edit\ string\ constants=Dizge sabitlerini düzenle Export\ all\ entries=Tüm girdileri dışa aktar -Generate\ BibTeX\ keys=BibTeX anahtarlarını oluştur Groups\ interface=Grup arayüzü Manage\ field\ names\ &\ content=Alan ad ve içeriklerini yönet New\ library=Yeni kütüphane @@ -1970,7 +1940,6 @@ LaTeX\ Citations=LaTeX Alıntıları Search\ citations\ for\ this\ entry\ in\ LaTeX\ files=LaTeX dosyalarında bu girdi için alıntıları ara No\ citations\ found=Alıntı bulunamadı No\ LaTeX\ files\ containing\ this\ entry\ were\ found.=Bu girdiyi içeren LaTeX dosyası bulunamadı. -Selected\ entry\ does\ not\ have\ an\ associated\ BibTeX\ key.=Seçili girdinin kendisiyle ilişkili bir BibTeX anahtarı yok. Current\ search\ directory\:=Mevcut arama dizini\: Set\ LaTeX\ file\ directory=LaTeX dosya dizini seç Import\ entries\ from\ LaTeX\ files=LaTeX dosyalarından girdileri içeri aktar @@ -2062,7 +2031,6 @@ Add\ to\ current\ library=Mevcut kütüphaneye ekle Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=Ayıklamayı başlatır ve elde edilen girdileri halen açık veritabanına ekler Your\ text\ is\ being\ parsed...=Metniniz ayrıştırılıyor... -BibTeX\ key\ filters=BibTeX anahtar filtreleri Field\ filters=Alan filtreleri Message\ filters=Mesaj filtreleri Clear\ filters=Filtreleri temizle @@ -2223,3 +2191,5 @@ Computer\ software.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ A\ data\ set\ or\ a\ similar\ collection\ of\ (mostly)\ raw\ data.=Bir veri kümesi ya da (çoğunlukla) ham bir veri derlemesi. Display\ count\ of\ items\ in\ group=Gruptaki öğe sayısını göster + + diff --git a/src/main/resources/l10n/JabRef_vi.properties b/src/main/resources/l10n/JabRef_vi.properties index c01ced3825a..cc43daecbed 100644 --- a/src/main/resources/l10n/JabRef_vi.properties +++ b/src/main/resources/l10n/JabRef_vi.properties @@ -72,11 +72,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=Đã gán %0 mục vào nhóm "%1". Assigned\ 1\ entry\ to\ group\ "%0".=Đã gán 1 mục vào nhóm "%0". -Autogenerate\ BibTeX\ keys=Tự động tạo các khóa BibTeX -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=Tự động liên kết với các tên bắt đầu bằng khóa BibTeX -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=Chỉ tự động liên kết các tập tin nào khớp khóa BibTeX Automatically\ create\ groups=Tự động tạo các nhóm @@ -150,7 +147,6 @@ Copied=Được chép Copy=Chép -Copy\ BibTeX\ key=Chép khóa BibTeX Copy\ to\ clipboard=Chép vào bộ nhớ tạm @@ -369,15 +365,12 @@ General=Tổng quát Generate=Tạo -Generate\ BibTeX\ key=Tạo khóa BibTeX Generate\ keys=Tạo các khóa Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=Tạo các khóa trước khi lưu (cho các mục không có khóa) -Generated\ BibTeX\ key\ for=Khóa BibTeX được tạo ra cho -Generating\ BibTeX\ key\ for=Đang tạo khóa BibTeX cho Get\ fulltext=Nhập toàn văn bản Gray\ out\ non-hits=Tô xám các mục không gặp @@ -435,7 +428,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=Nhóm độc lập\: Khi được chọn, chỉ xem các mục của nhóm này -Invalid\ BibTeX\ key=Khóa BibTeX không hợp lệ Invalid\ date\ format=Định dạng ngày không hợp lệ @@ -796,7 +788,6 @@ The\ search\ is\ case\ sensitive.=Phép tìm có phân biệt chữ hoa/thườn There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=Có thể có các mục bị trùng (được đánh dấu bằng biểu tượng) chưa được giải quyết. Có tiếp tục không? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=Lệnh này yêu cầu tất cả các mục được chọn phải có khóa BibTeX. This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=Lệnh này yêu cầu phải chọn trước một hoặc nhiều mục. @@ -878,7 +869,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=Bảo vệ CSDL Unable\ to\ save\ library=Không thể lưu CSDL -BibTeX\ key\ generator=Trình tạo khóa BibTeX Unable\ to\ open\ link.=Không thể mở liên kết. MIME\ type=Kiểu MIME @@ -921,9 +911,7 @@ search\ expression=biểu thức tìm Optional\ fields\ 2=Các dữ liệu tùy chọn 2 Waiting\ for\ save\ operation\ to\ finish=Chờ thao tác lưu kết thúc -Find\ and\ remove\ duplicate\ BibTeX\ keys=Tìm và xóa bỏ những khóa BibTeX bị lặp lại Expected\ syntax\ for\ --fetch\='\:'=Cú pháp mong đợi cho--fetch\='\:' -Duplicate\ BibTeX\ key=Lặp lại khóa BibTeX General\ file\ directory=Tổng quát thư mục tập tin @@ -969,8 +957,6 @@ Path\ to\ %0=Đường dẫn đến %0 Could\ not\ connect\ to\ %0=Không thể kết nối đến %0 -Copy\ \\cite{BibTeX\ key}=Chép\trích dẫn{khóa BibTeX} -Copy\ BibTeX\ key\ and\ title=Sao chép khóa Bibtex và danh hiệu Invalid\ DOI\:\ '%0'.=DOI không hợp lệ\: '%0'. @@ -979,7 +965,6 @@ Focus\ entry\ table=Tập trung vào bảng chứa mục Import\ into\ current\ library=Nhập vào CSDL hiện tại Import\ into\ new\ library=Nhập vào thành CSDL mới New\ article=Bài viết mới -Resolve\ duplicate\ BibTeX\ keys=Giải quyết khóa Bibtex bị lặp lại Save\ all=Lưu tất cả Automatically\ setting\ file\ links=Tự động thiết lập liên kết với tập tin @@ -1074,7 +1059,6 @@ ID\ type=Loại mã nhận diện -Copy\ BibTeX\ key\ and\ link=Sao chép khóa BibTex và đường liên kết Backup\ found=Tìm bản sao dự phòng A\ backup\ file\ for\ '%0'\ was\ found.=Bản sao lưu dự phòng cho '%0' đã tìm thấy. @@ -1148,3 +1132,5 @@ Default\ pattern=Kiểu mặc định + + diff --git a/src/main/resources/l10n/JabRef_zh.properties b/src/main/resources/l10n/JabRef_zh.properties index 1bfc2c8af07..ecbb56699f0 100644 --- a/src/main/resources/l10n/JabRef_zh.properties +++ b/src/main/resources/l10n/JabRef_zh.properties @@ -72,11 +72,8 @@ Assigned\ %0\ entries\ to\ group\ "%1".=分配了 %0 条记录到分组 "%1"。 Assigned\ 1\ entry\ to\ group\ "%0".=分配了 1 条记录到分组 "%0". -Autogenerate\ BibTeX\ keys=自动生成 BibTeX 键 -Autolink\ files\ with\ names\ starting\ with\ the\ BibTeX\ key=自动链接文件名以 BibTeX 键开头的文件 -Autolink\ only\ files\ that\ match\ the\ BibTeX\ key=自动链接文件名匹配 BibTeX 键的文件 Automatically\ create\ groups=自动创建分组 @@ -154,7 +151,6 @@ Copied=已复制 Copy=复制 -Copy\ BibTeX\ key=复制 BibTeX 键 Copy\ to\ clipboard=复制到剪贴板 @@ -213,6 +209,7 @@ Default\ encoding=默认编码 Default\ grouping\ field=默认分组依据域 +Downloading=正在下载 Delete=删除 @@ -231,11 +228,13 @@ Description=描述 Disable\ this\ confirmation\ dialog=不再显示这个确认对话框 +Display\ all\ entries\ belonging\ to\ one\ or\ more\ of\ the\ selected\ groups=显示所选分组的并集条目 Display\ all\ error\ messages=显示所有错误消息 Display\ help\ on\ command\ line\ options=用命令行选项显示帮助 +Display\ only\ entries\ belonging\ to\ all\ selected\ groups=仅显示所选分组的交集条目 Display\ version=显示版本 Do\ not\ abbreviate\ names=不要缩写姓名 @@ -275,6 +274,7 @@ Edit\ preamble=编辑导言区 Edit\ strings=编辑简写字串 empty\ library=空文献库 +Autocompletion=自动补全 Enter\ URL\ to\ download=输入要下载的 URL @@ -375,15 +375,12 @@ General\ Fields=通用字段 Generate=生成 -Generate\ BibTeX\ key=生成 BibTeX 键 Generate\ keys=生成键 Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=保存数据库前为缺失键值的记录自动生成 BibTeX 键 -Generated\ BibTeX\ key\ for=已生成 BibTeX 键——为 -Generating\ BibTeX\ key\ for=正在生成 BibTeX 键——为 Get\ fulltext=获取全文 Gray\ out\ non-hits=置灰未选中 @@ -446,7 +443,6 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=独立分组:当分组被选中时,只显示属于此分组的记录 I\ Agree=我同意 -Invalid\ BibTeX\ key=非法的 BibTeX 键值 Invalid\ date\ format=非法的日期格式 @@ -589,7 +585,7 @@ Overwrite=覆盖 Overwrite\ keys=覆盖键值 pairs\ processed=已处理记录对 -Password=口令 +Password=密码 Paste=粘贴 @@ -840,7 +836,6 @@ The\ search\ is\ case\ sensitive.=该查询是区分大小写的。 There\ are\ possible\ duplicates\ (marked\ with\ an\ icon)\ that\ haven't\ been\ resolved.\ Continue?=存在可能仍未解决的重复项(以 'D' 图标标记),是否继续? -This\ operation\ requires\ all\ selected\ entries\ to\ have\ BibTeX\ keys\ defined.=此操作要求所有选中记录的 BibTeX 键值不为空。 This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=这个操作要求选中一条或多条记录。 @@ -872,6 +867,7 @@ untitled=未命名 Upgrade\ external\ PDF/PS\ links\ to\ use\ the\ '%0'\ field.=升级外部 PDF/PS 链接以使用 '%0' 域。 usage=用法 +Use\ autocompletion=开启自动补全 Use\ regular\ expression\ search=使用正则表达式搜索 @@ -898,12 +894,19 @@ web\ link=web 链接 What\ do\ you\ want\ to\ do?=您希望做什么? +Will\ write\ XMP\ metadata\ to\ the\ PDFs\ linked\ from\ selected\ entries.=将为选中条目链接的PDF文件写入XMP元数据。 +Write\ BibTeXEntry\ as\ XMP\ metadata\ to\ PDF.=将 BibTeX 条目作为 XMP 元数据写入 PDF 中 Write\ XMP=写入 XMP +Write\ XMP\ metadata=写入 XMP 元数据 +Write\ XMP\ metadata\ for\ all\ PDFs\ in\ current\ library?=是否将 XMP 元数据写入当前文献库中所有的 PDF 文件? +Writing\ XMP\ metadata...=正在写入 XMP 元数据... +Writing\ XMP\ metadata\ for\ selected\ entries...=正在为选中条目写入 XMP 元数据... XMP-annotated\ PDF=XMP注释的PDF文档 XMP\ export\ privacy\ settings=XMP 导出隐私设置 +XMP\ metadata=XMP 元数据 You\ must\ restart\ JabRef\ for\ this\ to\ come\ into\ effect.=为使这项更改生效,您必须重启 JabRef。 You\ must\ restart\ JabRef\ for\ the\ new\ key\ bindings\ to\ work\ properly.=为使热键绑定生效,您必须重启 JabRef。 @@ -928,7 +931,6 @@ Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed. Library\ protection=文献库保护 Unable\ to\ save\ library=无法保存文献库 -BibTeX\ key\ generator=BibTeX 键生成器 Unable\ to\ open\ link.=无法打开链接。 MIME\ type=MIME 类型 @@ -976,9 +978,7 @@ Optional\ fields\ 2=可选域 2 Waiting\ for\ save\ operation\ to\ finish=正在等待保存操作完成 Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=正在等待后台任务完成。仍要退出? -Find\ and\ remove\ duplicate\ BibTeX\ keys=查找并移除重复的 BibTeX 键值 Expected\ syntax\ for\ --fetch\='\:'=期望的语法 --fetch\='\:' -Duplicate\ BibTeX\ key=重复的 BibTeX 键值 General\ file\ directory=生成文件目录 @@ -997,6 +997,10 @@ Subject\ for\ sending\ an\ email\ with\ references=发送带参考的邮件时 Automatically\ open\ folders\ of\ attached\ files=自动打开附件所在的文件夹 Error\ creating\ email=创建邮件失败 Entries\ added\ to\ an\ email=记录已添加到邮件中 +Please\ specify\ a\ file\ browser.=请指定一个文件浏览器 +Please\ specify\ a\ terminal\ application.=请指定一个终端应用程序 +Use\ custom\ file\ browser=使用自定义的资源管理器 +Use\ custom\ terminal\ emulator=使用自定义的终端 exportFormat=导出格式 Output\ file\ missing=没有输出文件 No\ search\ matches.=没有匹配的搜索结果 @@ -1026,7 +1030,6 @@ Connected\ to\ document=连接到文档 Insert\ a\ citation\ without\ text\ (the\ entry\ will\ appear\ in\ the\ reference\ list)=插入一条没有内容的引用(这条记录将会出现在引用列表中) Cite\ selected\ entries\ with\ extra\ information=引用包含额外信息的选中记录 Ensure\ that\ the\ bibliography\ is\ up-to-date=保证参考文献是最新的 -Your\ OpenOffice/LibreOffice\ document\ references\ the\ BibTeX\ key\ '%0',\ which\ could\ not\ be\ found\ in\ your\ current\ library.=您的 OpenOffice/LibreOffice 文档引用了一个当前文献库中不存在的 BibTeX 键值 ”%0”。 Unable\ to\ synchronize\ bibliography=无法同步参考文献 Combine\ pairs\ of\ citations\ that\ are\ separated\ by\ spaces\ only=合并仅仅由空格分隔的两段引文 Autodetection\ failed=自动检测失败 @@ -1055,6 +1058,7 @@ Web\ search=网页搜索 Style\ selection=引用样式选择 No\ valid\ style\ file\ defined=没有找到合法的样式文件 Choose\ pattern=选择表达式 +Search\ and\ store\ files\ relative\ to\ library\ file\ location=查找和存储库文件的相对路径 Could\ not\ run\ the\ gnuclient/emacsclient\ program.\ Make\ sure\ you\ have\ the\ emacsclient/gnuclient\ program\ installed\ and\ available\ in\ the\ PATH.=无法执行 gnuclient/emacsclient 程序,确认您已经安装 gnuclient/emacsclient ,并且在 PATH 中。 You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=您需要选择一个可用的风格文件,或是使用一种默认风格。 @@ -1102,7 +1106,6 @@ Searching\ file\ system...=正在搜索文件系统... Select\ directory=选择目录 Select\ files=选择文件 BibTeX\ entry\ creation=BibTeX 条目创建 -BibTeX\ key\ patterns=BibTeX 键特征 Clear\ priority=清除优先级 Clear\ rank=清除评分 Enable\ special\ fields=启用特殊域 @@ -1171,9 +1174,14 @@ Resetting\ all\ key\ bindings=重置所有键绑定 Network=网络 Hostname=主机名 +Please\ specify\ a\ hostname=请指定主机名 +Please\ specify\ a\ port=请指定端口 +Please\ specify\ a\ username=请指定用户名 +Please\ specify\ a\ password=请指定密码 +Proxy\ configuration=代理服务器设置 Use\ custom\ proxy\ configuration=使用自定义 HTTP 代理 -Proxy\ requires\ authentication=HTTP 代理要求认证 +Proxy\ requires\ authentication=代理服务器需要密码 Attention\:\ Password\ is\ stored\ in\ plain\ text\!=注意\: 密码以明文形式保存\! Clear\ connection\ settings=清除连接设置 @@ -1215,6 +1223,7 @@ Open\ %0\ file=打开文件 %0 Cannot\ delete\ file=无法删除文件 File\ permission\ error=文件权限错误 +JabRef\ does\ not\ have\ permission\ to\ access\ %s=JabRef 没有权限访问 %s Push\ to\ %0=推送到 %0 Path\ to\ %0=到 %0 管道的路径 Convert=转换 @@ -1242,7 +1251,6 @@ Select\ export\ format=选择导出格式 Return\ to\ JabRef=返回 JabRef Could\ not\ connect\ to\ %0=无法连接到 %0 Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ title.=警告: %1 条记录中有 %0 条包含未定义的标题。 -Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ BibTeX\ key.=警告: %1 条记录中有 %0 条包含未定义的 BibTeX 键值。 Really\ delete\ the\ selected\ entry?=确定删除选中的记录? Really\ delete\ the\ %0\ selected\ entries?=确定删除选中的 %0 条记录? Keep\ merged\ entry\ only=只保留合并后的记录 @@ -1256,9 +1264,8 @@ Discard\ changes=放弃修改 Library\ '%0'\ has\ changed.=文献库 '%0' 已修改。 Print\ entry\ preview=打印记录预览 Copy\ title=复制标题 -Copy\ \\cite{BibTeX\ key}=复制 \\cite{BibTeX 键值} -Copy\ BibTeX\ key\ and\ title=复制 BibTeX 键值和标题 Invalid\ DOI\:\ '%0'.=不合法的 DOI\: +Same\ DOI\ used\ in\ multiple\ entries=多个条目重复使用了相同的 DOI should\ start\ with\ a\ name=请以名称开头 should\ end\ with\ a\ name=请以名称结尾 unexpected\ closing\ curly\ bracket=花括号被意外关闭 @@ -1268,6 +1275,7 @@ should\ contain\ a\ four\ digit\ number=应该包含一个 4 位数字 should\ contain\ a\ valid\ page\ number\ range=应该包含一个合法的页码范围 No\ results\ found.=没有找到结果。 Found\ %0\ results.=找到 %0 条结果。 +Invalid\ regular\ expression=正则表达式无效 plain\ text=纯文本 This\ search\ contains\ entries\ in\ which\ any\ field\ contains\ the\ regular\ expression\ %0=这次搜索的结果记录符合条件:记录的任意域包含正则表达式 %0 This\ search\ contains\ entries\ in\ which\ any\ field\ contains\ the\ term\ %0=这次搜索的结果记录符合条件:记录的任意域包含词组 %0 @@ -1298,7 +1306,6 @@ New\ unpublished=新建 unpublished Preamble\ editor,\ store\ changes=导言编辑器,保存修改 Push\ to\ application=推送到应用 Refresh\ OpenOffice/LibreOffice=刷新 penOffice/LibreOffice -Resolve\ duplicate\ BibTeX\ keys=处理重复的 BibTeX 键值 Save\ all=保存全部 String\ dialog,\ add\ string=简写字串对话框,添加简写字串 String\ dialog,\ remove\ string=简写字串对话框,删除简写字串 @@ -1307,7 +1314,6 @@ Unabbreviate=展开缩写 should\ contain\ a\ protocol=应当包含协议 Copy\ preview=拷贝预览 Automatically\ setting\ file\ links=自动设置文件链接 -Regenerating\ BibTeX\ keys\ according\ to\ metadata=基于 metadata 重新生成 BibTeX 键值 Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=重新生成 BibTeX 文件中所有记录的键值 Show\ debug\ level\ messages=显示调试级别消息 Default\ bibliography\ mode=默认的参考文献模式 @@ -1328,6 +1334,7 @@ abbreviation\ detected=检测到缩写 wrong\ entry\ type\ as\ proceedings\ has\ page\ numbers=错误的条目类型,因为出版物中有页码 Abbreviate\ journal\ names=缩写期刊名 Abbreviating...=正在缩写... +Abbreviation\ '%0'\ for\ journal\ '%1'\ already\ defined.=期刊 %1 的缩写 %0 已经被定义。 Abbreviation\ cannot\ be\ empty=缩写不能为空 Duplicated\ Journal\ Abbreviation=日志缩写重复 Duplicated\ Journal\ File=日志文件重复 @@ -1338,7 +1345,6 @@ Name\ cannot\ be\ empty=名称不能为空。 Display\ keywords\ appearing\ in\ ALL\ entries=显示所有条目中出现的关键字 Display\ keywords\ appearing\ in\ ANY\ entry=显示在任何条目中出现的关键字 None\ of\ the\ selected\ entries\ have\ titles.=选中的条目都不包含名称。 -None\ of\ the\ selected\ entries\ have\ BibTeX\ keys.=选中的记录都不包含 BibTeX 键值。 Unabbreviate\ journal\ names=展开期刊名称 Unabbreviating...=正在展开缩写... Usage=用法 @@ -1356,6 +1362,7 @@ Internal\ style=内部样式 Add\ style\ file=添加样式文件 Current\ style\ is\ '%0'=当前样式为 "%0" Remove\ style=移除样式 +Invalid\ style\ selected=所选样式无效 Reload=刷新 @@ -1394,6 +1401,8 @@ Add\ enclosing\ braces=添加外围花括号 Add\ braces\ encapsulating\ the\ complete\ field\ content.=添加包含整个字段内容的括号。 Remove\ enclosing\ braces=移除外围花括号 Removes\ braces\ encapsulating\ the\ complete\ field\ content.=移除包含整个字段内容的括号。 +Shorten\ DOI=缩短 DOI +Shortens\ DOI\ to\ more\ human\ readable\ form.=将DOI缩短为更易读的形式。 Sentence\ case=句首大写 Shortens\ lists\ of\ persons\ if\ there\ are\ more\ than\ 2\ persons\ to\ "et\ al.".=将多于 2 人的人名列表简化为 "et al."。 Title\ case=首字母大写 @@ -1473,7 +1482,6 @@ incorrect\ control\ digit=错误的控制数字 incorrect\ format=格式错误 Copied\ version\ to\ clipboard=版本已复制到剪切板 -BibTeX\ key=BibTeX 键 Message=消息 @@ -1528,6 +1536,7 @@ change\ string\ name\ %0\ to\ %1=将字符串名称 %0 更改为 %1 change\ type\ of\ entry\ %0\ from\ %1\ to\ %2=将条目 %0 的类型从 %1 更改为 %2 insert\ entry\ %0=插入条目 %0 insert\ string\ %0=插入字符串 %0 +remove\ entries=移除条目 remove\ entry\ %0=移除条目 %0 remove\ string\ %0=移除字符串 %0 undefined=未定义的 @@ -1538,7 +1547,10 @@ Entry\ from\ %0=来自 %0 的条目 Merge\ entry\ with\ %0\ information=与 %0 信息合并条目 Updated\ entry\ with\ info\ from\ %0=已根据 %0 更新记录 +Add\ new\ list=新增条目 Remove\ list=删除列表 +Add\ abbreviation=添加缩写 +Remove\ abbreviation=删除缩写 Full\ journal\ name=完整杂志名称 Abbreviation\ name=缩写名 @@ -1584,7 +1596,6 @@ The\ entry\ you\ currently\ work\ on\ has\ been\ deleted\ on\ the\ shared\ side. You\ can\ restore\ the\ entry\ using\ the\ "Undo"\ operation.=您可以使用 "撤消" 操作还原条目。 You\ are\ already\ connected\ to\ a\ database\ using\ entered\ connection\ details.=你已经用了刚才键入的信息连接了数据库。 -Cannot\ cite\ entries\ without\ BibTeX\ keys.\ Generate\ keys\ now?=无法引用 BibTeX 键为空的记录, 现在生成键值? New\ technical\ report=新的技术报告 %0\ file=%0 文件 @@ -1604,7 +1615,6 @@ Entered\ database\ has\ obsolete\ structure\ and\ is\ no\ longer\ supported.=输 However,\ a\ new\ database\ was\ created\ alongside\ the\ pre-3.6\ one.=但是,在pre-3.6版本中,一个新数据库也一起创建了。 Opens\ a\ link\ where\ the\ current\ development\ version\ can\ be\ downloaded=打开可下载当前开发版本的链接 See\ what\ has\ been\ changed\ in\ the\ JabRef\ versions=查看 JabRef 版本中已更改的内容 -Referenced\ BibTeX\ key\ does\ not\ exist=引用的 BibTeX 键不存在 Finished\ downloading\ full\ text\ document\ for\ entry\ %0.=下载条目 %0 的全文文档,已完成。 last\ four\ nonpunctuation\ characters\ should\ be\ numerals=最后四个字符应当为数字 @@ -1636,7 +1646,6 @@ should\ be\ normalized=应当被规范化 Empty\ search\ ID=清空搜索ID The\ given\ search\ ID\ was\ empty.=给定的搜索 ID 为空。 -Copy\ BibTeX\ key\ and\ link=拷贝 BibTeX key 和链接 biblatex\ field\ only=仅 biblatex 字段 Error\ while\ generating\ fetch\ URL=生成提取 URL 时出错 @@ -1657,7 +1666,6 @@ File\ directory\ pattern=文件目录模式 Update\ with\ bibliographic\ information\ from\ the\ web=使用来自网络的书目信息进行更新 Could\ not\ find\ any\ bibliographic\ information.=找不到任何书目信息。 -BibTeX\ key\ deviates\ from\ generated\ key=BibTeX 键派生于自动生成的键 DOI\ %0\ is\ invalid=DOI %0 无效 Different\ customization,\ current\ settings\ will\ be\ overwritten=不同的自定义项,当前设置将被覆盖 @@ -1724,7 +1732,7 @@ Could\ not\ retrieve\ entry\ data\ from\ '%0'.=无法从 "%0" 中检索条目数 Entry\ from\ %0\ could\ not\ be\ parsed.=无法解析 %0 中的条目。 Invalid\ identifier\:\ '%0'.=无效的标识符:'%0'。 This\ paper\ has\ been\ withdrawn.=这篇论文已被撤回。 -empty\ BibTeX\ key=空 BibTeX 键值 +Finished\ writing\ XMP\ metadata.=写入XMP元数据完毕 Your\ Java\ Runtime\ Environment\ is\ located\ at\ %0.=您的Java运行环境位于 %0。 Aux\ file=Aux 文件 Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=包含给定TeX文件中引用的条目组 @@ -1772,7 +1780,7 @@ Toggle\ union=切换并集 Jump\ to\ entry=跳转到条目 The\ group\ name\ contains\ the\ keyword\ separator\ "%0"\ and\ thus\ probably\ does\ not\ work\ as\ expected.=此组名中包含关键字分隔符 "%0",可能无法按预期工作。 Blog=博客 -Check\ integrity=完整性检查 +Check\ integrity=检查完整性 Cleanup\ URL\ link=清理 URL 链接 Cleanup\ URL\ link\ by\ removing\ special\ symbols\ and\ extracting\ simple\ link=通过删除特殊符号和提取简单链接来清理 URL 链接 Copy\ DOI\ url=拷贝 DOI URL @@ -1794,6 +1802,7 @@ Set\ up\ general\ fields=配置通用字段 View\ change\ log=查看变更记录 View\ event\ log=查看事件日志 Website=网站 +Write\ XMP\ metadata\ to\ PDFs=将 XMP 元数据写入 PDF Override\ default\ font\ settings=跳过默认字体设置 Clear\ search=清除搜索 @@ -1810,9 +1819,51 @@ Remember\ Password=记住密码 Use\ SSL=使用 SSL Export\ name=导出名称 Main\ layout\ file=主布局文件 +File\ extension\:=文件扩展名: +Export\ format\ name\:=导出格式名称: +Cancel\ import=取消导入 +Continue\ with\ import=继续导入 +Import\ canceled=导入已取消 +Select\ all\ new\ entries=选择所有的新条目 +Download\ linked\ online\ files=下载已链接的online文件 +Select\ the\ entries\ to\ be\ imported\:=选择要导入的条目: +Add\ new\ String=添加新的字符串 +Must\ not\ be\ empty\!=不能为空! +Open\ Help\ page=打开帮助页面​​​​​​​​ +Field\ name\:=字段名称: +Field\ name\ "%0"\ already\ exists=字段名称 %0 已存在 +No\ field\ name\ selected\!=没有选择字段 +Remove\ field\ name=删除字段名称 +Are\ you\ sure\ you\ want\ to\ remove\ field\ name\:\ "%0"?=确定要删除字段"%0"吗? +Add\ new\ keyword=添加关键字 +Keyword\:=关键字\: +Keyword\ "%0"\ already\ exists=关键词字“%0”已存在 +Keyword\ seperator=关键字分隔符 +Remove\ keyword=删除关键字 +Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=确定要删除关键字"%0"吗? +Reset\ to\ default=重置为默认值 +Export\ all\ entries=导出所有条目 +Groups\ interface=群组接口 +Manage\ field\ names\ &\ content=管理字段名称和内容 New\ library=新建库 - - +Next\ citation\ style=下一个引文样式 +Open\ document\ viewer=打开文档查看器 +Open\ entry\ editor=打开条目编辑器 +Previous\ citation\ style=上一个引文样式 +Search\ document\ identifier\ online=在线查找文档DOI +Search\ for\ unlinked\ local\ files=查找未链接的本地文件 +Search\ full\ text\ documents\ online=在线查找全文 +Find\ and\ replace=查找和替换 + +Accept\ changes=接受修改 +Dismiss\ changes=放弃修改 +The\ library\ has\ been\ modified\ by\ another\ program.=当前库已被其他程序修改。 + +Set\ rank\ to\ one=设置评分为1 +Set\ rank\ to\ two=设置评分为2 +Set\ rank\ to\ three=设置评分为3 +Set\ rank\ to\ four=设置评分为4 +Set\ rank\ to\ five=设置评分为5 Executing\ command\ "%0"...=正在执行命令 “%0”... @@ -1820,22 +1871,43 @@ Executing\ command\ "%0"...=正在执行命令 “%0”... +Search\ for\ citations\ in\ LaTeX\ files...=在 LaTeX 文件中搜索引文... +LaTeX\ Citations\ Search\ Results=LaTeX 引文搜索结果 +Group\ color=分组颜色 +Open\ files...=打开文件... +Affected\ fields\:=补全字段 +Light\ theme=明亮主题 +Dark\ theme=暗色主题 +Overwrite\ existing\ keys=覆盖该字段的内容 +Theme\ changed\ to\ dark\ theme.=更改为暗色主题。 +Theme\ changed\ to\ light\ theme.=更改为明亮主题。 +Letters\ after\ duplicate\ generated\ keys=在重复的BibTeX键后添加字母 +Start\ on\ second\ duplicate\ key\ with\ letter\ A\ (a,\ b,\ ...)=在重复的键值后添加字母 A (a, b, ...) +Start\ on\ second\ duplicate\ key\ with\ letter\ B\ (b,\ c,\ ...)=在重复的键值后添加字母 B (b, c, ...) Always\ add\ letter\ (a,\ b,\ ...)\ to\ generated\ keys=在生成键值时总是添加字母 (a, b, ...) Default\ pattern=默认模式 +Independent=独立 +Intersection=交集 +Union=并集 + + +Shared\ database=共享数据库 +Display\ count\ of\ items\ in\ group=显示组中的条目数量 +Remove\ the\ following\ characters\:=删除以下字符: diff --git a/src/test/java/org/jabref/logic/importer/WebFetchersTest.java b/src/test/java/org/jabref/logic/importer/WebFetchersTest.java index 003e89e1b9e..1911796ee64 100644 --- a/src/test/java/org/jabref/logic/importer/WebFetchersTest.java +++ b/src/test/java/org/jabref/logic/importer/WebFetchersTest.java @@ -79,6 +79,7 @@ void getSearchBasedFetchersReturnsAllFetcherDerivingFromSearchBasedFetcher() thr ClassInfoList controlClasses = scanResult.getClassesImplementing(SearchBasedFetcher.class.getCanonicalName()); Set> expected = new HashSet<>(controlClasses.loadClasses()); + // Remove interfaces expected.remove(SearchBasedParserFetcher.class); // Remove ACM, because it doesn't work currently diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ArXivTest.java b/src/test/java/org/jabref/logic/importer/fetcher/ArXivTest.java index 8bee0365c5b..6c3458475b2 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ArXivTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ArXivTest.java @@ -3,10 +3,12 @@ import java.io.IOException; import java.net.URL; import java.util.Collections; +import java.util.List; import java.util.Optional; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.logic.importer.SearchBasedFetcher; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.identifier.ArXivIdentifier; @@ -14,16 +16,18 @@ import org.jabref.testutils.category.FetcherTest; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @FetcherTest -class ArXivTest { - private ArXiv finder; +class ArXivTest implements SearchBasedFetcherCapabilityTest { + private ArXiv fetcher; private BibEntry entry; private BibEntry sliceTheoremPaper; @@ -31,30 +35,28 @@ class ArXivTest { void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class); when(importFormatPreferences.getKeywordSeparator()).thenReturn(','); - finder = new ArXiv(importFormatPreferences); + fetcher = new ArXiv(importFormatPreferences); entry = new BibEntry(); - - sliceTheoremPaper = new BibEntry(); - sliceTheoremPaper.setType(StandardEntryType.Article); - sliceTheoremPaper.setField(StandardField.AUTHOR, "Tobias Diez"); - sliceTheoremPaper.setField(StandardField.TITLE, "Slice theorem for Fréchet group actions and covariant symplectic field theory"); - sliceTheoremPaper.setField(StandardField.DATE, "2014-05-09"); - sliceTheoremPaper.setField(StandardField.ABSTRACT, "A general slice theorem for the action of a Fr\\'echet Lie group on a Fr\\'echet manifolds is established. The Nash-Moser theorem provides the fundamental tool to generalize the result of Palais to this infinite-dimensional setting. The presented slice theorem is illustrated by its application to gauge theories: the action of the gauge transformation group admits smooth slices at every point and thus the gauge orbit space is stratified by Fr\\'echet manifolds. Furthermore, a covariant and symplectic formulation of classical field theory is proposed and extensively discussed. At the root of this novel framework is the incorporation of field degrees of freedom F and spacetime M into the product manifold F * M. The induced bigrading of differential forms is used in order to carry over the usual symplectic theory to this new setting. The examples of the Klein-Gordon field and general Yang-Mills theory illustrate that the presented approach conveniently handles the occurring symmetries."); - sliceTheoremPaper.setField(StandardField.EPRINT, "1405.2249"); - sliceTheoremPaper.setField(StandardField.FILE, ":http\\://arxiv.org/pdf/1405.2249v1:PDF"); - sliceTheoremPaper.setField(StandardField.EPRINTTYPE, "arXiv"); - sliceTheoremPaper.setField(StandardField.EPRINTCLASS, "math-ph"); - sliceTheoremPaper.setField(StandardField.KEYWORDS, "math-ph, math.DG, math.MP, math.SG, 58B99, 58Z05, 58B25, 22E65, 58D19, 53D20, 53D42"); + sliceTheoremPaper = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Tobias Diez") + .withField(StandardField.TITLE, "Slice theorem for Fréchet group actions and covariant symplectic field theory") + .withField(StandardField.DATE, "2014-05-09") + .withField(StandardField.ABSTRACT, "A general slice theorem for the action of a Fr\\'echet Lie group on a Fr\\'echet manifolds is established. The Nash-Moser theorem provides the fundamental tool to generalize the result of Palais to this infinite-dimensional setting. The presented slice theorem is illustrated by its application to gauge theories: the action of the gauge transformation group admits smooth slices at every point and thus the gauge orbit space is stratified by Fr\\'echet manifolds. Furthermore, a covariant and symplectic formulation of classical field theory is proposed and extensively discussed. At the root of this novel framework is the incorporation of field degrees of freedom F and spacetime M into the product manifold F * M. The induced bigrading of differential forms is used in order to carry over the usual symplectic theory to this new setting. The examples of the Klein-Gordon field and general Yang-Mills theory illustrate that the presented approach conveniently handles the occurring symmetries.") + .withField(StandardField.EPRINT, "1405.2249") + .withField(StandardField.FILE, ":http\\://arxiv.org/pdf/1405.2249v1:PDF") + .withField(StandardField.EPRINTTYPE, "arXiv") + .withField(StandardField.EPRINTCLASS, "math-ph") + .withField(StandardField.KEYWORDS, "math-ph, math.DG, math.MP, math.SG, 58B99, 58Z05, 58B25, 22E65, 58D19, 53D20, 53D42"); } @Test void findFullTextForEmptyEntryResultsEmptyOptional() throws IOException { - assertEquals(Optional.empty(), finder.findFullText(entry)); + assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test void findFullTextRejectsNullParameter() { - assertThrows(NullPointerException.class, () -> finder.findFullText(null)); + assertThrows(NullPointerException.class, () -> fetcher.findFullText(null)); } @Test @@ -62,19 +64,19 @@ void findFullTextByDOI() throws IOException { entry.setField(StandardField.DOI, "10.1529/biophysj.104.047340"); entry.setField(StandardField.TITLE, "Pause Point Spectra in DNA Constant-Force Unzipping"); - assertEquals(Optional.of(new URL("http://arxiv.org/pdf/cond-mat/0406246v1")), finder.findFullText(entry)); + assertEquals(Optional.of(new URL("http://arxiv.org/pdf/cond-mat/0406246v1")), fetcher.findFullText(entry)); } @Test void findFullTextByEprint() throws IOException { entry.setField(StandardField.EPRINT, "1603.06570"); - assertEquals(Optional.of(new URL("http://arxiv.org/pdf/1603.06570v1")), finder.findFullText(entry)); + assertEquals(Optional.of(new URL("http://arxiv.org/pdf/1603.06570v1")), fetcher.findFullText(entry)); } @Test void findFullTextByEprintWithPrefix() throws IOException { entry.setField(StandardField.EPRINT, "arXiv:1603.06570"); - assertEquals(Optional.of(new URL("http://arxiv.org/pdf/1603.06570v1")), finder.findFullText(entry)); + assertEquals(Optional.of(new URL("http://arxiv.org/pdf/1603.06570v1")), fetcher.findFullText(entry)); } @Test @@ -82,14 +84,14 @@ void findFullTextByEprintWithUnknownDOI() throws IOException { entry.setField(StandardField.DOI, "10.1529/unknown"); entry.setField(StandardField.EPRINT, "1603.06570"); - assertEquals(Optional.of(new URL("http://arxiv.org/pdf/1603.06570v1")), finder.findFullText(entry)); + assertEquals(Optional.of(new URL("http://arxiv.org/pdf/1603.06570v1")), fetcher.findFullText(entry)); } @Test void findFullTextByTitle() throws IOException { entry.setField(StandardField.TITLE, "Pause Point Spectra in DNA Constant-Force Unzipping"); - assertEquals(Optional.of(new URL("http://arxiv.org/pdf/cond-mat/0406246v1")), finder.findFullText(entry)); + assertEquals(Optional.of(new URL("http://arxiv.org/pdf/cond-mat/0406246v1")), fetcher.findFullText(entry)); } @Test @@ -97,19 +99,19 @@ void findFullTextByTitleAndPartOfAuthor() throws IOException { entry.setField(StandardField.TITLE, "Pause Point Spectra in DNA Constant-Force Unzipping"); entry.setField(StandardField.AUTHOR, "Weeks and Lucks"); - assertEquals(Optional.of(new URL("http://arxiv.org/pdf/cond-mat/0406246v1")), finder.findFullText(entry)); + assertEquals(Optional.of(new URL("http://arxiv.org/pdf/cond-mat/0406246v1")), fetcher.findFullText(entry)); } @Test void notFindFullTextByUnknownDOI() throws IOException { entry.setField(StandardField.DOI, "10.1529/unknown"); - assertEquals(Optional.empty(), finder.findFullText(entry)); + assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test void notFindFullTextByUnknownId() throws IOException { entry.setField(StandardField.EPRINT, "1234.12345"); - assertEquals(Optional.empty(), finder.findFullText(entry)); + assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test @@ -117,106 +119,175 @@ void findFullTextByDOINotAvailableInCatalog() throws IOException { entry.setField(StandardField.DOI, "10.1016/0370-2693(77)90015-6"); entry.setField(StandardField.TITLE, "Superspace formulation of supergravity"); - assertEquals(Optional.empty(), finder.findFullText(entry)); + assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test void findFullTextEntityWithoutDoi() throws IOException { - assertEquals(Optional.empty(), finder.findFullText(entry)); + assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test void findFullTextTrustLevel() { - assertEquals(TrustLevel.PREPRINT, finder.getTrustLevel()); + assertEquals(TrustLevel.PREPRINT, fetcher.getTrustLevel()); } @Test void searchEntryByPartOfTitle() throws Exception { assertEquals(Collections.singletonList(sliceTheoremPaper), - finder.performSearch("ti:\"slice theorem for Frechet\"")); + fetcher.performSearch("ti:\"slice theorem for Frechet\"")); } @Test void searchEntryByPartOfTitleWithAcuteAccent() throws Exception { assertEquals(Collections.singletonList(sliceTheoremPaper), - finder.performSearch("ti:\"slice theorem for Fréchet\"")); + fetcher.performSearch("ti:\"slice theorem for Fréchet\"")); } @Test void searchEntryByOldId() throws Exception { - BibEntry expected = new BibEntry(); - expected.setType(StandardEntryType.Article); - expected.setField(StandardField.AUTHOR, "H1 Collaboration"); - expected.setField(StandardField.TITLE, "Multi-Electron Production at High Transverse Momenta in ep Collisions at HERA"); - expected.setField(StandardField.DATE, "2003-07-07"); - expected.setField(StandardField.ABSTRACT, "Multi-electron production is studied at high electron transverse momentum in positron- and electron-proton collisions using the H1 detector at HERA. The data correspond to an integrated luminosity of 115 pb-1. Di-electron and tri-electron event yields are measured. Cross sections are derived in a restricted phase space region dominated by photon-photon collisions. In general good agreement is found with the Standard Model predictions. However, for electron pair invariant masses above 100 GeV, three di-electron events and three tri-electron events are observed, compared to Standard Model expectations of 0.30 \\pm 0.04 and 0.23 \\pm 0.04, respectively."); - expected.setField(StandardField.EPRINT, "hep-ex/0307015"); - expected.setField(StandardField.FILE, ":http\\://arxiv.org/pdf/hep-ex/0307015v1:PDF"); - expected.setField(StandardField.EPRINTTYPE, "arXiv"); - expected.setField(StandardField.EPRINTCLASS, "hep-ex"); - expected.setField(StandardField.KEYWORDS, "hep-ex"); - expected.setField(StandardField.DOI, "10.1140/epjc/s2003-01326-x"); - expected.setField(StandardField.JOURNALTITLE, "Eur.Phys.J.C31:17-29,2003"); - - assertEquals(Optional.of(expected), finder.performSearchById("hep-ex/0307015")); + BibEntry expected = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "H1 Collaboration") + .withField(StandardField.TITLE, "Multi-Electron Production at High Transverse Momenta in ep Collisions at HERA") + .withField(StandardField.DATE, "2003-07-07") + .withField(StandardField.ABSTRACT, "Multi-electron production is studied at high electron transverse momentum in positron- and electron-proton collisions using the H1 detector at HERA. The data correspond to an integrated luminosity of 115 pb-1. Di-electron and tri-electron event yields are measured. Cross sections are derived in a restricted phase space region dominated by photon-photon collisions. In general good agreement is found with the Standard Model predictions. However, for electron pair invariant masses above 100 GeV, three di-electron events and three tri-electron events are observed, compared to Standard Model expectations of 0.30 \\pm 0.04 and 0.23 \\pm 0.04, respectively.") + .withField(StandardField.EPRINT, "hep-ex/0307015") + .withField(StandardField.FILE, ":http\\://arxiv.org/pdf/hep-ex/0307015v1:PDF") + .withField(StandardField.EPRINTTYPE, "arXiv") + .withField(StandardField.EPRINTCLASS, "hep-ex") + .withField(StandardField.KEYWORDS, "hep-ex") + .withField(StandardField.DOI, "10.1140/epjc/s2003-01326-x") + .withField(StandardField.JOURNALTITLE, "Eur.Phys.J.C31:17-29,2003"); + + assertEquals(Optional.of(expected), fetcher.performSearchById("hep-ex/0307015")); } @Test void searchEntryByIdWith4DigitsAndVersion() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("1405.2249v1")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("1405.2249v1")); } @Test void searchEntryByIdWith4Digits() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("1405.2249")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("1405.2249")); } @Test void searchEntryByIdWith4DigitsAndPrefix() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("arXiv:1405.2249")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("arXiv:1405.2249")); } @Test void searchEntryByIdWith4DigitsAndPrefixAndNotTrimmed() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("arXiv : 1405. 2249")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("arXiv : 1405. 2249")); } @Test void searchEntryByIdWith5Digits() throws Exception { assertEquals(Optional.of( "An Optimal Convergence Theorem for Mean Curvature Flow of Arbitrary Codimension in Hyperbolic Spaces"), - finder.performSearchById("1503.06747").flatMap(entry -> entry.getField(StandardField.TITLE))); + fetcher.performSearchById("1503.06747").flatMap(entry -> entry.getField(StandardField.TITLE))); } @Test void searchWithMalformedIdThrowsException() throws Exception { - assertThrows(FetcherException.class, () -> finder.performSearchById("123412345")); + assertThrows(FetcherException.class, () -> fetcher.performSearchById("123412345")); } @Test void searchIdentifierForSlicePaper() throws Exception { sliceTheoremPaper.clearField(StandardField.EPRINT); - assertEquals(ArXivIdentifier.parse("1405.2249"), finder.findIdentifier(sliceTheoremPaper)); + assertEquals(ArXivIdentifier.parse("1405.2249"), fetcher.findIdentifier(sliceTheoremPaper)); } @Test void searchEmptyId() throws Exception { - assertEquals(Optional.empty(), finder.performSearchById("")); + assertEquals(Optional.empty(), fetcher.performSearchById("")); } @Test void searchWithHttpUrl() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("http://arxiv.org/abs/1405.2249")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("http://arxiv.org/abs/1405.2249")); } @Test void searchWithHttpsUrl() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("https://arxiv.org/abs/1405.2249")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("https://arxiv.org/abs/1405.2249")); } @Test void searchWithHttpsUrlNotTrimmed() throws Exception { - assertEquals(Optional.of(sliceTheoremPaper), finder.performSearchById("https : // arxiv . org / abs / 1405 . 2249 ")); + assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("https : // arxiv . org / abs / 1405 . 2249 ")); + } + + @Override + public SearchBasedFetcher getFetcher() { + return fetcher; + } + + @Override + public List getTestAuthors() { + return List.of("\"Tobias Diez\""); + } + + @Disabled("Is not supported by the current API") + @Test + @Override + public void supportsYearSearch() throws Exception { + } + + @Disabled("Is not supported by the current API") + @Test + @Override + public void supportsYearRangeSearch() throws Exception { + + } + + @Override + public String getTestJournal() { + return "\"Journal of Geometry and Physics (2013)\""; + } + + @Test + public void supportsPhraseSearch() throws Exception { + BibEntry expected = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Tobias Büscher and Angel L. Diez and Gerhard Gompper and Jens Elgeti") + .withField(StandardField.TITLE, "Instability and fingering of interfaces in growing tissue") + .withField(StandardField.DATE, "2020-03-10") + .withField(StandardField.ABSTRACT, "Interfaces in tissues are ubiquitous, both between tissue and environment as well as between populations of different cell types. The propagation of an interface can be driven mechanically. % e.g. by a difference in the respective homeostatic stress of the different cell types. Computer simulations of growing tissues are employed to study the stability of the interface between two tissues on a substrate. From a mechanical perspective, the dynamics and stability of this system is controlled mainly by four parameters of the respective tissues: (i) the homeostatic stress (ii) cell motility (iii) tissue viscosity and (iv) substrate friction. For propagation driven by a difference in homeostatic stress, the interface is stable for tissue-specific substrate friction even for very large differences of homeostatic stress; however, it becomes unstable above a critical stress difference when the tissue with the larger homeostatic stress has a higher viscosity. A small difference in directed bulk motility between the two tissues suffices to result in propagation with a stable interface, even for otherwise identical tissues. Larger differences in motility force, however, result in a finite-wavelength instability of the interface. Interestingly, the instability is apparently bound by nonlinear effects and the amplitude of the interface undulations only grows to a finite value in time.") + .withField(StandardField.EPRINT, "2003.04601") + .withField(StandardField.FILE, ":http\\://arxiv.org/pdf/2003.04601v1:PDF") + .withField(StandardField.EPRINTTYPE, "arXiv") + .withField(StandardField.EPRINTCLASS, "q-bio.TO") + .withField(StandardField.KEYWORDS, "q-bio.TO"); + + List resultWithPhraseSearch = fetcher.performSearch("au:\"Tobias Diez\""); + List resultWithOutPhraseSearch = fetcher.performSearch("au:Tobias Diez"); + // Ensure that phrase search result is just a subset of the default search result + assertTrue(resultWithOutPhraseSearch.containsAll(resultWithPhraseSearch)); + resultWithOutPhraseSearch.removeAll(resultWithPhraseSearch); + + // There is only a single paper found by searching for Tobias Diez as author that is not authored by "Tobias Diez". + assertEquals(Collections.singletonList(expected), resultWithOutPhraseSearch); + } + + @Test + public void supportsBooleanANDSearch() throws Exception { + BibEntry expected = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Tobias Büscher and Angel L. Diez and Gerhard Gompper and Jens Elgeti") + .withField(StandardField.TITLE, "Instability and fingering of interfaces in growing tissue") + .withField(StandardField.DATE, "2020-03-10") + .withField(StandardField.ABSTRACT, "Interfaces in tissues are ubiquitous, both between tissue and environment as well as between populations of different cell types. The propagation of an interface can be driven mechanically. % e.g. by a difference in the respective homeostatic stress of the different cell types. Computer simulations of growing tissues are employed to study the stability of the interface between two tissues on a substrate. From a mechanical perspective, the dynamics and stability of this system is controlled mainly by four parameters of the respective tissues: (i) the homeostatic stress (ii) cell motility (iii) tissue viscosity and (iv) substrate friction. For propagation driven by a difference in homeostatic stress, the interface is stable for tissue-specific substrate friction even for very large differences of homeostatic stress; however, it becomes unstable above a critical stress difference when the tissue with the larger homeostatic stress has a higher viscosity. A small difference in directed bulk motility between the two tissues suffices to result in propagation with a stable interface, even for otherwise identical tissues. Larger differences in motility force, however, result in a finite-wavelength instability of the interface. Interestingly, the instability is apparently bound by nonlinear effects and the amplitude of the interface undulations only grows to a finite value in time.") + .withField(StandardField.EPRINT, "2003.04601") + .withField(StandardField.FILE, ":http\\://arxiv.org/pdf/2003.04601v1:PDF") + .withField(StandardField.EPRINTTYPE, "arXiv") + .withField(StandardField.EPRINTCLASS, "q-bio.TO") + .withField(StandardField.KEYWORDS, "q-bio.TO"); + + List result = fetcher.performSearch("au:\"Tobias Büscher\" AND ti:\"Instability and fingering of interfaces\""); + + // There is only one paper authored by Tobias Büscher with that phrase in the title + assertEquals(Collections.singletonList(expected), result); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java index e0417421a89..7d8d2242d04 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java @@ -41,7 +41,7 @@ void searchByQueryFindsEntry2() throws Exception { .withField(StandardField.TITLE, "Coping Theory and Research: Past Present and Future") .withField(StandardField.DOI, "10.1.1.115.9665") .withField(StandardField.YEAR, "1993") - .withField(StandardField.JOURNALTITLE, "PSYCHOSOMATIC MEDICINE"); + .withField(StandardField.JOURNAL, "PSYCHOSOMATIC MEDICINE"); List fetchedEntries = fetcher.performSearch("doi:10.1.1.115.9665"); assertEquals(Collections.singletonList(expected), fetchedEntries); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java index 3fa4637dff7..73ccf743b4d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java @@ -53,7 +53,7 @@ public void performSearchReturnsMatchingMultipleEntries() throws FetcherExceptio BibEntry firstBibEntry = new BibEntry(StandardEntryType.InProceedings) .withCiteKey("conf/ecsa/OlssonEW17") .withField(StandardField.AUTHOR, "Tobias Olsson and Morgan Ericsson and Anna Wingkvist") - .withField(StandardField.EDITOR, "Rog{\\~A}{\\copyright}rio de Lemos") + .withField(StandardField.EDITOR, "Rog{\\'e}rio de Lemos") .withField(StandardField.ISBN, "978-1-4503-5217-8") .withField(StandardField.PAGES, "152--158") .withField(StandardField.PUBLISHER, "ACM") @@ -66,7 +66,7 @@ public void performSearchReturnsMatchingMultipleEntries() throws FetcherExceptio BibEntry secondBibEntry = new BibEntry(StandardEntryType.Article) .withCiteKey("oai:DiVA.org:lnu-68408") - .withField(new UnknownField("identifier"), "urn:isbn:978-1-4503-5217-8; doi:10.1145/3129790.3129810; ISI:000426556400034") + .withField(new UnknownField("identifier"), "urn:isbn:978-1-4503-5217-8; doi:10.1145/3129790.3129810; ISI:000426556400034; Scopus 2-s2.0-85037741580") .withField(new UnknownField("subject"), "Software Architecture; Code Churn; Open Source; Architecrual Erosion; Technical Debt; Software Engineering; Programvaruteknik") .withField(new UnknownField("relation"), "ACM International Conference Proceeding Series; ECSA '17~Proceedings of the 11th European Conference on Software Architecture : Companion Proceedings, p. 152-158") .withField(StandardField.ABSTRACT, "The open source application JabRef has existed since" + @@ -103,7 +103,6 @@ public void performSearchReturnsMatchingMultipleEntries() throws FetcherExceptio .withField(StandardField.LANGUAGE, "eng") .withField(StandardField.AUTHOR, "Tobias Olsson and Morgan Ericsson and Anna Wingkvist") .withField(StandardField.YEAR, "2017"); - // Checking entries in the set as the query is generic and returns a changing result set assertTrue(searchResult.contains(firstBibEntry)); assertTrue(searchResult.contains(secondBibEntry)); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java index 50866933d9d..fb4ca119f7d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java @@ -9,8 +9,10 @@ import org.jabref.logic.bibtex.FieldContentFormatterPreferences; import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.ImportCleanup; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.SearchBasedFetcher; +import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.testutils.category.FetcherTest; @@ -61,11 +63,14 @@ public void performSearchOnEmptyQuery(Set fetchers) { @MethodSource("performSearchParameters") public void performSearchOnNonEmptyQuery(Set fetchers) { CompositeSearchBasedFetcher compositeFetcher = new CompositeSearchBasedFetcher(fetchers, Integer.MAX_VALUE); + ImportCleanup cleanup = new ImportCleanup(BibDatabaseMode.BIBTEX); List compositeResult = compositeFetcher.performSearch("quantum"); for (SearchBasedFetcher fetcher : fetchers) { try { - Assertions.assertTrue(compositeResult.containsAll(fetcher.performSearch("quantum"))); + List fetcherResult = fetcher.performSearch("quantum"); + fetcherResult.forEach(cleanup::doPostCleanup); + Assertions.assertTrue(compositeResult.containsAll(fetcherResult)); } catch (FetcherException e) { /* We catch the Fetcher exception here, since the failing fetcher also fails in the CompositeFetcher * and just leads to no additional results in the returned list. Therefore the test should not fail diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java index ade75d2c307..b2772ef56bf 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java @@ -67,7 +67,6 @@ public void setUp() { .withField(StandardField.DOI, "10.3303/CET1977146") .withField(StandardField.JOURNAL, "Chemical Engineering Transactions") .withField(StandardField.PAGES, "871-876") - .withField(StandardField.URL, "http://doi.org/10.3303/CET1977146") .withField(StandardField.VOLUME, "77"); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java b/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java index 5d86db68a47..f32e0674f23 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java @@ -9,6 +9,7 @@ import org.jabref.logic.bibtex.FieldContentFormatterPreferences; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.logic.importer.SearchBasedFetcher; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; @@ -23,7 +24,7 @@ import static org.mockito.Mockito.when; @FetcherTest -class GoogleScholarTest { +class GoogleScholarTest implements SearchBasedFetcherCapabilityTest { private GoogleScholar finder; private BibEntry entry; @@ -79,4 +80,19 @@ void findManyEntries() throws FetcherException { assertEquals(20, foundEntries.size()); } + + @Override + public SearchBasedFetcher getFetcher() { + return finder; + } + + @Override + public List getTestAuthors() { + return List.of("Mittermeier", "Myers"); + } + + @Override + public String getTestJournal() { + return "Nature"; + } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java b/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java index 4d6e7e21657..9aab79989ba 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java @@ -1,13 +1,12 @@ package org.jabref.logic.importer.fetcher; -import java.io.IOException; import java.net.URL; import java.util.Collections; import java.util.List; import java.util.Optional; -import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.logic.importer.SearchBasedFetcher; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; @@ -21,7 +20,7 @@ import static org.mockito.Mockito.when; @FetcherTest -class IEEETest { +class IEEETest implements SearchBasedFetcherCapabilityTest { private IEEE fetcher; private BibEntry entry; @@ -31,107 +30,113 @@ void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class); when(importFormatPreferences.getKeywordSeparator()).thenReturn(','); fetcher = new IEEE(importFormatPreferences); - entry = new BibEntry(); } @Test - void findByDOI() throws IOException { + void findByDOI() throws Exception { entry.setField(StandardField.DOI, "10.1109/ACCESS.2016.2535486"); - assertEquals(Optional.of(new URL("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), - fetcher.findFullText(entry)); + fetcher.findFullText(entry)); } @Test - void findByDocumentUrl() throws IOException { + void findByDocumentUrl() throws Exception { entry.setField(StandardField.URL, "https://ieeexplore.ieee.org/document/7421926/"); assertEquals(Optional.of(new URL("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), - fetcher.findFullText(entry)); + fetcher.findFullText(entry)); } @Test - void findByURL() throws IOException { + void findByURL() throws Exception { entry.setField(StandardField.URL, "https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7421926&ref="); - assertEquals(Optional.of(new URL("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), - fetcher.findFullText(entry)); + fetcher.findFullText(entry)); } @Test - void findByOldURL() throws IOException { + void findByOldURL() throws Exception { entry.setField(StandardField.URL, "https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7421926"); - assertEquals(Optional.of(new URL("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), - fetcher.findFullText(entry)); + fetcher.findFullText(entry)); } @Test - void findByDOIButNotURL() throws IOException { + void findByDOIButNotURL() throws Exception { entry.setField(StandardField.DOI, "10.1109/ACCESS.2016.2535486"); entry.setField(StandardField.URL, "http://dx.doi.org/10.1109/ACCESS.2016.2535486"); - assertEquals(Optional.of(new URL("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), - fetcher.findFullText(entry)); + fetcher.findFullText(entry)); } @Test - void notFoundByURL() throws IOException { + void notFoundByURL() throws Exception { entry.setField(StandardField.URL, "http://dx.doi.org/10.1109/ACCESS.2016.2535486"); - assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test - void notFoundByDOI() throws IOException { + void notFoundByDOI() throws Exception { entry.setField(StandardField.DOI, "10.1021/bk-2006-WWW.ch014"); - assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test - void searchResultHasNoKeywordTerms() throws FetcherException { - BibEntry expected = new BibEntry(StandardEntryType.Article); - - expected.setField(StandardField.AUTHOR, "Shatakshi Jha and Ikhlaq Hussain and Bhim Singh and Sukumar Mishra"); - expected.setField(StandardField.DATE, "25 2 2019"); - expected.setField(StandardField.YEAR, "2019"); - expected.setField(StandardField.DOI, "10.1049/iet-rpg.2018.5648"); - expected.setField(StandardField.FILE, ":https\\://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8636659:PDF"); - expected.setField(StandardField.ISSUE, "3"); - expected.setField(StandardField.ISSN, "1752-1424"); - expected.setField(StandardField.JOURNALTITLE, "IET Renewable Power Generation"); - expected.setField(StandardField.PAGES, "418--426"); - expected.setField(StandardField.PUBLISHER, "IET"); - expected.setField(StandardField.TITLE, "Optimal operation of PV-DG-battery based microgrid with power quality conditioner"); - expected.setField(StandardField.VOLUME, "13"); + void searchResultHasNoKeywordTerms() throws Exception { + BibEntry expected = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Shatakshi Jha and Ikhlaq Hussain and Bhim Singh and Sukumar Mishra") + .withField(StandardField.DATE, "25 2 2019") + .withField(StandardField.YEAR, "2019") + .withField(StandardField.DOI, "10.1049/iet-rpg.2018.5648") + .withField(StandardField.FILE, ":https\\://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8636659:PDF") + .withField(StandardField.ISSUE, "3") + .withField(StandardField.ISSN, "1752-1424") + .withField(StandardField.JOURNALTITLE, "IET Renewable Power Generation") + .withField(StandardField.PAGES, "418--426") + .withField(StandardField.PUBLISHER, "IET") + .withField(StandardField.TITLE, "Optimal operation of PV-DG-battery based microgrid with power quality conditioner") + .withField(StandardField.VOLUME, "13"); List fetchedEntries = fetcher.performSearch("8636659"); // article number fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(Collections.singletonList(expected), fetchedEntries); - } @Test void searchByQueryFindsEntry() throws Exception { - BibEntry expected = new BibEntry(StandardEntryType.InProceedings); - expected.setField(StandardField.AUTHOR, "Igor Steinmacher and Tayana Uchoa Conte and Christoph Treude and Marco Aurélio Gerosa"); - expected.setField(StandardField.DATE, "14-22 May 2016"); - expected.setField(StandardField.YEAR, "2016"); - expected.setField(StandardField.EVENTDATE, "14-22 May 2016"); - expected.setField(StandardField.EVENTTITLEADDON, "Austin, TX"); - expected.setField(StandardField.LOCATION, "Austin, TX"); - expected.setField(StandardField.DOI, "10.1145/2884781.2884806"); - expected.setField(StandardField.JOURNALTITLE, "2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)"); - expected.setField(StandardField.PAGES, "273--284"); - expected.setField(StandardField.ISBN, "978-1-5090-2071-3"); - expected.setField(StandardField.ISSN, "1558-1225"); - expected.setField(StandardField.PUBLISHER, "IEEE"); - expected.setField(StandardField.KEYWORDS, "Portals, Documentation, Computer bugs, Joining processes, Industries, Open source software, Newcomers, Newbies, Novices, Beginners, Open Source Software, Barriers, Obstacles, Onboarding, Joining Process"); - expected.setField(StandardField.TITLE, "Overcoming Open Source Project Entry Barriers with a Portal for Newcomers"); - expected.setField(StandardField.FILE, ":https\\://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7886910:PDF"); - expected.setField(StandardField.ABSTRACT, "Community-based Open Source Software (OSS) projects are usually self-organized and dynamic, receiving contributions from distributed volunteers. Newcomer are important to the survival, long-term success, and continuity of these communities. However, newcomers face many barriers when making their first contribution to an OSS project, leading in many cases to dropouts. Therefore, a major challenge for OSS projects is to provide ways to support newcomers during their first contribution. In this paper, we propose and evaluate FLOSScoach, a portal created to support newcomers to OSS projects. FLOSScoach was designed based on a conceptual model of barriers created in our previous work. To evaluate the portal, we conducted a study with 65 students, relying on qualitative data from diaries, self-efficacy questionnaires, and the Technology Acceptance Model. The results indicate that FLOSScoach played an important role in guiding newcomers and in lowering barriers related to the orientation and contribution process, whereas it was not effective in lowering technical barriers. We also found that FLOSScoach is useful, easy to use, and increased newcomers' confidence to contribute. Our results can help project maintainers on deciding the points that need more attention in order to help OSS project newcomers overcome entry barriers."); + BibEntry expected = new BibEntry(StandardEntryType.InProceedings) + .withField(StandardField.AUTHOR, "Igor Steinmacher and Tayana Uchoa Conte and Christoph Treude and Marco Aurélio Gerosa") + .withField(StandardField.DATE, "14-22 May 2016") + .withField(StandardField.YEAR, "2016") + .withField(StandardField.EVENTDATE, "14-22 May 2016") + .withField(StandardField.EVENTTITLEADDON, "Austin, TX") + .withField(StandardField.LOCATION, "Austin, TX") + .withField(StandardField.DOI, "10.1145/2884781.2884806") + .withField(StandardField.JOURNALTITLE, "2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)") + .withField(StandardField.PAGES, "273--284") + .withField(StandardField.ISBN, "978-1-5090-2071-3") + .withField(StandardField.ISSN, "1558-1225") + .withField(StandardField.PUBLISHER, "IEEE") + .withField(StandardField.KEYWORDS, "Portals, Documentation, Computer bugs, Joining processes, Industries, Open source software, Newcomers, Newbies, Novices, Beginners, Open Source Software, Barriers, Obstacles, Onboarding, Joining Process") + .withField(StandardField.TITLE, "Overcoming Open Source Project Entry Barriers with a Portal for Newcomers") + .withField(StandardField.FILE, ":https\\://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7886910:PDF") + .withField(StandardField.ABSTRACT, "Community-based Open Source Software (OSS) projects are usually self-organized and dynamic, receiving contributions from distributed volunteers. Newcomer are important to the survival, long-term success, and continuity of these communities. However, newcomers face many barriers when making their first contribution to an OSS project, leading in many cases to dropouts. Therefore, a major challenge for OSS projects is to provide ways to support newcomers during their first contribution. In this paper, we propose and evaluate FLOSScoach, a portal created to support newcomers to OSS projects. FLOSScoach was designed based on a conceptual model of barriers created in our previous work. To evaluate the portal, we conducted a study with 65 students, relying on qualitative data from diaries, self-efficacy questionnaires, and the Technology Acceptance Model. The results indicate that FLOSScoach played an important role in guiding newcomers and in lowering barriers related to the orientation and contribution process, whereas it was not effective in lowering technical barriers. We also found that FLOSScoach is useful, easy to use, and increased newcomers' confidence to contribute. Our results can help project maintainers on deciding the points that need more attention in order to help OSS project newcomers overcome entry barriers."); List fetchedEntries = fetcher.performSearch("Overcoming Open Source Project Entry Barriers with a Portal for Newcomers"); assertEquals(Collections.singletonList(expected), fetchedEntries); } + + @Override + public SearchBasedFetcher getFetcher() { + return fetcher; + } + + @Override + public List getTestAuthors() { + return List.of("Igor Steinmacher", "Tayana Uchoa Conte", "Christoph Treude", "Marco Aurélio Gerosa"); + } + + @Override + public String getTestJournal() { + return "IET Renewable Power Generation"; + } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java new file mode 100644 index 00000000000..7f7a4a69cdf --- /dev/null +++ b/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java @@ -0,0 +1,117 @@ +package org.jabref.logic.importer.fetcher; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.jabref.logic.importer.ImportCleanup; +import org.jabref.logic.importer.SearchBasedFetcher; +import org.jabref.model.database.BibDatabaseMode; +import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.field.StandardField; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * Defines the set of capability tests that each tests a given search capability, e.g. author based search. + * The idea is to code the capabilities of a fetcher into Java code. + * This way, a) the capbilities of a fetcher are checked automatically (because they can change from time-to-time by the provider) + * and b) the queries sent to the fetchers can be debugged directly without a route through to some fetcher code. + */ +interface SearchBasedFetcherCapabilityTest { + + /** + * Test whether the library API supports author field search. + */ + @Test + default void supportsAuthorSearch() throws Exception { + ComplexSearchQuery.ComplexSearchQueryBuilder builder = ComplexSearchQuery.builder(); + getTestAuthors().forEach(builder::author); + + List result = getFetcher().performComplexSearch(builder.build()); + new ImportCleanup(BibDatabaseMode.BIBTEX).doPostCleanup(result); + + assertFalse(result.isEmpty()); + result.forEach(bibEntry -> { + String author = bibEntry.getField(StandardField.AUTHOR).orElse(""); + + // The co-authors differ, thus we check for the author present at all papers + getTestAuthors().forEach(expectedAuthor -> Assertions.assertTrue(author.contains(expectedAuthor.replace("\"", "")))); + }); + } + + /** + * Test whether the library API supports year field search. + */ + @Test + default void supportsYearSearch() throws Exception { + ComplexSearchQuery.ComplexSearchQueryBuilder builder = ComplexSearchQuery.builder(); + builder.singleYear(getTestYear()); + + List result = getFetcher().performComplexSearch(builder.build()); + new ImportCleanup(BibDatabaseMode.BIBTEX).doPostCleanup(result); + List differentYearsInResult = result.stream() + .map(bibEntry -> bibEntry.getField(StandardField.YEAR)) + .filter(Optional::isPresent) + .map(Optional::get) + .distinct() + .collect(Collectors.toList()); + + assertFalse(result.isEmpty()); + assertEquals(Collections.singletonList(getTestYear().toString()), differentYearsInResult); + } + + /** + * Test whether the library API supports year range search. + */ + @Test + default void supportsYearRangeSearch() throws Exception { + ComplexSearchQuery.ComplexSearchQueryBuilder builder = ComplexSearchQuery.builder(); + List yearsInYearRange = List.of("2018", "2019", "2020"); + builder.fromYearAndToYear(2018, 2020); + + List result = getFetcher().performComplexSearch(builder.build()); + new ImportCleanup(BibDatabaseMode.BIBTEX).doPostCleanup(result); + List differentYearsInResult = result.stream() + .map(bibEntry -> bibEntry.getField(StandardField.YEAR)) + .filter(Optional::isPresent) + .map(Optional::get) + .distinct() + .collect(Collectors.toList()); + assertFalse(result.isEmpty()); + assertTrue(yearsInYearRange.containsAll(differentYearsInResult)); + } + + /** + * Test whether the library API supports journal based search. + */ + @Test + default void supportsJournalSearch() throws Exception { + ComplexSearchQuery.ComplexSearchQueryBuilder builder = ComplexSearchQuery.builder(); + builder.journal(getTestJournal()); + List result = getFetcher().performComplexSearch(builder.build()); + new ImportCleanup(BibDatabaseMode.BIBTEX).doPostCleanup(result); + + assertFalse(result.isEmpty()); + result.forEach(bibEntry -> { + String journal = bibEntry.getField(StandardField.JOURNAL).orElse(""); + assertTrue(journal.contains(getTestJournal().replace("\"", ""))); + }); + } + + SearchBasedFetcher getFetcher(); + + List getTestAuthors(); + + String getTestJournal(); + + default Integer getTestYear() { + return 2016; + } +} diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java index ee1d3a76c4d..dcdbf257848 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java @@ -3,7 +3,9 @@ import java.util.Collections; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; +import org.jabref.logic.importer.SearchBasedFetcher; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; @@ -11,13 +13,16 @@ import org.jabref.testutils.category.FetcherTest; import kong.unirest.json.JSONObject; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; @FetcherTest -class SpringerFetcherTest { +class SpringerFetcherTest implements SearchBasedFetcherCapabilityTest { SpringerFetcher fetcher; @@ -29,21 +34,21 @@ void setUp() { @DisabledOnCIServer("Disable on CI Server to not hit the API call limit") @Test void searchByQueryFindsEntry() throws Exception { - BibEntry expected = new BibEntry(StandardEntryType.Article); - expected.setField(StandardField.AUTHOR, "Steinmacher, Igor and Gerosa, Marco and Conte, Tayana U. and Redmiles, David F."); - expected.setField(StandardField.DATE, "2019-04-15"); - expected.setField(StandardField.DOI, "10.1007/s10606-018-9335-z"); - expected.setField(StandardField.ISSN, "0925-9724"); - expected.setField(StandardField.JOURNAL, "Computer Supported Cooperative Work (CSCW)"); - expected.setField(StandardField.MONTH, "#apr#"); - expected.setField(StandardField.PAGES, "247--290"); - expected.setField(StandardField.NUMBER, "1-2"); - expected.setField(StandardField.VOLUME, "28"); - expected.setField(StandardField.PUBLISHER, "Springer"); - expected.setField(StandardField.TITLE, "Overcoming Social Barriers When Contributing to Open Source Software Projects"); - expected.setField(StandardField.YEAR, "2019"); - expected.setField(StandardField.FILE, "online:http\\://link.springer.com/openurl/pdf?id=doi\\:10.1007/s10606-018-9335-z:PDF"); - expected.setField(StandardField.ABSTRACT, "An influx of newcomers is critical to the survival, long-term success, and continuity of many Open Source Software (OSS) community-based projects. However, newcomers face many barriers when making their first contribution, leading in many cases to dropouts. Due to the collaborative nature of community-based OSS projects, newcomers may be susceptible to social barriers, such as communication breakdowns and reception issues. In this article, we report a two-phase study aimed at better understanding social barriers faced by newcomers. In the first phase, we qualitatively analyzed the literature and data collected from practitioners to identify barriers that hinder newcomers’ first contribution. We designed a model composed of 58 barriers, including 13 social barriers. In the second phase, based on the barriers model, we developed FLOSScoach, a portal to support newcomers making their first contribution. We evaluated the portal in a diary-based study and found that the portal guided the newcomers and reduced the need for communication. Our results provide insights for communities that want to support newcomers and lay a foundation for building better onboarding tools. The contributions of this paper include identifying and gathering empirical evidence of social barriers faced by newcomers; understanding how social barriers can be reduced or avoided by using a portal that organizes proper information for newcomers (FLOSScoach); presenting guidelines for communities and newcomers on how to reduce or avoid social barriers; and identifying new streams of research."); + BibEntry expected = new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Steinmacher, Igor and Gerosa, Marco and Conte, Tayana U. and Redmiles, David F.") + .withField(StandardField.DATE, "2019-04-15") + .withField(StandardField.DOI, "10.1007/s10606-018-9335-z") + .withField(StandardField.ISSN, "0925-9724") + .withField(StandardField.JOURNAL, "Computer Supported Cooperative Work (CSCW)") + .withField(StandardField.MONTH, "#apr#") + .withField(StandardField.PAGES, "247--290") + .withField(StandardField.NUMBER, "1-2") + .withField(StandardField.VOLUME, "28") + .withField(StandardField.PUBLISHER, "Springer") + .withField(StandardField.TITLE, "Overcoming Social Barriers When Contributing to Open Source Software Projects") + .withField(StandardField.YEAR, "2019") + .withField(StandardField.FILE, "online:http\\://link.springer.com/openurl/pdf?id=doi\\:10.1007/s10606-018-9335-z:PDF") + .withField(StandardField.ABSTRACT, "An influx of newcomers is critical to the survival, long-term success, and continuity of many Open Source Software (OSS) community-based projects. However, newcomers face many barriers when making their first contribution, leading in many cases to dropouts. Due to the collaborative nature of community-based OSS projects, newcomers may be susceptible to social barriers, such as communication breakdowns and reception issues. In this article, we report a two-phase study aimed at better understanding social barriers faced by newcomers. In the first phase, we qualitatively analyzed the literature and data collected from practitioners to identify barriers that hinder newcomers’ first contribution. We designed a model composed of 58 barriers, including 13 social barriers. In the second phase, based on the barriers model, we developed FLOSScoach, a portal to support newcomers making their first contribution. We evaluated the portal in a diary-based study and found that the portal guided the newcomers and reduced the need for communication. Our results provide insights for communities that want to support newcomers and lay a foundation for building better onboarding tools. The contributions of this paper include identifying and gathering empirical evidence of social barriers faced by newcomers; understanding how social barriers can be reduced or avoided by using a portal that organizes proper information for newcomers (FLOSScoach); presenting guidelines for communities and newcomers on how to reduce or avoid social barriers; and identifying new streams of research."); List fetchedEntries = fetcher.performSearch("JabRef Social Barriers Steinmacher"); assertEquals(Collections.singletonList(expected), fetchedEntries); @@ -78,4 +83,65 @@ void testSpringerJSONToBibtex() { void searchByEmptyQueryFindsNothing() throws Exception { assertEquals(Collections.emptyList(), fetcher.performSearch("")); } + + @Test + @Disabled("Year range search is not natively supported by the API, but can be emulated by multiple single year searches.") + @Override + public void supportsYearRangeSearch() throws Exception { + } + + @Test + public void supportsPhraseSearch() throws Exception { + // Normal search should match due to Redmiles, Elissa M., phrase search on the other hand should not find it. + BibEntry expected = new BibEntry(StandardEntryType.InCollection) + .withField(StandardField.AUTHOR, "Booth, Kayla M. and Dosono, Bryan and Redmiles, Elissa M. and Morales, Miraida and Depew, Michael and Farzan, Rosta and Herman, Everett and Trahan, Keith and Tananis, Cindy") + .withField(StandardField.DATE, "2018-01-01") + .withField(StandardField.DOI, "10.1007/978-3-319-78105-1_75") + .withField(StandardField.ISBN, "978-3-319-78104-4") + .withField(StandardField.MONTH, "#jan#") + .withField(StandardField.PUBLISHER, "Springer") + .withField(StandardField.BOOKTITLE, "Transforming Digital Worlds") + .withField(StandardField.TITLE, "Diversifying the Next Generation of Information Scientists: Six Years of Implementation and Outcomes for a Year-Long REU Program") + .withField(StandardField.YEAR, "2018") + .withField(StandardField.FILE, "online:http\\://link.springer.com/openurl/pdf?id=doi\\:10.1007/978-3-319-78105-1_75:PDF") + .withField(StandardField.ABSTRACT, "The iSchool Inclusion Institute (i3) is a Research Experience for Undergraduates (REU) program in the US designed to address underrepresentation in the information sciences. i3 is a year-long, cohort-based program that prepares undergraduate students for graduate school in information science and is rooted in a research and leadership development curriculum. Using data from six years of i3 cohorts, we present in this paper a qualitative and quantitative evaluation of the program in terms of student learning, research production, and graduate school enrollment. We find that students who participate in i3 report significant learning gains in information-science- and graduate-school-related areas and that 52% of i3 participants enroll in graduate school, over 2 $$\\times $$ × the national average. Based on these and additional results, we distill recommendations for future implementations of similar programs to address underrepresentation in information science."); + + List resultPhrase = fetcher.performSearch("name:\"Redmiles David\""); + List result = fetcher.performSearch("name:Redmiles David"); + + // Phrase search should be a subset of the normal search result. + Assertions.assertTrue(result.containsAll(resultPhrase)); + result.removeAll(resultPhrase); + Assertions.assertEquals(Collections.singletonList(expected), result); + } + + @Test + public void supportsBooleanANDSearch() throws Exception { + List resultJustByAuthor = fetcher.performSearch("name:\"Redmiles, David\""); + List result = fetcher.performSearch("name:\"Redmiles, David\" AND journal:Computer Supported Cooperative Work"); + + Assertions.assertTrue(resultJustByAuthor.containsAll(result)); + List allEntriesFromCSCW = result.stream() + .filter(bibEntry -> bibEntry.getField(StandardField.JOURNAL).orElse("").equals("Computer Supported Cooperative Work (CSCW)")) + .collect(Collectors.toList()); + allEntriesFromCSCW.stream() + .map(bibEntry -> bibEntry.getField(StandardField.AUTHOR)) + .filter(Optional::isPresent) + .map(Optional::get).forEach(authorField -> assertTrue(authorField.contains("Redmiles"))); + } + + @Override + public SearchBasedFetcher getFetcher() { + return fetcher; + } + + @Override + public List getTestAuthors() { + return List.of("\"Steinmacher, Igor\"", "\"Gerosa, Marco\"", "\"Conte, Tayana U.\""); + } + + @Override + public String getTestJournal() { + return "\"Clinical Research in Cardiology\""; + } }