diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 869f73dd3a4..912f7d96213 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -27,7 +27,7 @@ body: options: - Windows - GNU / Linux - - mac OS + - macOS - Other (please describe below) validations: required: true @@ -36,7 +36,7 @@ body: attributes: label: Details on version and operating system description: OS Version, distribution, desktop environment, older JabRef version etc. - placeholder: Ubuntu 21.04 with Plasma 5.22 / Windows 10 21H1 / Mac OS 10.14 + placeholder: Ubuntu 21.04 with Plasma 5.22 / Windows 10 21H1 / macOS 10.14 validations: required: false @@ -70,10 +70,13 @@ body: value: | ...
+ Log File + ``` Paste an excerpt of your log file here ``` +
validations: required: false diff --git a/.github/workflows/check-links.yaml b/.github/workflows/check-links.yaml index bfc618d021d..2077d20ff80 100644 --- a/.github/workflows/check-links.yaml +++ b/.github/workflows/check-links.yaml @@ -7,6 +7,7 @@ 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 * *" + workflow_dispatch: jobs: markdown-link-check: diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 485cbda548f..670407e4d4f 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -26,6 +26,10 @@ env: GRADLE_OPTS: -Xmx4g -Dorg.gradle.daemon=false -Dorg.gradle.vfs.watch=false JAVA_OPTS: -Xmx4g +concurrency: + group: ${{ github.head_ref }} + cancel-in-progress: true + jobs: build: strategy: @@ -45,21 +49,17 @@ jobs: runs-on: ${{ matrix.os }} name: Create installer and portable version for ${{ matrix.displayName }} steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.9.1 - with: - access_token: ${{ github.token }} - name: Fetch all history for all tags and branches uses: actions/checkout@v2 with: fetch-depth: 0 - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v0.9.10 + uses: gittools/actions/gitversion/setup@v0.9.11 with: versionSpec: "5.x" - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.10 + uses: gittools/actions/gitversion/execute@v0.9.11 - name: Set up JDK uses: actions/setup-java@v2 with: @@ -155,12 +155,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.10 + uses: gittools/actions/gitversion/setup@v0.9.11 with: versionSpec: '5.x' - name: Run GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@v0.9.10 + uses: gittools/actions/gitversion/execute@v0.9.11 - name: Get linux binaries uses: actions/download-artifact@master with: diff --git a/.github/workflows/gource.yml b/.github/workflows/gource.yml index a9281f17b2f..bf04acc1d4c 100644 --- a/.github/workflows/gource.yml +++ b/.github/workflows/gource.yml @@ -6,6 +6,7 @@ on: - gource schedule: - cron: '15 3 1 1,4,7,10 *' + workflow_dispatch: jobs: action: diff --git a/.github/workflows/snap.yml b/.github/workflows/snap.yml index c190256444f..564ad5f0971 100644 --- a/.github/workflows/snap.yml +++ b/.github/workflows/snap.yml @@ -9,6 +9,10 @@ on: # run on each day - cron: "33 4 * * *" +concurrency: + group: snap-${{ github.head_ref }} + cancel-in-progress: true + jobs: build: runs-on: ubuntu-latest diff --git a/.github/workflows/tests-fetchers.yml b/.github/workflows/tests-fetchers.yml index a201a7d19b2..f670c0ee1ab 100644 --- a/.github/workflows/tests-fetchers.yml +++ b/.github/workflows/tests-fetchers.yml @@ -20,12 +20,17 @@ on: schedule: # run on each Wednesday - cron: '2 3 * * 3' + workflow_dispatch: env: SpringerNatureAPIKey: ${{ secrets.SPRINGERNATUREAPIKEY_FOR_TESTS }} AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey_FOR_TESTS }} IEEEAPIKey: ${{ secrets.IEEEAPIKey_FOR_TESTS }} +concurrency: + group: fetcher-tests-${{ github.head_ref }} + cancel-in-progress: true + jobs: fetchertests: name: Fetcher tests diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c975743419e..ba680d86435 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,9 +3,11 @@ name: Tests on: push: branches: - - master + - main + - main-release pull_request: # always run on pull requests + workflow_dispatch: env: SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} @@ -14,15 +16,15 @@ env: GRADLE_OPTS: -Xmx4g JAVA_OPTS: -Xmx4g +concurrency: + group: tests-${{ github.head_ref }} + cancel-in-progress: true + jobs: checkstyle: name: Checkstyle runs-on: ubuntu-latest steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.9.1 - with: - access_token: ${{ github.token }} - name: Checkout source uses: actions/checkout@v2 - name: Set up JDK @@ -41,7 +43,7 @@ jobs: - name: Run markdown-lint uses: avto-dev/markdown-lint@v1 with: - args: CHANGELOG.md CONTRIBUTING.md README.md docs/ + args: CHANGELOG.md CONTRIBUTING.md README.md config: '.markdownlint.yml' tests: name: Unit tests diff --git a/.markdownlint.yml b/.markdownlint.yml index c6444dc0aca..fc1907c9953 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -1,24 +1,8 @@ default: true -# Using h2 has side effects in GitBook's toc. Thus, we sometimes switch from h1 to h3 -MD001: false - -MD012: - # 2 are required, because GitBook adss two blank lines at the end of a file - maximum: 2 - +# allow arbitrary line length MD013: false -# The FAQs state questions - we allow them -MD026: - punctuation: ".,;:!" - -# not supported by gitbook -MD031: false - MD033: # we have tags with ids and superscript allowed_elements: ['a', 'kbd', 'sup'] - -# seems to be unsupported by gitbook anymore -MD045: false diff --git a/CHANGELOG.md b/CHANGELOG.md index a6731df1893..51958628e8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve ### Added +- We added confirmation dialog when user wants to close a library where any empty entires are detected. [#8096](https://github.com/JabRef/jabref/issues/8096) - We added import support for CFF files. [#7945](https://github.com/JabRef/jabref/issues/7945) - We added the option to copy the DOI of an entry directly from the context menu copy submenu. [#7826](https://github.com/JabRef/jabref/issues/7826) - We added a fulltext search feature. [#2838](https://github.com/JabRef/jabref/pull/2838) @@ -23,9 +24,13 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We readded the possibility to keep the search string when switching tabs. It is implemented by a toggle button. [#4096](https://github.com/JabRef/jabref/issues/4096#issuecomment-575986882) - We allowed the user to also preview the available citation styles in the preferences besides the selected ones [#8108](https://github.com/JabRef/jabref/issues/8108) - We added an option to search the available citation styles by name in the preferences [#8108](https://github.com/JabRef/jabref/issues/8108) +- We added an option to generate bib-entries from ID through a popover in the toolbar. [#4183](https://github.com/JabRef/jabref/issues/4183) ### Changed +- Local library settings may overwrite the setting "Search and store files relative to library file location" [#8179](https://github.com/JabRef/jabref/issues/8179) +- The option "Fit table horizontally on screen" in the "Entry table" preferences is now disabled by default [#8148](https://github.com/JabRef/jabref/pull/8148) +- We improved the preferences and descriptions in the "Linked files" preferences tab [#8148](https://github.com/JabRef/jabref/pull/8148) - We slightly changed the layout of the Journal tab in the preferences for ui consistency. [#7937](https://github.com/JabRef/jabref/pull/7937) - The JabRefHost on Windows now writes a temporary file and calls `-importToOpen` instead of passing the bibtex via `-importBibtex`. [#7374](https://github.com/JabRef/jabref/issues/7374), [JabRef Browser Ext #274](https://github.com/JabRef/JabRef-Browser-Extension/issues/274) - We reordered some entries in the right-click menu of the main table. [#6099](https://github.com/JabRef/jabref/issues/6099) @@ -35,10 +40,19 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - The metadata-to-pdf actions now also embeds the bibfile to the PDF. [#8037](https://github.com/JabRef/jabref/pull/8037) - The snap was updated to use the core20 base and to use lzo compression for better startup performance [#8109](https://github.com/JabRef/jabref/pull/8109) - We improved the Drag and Drop behavior in the "Customize Entry Types" Dialog [#6338](https://github.com/JabRef/jabref/issues/6338) +- When determining the URL of an ArXiV eprint, the URL now points to the version [#8149](https://github.com/JabRef/jabref/pull/8149) +- We Included all standard fields with citation key when exporting to Old OpenOffice/LibreOffice Calc Format [#8176](https://github.com/JabRef/jabref/pull/8176) +- In case the database is encoded with `UTF8`, the `% Encoding` marker is not written anymore +- The written `.bib` file has the same line endings [#390](https://github.com/koppor/jabref/issues/390) +- The written `.bib` file always has a final line break +- The written `.bib` file keeps the newline separator of the loaded `.bib` file +- We present options to manually enter an article or return to the New Entry menu when the fetcher DOI fails to find an entry for an ID [#7870](https://github.com/JabRef/jabref/issues/7870) +- We trim white space and non-ASCII characters from DOI [#8127](https://github.com/JabRef/jabref/issues/8127) +- The duplicate checker now inspects other fields in case no difference in the required and optional fields are found. ### Fixed -- We fixed an issue where an exception ocurred when a linked online file was edited in the entry editor [#8008](https://github.com/JabRef/jabref/issues/8008) +- We fixed an issue where an exception occurred when a linked online file was edited in the entry editor [#8008](https://github.com/JabRef/jabref/issues/8008) - We fixed an issue when checking for a new version when JabRef is used behind a corporate proxy. [#7884](https://github.com/JabRef/jabref/issues/7884) - We fixed some icons that were drawn in the wrong color when JabRef used a custom theme. [#7853](https://github.com/JabRef/jabref/issues/7853) - We fixed an issue where the `Aux file` on `Edit group` doesn't support relative sub-directories path to import. [#7719](https://github.com/JabRef/jabref/issues/7719). @@ -47,10 +61,15 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve - We fixed an issue where the icons in the search bar had the same color, toggled as well as untoggled. [#8014](https://github.com/JabRef/jabref/pull/8014) - We fixed an issue where typing an invalid UNC path into the "Main file directory" text field caused an error. [#8107](https://github.com/JabRef/jabref/issues/8107) - We fixed an issue where "Open Folder" didn't select the file on macOS in Finder [#8130](https://github.com/JabRef/jabref/issues/8130) +- We fixed an issue where importing PDFs resulted in an uncaught exception [#8143](https://github.com/JabRef/jabref/issues/8143) +- We fixed "The library has been modified by another program" showing up when line breaks change [#4877](https://github.com/JabRef/jabref/issues/4877) +- The default directory of the "LaTeX Citations" tab is now the directory of the currently opened database (and not the directory chosen at the last open file dialog or the last database save) [koppor#538](https://github.com/koppor/jabref/issues/538) +- We fixed an issue where right-clicking on a tab and selecting close will close the focused tab even if it is not the tab we right-clicked [#8193](https://github.com/JabRef/jabref/pull/8193) +- We fixed an issue where selecting a citation style in the preferences would sometimes produce an exception [#7860](https://github.com/JabRef/jabref/issues/7860) ### Removed - +- We removed two orphaned preferences options [#8164](https://github.com/JabRef/jabref/pull/8164) diff --git a/README.md b/README.md index 3eb919e3b28..f719dbf8742 100644 --- a/README.md +++ b/README.md @@ -100,5 +100,4 @@ For IntelliJ IDEA, just import the project via a Gradle Import by pointing at th JabRef development is powered by YourKit Java Profiler [![YourKit Java Profiler](https://www.yourkit.com/images/yk_logo.png)](https://www.yourkit.com/java/profiler/) - [JabRef]: https://www.jabref.org diff --git a/build.gradle b/build.gradle index 69def1c86a6..9d03788da3e 100644 --- a/build.gradle +++ b/build.gradle @@ -20,11 +20,11 @@ plugins { id 'org.openjfx.javafxplugin' version '0.0.10' - id 'org.beryx.jlink' version '2.24.2' + id 'org.beryx.jlink' version '2.24.4' // nicer test outputs during running and completion // Homepage: https://github.com/radarsh/gradle-test-logger-plugin - id 'com.adarshr.test-logger' version '3.0.0' + id 'com.adarshr.test-logger' version '3.1.0' id 'jacoco' @@ -110,7 +110,7 @@ configurations { } javafx { - version = "17.0.0.1" + version = "17.0.1" modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.web', 'javafx.swing' ] } @@ -130,10 +130,10 @@ dependencies { // required for reading write-protected PDFs - see https://github.com/JabRef/jabref/pull/942#issuecomment-209252635 implementation 'org.bouncycastle:bcprov-jdk15on:1.69' - implementation 'commons-cli:commons-cli:1.4' + implementation 'commons-cli:commons-cli:1.5.0' - implementation 'org.libreoffice:libreoffice:7.2.1' - implementation 'org.libreoffice:unoloader:7.2.0' + implementation 'org.libreoffice:libreoffice:7.2.2' + implementation 'org.libreoffice:unoloader:7.2.2' implementation 'io.github.java-diff-utils:java-diff-utils:4.11' implementation 'info.debatty:java-string-similarity:2.0.0' @@ -141,8 +141,8 @@ dependencies { antlr3 'org.antlr:antlr:3.5.2' implementation 'org.antlr:antlr-runtime:3.5.2' - antlr4 'org.antlr:antlr4:4.9.2' - implementation 'org.antlr:antlr4-runtime:4.9.2' + antlr4 'org.antlr:antlr4:4.9.3' + implementation 'org.antlr:antlr4-runtime:4.9.3' implementation group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '5.13.0.202109080827-r' @@ -158,7 +158,7 @@ dependencies { exclude module: 'oraclepki' } - implementation ('com.google.guava:guava:31.0-jre') { + implementation ('com.google.guava:guava:31.0.1-jre') { // TODO: Remove this as soon as https://github.com/google/guava/issues/2960 is fixed exclude module: "jsr305" } @@ -171,14 +171,14 @@ dependencies { implementation 'de.saxsys:mvvmfx-validation:1.9.0-SNAPSHOT' implementation 'de.saxsys:mvvmfx:1.8.0' implementation 'com.tobiasdiez:easybind:2.2' - implementation 'org.fxmisc.flowless:flowless:0.6.6' - implementation 'org.fxmisc.richtext:richtextfx:0.10.6' + implementation 'org.fxmisc.flowless:flowless:0.6.7' + implementation 'org.fxmisc.richtext:richtextfx:0.10.7' implementation group: 'org.glassfish.hk2.external', name: 'jakarta.inject', version: '2.6.1' implementation 'com.jfoenix:jfoenix:9.0.10' implementation 'org.controlsfx:controlsfx:11.1.0' - implementation 'org.jsoup:jsoup:1.14.2' - implementation 'com.konghq:unirest-java:3.13.0' + implementation 'org.jsoup:jsoup:1.14.3' + implementation 'com.konghq:unirest-java:3.13.3' implementation 'org.slf4j:slf4j-api:2.0.0-alpha5' implementation group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: '3.0.0-SNAPSHOT' @@ -209,18 +209,18 @@ dependencies { implementation group: 'net.harawata', name: 'appdirs', version: '1.2.1' - testImplementation 'io.github.classgraph:classgraph:4.8.121' + testImplementation 'io.github.classgraph:classgraph:4.8.130' testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1' testImplementation 'org.junit.platform:junit-platform-launcher:1.8.1' - testImplementation 'net.bytebuddy:byte-buddy-parent:1.11.18' + testImplementation 'net.bytebuddy:byte-buddy-parent:1.12.1' testRuntimeOnly group: 'org.apache.logging.log4j', name: 'log4j-core', version: '3.0.0-SNAPSHOT' testRuntimeOnly group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '3.0.0-SNAPSHOT' - testImplementation 'org.mockito:mockito-core:3.12.4' - testImplementation 'org.xmlunit:xmlunit-core:2.8.2' - testImplementation 'org.xmlunit:xmlunit-matchers:2.8.2' - testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:0.21.0' - testImplementation 'com.tngtech.archunit:archunit-junit5-api:0.21.0' + testImplementation 'org.mockito:mockito-core:4.0.0' + testImplementation 'org.xmlunit:xmlunit-core:2.8.3' + testImplementation 'org.xmlunit:xmlunit-matchers:2.8.3' + testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:0.22.0' + testImplementation 'com.tngtech.archunit:archunit-junit5-api:0.22.0' testImplementation "org.testfx:testfx-core:4.0.17-alpha-SNAPSHOT" testImplementation "org.testfx:testfx-junit5:4.0.17-alpha-SNAPSHOT" testImplementation "org.hamcrest:hamcrest-library:2.2" diff --git a/buildres/csl/csl-locales/.github/workflows/merge.yaml b/buildres/csl/csl-locales/.github/workflows/merge.yaml index dc997e6d701..9c2d3767b50 100644 --- a/buildres/csl/csl-locales/.github/workflows/merge.yaml +++ b/buildres/csl/csl-locales/.github/workflows/merge.yaml @@ -58,7 +58,7 @@ jobs: if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && (steps.update.outputs.updated == 'true' || steps.update.outputs.deleted == 'true')) uses: ruby/setup-ruby@v1 with: - ruby-version: 3.0.0 + ruby-version: 3.0.2 - name: but use cache to speed that up if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && (steps.update.outputs.updated == 'true' || steps.update.outputs.deleted == 'true')) uses: actions/cache@v2 diff --git a/buildres/csl/csl-locales/.github/workflows/sheldon.yaml b/buildres/csl/csl-locales/.github/workflows/sheldon.yaml index 6bd89b71e37..b52f89d50fe 100644 --- a/buildres/csl/csl-locales/.github/workflows/sheldon.yaml +++ b/buildres/csl/csl-locales/.github/workflows/sheldon.yaml @@ -50,7 +50,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.0.0 + ruby-version: 3.0.2 - name: but use cache to speed that up uses: actions/cache@v2 with: diff --git a/buildres/csl/csl-locales/Gemfile b/buildres/csl/csl-locales/Gemfile index 10a8635675e..7f6467aff47 100644 --- a/buildres/csl/csl-locales/Gemfile +++ b/buildres/csl/csl-locales/Gemfile @@ -1,4 +1,4 @@ -ruby '3.0.0' +ruby '3.0.2' source 'https://rubygems.org' gem 'rake' diff --git a/buildres/csl/csl-locales/Gemfile.lock b/buildres/csl/csl-locales/Gemfile.lock index 9064fb59dc5..1c45b4586ec 100644 --- a/buildres/csl/csl-locales/Gemfile.lock +++ b/buildres/csl/csl-locales/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/citation-style-language/Sheldon.git - revision: 38b6de75ac4dd86d6b3b47c172431e6e44f53ca0 + revision: 38b1c813448737261a43060ccd3669d67dbfcad7 specs: sheldon (1.0.30) citeproc-ruby @@ -24,23 +24,38 @@ GEM public_suffix (>= 2.0.2, < 5.0) citeproc (1.0.10) namae (~> 1.0) - citeproc-ruby (1.1.13) + citeproc-ruby (1.1.14) citeproc (~> 1.0, >= 1.0.9) - csl (~> 1.5) - csl (1.5.2) + csl (~> 1.6) + csl (1.6.0) namae (~> 1.0) - csl-styles (1.0.1.10) + rexml + csl-styles (1.0.1.11) csl (~> 1.0) diff-lcs (1.4.4) diffy (3.4.0) dotenv (2.7.6) erubis (2.7.0) - faraday (1.3.0) + faraday (1.8.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) multipart-post (>= 1.2, < 3) - ruby2_keywords + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday_middleware (1.0.0) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday_middleware (1.1.0) faraday (~> 1.0) fuubar (2.5.1) rspec-core (~> 3.0) @@ -49,19 +64,20 @@ GEM hashdiff (0.3.7) mini_portile2 (2.6.1) multipart-post (2.1.1) - namae (1.0.2) + namae (1.1.1) nokogiri (1.12.5) mini_portile2 (~> 2.6.1) racc (~> 1.4) - octokit (4.20.0) + octokit (4.21.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) - ostruct (0.3.3) + ostruct (0.4.0) public_suffix (4.0.6) racc (1.5.2) - rake (13.0.3) + rake (13.0.6) reverse_markdown (2.0.0) nokogiri + rexml (3.2.5) rspec (3.10.0) rspec-core (~> 3.10.0) rspec-expectations (~> 3.10.0) @@ -76,7 +92,7 @@ GEM rspec-support (~> 3.10.0) rspec-support (3.10.2) ruby-progressbar (1.11.0) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) @@ -93,7 +109,7 @@ DEPENDENCIES sheldon! RUBY VERSION - ruby 3.0.0p0 + ruby 3.0.2p107 BUNDLED WITH - 2.2.3 + 2.2.22 diff --git a/buildres/csl/csl-locales/README.md b/buildres/csl/csl-locales/README.md index db3a4a5ee0b..3dba681bd51 100644 --- a/buildres/csl/csl-locales/README.md +++ b/buildres/csl/csl-locales/README.md @@ -1,16 +1,23 @@ -CSL Locales Repository -====================== +

CSL logo

-[![Build Status](https://travis-ci.org/citation-style-language/locales.svg?branch=master)](https://travis-ci.org/citation-style-language/locales) -[![license](https://img.shields.io/badge/license-CC%20BY%20SA%203.0-blue.svg)](https://github.com/citation-style-language/locales#licensing) -![languages](https://img.shields.io/badge/supported%20languages-52-orange.svg) +

Citation Style Language - Locales Repository

+ +

+ License + Build Status + Supported Languages +

+ + +Introduction +------------ [github.com/citation-style-language/locales](https://github.com/citation-style-language/locales) is the official repository for Citation Style Language (CSL) locale files and is maintained by CSL project members. -For more information, check out [CitationStyles.org](http://citationstyles.org/) and the [repository wiki](https://github.com/citation-style-language/locales/wiki). +For more information, check out [CitationStyles.org](https://citationstyles.org/) and the [repository wiki](https://github.com/citation-style-language/locales/wiki). Licensing --------- -All the locale files in this repository are released under the [Creative Commons Attribution-ShareAlike 3.0 Unported license](http://creativecommons.org/licenses/by-sa/3.0/). -For attribution, any software using CSL locale files from this repository must include a clear mention of the CSL project and a link to [CitationStyles.org](http://citationstyles.org/). +All the locale files in this repository are released under the [Creative Commons Attribution-ShareAlike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/). +For attribution, any software using CSL locale files from this repository must include a clear mention of the CSL project and a link to [CitationStyles.org](https://citationstyles.org/). When distributing these locale files, the listings of translators in the locale metadata must be kept as is. diff --git a/buildres/csl/csl-locales/locales-de-AT.xml b/buildres/csl/csl-locales/locales-de-AT.xml index 7631c6ae381..b3aed6e333a 100644 --- a/buildres/csl/csl-locales/locales-de-AT.xml +++ b/buildres/csl/csl-locales/locales-de-AT.xml @@ -272,7 +272,7 @@ Hrsg. & Übers. - Hrsg. & Übers + Hrsg. & Übers. diff --git a/buildres/csl/csl-locales/locales-de-CH.xml b/buildres/csl/csl-locales/locales-de-CH.xml index d25b76eb6a7..aa6077b6f98 100644 --- a/buildres/csl/csl-locales/locales-de-CH.xml +++ b/buildres/csl/csl-locales/locales-de-CH.xml @@ -258,7 +258,7 @@ Hrsg. & Übers. - Hrsg. & Übers + Hrsg. & Übers. diff --git a/buildres/csl/csl-locales/locales-de-DE.xml b/buildres/csl/csl-locales/locales-de-DE.xml index da86e4897f0..23249d547c7 100644 --- a/buildres/csl/csl-locales/locales-de-DE.xml +++ b/buildres/csl/csl-locales/locales-de-DE.xml @@ -269,7 +269,7 @@ Hrsg. & Übers. - Hrsg. & Übers + Hrsg. & Übers. diff --git a/buildres/csl/csl-styles/.github/workflows/merge.yaml b/buildres/csl/csl-styles/.github/workflows/merge.yaml index dc997e6d701..9c2d3767b50 100644 --- a/buildres/csl/csl-styles/.github/workflows/merge.yaml +++ b/buildres/csl/csl-styles/.github/workflows/merge.yaml @@ -58,7 +58,7 @@ jobs: if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && (steps.update.outputs.updated == 'true' || steps.update.outputs.deleted == 'true')) uses: ruby/setup-ruby@v1 with: - ruby-version: 3.0.0 + ruby-version: 3.0.2 - name: but use cache to speed that up if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && (steps.update.outputs.updated == 'true' || steps.update.outputs.deleted == 'true')) uses: actions/cache@v2 diff --git a/buildres/csl/csl-styles/.github/workflows/sheldon.yaml b/buildres/csl/csl-styles/.github/workflows/sheldon.yaml index 6bd89b71e37..b52f89d50fe 100644 --- a/buildres/csl/csl-styles/.github/workflows/sheldon.yaml +++ b/buildres/csl/csl-styles/.github/workflows/sheldon.yaml @@ -50,7 +50,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.0.0 + ruby-version: 3.0.2 - name: but use cache to speed that up uses: actions/cache@v2 with: diff --git a/buildres/csl/csl-styles/Gemfile b/buildres/csl/csl-styles/Gemfile index 10a8635675e..7f6467aff47 100644 --- a/buildres/csl/csl-styles/Gemfile +++ b/buildres/csl/csl-styles/Gemfile @@ -1,4 +1,4 @@ -ruby '3.0.0' +ruby '3.0.2' source 'https://rubygems.org' gem 'rake' diff --git a/buildres/csl/csl-styles/Gemfile.lock b/buildres/csl/csl-styles/Gemfile.lock index c53fdc40c47..1c45b4586ec 100644 --- a/buildres/csl/csl-styles/Gemfile.lock +++ b/buildres/csl/csl-styles/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/citation-style-language/Sheldon.git - revision: 38b6de75ac4dd86d6b3b47c172431e6e44f53ca0 + revision: 38b1c813448737261a43060ccd3669d67dbfcad7 specs: sheldon (1.0.30) citeproc-ruby @@ -24,44 +24,60 @@ GEM public_suffix (>= 2.0.2, < 5.0) citeproc (1.0.10) namae (~> 1.0) - citeproc-ruby (1.1.13) + citeproc-ruby (1.1.14) citeproc (~> 1.0, >= 1.0.9) - csl (~> 1.5) - csl (1.5.2) + csl (~> 1.6) + csl (1.6.0) namae (~> 1.0) - csl-styles (1.0.1.10) + rexml + csl-styles (1.0.1.11) csl (~> 1.0) diff-lcs (1.4.4) diffy (3.4.0) dotenv (2.7.6) erubis (2.7.0) - faraday (1.3.0) + faraday (1.8.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) multipart-post (>= 1.2, < 3) - ruby2_keywords + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday_middleware (1.0.0) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday_middleware (1.1.0) faraday (~> 1.0) fuubar (2.5.1) rspec-core (~> 3.0) ruby-progressbar (~> 1.4) git_diff (0.4.3) hashdiff (0.3.7) - mini_portile2 (2.5.1) + mini_portile2 (2.6.1) multipart-post (2.1.1) - namae (1.0.2) - nokogiri (1.11.4) - mini_portile2 (~> 2.5.0) + namae (1.1.1) + nokogiri (1.12.5) + mini_portile2 (~> 2.6.1) racc (~> 1.4) - octokit (4.20.0) + octokit (4.21.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) - ostruct (0.3.3) + ostruct (0.4.0) public_suffix (4.0.6) racc (1.5.2) - rake (13.0.3) + rake (13.0.6) reverse_markdown (2.0.0) nokogiri + rexml (3.2.5) rspec (3.10.0) rspec-core (~> 3.10.0) rspec-expectations (~> 3.10.0) @@ -76,7 +92,7 @@ GEM rspec-support (~> 3.10.0) rspec-support (3.10.2) ruby-progressbar (1.11.0) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) @@ -93,7 +109,7 @@ DEPENDENCIES sheldon! RUBY VERSION - ruby 3.0.0p0 + ruby 3.0.2p107 BUNDLED WITH - 2.2.3 + 2.2.22 diff --git a/buildres/csl/csl-styles/acta-hydrotechnica.csl b/buildres/csl/csl-styles/acta-hydrotechnica.csl index 19ebb6c10b5..02cd104139d 100644 --- a/buildres/csl/csl-styles/acta-hydrotechnica.csl +++ b/buildres/csl/csl-styles/acta-hydrotechnica.csl @@ -75,7 +75,7 @@ - + diff --git a/buildres/csl/csl-styles/acta-universitatis-agriculturae-sueciae.csl b/buildres/csl/csl-styles/acta-universitatis-agriculturae-sueciae.csl index 279f1a7f259..8a0830b3456 100644 --- a/buildres/csl/csl-styles/acta-universitatis-agriculturae-sueciae.csl +++ b/buildres/csl/csl-styles/acta-universitatis-agriculturae-sueciae.csl @@ -15,7 +15,7 @@ Style as per the May 2019 guidelines. - 2021-04-22T13:05:29+00:00 + 2021-11-10T10:39:01+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -279,20 +279,12 @@ - - - - - + - - - - - + diff --git a/buildres/csl/csl-styles/american-medical-association-10th-edition.csl b/buildres/csl/csl-styles/american-medical-association-10th-edition.csl index 929787234ac..0cd46a54f8a 100644 --- a/buildres/csl/csl-styles/american-medical-association-10th-edition.csl +++ b/buildres/csl/csl-styles/american-medical-association-10th-edition.csl @@ -1,5 +1,5 @@ - diff --git a/buildres/csl/csl-styles/anti-trafficking-review.csl b/buildres/csl/csl-styles/anti-trafficking-review.csl new file mode 100644 index 00000000000..fd177bb1a6d --- /dev/null +++ b/buildres/csl/csl-styles/anti-trafficking-review.csl @@ -0,0 +1,384 @@ + + diff --git a/buildres/csl/csl-styles/archeosciences.csl b/buildres/csl/csl-styles/archeosciences.csl index 81db24e59eb..f67995eb103 100644 --- a/buildres/csl/csl-styles/archeosciences.csl +++ b/buildres/csl/csl-styles/archeosciences.csl @@ -1,4 +1,4 @@ - + diff --git a/buildres/csl/csl-styles/biomed-central.csl b/buildres/csl/csl-styles/biomed-central.csl index 9e2cb8a095b..7e135c42721 100644 --- a/buildres/csl/csl-styles/biomed-central.csl +++ b/buildres/csl/csl-styles/biomed-central.csl @@ -12,10 +12,13 @@ Sebastian Karcher + + Patrick O'Brien + - 2017-03-15T17:11:28+00:00 + 2021-11-02T17:11:28+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -87,22 +90,22 @@ - + - - + + - - - - - - - - - + + + + + + + + + diff --git a/buildres/csl/csl-styles/biophysics-and-physicobiology.csl b/buildres/csl/csl-styles/biophysics-and-physicobiology.csl index 42a31de2a78..681723d865c 100644 --- a/buildres/csl/csl-styles/biophysics-and-physicobiology.csl +++ b/buildres/csl/csl-styles/biophysics-and-physicobiology.csl @@ -33,16 +33,15 @@ - + - + @@ -72,10 +71,10 @@ - + - + @@ -84,8 +83,7 @@ diff --git a/buildres/csl/csl-styles/brazilian-journal-of-experimental-design-data-analysis-and-inferential-statistics.csl b/buildres/csl/csl-styles/brazilian-journal-of-experimental-design-data-analysis-and-inferential-statistics.csl index f7c374b9b13..13f1624b646 100644 --- a/buildres/csl/csl-styles/brazilian-journal-of-experimental-design-data-analysis-and-inferential-statistics.csl +++ b/buildres/csl/csl-styles/brazilian-journal-of-experimental-design-data-analysis-and-inferential-statistics.csl @@ -71,7 +71,7 @@ - + diff --git a/buildres/csl/csl-styles/brazilian-journal-of-psychiatry.csl b/buildres/csl/csl-styles/brazilian-journal-of-psychiatry.csl new file mode 100644 index 00000000000..9ecf477ea9f --- /dev/null +++ b/buildres/csl/csl-styles/brazilian-journal-of-psychiatry.csl @@ -0,0 +1,164 @@ + + diff --git a/buildres/csl/csl-styles/bulletin-de-correspondance-hellenique.csl b/buildres/csl/csl-styles/bulletin-de-correspondance-hellenique.csl index 289c1ed0f4b..ffb7b7117d0 100644 --- a/buildres/csl/csl-styles/bulletin-de-correspondance-hellenique.csl +++ b/buildres/csl/csl-styles/bulletin-de-correspondance-hellenique.csl @@ -1,11 +1,10 @@ - diff --git a/buildres/csl/csl-styles/comparative-politics.csl b/buildres/csl/csl-styles/comparative-politics.csl index f4bdd8eb2fd..7e47608a64e 100644 --- a/buildres/csl/csl-styles/comparative-politics.csl +++ b/buildres/csl/csl-styles/comparative-politics.csl @@ -14,7 +14,7 @@ 0010-4159 - 2017-07-30T15:50:21+00:00 + 2021-10-19T09:54:11+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -92,76 +92,109 @@ + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + + - - + + - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/buildres/csl/csl-styles/conservation-biology.csl b/buildres/csl/csl-styles/conservation-biology.csl index 169c4a0023a..bc6421fe39a 100644 --- a/buildres/csl/csl-styles/conservation-biology.csl +++ b/buildres/csl/csl-styles/conservation-biology.csl @@ -16,7 +16,7 @@ 0888-8892 1523-1739 - 2016-02-11T07:27:17+00:00 + 2021-10-06T23:33:10+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -29,7 +29,7 @@ - + @@ -170,6 +170,11 @@ + + + + + diff --git a/buildres/csl/csl-styles/dependent/bulletin-archeologique-des-ecoles-francaises-a-l-etranger.csl b/buildres/csl/csl-styles/dependent/bulletin-archeologique-des-ecoles-francaises-a-l-etranger.csl new file mode 100644 index 00000000000..898f98c5ffa --- /dev/null +++ b/buildres/csl/csl-styles/dependent/bulletin-archeologique-des-ecoles-francaises-a-l-etranger.csl @@ -0,0 +1,21 @@ + + diff --git a/buildres/csl/csl-styles/dependent/european-accounting-review.csl b/buildres/csl/csl-styles/dependent/european-accounting-review.csl index 256f50f7e56..06d81912e2e 100644 --- a/buildres/csl/csl-styles/dependent/european-accounting-review.csl +++ b/buildres/csl/csl-styles/dependent/european-accounting-review.csl @@ -1,30 +1,30 @@ - - + + diff --git a/buildres/csl/csl-styles/dependent/journal-of-business-finance-and-accounting.csl b/buildres/csl/csl-styles/dependent/journal-of-business-finance-and-accounting.csl index 36063a15b29..c992e046f0e 100644 --- a/buildres/csl/csl-styles/dependent/journal-of-business-finance-and-accounting.csl +++ b/buildres/csl/csl-styles/dependent/journal-of-business-finance-and-accounting.csl @@ -1,30 +1,30 @@ - - + + diff --git a/buildres/csl/csl-styles/dependent/klinische-padiatrie.csl b/buildres/csl/csl-styles/dependent/klinische-padiatrie.csl deleted file mode 100644 index 067b8c0ffb5..00000000000 --- a/buildres/csl/csl-styles/dependent/klinische-padiatrie.csl +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/buildres/csl/csl-styles/developmental-medicine-and-child-neurology.csl b/buildres/csl/csl-styles/developmental-medicine-and-child-neurology.csl new file mode 100644 index 00000000000..64e7ff3196c --- /dev/null +++ b/buildres/csl/csl-styles/developmental-medicine-and-child-neurology.csl @@ -0,0 +1,176 @@ + + diff --git a/buildres/csl/csl-styles/early-music-history.csl b/buildres/csl/csl-styles/early-music-history.csl new file mode 100644 index 00000000000..8244443043f --- /dev/null +++ b/buildres/csl/csl-styles/early-music-history.csl @@ -0,0 +1,219 @@ + + diff --git a/buildres/csl/csl-styles/emu-austral-ornithology.csl b/buildres/csl/csl-styles/emu-austral-ornithology.csl index 24681b26875..9d2d282a5f5 100644 --- a/buildres/csl/csl-styles/emu-austral-ornithology.csl +++ b/buildres/csl/csl-styles/emu-austral-ornithology.csl @@ -4,23 +4,26 @@ Emu - Austral Ornithology http://www.zotero.org/styles/emu-austral-ornithology - + Eliot Miller eliotmiller@umsl.edu + + Patrick O'Brien + 0158-4197 1448-5540 Emu - Austral Ornithology - 2017-02-07T21:21:48+00:00 + 2021-10-20T07:18:03+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -28,7 +31,7 @@ - + - + @@ -145,12 +148,14 @@ - - - - + + + + + + + - @@ -162,7 +167,7 @@ - + diff --git a/buildres/csl/csl-styles/engineered-regeneration.csl b/buildres/csl/csl-styles/engineered-regeneration.csl new file mode 100644 index 00000000000..b730e8a5c7c --- /dev/null +++ b/buildres/csl/csl-styles/engineered-regeneration.csl @@ -0,0 +1,143 @@ + + diff --git a/buildres/csl/csl-styles/focaal-journal-of-global-and-historical-anthropology.csl b/buildres/csl/csl-styles/focaal-journal-of-global-and-historical-anthropology.csl new file mode 100644 index 00000000000..322516e59c6 --- /dev/null +++ b/buildres/csl/csl-styles/focaal-journal-of-global-and-historical-anthropology.csl @@ -0,0 +1,617 @@ + + diff --git a/buildres/csl/csl-styles/forschungsjournal-soziale-bewegungen-fjsb.csl b/buildres/csl/csl-styles/forschungsjournal-soziale-bewegungen-fjsb.csl new file mode 100644 index 00000000000..ddc24bf679f --- /dev/null +++ b/buildres/csl/csl-styles/forschungsjournal-soziale-bewegungen-fjsb.csl @@ -0,0 +1,178 @@ + + diff --git a/buildres/csl/csl-styles/harvard-cardiff-university-old.csl b/buildres/csl/csl-styles/harvard-cardiff-university-old.csl index e96db07f808..31cc6f69ea3 100644 --- a/buildres/csl/csl-styles/harvard-cardiff-university-old.csl +++ b/buildres/csl/csl-styles/harvard-cardiff-university-old.csl @@ -5,7 +5,7 @@ http://www.zotero.org/styles/harvard-cardiff-university-old - + Zoe Young youngz@cardiff.ac.uk diff --git a/buildres/csl/csl-styles/harvard-imperial-college-london.csl b/buildres/csl/csl-styles/harvard-imperial-college-london.csl index e09043e5dba..72b72707f73 100644 --- a/buildres/csl/csl-styles/harvard-imperial-college-london.csl +++ b/buildres/csl/csl-styles/harvard-imperial-college-london.csl @@ -1,5 +1,5 @@ - diff --git a/buildres/csl/csl-styles/ieee.csl b/buildres/csl/csl-styles/ieee.csl index 2cc6f62e7f4..b56ba3a9bdc 100644 --- a/buildres/csl/csl-styles/ieee.csl +++ b/buildres/csl/csl-styles/ieee.csl @@ -237,7 +237,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -331,13 +331,13 @@ - - - - - - - + + + + + + + @@ -352,16 +352,16 @@ - - - - - - - - + + + + + + - + + + @@ -388,7 +388,7 @@ - + diff --git a/buildres/csl/csl-styles/iso690-author-date-cs.csl b/buildres/csl/csl-styles/iso690-author-date-cs.csl index 526dfafb5bc..697982b977c 100644 --- a/buildres/csl/csl-styles/iso690-author-date-cs.csl +++ b/buildres/csl/csl-styles/iso690-author-date-cs.csl @@ -23,6 +23,7 @@ z + b.r. @@ -180,7 +181,7 @@ - + diff --git a/buildres/csl/csl-styles/iso690-author-date-fr-no-abstract.csl b/buildres/csl/csl-styles/iso690-author-date-fr-no-abstract.csl index 62c82084a70..e385ade4437 100644 --- a/buildres/csl/csl-styles/iso690-author-date-fr-no-abstract.csl +++ b/buildres/csl/csl-styles/iso690-author-date-fr-no-abstract.csl @@ -7,7 +7,7 @@ Pierre-Amiel Giraud - pierre-amiel.giraud@u-bordeaux3.fr + pierre-amiel.giraud@u-bordeaux-montaigne.fr Raphael Grolimund @@ -16,29 +16,21 @@ Style based on ISO 690:2010(F), V1, derived from Mellifluo, Grolimund, Hardegger and Giraud version. - 2020-11-19T21:30:00+00:00 + 2021-11-05T21:30:00+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License - + - Anon. [sans date] in en ligne consulté le disponible à l'adresse - p. + trad. + éd. - - - - - - - - @@ -57,42 +49,46 @@ - + - - - - - - - - - - - - + + + + - + - + + + + + + + + + + + + - - - - - - - + - - - + + + + + + + + + + @@ -116,31 +112,36 @@ - - - - - - - - - - - - - - - - + + + + + + + + + - - - + + + + + + + + + + + + + + + @@ -161,14 +162,39 @@ - - + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + @@ -181,7 +207,7 @@ - + @@ -214,55 +240,30 @@ - - - - - - - - - - - - - - - - - - - - + + + + + - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - @@ -314,12 +315,10 @@ - - - - - - + + + + @@ -331,14 +330,17 @@ - - - + + + - + + @@ -346,196 +348,225 @@ - - - - + + + + + + - - + - + - - - + + + + + + - + - - - + + + + + + - + - - + - - - + + + + + + - - - + + - + - - - + + + + + + - + - + - - - + + + + + + - - + + - + - - - + + + + + + - - + - + - - - + + + + + + - + - - - + + + + + + - - + - + - - - + + + + + + - - + - + - - - + + + + + + - + - + - - - + + + + + + - + - + - - - + + + + + + - - + + - + - - - - - + + diff --git a/buildres/csl/csl-styles/journal-of-accounting-research.csl b/buildres/csl/csl-styles/journal-of-accounting-research.csl index 3c625149f43..70dab68bcc8 100644 --- a/buildres/csl/csl-styles/journal-of-accounting-research.csl +++ b/buildres/csl/csl-styles/journal-of-accounting-research.csl @@ -1,617 +1,617 @@ - - + + diff --git a/buildres/csl/csl-styles/journal-of-computer-applications-in-archaeology.csl b/buildres/csl/csl-styles/journal-of-computer-applications-in-archaeology.csl index d0e8c8f7610..30a660cd2c3 100644 --- a/buildres/csl/csl-styles/journal-of-computer-applications-in-archaeology.csl +++ b/buildres/csl/csl-styles/journal-of-computer-applications-in-archaeology.csl @@ -11,11 +11,15 @@ Patrick O'Brien obrienpat86@gmail.com + + Ronald Visser + r.m.visser@saxion.nl + 2514-8362 Harvard author-date style edited for Journal of Computer Applications in Archaeology. - 2017-05-24T15:41:19+00:00 + 2017-05-28T00:39:40+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -25,7 +29,7 @@ - + @@ -34,8 +38,8 @@ - - + + + + @@ -93,13 +114,12 @@ - + - @@ -126,6 +146,29 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/buildres/csl/csl-styles/journal-of-the-american-association-of-laboratory-animal-science.csl b/buildres/csl/csl-styles/journal-of-the-american-association-of-laboratory-animal-science.csl index f67d51a2c5d..573855b5da3 100644 --- a/buildres/csl/csl-styles/journal-of-the-american-association-of-laboratory-animal-science.csl +++ b/buildres/csl/csl-styles/journal-of-the-american-association-of-laboratory-animal-science.csl @@ -100,6 +100,9 @@ + + + diff --git a/buildres/csl/csl-styles/juristische-schulung.csl b/buildres/csl/csl-styles/juristische-schulung.csl index d9d903431a5..1c65f23d7e2 100644 --- a/buildres/csl/csl-styles/juristische-schulung.csl +++ b/buildres/csl/csl-styles/juristische-schulung.csl @@ -145,14 +145,14 @@ - - - - - - + + + + + + Thieme-German (Deutsch) http://www.zotero.org/styles/thieme-german @@ -21,27 +20,36 @@ Christoph Mann rounzli@googlemail.com + + Patrick O'Brien + Modified version of the "Vancouver Bracket" for Thieme Journals - 2020-06-30T08:44:34+00:00 + 2021-11-10T14:09:06+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License et al. + im Internet + Stand - - @@ -50,27 +58,28 @@ - - - - - + + + - + - + - - + + - + + + + - + @@ -100,14 +109,14 @@ - + - + - - + + @@ -124,10 +133,10 @@ - - - - + + + + diff --git a/buildres/csl/csl-styles/turabian-author-date.csl b/buildres/csl/csl-styles/turabian-author-date.csl index e3ca2a00faa..afb896007ff 100644 --- a/buildres/csl/csl-styles/turabian-author-date.csl +++ b/buildres/csl/csl-styles/turabian-author-date.csl @@ -10,10 +10,15 @@ Tony Chuang zcchuang@tiu.edu + + J. David Stark + david@jdavidstark.com + https://www.jdavidstark.com/ + The author-date variant of the Turabian 9th edition - Based on Chicago 17th (author-date) - 2020-05-16T19:15:00+00:00 + 2021-10-29T15:28:42+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -274,9 +279,6 @@ - - - @@ -285,6 +287,10 @@ + + + + @@ -430,12 +436,9 @@ - - - - - - + + + @@ -445,6 +448,10 @@ + + + + @@ -624,23 +631,27 @@ - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + diff --git a/buildres/csl/csl-styles/tyndale-bulletin.csl b/buildres/csl/csl-styles/tyndale-bulletin.csl new file mode 100644 index 00000000000..13b20b5396d --- /dev/null +++ b/buildres/csl/csl-styles/tyndale-bulletin.csl @@ -0,0 +1,1054 @@ + + diff --git a/buildres/csl/csl-styles/unesco-international-institute-for-educational-planning.csl b/buildres/csl/csl-styles/unesco-international-institute-for-educational-planning.csl index 2cb8bfa3704..3d6141e31d5 100644 --- a/buildres/csl/csl-styles/unesco-international-institute-for-educational-planning.csl +++ b/buildres/csl/csl-styles/unesco-international-institute-for-educational-planning.csl @@ -71,7 +71,7 @@ - + diff --git a/buildres/csl/csl-styles/united-states-international-trade-commission.csl b/buildres/csl/csl-styles/united-states-international-trade-commission.csl index e4a86a09689..5f88f74ee62 100644 --- a/buildres/csl/csl-styles/united-states-international-trade-commission.csl +++ b/buildres/csl/csl-styles/united-states-international-trade-commission.csl @@ -27,7 +27,7 @@ A bibliographical style file for the United States International Trade Commission - 2021-06-22T19:55:15+00:00 + 2021-10-07T15:21:08+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -195,7 +195,7 @@ - + diff --git a/buildres/csl/csl-styles/urad-rs-za-makroekonomske-analize-in-razvoj.csl b/buildres/csl/csl-styles/urad-rs-za-makroekonomske-analize-in-razvoj.csl index 52383679764..8e31a491175 100644 --- a/buildres/csl/csl-styles/urad-rs-za-makroekonomske-analize-in-razvoj.csl +++ b/buildres/csl/csl-styles/urad-rs-za-makroekonomske-analize-in-razvoj.csl @@ -688,7 +688,7 @@ - + diff --git a/buildres/csl/csl-styles/vancouver-imperial-college-london.csl b/buildres/csl/csl-styles/vancouver-imperial-college-london.csl index 9f12aa3946b..6d55fb8c1f1 100644 --- a/buildres/csl/csl-styles/vancouver-imperial-college-london.csl +++ b/buildres/csl/csl-styles/vancouver-imperial-college-london.csl @@ -9,10 +9,14 @@ Sebastian Karcher + + S. Mackenzie + + - Vancouver style according to the Imperial College London Guidelines - 2014-09-06T16:03:01+00:00 + Vancouver style from Imperial College London Library - 2021 + 2021-11-10T09:54:55+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -30,7 +34,7 @@ - - + - + @@ -67,7 +76,6 @@ - @@ -77,10 +85,9 @@ - - + @@ -94,9 +101,13 @@ - - - + + + + + + + @@ -106,15 +117,9 @@ - - - - - - @@ -145,11 +150,6 @@ - - - - - @@ -177,7 +177,7 @@ - + @@ -196,7 +196,7 @@ - + @@ -230,6 +230,12 @@ + + + + + + @@ -237,14 +243,6 @@ - - - - - - - diff --git a/buildres/csl/csl-styles/wikipedia-templates.csl b/buildres/csl/csl-styles/wikipedia-templates.csl new file mode 100644 index 00000000000..ada49032f47 --- /dev/null +++ b/buildres/csl/csl-styles/wikipedia-templates.csl @@ -0,0 +1,183 @@ + + diff --git a/buildres/csl/csl-styles/wirtschaftsuniversitat-wien-institut-fur-transportwirtschaft-und-logistik.csl b/buildres/csl/csl-styles/wirtschaftsuniversitat-wien-institut-fur-transportwirtschaft-und-logistik.csl index 465cb265f18..742beae7f0c 100644 --- a/buildres/csl/csl-styles/wirtschaftsuniversitat-wien-institut-fur-transportwirtschaft-und-logistik.csl +++ b/buildres/csl/csl-styles/wirtschaftsuniversitat-wien-institut-fur-transportwirtschaft-und-logistik.csl @@ -1,5 +1,5 @@ - diff --git a/buildres/mac/README.md b/buildres/mac/README.md index a6dda0f7236..495b5742d73 100644 --- a/buildres/mac/README.md +++ b/buildres/mac/README.md @@ -3,7 +3,7 @@ ## Modifying DMG Setup scpt Rename `JabRef-dmg-setup.scpt script` to `JabRef-dmg-setup.applescript`. -Only modify the `JabRef-dmg-setup.applescript` in the OS X Script Editor. Afterwards copy over the file and rename it to `JabRef-dmg-setup.scpt`. +Only modify the `JabRef-dmg-setup.applescript` in the macOS Script Editor. Afterwards copy over the file and rename it to `JabRef-dmg-setup.scpt`. Normally the `scpt` file is a binary compiled variant and the `.applescript` the uncompiled format but jpackage expects the sctp in uncompiled format ## Generate iconsets diff --git a/config/README.md b/config/README.md index cb7d0275d0c..d0a6bf89e97 100644 --- a/config/README.md +++ b/config/README.md @@ -3,7 +3,7 @@ IntelliJ IDEA comes with a powerful code formatter that helps you to keep the formatting consistent with the style JabRef uses. Style-checks are done for each pull request and installing this code style configuration helps you to ensure that this test passes. To install it, you need to do the following steps: -1. Go to *Preferences* or press Ctrl + Alt + S (Cmd + , on Mac OS X) +1. Go to *Preferences* or press Ctrl + Alt + S (Cmd + , on macOS) 2. Go to "Editor > Code Style" 3. Click the gear (right of "Scheme: ...") 4. Click "Import Scheme >" diff --git a/docs/.gitbook/assets/grafik.png b/docs/.gitbook/assets/grafik.png new file mode 100644 index 00000000000..f442df383f0 Binary files /dev/null and b/docs/.gitbook/assets/grafik.png differ diff --git a/docs/README.md b/docs/README.md index 9b92a91b440..6ac52b97842 100644 --- a/docs/README.md +++ b/docs/README.md @@ -13,7 +13,7 @@ For users documentation, please head to [https://docs.jabref.org](https://docs.j ## How tos * External: [Sync your fork with the JabRef repository](https://help.github.com/articles/syncing-a-fork/) -* External \(🇩🇪\): Branches and pull requests: [https://github.com/unibas-marcelluethi/software-engineering/blob/master/docs/week2/exercises/practical-exercises.md](https://github.com/unibas-marcelluethi/software-engineering/blob/master/docs/week2/exercises/practical-exercises.md) +* External (🇩🇪): Branches and pull requests: [https://github.com/unibas-marcelluethi/software-engineering/blob/master/docs/week2/exercises/practical-exercises.md](https://github.com/unibas-marcelluethi/software-engineering/blob/master/docs/week2/exercises/practical-exercises.md) ## Teaching Exercises @@ -27,9 +27,9 @@ The package `org.jabref.cli` is responsible for handling the command line option During development, one can configure IntelliJ to pass command line parameters: -![IntelliJ-run-configuration](.gitbook/assets/intellij-run-configuration-command-line%20%282%29%20%282%29%20%281%29.png) +![IntelliJ-run-configuration](<.gitbook/assets/intellij-run-configuration-command-line (2) (2) (3).png>) -Passing command line arguments using gradle is currently not possible as all arguments \(such as `-Dfile.encoding=windows-1252`\) are passed to the application. +Passing command line arguments using gradle is currently not possible as all arguments (such as `-Dfile.encoding=windows-1252`) are passed to the application. Without jlink, it is not possible to generate a fat jar any more. During development, the capabilities of the IDE has to be used. @@ -41,13 +41,12 @@ Diagram showing aspects of groups: [Groups.uml](https://github.com/JabRef/jabref [Architectural decisions for JabRef](adr.md) are recorded. -For new ADRs, please use [template.md](https://github.com/JabRef/jabref/tree/3b3716b1e05a0d3273c886e102a8efe5e96472e0/docs/adr/template.md) as basis. More information on MADR is available at [https://adr.github.io/madr/](https://adr.github.io/madr/). General information about architectural decision records is available at [https://adr.github.io/](https://adr.github.io/). Add them to the [list of architectural decision records](adr.md). +For new ADRs, please use [template.md](https://github.com/JabRef/jabref/tree/3b3716b1e05a0d3273c886e102a8efe5e96472e0/docs/adr/template.md) as basis. More information on MADR is available at [https://adr.github.io/madr/](https://adr.github.io/madr/). General information about architectural decision records is available at [https://adr.github.io/](https://adr.github.io). Add them to the [list of architectural decision records](adr.md). ## FAQ -* Q: I get `java: package org.jabref.logic.journals does not exist`. +* Q: I get `java: package org.jabref.logic.journals does not exist`. - A: You have to ignore `buildSrc/src/main` as source directory in IntelliJ as indicated in our [setup guide](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace). - - Also filed as IntelliJ issue [IDEA-240250](https://youtrack.jetbrains.com/issue/IDEA-240250). + A: You have to ignore `buildSrc/src/main` as source directory in IntelliJ as indicated in our [setup guide](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace). + Also filed as IntelliJ issue [IDEA-240250](https://youtrack.jetbrains.com/issue/IDEA-240250). diff --git a/docs/adr.md b/docs/adr.md index eba92a988b2..c95471e06e7 100644 --- a/docs/adr.md +++ b/docs/adr.md @@ -24,6 +24,8 @@ Architectural decisions for JabRef: * [ADR-0019](https://github.com/JabRef/jabref/blob/master/docs/adr/0019-implement-special-fields-as-seperate-fields.md) - Implement special fields as seperate fields * [ADR-0020](https://github.com/JabRef/jabref/blob/master/docs/adr/0020-use-Jackson-to-parse-study-yml.md) - Use Jackson to parse study.yml * [ADR-0021](https://github.com/JabRef/jabref/blob/master/docs/adr/0021-keep-study-as-a-dto.md) - Keep study as a DTO +* [ADR-0022](https://github.com/JabRef/jabref/blob/master/docs/adr/0022-remove-stop-words-during-query-transformation.md) - Remove stop words during query transformation +* [ADR-0023](https://github.com/JabRef/jabref/blob/master/docs/adr/0023-localized-preferences.md) - Localized Preferences For new ADRs, please use [template.md](https://github.com/JabRef/jabref/tree/master/docs/adr/template.md) as basis. More information on the used format is available at [https://adr.github.io/madr/](https://adr.github.io/madr/). General information about architectural decision records is available at [https://adr.github.io/](https://adr.github.io/). Then add them to the above list. diff --git a/docs/advanced-reading/fetchers.md b/docs/advanced-reading/fetchers.md index a0d65a1693d..0540e391050 100644 --- a/docs/advanced-reading/fetchers.md +++ b/docs/advanced-reading/fetchers.md @@ -2,14 +2,14 @@ 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 environment 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#sao-nasa-astrophysics-data-system) | [ADS UI](https://ui.adsabs.harvard.edu/user/settings/token) | `AstrophysicsDataSystemAPIKey` | 5000 calls/day | -| [ScienceDirect](https://www.sciencedirect.com/) | | `ScienceDirectApiKey` | | -| [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 | +| 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#sao-nasa-astrophysics-data-system) | [ADS UI](https://ui.adsabs.harvard.edu/user/settings/token) | `AstrophysicsDataSystemAPIKey` | 5000 calls/day | +| [ScienceDirect](https://www.sciencedirect.com) | | `ScienceDirectApiKey` | | +| [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 on whether your request is routed through a network having paid access. For instance, some universities have subscriptions to MathSciNet. @@ -19,23 +19,23 @@ JabRef supports different kinds of fetchers: * `EntryBasedFetcher`: Completes an existing bibliographic entry with information retrieved by the fetcher * `FulltextFetcher`: Searches for a PDF for an exiting bibliography entry -* `SearchBasedFetcher`: Searches providers using a given query and returns a set of \(new\) bibliography entry. The user-facing side is implemented in the UI described at [https://docs.jabref.org/collect/import-using-online-bibliographic-database](https://docs.jabref.org/collect/import-using-online-bibliographic-database). +* `SearchBasedFetcher`: Searches providers using a given query and returns a set of (new) bibliography entry. The user-facing side is implemented in the UI described at [https://docs.jabref.org/collect/import-using-online-bibliographic-database](https://docs.jabref.org/collect/import-using-online-bibliographic-database). -There are more fetchers supported by JabRef. Investigate the package `org.jabref.logic.importer`. Another possibility is to investigate the inheritance relation of `WebFetcher` \(Ctrl+H in IntelliJ\). +There are more fetchers supported by JabRef. Investigate the package `org.jabref.logic.importer`. Another possibility is to investigate the inheritance relation of `WebFetcher` (Ctrl+H in IntelliJ). ## Fulltext Fetchers * all fulltext fetchers run in parallel * the result with the highest priority wins -* `InterruptedException` \| `ExecutionException` \| `CancellationException` are ignored +* `InterruptedException` | `ExecutionException` | `CancellationException` are ignored ### Trust Levels -* `SOURCE` \(highest\): definitive URL for a particular paper +* `SOURCE `(highest): definitive URL for a particular paper * `PUBLISHER`: any publisher library * `PREPRINT`: any preprint library that might include non final publications of a paper * `META_SEARCH`: meta search engines -* `UNKNOWN` \(lowest\): anything else not fitting the above categories +* `UNKNOWN `(lowest): anything else not fitting the above categories ### Current trust levels @@ -46,22 +46,22 @@ All fetchers are contained in the package `org.jabref.logic.importer.fetcher`. H * Springer: Publisher * ACS: Publisher * IEEE: Publisher -* Google Scholar: META\_SEARCH, because it is a search engine +* Google Scholar: META_SEARCH, because it is a search engine * Arxiv: PREPRINT, because preprints are published there -* OpenAccessDOI: META\_SEARCH +* OpenAccessDOI: META_SEARCH Reasoning: * A DOI uniquely identifies a paper. Per definition, a DOI leads to the right paper. Everything else is good guessing. -* We assume the DOI resolution surely points to the correct paper and that publisher fetches may have errors: For instance, a title of a paper may lead to different publications of it. One the conference version, the other the journal version. --> the PDF could be chosen randomly +* We assume the DOI resolution surely points to the correct paper and that publisher fetches may have errors: For instance, a title of a paper may lead to different publications of it. One the conference version, the other the journal version. --> the PDF could be chosen randomly -Code was first introduced at [PR\#3882](https://github.com/JabRef/jabref/pull/3882). +Code was first introduced at [PR#3882](https://github.com/JabRef/jabref/pull/3882). ## Background on embedding the keys in JabRef The keys are placed into the `build.properties` file. -```text +``` springerNatureAPIKey=${springerNatureAPIKey} ``` @@ -78,4 +78,3 @@ 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/docs/advanced-reading/jpackage.md b/docs/advanced-reading/jpackage.md index 709c97b0447..cb12ad25225 100644 --- a/docs/advanced-reading/jpackage.md +++ b/docs/advanced-reading/jpackage.md @@ -1,6 +1,6 @@ # Creating a binary and debug it -JabRef uses [jpackage](https://docs.oracle.com/en/java/javase/14/jpackage/) to build binary application bundles and installers for Windows, Linux, and Mac OS X. For Gradle, we use the [Badass JLink Plugin](https://badass-jlink-plugin.beryx.org/releases/latest/). +JabRef uses [jpackage](https://docs.oracle.com/en/java/javase/14/jpackage/) to build binary application bundles and installers for Windows, Linux, and macOS. For Gradle, we use the [Badass JLink Plugin](https://badass-jlink-plugin.beryx.org/releases/latest/). ## Build Windows binaries locally diff --git a/docs/contributing.md b/docs/contributing.md index 8272e3e6bab..f9e028cb94a 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -12,10 +12,10 @@ In case you are an instructor and want to use **JabRef as a software engineering 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://devdocs.jabref.org/getting-into-the-code/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](getting-into-the-code/guidelines-for-setting-up-a-local-workspace.md). 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. +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 how-tos](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. @@ -30,7 +30,7 @@ The main goal of the formal requirements is to provide credit to you and to be a You should edit the [`CHANGELOG.md`](https://github.com/JabRef/jabref/blob/master/CHANGELOG.md#changelog) file located in the root directory of the JabRef source. Add a line with your changes in the appropriate section. -If you did internal refactorings or improvements not visible to the user \(e.g., UI, .bib file\), then you don't need to put an entry there. +If you did internal refactorings or improvements not visible to the user (e.g., UI, .bib file), then you don't need to put an entry there. #### **Format of keyboard shortcuts** @@ -63,7 +63,7 @@ Add new `Localization.lang("KEY")` to a Java file. The tests will fail. In the t Example: -```text +``` java.lang.AssertionError: DETECTED LANGUAGE KEYS WHICH ARE NOT IN THE ENGLISH LANGUAGE FILE PASTE THESE INTO THE ENGLISH LANGUAGE FILE [ @@ -79,17 +79,17 @@ You can also directly run the specific test in your IDE. The test "LocalizationC #### When adding a library -Please try to use a version available at JCenter and add it to `build.gradle`. In any case, describe the library at [`external-libraries.md`](https://github.com/JabRef/jabref/blob/master/external-libraries.md#external-libraries). 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/`. It is used at `gradlew processResources` to generate the About.html files. You can see the result in `build\resources\main\help\en\About.html` or when clicking Help -> About. +Please try to use a version available at JCenter and add it to `build.gradle`. In any case, describe the library at [`external-libraries.md`](https://github.com/JabRef/jabref/blob/master/external-libraries.md#external-libraries). 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/`. It is used at `gradlew processResources` to generate the About.html files. You can see the result in `build\resources\main\help\en\About.html` or when clicking Help -> About. #### When making an architectural decision -In case you add a library or do major code rewrites, we ask you to document your decision. Recommended reading: [https://adr.github.io/](https://adr.github.io/). +In case you add a library or do major code rewrites, we ask you to document your decision. Recommended reading: [https://adr.github.io/](https://adr.github.io). We simply ask to create a new markdown file in `docs/adr` following the template presented at [https://adr.github.io/madr/](https://adr.github.io/madr/). -In case you want to directly add a comment to a class, simply use the following template \(based on [sustainable architectural decisions](https://www.infoq.com/articles/sustainable-architectural-design-decisions)\): +In case you want to directly add a comment to a class, simply use the following template (based on [sustainable architectural decisions](https://www.infoq.com/articles/sustainable-architectural-design-decisions)): -```text +``` In the context of , facing we decided for + + + + @@ -430,12 +436,9 @@ - - - - - - + + + @@ -445,6 +448,10 @@ + + + + @@ -624,23 +631,27 @@ - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + diff --git a/src/main/resources/l10n/JabRef_da.properties b/src/main/resources/l10n/JabRef_da.properties index f85171a60b6..059a3a09192 100644 --- a/src/main/resources/l10n/JabRef_da.properties +++ b/src/main/resources/l10n/JabRef_da.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 indeholder regulærudtrykket %1 %0\ contains\ the\ term\ %1=%0 indeholder udtrykket %1 @@ -38,6 +43,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Stien behøver ikke at + Add\ subgroup=Tilføj undergruppe Added\ group\ "%0".=Tilføjede gruppe "%0". @@ -281,6 +287,7 @@ External\ file\ links=Eksterne links External\ programs=Eksterne programmer + Field=Felt field=felt @@ -468,6 +475,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Ingen tidsskriftsnavne kunne forkort No\ journal\ names\ could\ be\ unabbreviated.=Ingen tidsskriftsnavne kunne ekspanderes. + not=ikke not\ found=ikke fundet @@ -558,8 +566,6 @@ regular\ expression=Regulærudtryk Remote\ operation=Fjernstyring -Remote\ server\ port=Port til fjernstyring - Remove=Fjern Remove\ subgroups=Fjern undergrupper @@ -608,6 +614,7 @@ resolved=løst + Review=Kommentarer Review\ changes=Gennemse ændringer @@ -791,7 +798,6 @@ MIME\ type=MIME-type 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.=Denne funktion tillader, at flere filer kan åbnes eller importeres i en allerede kørende JabRef i stedet for at åbne programmet påny. For eksempel er dette praktisk, når du åbner filer i JabRef fra din web browser. Bemærk at dette vil forhindre dig i at køre mere end en instans af JabRef ad gangen. -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Søg efter en matchende fil, når der åbnes et fil-link, der ikke er defineret Rename\ field=Omdøb felt Rename\ field\ to=Omdøb felt til Move\ contents\ of\ a\ field\ into\ a\ field\ with\ a\ different\ name=Flyt indhold af et felt til et felt med et andet navn @@ -827,7 +833,6 @@ General\ file\ directory=Generelt filbibliotek User-specific\ file\ directory=Brugerspecifikt filbibliotek Search\ failed\:\ illegal\ search\ expression=Søgning fejlede\: illegalt søgeudtryk -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Åbn automatisk fildialog når nyt link oprettes Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autofuldfør kun navne i formatet 'Fornavn Efternavn' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autofuldfør kun navne i formatet 'Efternavn, Fornavn' Autocomplete\ names\ in\ both\ formats=Autofuldfør navne i begge formater diff --git a/src/main/resources/l10n/JabRef_de.properties b/src/main/resources/l10n/JabRef_de.properties index 523a9a2c988..a529568a860 100644 --- a/src/main/resources/l10n/JabRef_de.properties +++ b/src/main/resources/l10n/JabRef_de.properties @@ -1,3 +1,8 @@ + + + + + Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=Dateiänderungen können nicht überwacht werden. Bitte schließen Sie Dateien und Prozesse und starten Sie neu. Es kann zu Fehlern kommen, wenn Sie diese Sitzung fortsetzen. %0\ contains\ the\ regular\ expression\ %1=%0 enthält den regulären Ausdruck %1 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Das Verzeichnis muss n Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Füge einen Regulären Ausdruck für ein BibTeX-Key-Muster hinzu + Add\ selected\ entries\ to\ this\ group=Ausgewählte Einträge zu dieser Gruppe hinzufügen Add\ subgroup=Untergruppe hinzufügen @@ -323,6 +329,7 @@ External\ file\ links=Links zu externen Dateien External\ programs=Externe Programme + Field=Feld field=Feld @@ -346,6 +353,7 @@ Filter=Filter Filter\ groups=Gruppen filtern +Finished\ writing\ metadata\ for\ %0\ file\ (%1\ skipped,\ %2\ errors).=Schreiben der Metadaten für %0 Datei(en) abgeschlossen (%1 übersprungen, %2 Fehler). First\ select\ the\ entries\ you\ want\ keys\ to\ be\ generated\ for.=Wählen Sie zuerst die Einträge aus, für die Keys erstellt werden sollen. @@ -362,6 +370,7 @@ Formatter\ name=Name des Formatierers found\ in\ AUX\ file=gefundene Schlüssel in AUX Datei +Fulltext\ search=Volltextsuche Fulltext\ for=Volltext für @@ -440,6 +449,9 @@ 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 +Indexing\ pdf\ files=PDF-Dateien werden indiziert +Indexing\ for\ %0=Indizierung von %0 +%0\ of\ %1\ linked\ files\ added\ to\ the\ index=%0 von %1 verknüpfte Dateien zum Index hinzugefügt Invalid\ citation\ key=Ungültiger Zitationsschlüssel @@ -453,6 +465,8 @@ JabRef\ requests\ recommendations\ from\ Mr.\ DLib,\ which\ is\ an\ external\ se JabRef\ Version\ (Required\ to\ ensure\ backwards\ compatibility\ with\ Mr.\ DLib's\ Web\ Service)=JabRef Version (erforderlich für Abwärtskompatibilität mit Mr. DLib-Webdienst) Journal\ abbreviations=Abkürzung der Zeitschriftentitel +Journal\ lists\:=Journal-Listen\: +Remove\ journal\ '%0'=Journal '%0' entfernen Keep\ both=Beide behalten @@ -543,6 +557,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Es konnten keine Zeitschriftentitel No\ journal\ names\ could\ be\ unabbreviated.=Das Aufheben der Abkürzung konnte bei keiner Zeitschrift durchgeführt werden. + not=nicht not\ found=davon nicht gefunden @@ -656,8 +671,6 @@ Related\ articles=ähnliche Dokumente Remote\ operation=Externer Zugriff -Remote\ server\ port=Externer Server-Port - Remove=Löschen Remove\ subgroups=Untergruppen entfernen @@ -719,6 +732,7 @@ Restart=Neustart Restart\ required=Neustart erforderlich + Review=Überprüfung Review\ changes=Änderungen überprüfen Review\ Field\ Migration=Review-Feld Migration @@ -891,9 +905,16 @@ Whatever\ option\ you\ choose,\ Mr.\ DLib\ may\ share\ its\ data\ with\ research Will\ write\ XMP\ metadata\ to\ the\ PDFs\ linked\ from\ selected\ entries.=Schreibe XMP Metadaten in die PDFs, die mit den ausgewählten Einträgen verlinkt sind. +Write\ BibTeXEntry\ as\ metadata\ to\ PDF.=Schreibe BibTeX-Eintrag als XMP Metadaten in PDF. +Write\ metadata\ for\ all\ PDFs\ in\ current\ library?=Metadaten in sämtliche PDFs der aktuellen Bibliothek schreiben? +Writing\ metadata\ for\ selected\ entries...=Schreibe Metadaten für ausgewählte Einträge... +Writing\ metadata...=Schreibe Metadaten... Write\ XMP=XMP schreiben +Embed\ BibTeXEntry\ in\ PDF.=BibTeX-Eintrag in PDF einbetten. Write\ BibTeXEntry\ as\ XMP\ metadata\ to\ PDF.=Schreibe BibTeX-Eintrag als XMP Metadaten in PDF. +Write\ BibTeXEntry\ metadata\ to\ PDF.=Schreibe BibTeX-Eintrag als Metadaten in PDF. +Write\ metadata\ to\ PDF\ files=Metadaten in PDF-Dateien schreiben XMP-annotated\ PDF=PDF mit XMP-Anmerkungen XMP\ export\ privacy\ settings=Sicherheitseinstellungen für den XMP-Export @@ -927,7 +948,6 @@ MIME\ type=MIME-Typ 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.=Diese Funktion öffnet neue oder importierte Dateien in einer bereits laufenden Instanz von JabRef und nicht in einem neuen Fenster. Das ist beispielsweise nützlich, wenn Sie JabRef von einem Webbrowser aus starten. Beachten Sie, dass damit nicht mehr als eine Instanz von JabRef gestartet werden kann. 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\ citation\ key\ %1.=Zeile %0\: Beschädigter Zitationsschlüssel %1 gefunden. Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Zeile %0\: Beschädigter Zitationsschlüssel %1 gefunden (enthält Leerzeichen). Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Zeile %0\: Beschädigter Zitationsschlüssel %1 gefunden (Komma fehlt). @@ -980,7 +1000,6 @@ LaTeX\ file\ directory=LaTeX-Dateiverzeichnis Search\ failed\:\ illegal\ search\ expression=Suche fehlgeschlagen\: Ungültiger Suchausdruck You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=Sie müssen einen Zahlwert zwischen 1025 und 65535 eintragen -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Beim Erstellen eines neuen Datei-Links den Durchsuchen-Dialog automatisch öffnen Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Automatische Vervollständigung von Namen nur im Format 'Vorname Nachname' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Automatische Vervollständigung von Namen nur im Format 'Nachname, Vorname' Autocomplete\ names\ in\ both\ formats=Automatische Vervollständigung von Namen in beiden Formaten @@ -1150,7 +1169,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Alle Untergruppen der Gruppe "%0" wurd To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Um den USB-Stick-Modus zu deaktivieren, benennen Sie die Datei jabref.xml in demselben Ordner als JabRef oder löschen Sie sie. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Verbindung fehlgeschlagen. Ein möglicher Grund ist, dass JabRef und OpenOffice/LibreOffice nicht beide im 32-bit oder 64-bit Modus laufen. Delimiter(s)=Trennzeichen -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Beim Herunterladen von Dateien oder beim Verschieben von verlinkten Dateien in das Dateiverzeichnis soll der Pfad der BIB-Datei benutzt werden, nicht das oben definierte Dateiverzeichnis Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Ihre Stildatei legt das Zeichenformat '%0' fest, das in Ihrem aktuellen OpenOffice/LibreOffice-Dokument nicht definiert ist. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Ihre Stildatei legt das Abschnittsformat '%0' fest, das in Ihrem aktuellen OpenOffice/LibreOffice-Dokument nicht definiert ist. @@ -1161,6 +1179,7 @@ Please\ open\ or\ start\ a\ new\ library\ before\ searching=Bitte öffnen Sie ei Canceled\ merging\ entries=Zusammenführen der Einträge abgebrochen Merge\ entries=Einträge zusammenführen +Merged\ entry=Zusammengeführter Eintrag Merged\ entries=Die Einträge wurden zusammengeführt None=Kein(e/r) Parse=Parsen @@ -1193,7 +1212,6 @@ Clear\ connection\ settings=Verbindungseinstellungen zurücksetzen Open\ folder=Ordner öffnen Export\ sort\ order=Sortierreihenfolge exportieren Save\ sort\ order=Sortierung speichern -Newline\ separator=Zeichen für Zeilenumbruch Keep\ original\ order=Originale Sortierung beibehalten Use\ current\ table\ sort\ order=Aktuelle Tabellensortierreihenfolge verwenden @@ -1257,6 +1275,7 @@ 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\ citation\ key.=Warnung\: %0 von %1 Einträgen haben nicht definierte Zitationsschlüssel. +Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ DOIs.=Warnung\: %0 von %1 Einträge(n) haben keinen eindeutige DOI. 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 @@ -1264,6 +1283,7 @@ Keep\ left=Links beibehalten Keep\ right=Rechts beibehalten Old\ entry=Alter Eintrag From\ import=Aus im Import +From\ DOI=Aus DOI No\ problems\ found.=Keine Probleme gefunden. Save\ changes=Änderungen speichern Discard\ changes=Änderungen verwerfen @@ -1357,6 +1377,7 @@ Display\ keywords\ appearing\ in\ ALL\ entries=Zeige Schlüsselwörter die in AL 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\ citation\ keys.=Keiner der ausgewählten Einträge hat Zitationsschlüssel. +None\ of\ the\ selected\ entries\ have\ DOIs.=Keine der ausgewählten Einträge haben DOIs. Unabbreviate\ journal\ names=Abkürzung der Zeitschriftentitel aufheben Unabbreviating...=Hebe Abkürzungen auf... Usage=Bedienung @@ -1531,6 +1552,9 @@ Custom=Benutzerdefiniert Export\ cited=Exportiere zitierte Einträge Unable\ to\ generate\ new\ library=Kann keine neue Bibliothek generieren +Found\ identical\ ranges=Identische Bereiche gefunden +Found\ overlapping\ ranges=Überlappende Bereiche gefunden +Found\ touching\ ranges=Sich berührende Bereiche gefunden Note\:\ Use\ the\ placeholder\ %DIR%\ for\ the\ location\ of\ the\ opened\ library\ file.=Hinweis\: %DIR% als Platzhalter für den Speicherort der Bibliothek benutzen. Error\ occured\ while\ executing\ the\ command\ "%0".=Während der Ausführung des Befehls "%0" ist ein Fehler aufgetreten. @@ -2288,9 +2312,11 @@ Error\ connecting\ to\ Writer\ document=Fehler beim Verbinden zum Writer-Dokumen You\ need\ to\ open\ Writer\ with\ a\ document\ before\ connecting=Sie müssen Writer mit einem Dokument öffnen, bevor Sie sich verbinden können Generate\ a\ new\ key\ for\ imported\ entries\ (overwriting\ their\ default)=Erzeugen eines neuen Schlüssels für importierte Einträge (Überschreiben der Voreinstellung) +Import\ and\ Export=Import und Export Custom\ DOI\ URI=Eigene DOI-URI Use\ custom\ DOI\ base\ URI\ for\ article\ access=Verwende benutzerdefinierte DOI Basis-URI für den Zugriff auf Artikel +Cited\ on\ pages=Auf Seiten zitiert Unable\ to\ find\ valid\ certification\ path\ to\ requested\ target(%0),\ download\ anyway?=Es konnte kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden werden(%0), trotzdem herunterladen? Download\ operation\ canceled.=Downloadvorgang abgebrochen. @@ -2313,31 +2339,53 @@ Recommended=Empfohlen Authors\ and\ Title=Autoren und Titel Database=Datenbank Databases=Datenbanken -Manage\ study\ definition=Lerndefinition verwalten +Manage\ study\ definition=Studiendefinition verwalten Add\ Author\:=Autor hinzufügen\: Add\ Database\:=Datenbank hinzufügen\: Add\ Query\:=Abfrage hinzufügen\: Add\ Research\ Question\:=Forschungsfrage hinzufügen\: -Perform\ search\ for\ existing\ systematic\ literature\ review=Suche nach systematischer Literaturübersicht +Perform\ search\ for\ existing\ systematic\ literature\ review=Suche nach existierender systematischer Literaturübersicht Queries=Suchanfragen Research\ Questions=Forschungsfragen Searching=Suche -Start\ new\ systematic\ literature\ review=Systematische Literaturübersicht anlegen +Start\ new\ systematic\ literature\ review=Neue systematische Literaturübersicht starten Study\ Title\:=Titel der Studie\: -Study\ repository\ could\ not\ be\ created=Studiendatenbank konnte nicht angelegt werden +Study\ repository\ could\ not\ be\ created=Studienrepository konnte nicht angelegt werden All\ query\ terms\ are\ joined\ using\ the\ logical\ AND,\ and\ OR\ operators=Alle Suchbegriffe werden mit den logischen Operatoren AND und OR verknüpft Finalize=Fertigstellen If\ the\ sequence\ of\ terms\ is\ relevant\ wrap\ them\ in\ double\ quotes =Sollte die Reihenfolge der Suchbegriffe relevant sein, so setzen Sie diese in doppelte Anführungszeichen Query\ terms\ are\ separated\ by\ spaces.=Suchbegriffe werden durch Leerzeichen getrennt. -Select\ the\ study\ directory\:=Zielverzeichnis für Studiendatenbank wählen\: +Select\ the\ study\ directory\:=Zielverzeichnis für Studie auswählen\: An\ example\:=Ein Beispiel\: Define\ study\ parameters=Studienparameter definieren -Start\ survey=Umfrage starten +Start\ survey=Studie starten Query=Abfrage Question=Frage Select\ directory=Verzeichnis wählen - - - +Rebuild\ fulltext\ search\ index=Volltext-Suchindex neu erstellen +Rebuild\ fulltext\ search\ index\ for\ current\ library?=Volltext-Suchindex für die aktuelle Bibliothek neu erstellen? +Rebuilding\ fulltext\ search\ index...=Volltext-Suchindex wird neu erstellt... +Failed\ to\ access\ fulltext\ search\ index=Zugriff auf Volltext-Suchindex fehlgeschlagen +Found\ match\ in\ %0=Treffer gefunden in %0 +On\ page\ %0=Auf Seite %0 +Found\ matches\ in\ Annotations\:=Treffer in Notizen gefunden\: + +Grobid\ URL=Grobid URL +Remote\ services=Remote-Dienste +Allow\ sending\ PDF\ files\ and\ raw\ citation\ strings\ to\ a\ JabRef\ online\ service\ (Grobid)\ to\ determine\ Metadata.\ This\ produces\ better\ results.=Erlaube das Senden von PDF-Dateien und Rohzitaten an einen JabRef Online-Dienst (Grobid) um Metadaten zu ermitteln. Dies führt zu besseren Ergebnissen. + +Character\ by\ character=Zeichen für Zeichen +Embedded=Eingebettet +Entry=Eintrag +Parse\ Metadata\ from\ PDF.=Metadaten aus PDF auslesen. +Symmetric\ character\ by\ character=Zeichen für Zeichen symmetrisch +Symmetric\ word\ by\ word=Wort für Wort symmetrisch +Verbatim=Verbatim +Word\ by\ word=Wort für Wort +Could\ not\ extract\ Metadata\ from\:\ %0=Metadaten konnten nicht extrahiert werden aus\: %0 + +Search\ across\ libraries\ in\ a\ new\ window=Suche über Bibliotheken in einem neuen Fenster +Keep\ search\ string\ across\ libraries=Suchbegriff über alle Bibliotheken beibehalten +Keep\ dialog\ always\ on\ top=Dialogfenster immer im Vordergrund halten diff --git a/src/main/resources/l10n/JabRef_el.properties b/src/main/resources/l10n/JabRef_el.properties index eddd363af0c..d1fd452465e 100644 --- a/src/main/resources/l10n/JabRef_el.properties +++ b/src/main/resources/l10n/JabRef_el.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 περιέχει την συνήθη έκφραση %1 %0\ contains\ the\ term\ %1=%0 περιέχει τον όρο %1 @@ -38,6 +43,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Η διαδρομή δ Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Προσθέσετε μια κανονική έκφραση (regular expression) για το βασικό μοτίβο (key pattern). + Add\ selected\ entries\ to\ this\ group=Προσθήκη των επιλεγμένων καταχωρήσεων σε αυτήν την ομάδα Add\ subgroup=Προσθήκη υποομάδας @@ -288,6 +294,7 @@ External\ file\ links=Εξωτερικοί σύνδεσμοι αρχείων External\ programs=Εξωτερικά προγράμματα + Field=Πεδίο field=πεδίο @@ -487,6 +494,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Δεν ήταν δυνατή η σύ No\ journal\ names\ could\ be\ unabbreviated.=Δεν ήταν δυνατή η αναίρεση της σύντμησης ονομάτων περιοδικών. + not=δεν not\ found=δεν βρέθηκε @@ -590,8 +598,6 @@ Related\ articles=Σχετικά άρθρα Remote\ operation=Απομακρυσμένη λειτουργία -Remote\ server\ port=Θύρα απομακρυσμένου διακομιστή - Remove=Αφαίρεση Remove\ subgroups=Αφαίρεση υπο-ομάδων @@ -643,6 +649,7 @@ resolved=έχει επιλυθεί + Review=Κριτική Review\ changes=Αλλαγές κριτικών Review\ Field\ Migration=Μετακίνηση Πεδίων Κριτικής @@ -830,7 +837,6 @@ MIME\ type=Τύπος MIME 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.=Το χαρακτηριστικό αυτό επιτρέπει το άνοιγμα ή την εισαγωγή νέων αρχείων σε ένα ήδη τρέχον παράθυρο JabRef αντί να ανοίγει νέο παράθυρο. Για παράδειγμα, αυτό είναι χρήσιμο όταν ανοίγετε ένα αρχείο JabRef από τον περιηγητή ιστού. Σημειώστε πως αυτό θα σας εμποδίσει από το να τρέξετε περισσότερα από ένα παράθυρα JabRef ταυτόχρονα. -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Κατά το άνοιγμα συνδέσμου αρχείου, να πραγματοποιείται αναζήτηση για αντίστοιχο αρχείο, όταν δεν καθορίζεται σύνδεσμος No\ full\ text\ document\ found=Δεν βρέθηκε αρχείο πλήρους κειμένου Download\ from\ URL=Κατέβασμα από σύνδεσμο URL Rename\ field=Μετονομασία πεδίου @@ -874,7 +880,6 @@ General\ file\ directory=Γενικός φάκελος αρχείου User-specific\ file\ directory=Φάκελος αρχείου καθορισμένος από τον χρήστη Search\ failed\:\ illegal\ search\ expression=Αποτυχία αναζήτησης\: εσφαλμένη έκφραση αναζήτησης -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Αυτόματο άνοιγμα του παραθύρου διαλόγου εξερεύνησης κατά τη δημιουργία νέου συνδέσμου αρχείου Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Αυτόματη συμπλήρωση ονομάτων μόνο με τη μορφή 'Όνομα Επώνυμο' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Αυτόματη συμπλήρωση ονομάτων μόνο με τη μορφή 'Επώνυμο, Όνομα' Autocomplete\ names\ in\ both\ formats=Αυτόματη συμπλήρωση ονομάτων και με τις δύο μορφές @@ -1018,7 +1023,6 @@ Not\ connected\ to\ any\ Writer\ document.\ Please\ make\ sure\ a\ document\ is\ Removed\ all\ subgroups\ of\ group\ "%0".=Αφαίρεση όλων των υπο-ομάδων της ομάδας "%0". To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Για την απενεργοποίηση της λειτουργίας memory stick, μετονομάστε ή μετακινήστε το αρχείο jabref.xml στον ίδιο φάκελο με το JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Αδυναμία σύνδεσης. Μια πιθανή αιτία είναι ότι το JabRef και το OpenOffice/LibreOffice δεν τρέχουν σε ίδια λειτουργία 32 bit ή 64 bit. -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Κατά τη λήψη αρχείων, ή τη μετακίνηση συνδεδεμένων αρχείων στο φάκελο αρχείου, να προτιμάτε την τοποθεσία αρχείου BIB παρά το φάκελο αρχείου που έχει οριστεί παραπάνω Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Το αρχείο στυλ καθορίζει τη μορφή χαρακτήρων '%0', η οποία δεν ορίζεται στο τρέχον αρχείο OpenOffice/LibreOffice. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Το αρχείο στυλ καθορίζει τη μορφή παραγράφου '%0', η οποία δεν ορίζεται στο τρέχον αρχείο OpenOffice/LibreOffice. @@ -1052,7 +1056,6 @@ Clear\ connection\ settings=Εκκαθάριση ρυθμίσεων σύνδεσ Open\ folder=Άνοιγμα φακέλου Export\ sort\ order=Εξαγωγή σειράς ταξινόμησης -Newline\ separator=Διαχωριστικό νέας σειράς Show\ extra\ columns=Εμφάνιση επιπλέον στηλών Parsing\ error=Σφάλμα ανάλυσης diff --git a/src/main/resources/l10n/JabRef_en.properties b/src/main/resources/l10n/JabRef_en.properties index fa058688e00..3cffb6fc69f 100644 --- a/src/main/resources/l10n/JabRef_en.properties +++ b/src/main/resources/l10n/JabRef_en.properties @@ -1,3 +1,13 @@ +Could\ not\ delete\ empty\ entries.=Could not delete empty entries. + +Delete\ empty\ entries=Delete empty entries + +Empty\ entries=Empty entries + +Keep\ empty\ entries=Keep empty entries + +Library\ '%0'\ has\ empty\ entries.\ Do\ you\ want\ to\ delete\ them?=Library '%0' has empty entries. Do you want to delete them? + Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=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 contains the regular expression %1 @@ -44,6 +54,8 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=The path need not be o Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Add a regular expression for the key pattern. +Add\ entry\ manually=Add entry manually + Add\ selected\ entries\ to\ this\ group=Add selected entries to this group Add\ subgroup=Add subgroup @@ -206,6 +218,7 @@ cut\ entries=cut entries cut\ entry\ %0=cut entry %0 +DOI\ not\ found=DOI not found Library\ encoding=Library encoding @@ -323,6 +336,8 @@ External\ file\ links=External file links External\ programs=External programs +Failed\ to\ import\ by\ ID=Failed to import by ID + Field=Field field=field @@ -550,6 +565,8 @@ No\ journal\ names\ could\ be\ abbreviated.=No journal names could be abbreviate No\ journal\ names\ could\ be\ unabbreviated.=No journal names could be unabbreviated. +No\ DOI\ data\ exists=No DOI data exists + not=not not\ found=not found @@ -663,8 +680,6 @@ Related\ articles=Related articles Remote\ operation=Remote operation -Remote\ server\ port=Remote server port - Remove=Remove Remove\ subgroups=Remove subgroups @@ -726,6 +741,8 @@ Restart=Restart Restart\ required=Restart required +Return\ to\ dialog=Return to dialog + Review=Review Review\ changes=Review changes Review\ Field\ Migration=Review Field Migration @@ -941,7 +958,6 @@ MIME\ type=MIME type 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.=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. Run\ fetcher=Run fetcher -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=When opening file link, search for matching file if no link is defined Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=Line %0: Found corrupted citation key %1. Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Line %0: Found corrupted citation key %1 (contains whitespaces). Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Line %0: Found corrupted citation key %1 (comma missing). @@ -994,7 +1010,6 @@ LaTeX\ file\ directory=LaTeX file directory Search\ failed\:\ illegal\ search\ expression=Search failed: illegal search expression You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=You must enter an integer value in the interval 1025-65535 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Automatically open browse dialog when creating new file link Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autocomplete names in 'Firstname Lastname' format only Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autocomplete names in 'Lastname, Firstname' format only Autocomplete\ names\ in\ both\ formats=Autocomplete names in both formats @@ -1066,6 +1081,7 @@ Style\ selection=Style selection No\ valid\ style\ file\ defined=No valid style file defined Choose\ pattern=Choose pattern Search\ and\ store\ files\ relative\ to\ library\ file\ location=Search and store files relative to library file location +File\ directory=File directory Could\ not\ run\ the\ gnuclient/emacsclient\ program.\ Make\ sure\ you\ have\ the\ emacsclient/gnuclient\ program\ installed\ and\ available\ in\ the\ PATH.=Could not run the gnuclient/emacsclient program. Make sure you have the emacsclient/gnuclient program installed and available in the PATH. You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=You must select either a valid style file, or use one of the default styles. @@ -1164,7 +1180,7 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Removed all subgroups of group "%0". To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=To disable the memory stick mode rename or remove the jabref.xml file in the same folder as JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Unable to connect. One possible reason is that JabRef and OpenOffice/LibreOffice are not both running in either 32 bit mode or 64 bit mode. Delimiter(s)=Delimiter(s) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=When downloading files, or moving linked files to the file directory, prefer the BIB file location rather than the file directory set above +When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ use\ the\ bib\ file\ location.=When downloading files, or moving linked files to the file directory, use the bib file location. Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Your style file specifies the character format '%0', which is undefined in your current OpenOffice/LibreOffice document. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Your style file specifies the paragraph format '%0', which is undefined in your current OpenOffice/LibreOffice document. @@ -1208,7 +1224,6 @@ Clear\ connection\ settings=Clear connection settings Open\ folder=Open folder Export\ sort\ order=Export sort order Save\ sort\ order=Save sort order -Newline\ separator=Newline separator Keep\ original\ order=Keep original order Use\ current\ table\ sort\ order=Use current table sort order @@ -1850,6 +1865,10 @@ JabRef\ resources=JabRef resources Manage\ journal\ abbreviations=Manage journal abbreviations Manage\ protected\ terms=Manage protected terms New\ entry\ from\ plain\ text=New entry from plain text +Import\ by\ ID=Import by ID +Enter\ a\ valid\ ID=Enter a valid ID +Imported\ one\ entry=Imported one entry +Entry\ already\ exists=Entry already exists New\ sublibrary\ based\ on\ AUX\ file=New sublibrary based on AUX file Push\ entries\ to\ external\ application\ (%0)=Push entries to external application (%0) Quit=Quit diff --git a/src/main/resources/l10n/JabRef_es.properties b/src/main/resources/l10n/JabRef_es.properties index 1b3c0f9268e..3fc47076971 100644 --- a/src/main/resources/l10n/JabRef_es.properties +++ b/src/main/resources/l10n/JabRef_es.properties @@ -1,3 +1,8 @@ + + + + + Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=No es posible supervisar los cambios en los archivos. Cierre los archivos y procesos y reinicie. Puede que se produzcan errores si continúa con esta sesión. %0\ contains\ the\ regular\ expression\ %1=%0 contiene la expresión regular %1 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=La ruta no debe estar Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Añadir una expresión regular para el patrón clave. + Add\ selected\ entries\ to\ this\ group=Añadir entradas seleccionadas a este grupo Add\ subgroup=Añadir subgrupo @@ -323,6 +329,7 @@ External\ file\ links=Enlaces a archivos externos External\ programs=Programas externos + Field=Campo field=campo @@ -543,6 +550,7 @@ No\ journal\ names\ could\ be\ abbreviated.=No se pudieron abreviar nombres de r No\ journal\ names\ could\ be\ unabbreviated.=No se pudieron expandir nombres de revistas. + not=no not\ found=no encontrado @@ -656,8 +664,6 @@ Related\ articles=Artículos relacionados Remote\ operation=Operación remota -Remote\ server\ port=Puerto remoto del servidor - Remove=Eliminar Remove\ subgroups=Eliminar subgrupos @@ -719,6 +725,7 @@ Restart=Reiniciar Restart\ required=Reinicio requerido + Review=Revisar Review\ changes=Revisar cambios Review\ Field\ Migration=Revisar campo de migración @@ -925,7 +932,6 @@ MIME\ type=Tipo MIME 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 función permite que los nuevos archivos sean abiertos o importados en una instancia de JabRef que ya se esté ejecutando, en lugar de abrir una nueva instancia. Esto es útil, por ejemplo, cuando se abre un archivo en JabRef desde el navegador de internet. Tenga en cuenta que esto le impedirá ejecutar más de una instancia de JabRef a la vez. 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\ citation\ key\ %1.=Renglón %0\: se encontró la clave de cita dañada %1. Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Renglón %0\: se encontró la clave de cita dañada %1 (contiene espacios en blanco). Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Renglón %0\: se encontró la clave de cita dañada %1 (le falta una coma). @@ -978,7 +984,6 @@ LaTeX\ file\ directory=Directorio de archivos de LaTeX Search\ failed\:\ illegal\ search\ expression=La búsqueda ha fallado. Expresión de búsqueda ilegal You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=Debe introducir un valor entero en el intervalo 1025-65535 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Abrir automáticamente el diálogo de exploración al crear nuevo enlace a archivo Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autocompletar nombres sólo en el formato 'Nombre Apellidos' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autocompletar nombres sólo en el formato 'Apellidos, Nombre' Autocomplete\ names\ in\ both\ formats=Autocompletar nombres en ambos formatos @@ -1147,7 +1152,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Eliminados todos los subgrupos del gru To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Para deshabilitar el modo lápiz de memoria, renombre o elimine el archivo jabrf.xml en la misma carpeta que JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=No es posible conectar. Una posible razón es que JabRef y OpenOffice/LibreOffice no están funcionado en modo 32 bit o 64 bit. Delimiter(s)=Separador(es) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Al descargar archivos o mover archivos enlazados a la carpeta de archivos, preferir la ubicación del archivo BIB antes que el directorio de archivos establecido arriba. Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Su archivo de estilo especifica el formato de carácter '%0', que no está definido en su documento OpenOffice/LibreOffice actual. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Su archivo de estilo especifica el formato de párrafo '%0', que no está definido en su documento OpenOffice/LibreOffice. @@ -1188,7 +1192,6 @@ Clear\ connection\ settings=Limpiar ajustes de conexión Open\ folder=Abrir pasta Export\ sort\ order=Criterio de ordenación para exportación Save\ sort\ order=Guarda el orden de clasificación -Newline\ separator=Separador de nueva línea Keep\ original\ order=Conservar orden original Use\ current\ table\ sort\ order=Utilizar criterio de ordenamiento de la tabla actual diff --git a/src/main/resources/l10n/JabRef_fa.properties b/src/main/resources/l10n/JabRef_fa.properties index 9fd70d3b99a..32e2cf72b3f 100644 --- a/src/main/resources/l10n/JabRef_fa.properties +++ b/src/main/resources/l10n/JabRef_fa.properties @@ -1,3 +1,8 @@ + + + + + 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\ term\ %1=%0 شامل اين واژه %1 @@ -32,6 +37,7 @@ Add=افزودن + Add\ subgroup=افزودن زیرگروه @@ -258,6 +264,7 @@ Entry\ editor=ویرایشگر ورودی + Manage\ external\ file\ types=مدیریت نوع پرونده‌های خارجی @@ -295,6 +302,7 @@ Manage\ external\ file\ types=مدیریت نوع پرونده‌های خارج + Open\ file=بازکردن پرونده diff --git a/src/main/resources/l10n/JabRef_fr.properties b/src/main/resources/l10n/JabRef_fr.properties index b8d034c5c93..1ee45d19792 100644 --- a/src/main/resources/l10n/JabRef_fr.properties +++ b/src/main/resources/l10n/JabRef_fr.properties @@ -1,3 +1,8 @@ + + + + + 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 @@ -44,7 +49,8 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Le chemin n'a pas beso Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Ajouter une expression régulière pour le modèle de clef. -Add\ selected\ entries\ to\ this\ group=Ajouter les entrées sélectionnées à ce groupe + +Add\ selected\ entries\ to\ this\ group=Ajouter à ce groupe les entrées sélectionnées Add\ subgroup=Ajouter un sous-groupe @@ -307,7 +313,7 @@ Error\ occurred\ when\ parsing\ entry=Une erreur est survenue pendant le traitem Error\ opening\ file=Erreur lors de l'ouverture du fichier Error\ while\ writing=Erreur lors de l'écriture Error\ during\ persistence\ of\ crawling\ results.=Erreur lors de la persistance des résultats de recherche. -Error\ during\ reading\ of\ study\ definition\ file.=Erreur lors de la lecture du fichier de définition de l'étude. +Error\ during\ reading\ of\ study\ definition\ file.=Erreur lors de la lecture du fichier de définition de revue. '%0'\ exists.\ Overwrite\ file?=« %0 » existe. Écraser le fichier ? Export=Exporter Export\ preferences=Exporter les préférences @@ -323,6 +329,7 @@ External\ file\ links=Liens vers les fichiers externes External\ programs=Programmes externes + Field=Champ field=Champ @@ -550,6 +557,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Aucun nom de journal n'a pu être ab No\ journal\ names\ could\ be\ unabbreviated.=Aucun nom de journal n'a pu être développé. + not=non not\ found=non trouvé @@ -663,8 +671,6 @@ Related\ articles=Articles liés Remote\ operation=Accès à distance -Remote\ server\ port=Port du serveur d'accès à distance - Remove=Supprimer Remove\ subgroups=Supprimer les sous-groupes @@ -673,7 +679,7 @@ Remove\ all\ subgroups\ of\ "%0"?=Supprimer tous les sous-groupes de « %0 » ? Remove\ entry\ from\ import=Supprimer l'entrée de l'importation -Remove\ selected\ entries\ from\ this\ group=Supprimer les entrées sélectionnées de ce groupe +Remove\ selected\ entries\ from\ this\ group=Supprimer de ce groupe les entrées sélectionnées Remove\ group=Supprimer le groupe @@ -726,6 +732,7 @@ Restart=Redémarrer Restart\ required=Redémarrage nécessaire + Review=Remarques Review\ changes=Revoir les changements Review\ Field\ Migration=Migration des champs « Review » @@ -941,7 +948,6 @@ MIME\ type=Type MIME 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.=Cette fonction permet aux nouveaux fichiers d'être ouverts ou importés dans une fenêtre JabRef déjà active au lieu d'ouvrir une nouvelle fenêtre. Par exemple, c'est utile quand vous ouvrez un fichier dans JabRef à partir de notre navigateur internet. Notez que cela vous empêchera de lancer plus d'une fenêtre JabRef à la fois. 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\ 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). @@ -994,7 +1000,6 @@ LaTeX\ file\ directory=Répertoire de fichiers LaTeX Search\ failed\:\ illegal\ search\ expression=Échec de la recherche \: Expression de recherche illégale You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=Vous devez saisir une valeur entière dans l'intervalle 1025-65535 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Ouvrir automatiquement la fenêtre de navigation lors de la création d'un nouveau lien de fichier Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Complétion automatique des noms uniquement dans le format 'Prénom Nom' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Complétion automatique des noms uniquement dans le format 'Nom, Prénom' Autocomplete\ names\ in\ both\ formats=Complétion automatique des noms dans les 2 formats @@ -1164,7 +1169,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Tous les sous-groupes du groupe « %0 To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Pour désactiver le mode Clef-mémoire, renommer ou supprimer le fichier jabref.xml dans le même répertoire que JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Connexion impossible. Une raison potentielle est que JabRef et OpenOffice/LibreOffice ne fonctionnent pas tous les deux soit en mode 32 bits, soit en mode 64 bits. Delimiter(s)=Séparateur(s) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Lors du téléchargement de fichiers ou du déplacement de fichiers liés vers le répertoire de fichiers, préférez l'emplacement du fichier BIB au répertoire ci-dessus Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Votre fichier de style spécifie le format de caractère « %0 », qui n'est pas défini dans votre document OpenOffice/LibreOffice actuel. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Votre fichier de style spécifie le format de paragraphe « %0 », qui n'est pas défini dans votre document OpenOffice/LibreOffice actuel. @@ -1208,7 +1212,6 @@ Clear\ connection\ settings=Réinitialiser les paramètres de connexion Open\ folder=Ouvrir le répertoire Export\ sort\ order=Exporter l'ordre de tri Save\ sort\ order=Enregistrer l'ordre de tri -Newline\ separator=Séparateur de ligne Keep\ original\ order=Conserver l'ordre original Use\ current\ table\ sort\ order=Utiliser l'ordre de tri actuel de la table @@ -1840,7 +1843,7 @@ Blog=Blog Check\ integrity=Vérifier l'intégrité Cleanup\ URL\ link=Nettoyer un lien URL Cleanup\ URL\ link\ by\ removing\ special\ symbols\ and\ extracting\ simple\ link=Nettoyer un lien URL en en supprimant les symboles spéciaux et en en extrayant un lien simple -Copy\ DOI\ url=Copier l'URL du DOI +Copy\ DOI\ url=Copier le DOI Copy\ citation=Copier la citation Development\ version=Version en développement Export\ selected\ entries=Exporter les entrées sélectionnées @@ -1920,7 +1923,7 @@ OpenOffice/LibreOffice=OpenOffice/LibreOffice Open\ document\ viewer=Ouvrir l'afficheur de document Open\ entry\ editor=Ouvrir l'éditeur d'entrée Search\ document\ identifier\ online=Rechercher en ligne un identifiant de document -Search\ for\ unlinked\ local\ files=Rechercher des fichiers locaux non liés +Search\ for\ unlinked\ local\ files=Rechercher localement des fichiers non liés Search\ full\ text\ documents\ online=Rechercher en ligne des textes intégraux Find\ and\ replace=Rechercher et remplacer @@ -2336,7 +2339,7 @@ Recommended=Usuels Authors\ and\ Title=Auteurs et titre Database=Base de données Databases=Bases de données -Manage\ study\ definition=Gérer la définition de l'étude +Manage\ study\ definition=Gérer la définition de la revue Add\ Author\:=Ajouter un auteur \: Add\ Database\:=Ajouter une base de données \: Add\ Query\:=Ajouter une requête \: @@ -2346,17 +2349,17 @@ Queries=Requêtes Research\ Questions=Questions de recherche Searching=Recherche... Start\ new\ systematic\ literature\ review=Lancer une nouvelle revue systématique de la littérature -Study\ Title\:=Titre de l'étude \: -Study\ repository\ could\ not\ be\ created=Le dépôt de l'étude n'a pas pu être créé +Study\ Title\:=Titre de la revue \: +Study\ repository\ could\ not\ be\ created=Le dépôt de la revue n'a pas pu être créé All\ query\ terms\ are\ joined\ using\ the\ logical\ AND,\ and\ OR\ operators=Tous les termes de la requête sont joints en utilisant les opérateurs logiques AND et OR Finalize=Finaliser If\ the\ sequence\ of\ terms\ is\ relevant\ wrap\ them\ in\ double\ quotes =Si la séquence des termes est pertinente, entourez-les par des guillemets doubles Query\ terms\ are\ separated\ by\ spaces.=Les termes d'une requête sont séparés par des espaces. -Select\ the\ study\ directory\:=Sélectionnez le répertoire d'étude \: +Select\ the\ study\ directory\:=Sélectionnez le répertoire de la revue \: An\ example\:=Un exemple \: -Define\ study\ parameters=Définir les paramètres d'étude -Start\ survey=Commencer une étude +Define\ study\ parameters=Définir les paramètres de la revue +Start\ survey=Lancer la revue Query=Requête Question=Question Select\ directory=Sélectionner un répertoire diff --git a/src/main/resources/l10n/JabRef_in.properties b/src/main/resources/l10n/JabRef_in.properties index bfb4c8740ad..64f7f9713be 100644 --- a/src/main/resources/l10n/JabRef_in.properties +++ b/src/main/resources/l10n/JabRef_in.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 mengandung Ekspresi Reguler %1 %0\ contains\ the\ term\ %1=% mengandung istilah %1 @@ -38,6 +43,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Lokasi tidak harus pad Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Tambahkan ekspresi reguler untuk pola kunci. + Add\ selected\ entries\ to\ this\ group=Pilih tambahkan di entri ke grup ini Add\ subgroup=Tambah Anak Grup @@ -285,6 +291,7 @@ External\ file\ links=Tautan berkas eksternal External\ programs=Program eksternal + Field=Bidang field=bidang @@ -483,6 +490,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Tidak ada nama jurnal yang bisa disi No\ journal\ names\ could\ be\ unabbreviated.=Tidak ada ada nama jurnal yang bisa dipanjangkan. + not=tidak not\ found=tidak ditemukan @@ -586,8 +594,6 @@ Related\ articles=Artikel terkait Remote\ operation=Penggunaan jarak jauh -Remote\ server\ port=Port server jauh - Remove=Hapus Remove\ subgroups=Hapus semua sub-grup @@ -637,6 +643,7 @@ resolved=sudah diselesaikan + Review=Periksa ulang Review\ changes=Periksa ulang perubahan @@ -821,7 +828,6 @@ MIME\ type=Tipe MIME 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.=Fitur ini memungkinkan berkas baru atau impor ke jendela JabRef yang aktifbukan membuat baru. Hal ini berguna ketika anda membuka berkas di JabRef dari halaman web. Hal ini akan menghindari anda membuka beberapa JabRef pada saat yang sama. -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Ketika membuka tautan berkas, cari berkas yang sesuai Download\ from\ URL=Unduh dari URL Rename\ field=Ganti nama bidang Append\ field=Tambahkan bidang @@ -864,7 +870,6 @@ General\ file\ directory=Direktori berkas umum User-specific\ file\ directory=Direktori berkas khusus pengguna Search\ failed\:\ illegal\ search\ expression=Pencarian gagal\: ekspresi pencarian tidak benar -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Otomatis membuka dialog jelajah ketika membuat tautan berkas baru Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Nama isian otomatis hanya untuk format 'Namadepan Namaakhir' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Nama isian otomatis hanya untuk format 'Namaakhir, Namadepan' Autocomplete\ names\ in\ both\ formats=Nama isian otomatis untuk kedua format @@ -1008,7 +1013,6 @@ Not\ connected\ to\ any\ Writer\ document.\ Please\ make\ sure\ a\ document\ is\ Removed\ all\ subgroups\ of\ group\ "%0".=Semua anak grup dari grup "%0" dihapus. To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Untuk mengtidakaktifkan mode pena simpan ubah atau hapus berkas jabref.xml dalam direktori yang sama dengan JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Tidak dapat tersambung. Satu kemungkinan alasan adalah bahwa JabRef dan OpenOffice LibreOffice tidak berjalan baik dalam model 32 bit atau model 64 bit. -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Saat mengunduh file, atau memindahkan file yang terhubung ke direktori file, lebih memilih lokasi file BIB daripada direktori file yang ditetapkan di atas Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Berkas gaya anda menspesifikasi format karakter '%0', yang tidak terdefinisi dalam dokumen OpenOffice/LibreOffice terkini anda. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Berkas gaya anda menspesifikasi format paragraf '%0', yang tidak terdefinisi dalam dokumen OpenOffice/LibreOffice terkini anda. @@ -1042,7 +1046,6 @@ Clear\ connection\ settings=Bersihkan pengaturan koneksi Open\ folder=Buka direktori Export\ sort\ order=Ekspor urutan penyortiran -Newline\ separator=Pembatas baris yang baru Show\ extra\ columns=Tampilkan kolom ekstra Parsing\ error=Kesalahan penguraian diff --git a/src/main/resources/l10n/JabRef_it.properties b/src/main/resources/l10n/JabRef_it.properties index 84291714633..4e86b5a9b4b 100644 --- a/src/main/resources/l10n/JabRef_it.properties +++ b/src/main/resources/l10n/JabRef_it.properties @@ -1,3 +1,8 @@ + + + + + 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 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Il percorso non deve n Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Aggiungi una espressione regolare per il modello di chiave. + Add\ selected\ entries\ to\ this\ group=Aggiungi le voci selezionate a questo gruppo Add\ subgroup=Aggiungi un sottogruppo @@ -323,6 +329,7 @@ External\ file\ links=Collegamenti a file esterni External\ programs=Programmi esterni + Field=Campo field=campo @@ -550,6 +557,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Nessun nome di rivista può essere a No\ journal\ names\ could\ be\ unabbreviated.=Nessuna abbreviazione di rivista può essere estesa. + not=non not\ found=non trovato @@ -663,8 +671,6 @@ Related\ articles=Articoli correlati Remote\ operation=Accesso remoto -Remote\ server\ port=Porta del server remoto - Remove=Rimuovi Remove\ subgroups=Rimuovi tutti i sottogruppi @@ -726,6 +732,7 @@ Restart=Riavvia Restart\ required=È necessario riavviare + Review=Rivedi Review\ changes=Rivedi le modifiche Review\ Field\ Migration=Revisione Migrazione Campo @@ -941,7 +948,6 @@ MIME\ type=Tipo MIME 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.=Questa funzione permette l'apertura o l'importazione di nuovi file in una istanza di JabRef già aperta invece di aprirne una nuova. Per esempio, ciò è utile quando un file viene aperto in JabRef da un browser web. Questo tuttavia impedisce di aprire più sessioni di JabRef contemporaneamente. 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\ 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). @@ -994,7 +1000,6 @@ LaTeX\ file\ directory=Cartella dei file LaTeX Search\ failed\:\ illegal\ search\ expression=Ricerca fallita\: espressione di ricerca illegale You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=È necessario immettere un valore intero nell'intervallo 1025-65535 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Apri automaticamente la finestra di dialogo "Sfoglia" quando viene creato un nuovo collegamento ad un file Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autocompletamento dei nomi solo nel formato 'Firstname Lastname' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autocompletamento dei nomi solo nel formato 'Lastname, Firstname' Autocomplete\ names\ in\ both\ formats=Autocompletamento dei nomi in entrambi i formati @@ -1164,7 +1169,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Eliminati tutti i sottogruppi del grup To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Per disabilitare la modalità chiavetta di memoria rinominare o cancellare il file "jabref.xml" che si trova nella cartella di installazione di JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Impossibile connettersi. Una possibile ragione è il fatto che JabRef e OpenOffice/LibreOffice non vengono eseguiti nella stessa modalità a 32 o 64 bit. Delimiter(s)=Delimitatore(i) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Quando si scaricano i file o si spostano i file collegati, preferire la posizione del file BibTeX alla cartella impostata sopra. Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Il file di stile specifica il formato di carattere "%0" che non è tuttavia definito nel documento OpenOffice/LibreOffice corrente. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Il file di stile specifica il formato di paragrafo "%0" che non è tuttavia definito nel documento OpenOffice/LibreOffice corrente. @@ -1208,7 +1212,6 @@ Clear\ connection\ settings=Reinizializza i parametri di connessione Open\ folder=Apri cartella Export\ sort\ order=Esporta il modo di ordinamento Save\ sort\ order=Salva ordine -Newline\ separator=Separatore di linea Keep\ original\ order=Mantieni l'ordine originale Use\ current\ table\ sort\ order=Usa l'ordine corrente della tabella diff --git a/src/main/resources/l10n/JabRef_ja.properties b/src/main/resources/l10n/JabRef_ja.properties index 800e83cc84f..9cc33774715 100644 --- a/src/main/resources/l10n/JabRef_ja.properties +++ b/src/main/resources/l10n/JabRef_ja.properties @@ -1,3 +1,9 @@ + + + + + +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が含まれています @@ -6,6 +12,7 @@ %0\ doesn't\ contain\ the\ term\ %1=%0には,用語%1が含まれていません +%0/%1\ entries=%0/%1 項目 %0\ export\ successful=%0個の書き出しに成功しました @@ -40,7 +47,8 @@ Add=追加 Add\ a\ (compiled)\ custom\ Importer\ class\ from\ a\ class\ path.=(コンパイルした)ユーザー定義ImportFormatクラスをクラスパスから追加します. The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=このパスは,JabRefのクラスパスにあるとは限りません. -Add\ a\ regular\ expression\ for\ the\ key\ pattern.=鍵パターンに正規表現を追加します. +Add\ a\ regular\ expression\ for\ the\ key\ pattern.=キー パターンに正規表現を追加します. + Add\ selected\ entries\ to\ this\ group=選択項目をこのグループに追加 @@ -52,6 +60,7 @@ Added\ string=文字列を追加しました All\ entries=全項目 +Also\ remove\ subgroups=下層グループも削除 Always\ reformat\ BIB\ file\ on\ save\ and\ export=保存・書出の際,つねにBIBファイルを再整形する @@ -75,8 +84,11 @@ Assigned\ %0\ entries\ to\ group\ "%1".=%0項目をグループ「%1」に割り Assigned\ 1\ entry\ to\ group\ "%0".=1項目をグループ「%1」に割り当てました. +Autogenerate\ citation\ keys=文献キーを自動生成 +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=文献キーで始まるファイル名を持つファイルを自動リンク +Autolink\ only\ files\ that\ match\ the\ citation\ key=文献キーに一致するファイルのみを自動リンク Automatically\ create\ groups=グループを自動生成 @@ -90,8 +102,11 @@ Available\ import\ formats=使用できる読み込み書式 %0\ source=%0ソース +Background\ Tasks=バックグラウンドタスク +Background\ Tasks\ are\ running=バックグラウンドタスクを実行しています +Background\ Tasks\ are\ done=バックグラウンドタスクが完了しました Browse=一覧 @@ -103,6 +118,7 @@ Cannot\ create\ group=グループを作成できません Cannot\ create\ group.\ Please\ create\ a\ library\ first.=グループを作成できません。ライブラリを作成してから再試行してください。 +Cannot\ open\ folder\ as\ the\ file\ is\ an\ online\ link.=ファイルがオンラインリンクであるためフォルダを開くことができません。 case\ insensitive=大小文字を区別しない @@ -131,6 +147,7 @@ Clear=消去 Clear\ fields=フィールドを消去 +Open\ /\ close\ entry\ editor=項目エディタを開閉する Close\ dialog=ダイアログを閉じる @@ -149,6 +166,7 @@ Copied=コピーしました Copy=コピー +Copy\ citation\ key=文献キーをコピー Copy\ to\ clipboard=クリップボードにコピーします. @@ -203,6 +221,7 @@ Default=既定値 Default\ encoding=既定エンコーディング +Downloading=ダウンロードしています Execute\ default\ action\ in\ dialog=ダイアログの既定アクションを実行 @@ -220,6 +239,7 @@ Descending=降順 Description=説明 +Do\ not\ ask\ again=次回から表示しない Display\ all\ entries\ belonging\ to\ one\ or\ more\ of\ the\ selected\ groups=選択したグループの一つ以上に属する項目をすべて表示する @@ -243,6 +263,7 @@ Donate\ to\ JabRef=JabRefに寄付 Download\ file=ファイルをダウンロード +Downloaded\ website\ as\ an\ HTML\ file.=ウェブサイトを HTML ファイルとしてダウンロードしました。 duplicate\ removal=重複を削除 @@ -254,6 +275,7 @@ Dynamically\ group\ entries\ by\ a\ free-form\ search\ expression=自由型検 Dynamically\ group\ entries\ by\ searching\ a\ field\ for\ a\ keyword=フィールド中のキーワードを検索して動的にグループ化 +Each\ line\ must\ be\ of\ the\ following\ form\:\ 'tab\:field1;field2;...;fieldN'.=各行は次の形式でなければなりません:「タブ\:フィールド1;フィールド2;...;フィールドN」 Edit=編集 @@ -290,6 +312,8 @@ Error=エラー Error\ occurred\ when\ parsing\ entry=項目を解析中にエラーが発生 Error\ opening\ file=ファイルを開く際にエラー発生 Error\ while\ writing=書き込み中にエラー発生 +Error\ during\ persistence\ of\ crawling\ results.=クローリング結果の定着中にエラーが発生しました。 +Error\ during\ reading\ of\ study\ definition\ file.=調査定義ファイルの読み込み中にエラーが発生しました。 '%0'\ exists.\ Overwrite\ file?='%0' は存在します.ファイルを上書きしますか? Export=書き出し Export\ preferences=設定を書き出す @@ -305,12 +329,14 @@ External\ file\ links=外部ファイルリンク External\ programs=外部プログラム + Field=フィールド field=フィールド Field\ name=フィールド名 +Field\ names\ are\ not\ allowed\ to\ contain\ white\ spaces\ or\ certain\ characters\ (%0).=フィールド名には,スペースや特定の文字を使うことはできません(%0)。 Field\ to\ group\ by=グループ化するフィールド @@ -327,8 +353,9 @@ Filter=フィルタ Filter\ groups=グループ絞り込み +Finished\ writing\ metadata\ for\ %0\ file\ (%1\ skipped,\ %2\ errors).=メタデータを%0ファイルに書き込み終わりました(スキップ%1件・エラー%2件)。 -First\ select\ the\ entries\ you\ want\ keys\ to\ be\ generated\ for.=鍵を生成させたい項目をまず選択してください. +First\ select\ the\ entries\ you\ want\ keys\ to\ be\ generated\ for.=キーを生成させたい項目をまず選択してください. Fit\ table\ horizontally\ on\ screen=表を画面上の水平方向に合わせて表示 @@ -343,7 +370,9 @@ Formatter\ name=整形定義の名称 found\ in\ AUX\ file=AUXファイルを検出 +Fulltext\ search=全文検索 +Fulltext\ for=以下の項目のフルテキスト: Further\ information\ about\ Mr.\ DLib\ for\ JabRef\ users.=Mr. DLibに関するJabRefユーザー向けの詳しい情報はこちら. @@ -351,12 +380,15 @@ General=一般 Generate=生成 +Generate\ citation\ key=文献キーを生成 -Generate\ keys=鍵を生成 +Generate\ keys=キーを生成 -Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=保存前に鍵を生成(鍵のない項目に対して) +Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=保存前にキーを生成 (キーのない項目に対して) +Generated\ citation\ key\ for=以下の項目の文献キーを生成しました: +Generating\ citation\ key\ for=以下の項目の文献キーを生成しています: Get\ fulltext=文書本体を得る Gray\ out\ non-hits=合致しないものを淡色化 @@ -368,7 +400,7 @@ Have\ you\ chosen\ the\ correct\ package\ path?=正しいパッケージパス Help=ヘルプ -Help\ on\ key\ patterns=鍵パターンに関するヘルプ +Help\ on\ key\ patterns=キー パターンに関するヘルプ Help\ on\ regular\ expression\ search=正規表現検索に関するヘルプ Hide\ non-hits=合致しないものを非表示 @@ -417,7 +449,11 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=独立グループ:このグループの項目のみを表示 I\ Agree=同意する +Indexing\ pdf\ files=PDFファイルをインデックス化中 +Indexing\ for\ %0=%0 をインデックス化中 +%0\ of\ %1\ linked\ files\ added\ to\ the\ index=%1 個のリンクされたファイルのうち %0 個がインデックスに追加されました +Invalid\ citation\ key=無効な文献キーです Invalid\ URL=無効なURLです @@ -429,6 +465,8 @@ JabRef\ requests\ recommendations\ from\ Mr.\ DLib,\ which\ is\ an\ external\ se JabRef\ Version\ (Required\ to\ ensure\ backwards\ compatibility\ with\ Mr.\ DLib's\ Web\ Service)=JabRefのバージョン(Mr. DLibウェブサービスの後方互換性を確保するために必要です) Journal\ abbreviations=誌名短縮形 +Journal\ lists\:=学術誌一覧: +Remove\ journal\ '%0'=学術誌「%0」を削除 Keep\ both=両側を維持 @@ -437,9 +475,9 @@ Key\ bindings=キー割当 Key\ bindings\ changed=キー割当が変更されました -Key\ pattern=鍵パターン +Key\ pattern=キー パターン -keys\ in\ library=ライブラリ中の鍵 +keys\ in\ library=ライブラリ中のキー Keyword=キーワード @@ -518,6 +556,7 @@ No\ journal\ names\ could\ be\ abbreviated.=学術誌名を短縮形にするこ No\ journal\ names\ could\ be\ unabbreviated.=学術誌名を非短縮形にすることができませんでした. + not=非 not\ found=見つかりません @@ -528,7 +567,7 @@ Nothing\ to\ undo=取り消すべきものがありません OK=OK -One\ or\ more\ keys\ will\ be\ overwritten.\ Continue?=一つないしそれ以上の鍵が上書きされます.続けますか? +One\ or\ more\ keys\ will\ be\ overwritten.\ Continue?=一つないしそれ以上のキーが上書きされます.続けますか? Open=開く @@ -552,7 +591,7 @@ Opening=開いています Operation\ canceled.=操作は取り消されました. Operating\ System\ (Provides\ for\ better\ recommendations\ by\ giving\ an\ indication\ of\ user's\ system\ set-up.)=基本ソフト(ユーザーのシステムを指定することでより良い推計を行います) -Optional\ fields=非必須フィールド +Optional\ fields=任意フィールド Options=オプション @@ -561,7 +600,7 @@ or=または Override\ default\ file\ directories=ファイルディレクトリ既定値の上書き Overwrite=上書き -Overwrite\ keys=鍵の上書き +Overwrite\ keys=キーの上書き pairs\ processed=対が処理されました Password=パスワード @@ -630,8 +669,6 @@ Related\ articles=関連文献 Remote\ operation=リモート操作 -Remote\ server\ port=リモートサーバーのポート - Remove=削除 Remove\ subgroups=下層グループを削除 @@ -692,6 +729,7 @@ Restart=再起動 Restart\ required=再起動が必要です + Review=論評 Review\ changes=変更を検査する Review\ Field\ Migration=Reviewフィールドの取り込み @@ -751,7 +789,7 @@ Show\ last\ names\ only=姓のみを表示する Show\ names\ unchanged=氏名をそのまま表示 -Show\ optional\ fields=非必須フィールドを表示 +Show\ optional\ fields=任意フィールドを表示 Show\ required\ fields=必須フィールドを表示 @@ -848,7 +886,7 @@ Vim\ server\ name=Vimサーバー名 Warn\ about\ unresolved\ duplicates\ when\ closing\ inspection\ window=精査ウィンドウを閉じる際に解消されていない重複項目に対して警告する -Warn\ before\ overwriting\ existing\ keys=既存鍵を上書きする前に警告する +Warn\ before\ overwriting\ existing\ keys=既存キーを上書きする前に警告する Warning=警告 @@ -861,9 +899,11 @@ Whatever\ option\ you\ choose,\ Mr.\ DLib\ may\ share\ its\ data\ with\ research Will\ write\ XMP\ metadata\ to\ the\ PDFs\ linked\ from\ selected\ entries.=選択した項目からリンクされているPDFにXMPメタデータを書き込みます. +Writing\ metadata...=メタデータを書き込んでいます... Write\ XMP=XMPを書き込む Write\ BibTeXEntry\ as\ XMP\ metadata\ to\ PDF.=PDFにBibTeX項目をXMPメタデータとして書き込む. +Write\ metadata\ to\ PDF\ files=PDFファイルにメタデータを書く XMP-annotated\ PDF=XMP注釈付きPDF XMP\ export\ privacy\ settings=XMP書き出しのプライバシー設定 @@ -873,6 +913,8 @@ You\ must\ restart\ JabRef\ for\ this\ to\ come\ into\ effect.=これを有効 The\ following\ fetchers\ are\ available\:=以下の取得子が使用できます: Could\ not\ find\ fetcher\ '%0'=取得子「%0」を見つけられませんでした Running\ query\ '%0'\ with\ fetcher\ '%1'.=取得子「%1」を使用して,クエリ「%0」を実行しています. +Invalid\ query.\ Check\ position\ %0.=クエリが無効です。位置 %0 を確認してください。 +Invalid\ query\ element\ '%0'\ at\ position\ %1=位置 %1 に無効なクエリ要素「%0」 Move\ file=ファイルを移動 Rename\ file=ファイルを改名 @@ -894,7 +936,6 @@ MIME\ type=MIME型 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.=この機能は,新規ファイルを,新しいJabRefインスタンスを開かないで,すでに実行されているインスタンスに開いたり 読み込んだりするものです.たとえば,これは,ウェブブラウザからJabRefにファイルを開かせたい時に便利です.これによって,一度にJabRefのインスタンスを一つしか開けなくなることに注意してください Run\ fetcher=取得子を実行 -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=ファイルリンクを開く際,リンクが定義されていなければ,一致するファイルを検索する No\ full\ text\ document\ found=文書本体が見つかりません Download\ from\ URL=URLからダウンロード Rename\ field=フィールドを改名しました @@ -929,10 +970,11 @@ includes\ subgroups=下層グループを含む contains=は次を含む: search\ expression=検索表現 -Optional\ fields\ 2=非必須フィールド2 +Optional\ fields\ 2=任意フィールド2 Waiting\ for\ save\ operation\ to\ finish=保存操作が終了するのを待っています Expected\ syntax\ for\ --fetch\='\:'=--fetch\='<取得子名>\:<問い合わせ>'に期待される文法 +Duplicate\ citation\ key=文献キーが重複しています General\ file\ directory=一般ファイルディレクトリ @@ -941,7 +983,6 @@ LaTeX\ file\ directory=LaTeXファイルディレクトリ Search\ failed\:\ illegal\ search\ expression=検索に失敗:誤った検索表現です You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=1025〜65535の間の整数値を入力しなくてはなりません -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=新しくファイルリンクを作成する際,自動的にブラウズダイアログを開く Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=「名 姓」形式の名前のみ自動補完 Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=「姓, 名」形式の名前のみ自動補完 Autocomplete\ names\ in\ both\ formats=両方の形式とも自動補完 @@ -952,6 +993,7 @@ Subject\ for\ sending\ an\ email\ with\ references=書誌情報を添付した Automatically\ open\ folders\ of\ attached\ files=添付ファイルのフォルダを自動的に開く Error\ creating\ email=電子メールを生成する際エラーが発生しました Entries\ added\ to\ an\ email=項目が電子メールに追加されました +Custom\ applications=カスタム アプリケーション exportFormat=エクスポート形式 Output\ file\ missing=出力ファイルが見当たりません No\ search\ matches.=検索条件に一致するものがありませんでした. @@ -1044,7 +1086,21 @@ Expand\ all=すべて展開表示 Collapse\ all=すべて畳んで表示 Searches\ the\ selected\ directory\ for\ unlinked\ files.=選択したディレクトリでリンクされていないファイルを検索 Starts\ the\ import\ of\ BibTeX\ entries.=BibTeX項目の読み込みを開始します. +Last\ edited\:=最終編集日時: +All\ time=全期間 +last\ edited=最終編集日時 +Last\ day=昨日 +Last\ week=先週 +Last\ month=先月 +Last\ year=昨年 +Sort\ by\:=並び順: +Newest\ first=新しい順 +Oldest\ first=古い順 +Directory=ディレクトリ +Search\ results=検索結果 +Import\ result=インポート結果 Searching\ file\ system...=ファイルシステムを検索しています... +Citation\ key\ patterns=文献キーのパターン Clear\ priority=優先度を消去 Clear\ rank=評価を消去 Enable\ special\ fields=特殊フィールドを使用する @@ -1056,6 +1112,7 @@ Five\ stars=五つ星 Help\ on\ special\ fields=特殊フィールドのヘルプ Keywords\ of\ selected\ entries=選択した項目のキーワード Manage\ content\ selectors=選択肢メニューを管理 +Content\ selectors=コンテンツセレクター Manage\ keywords=キーワードを管理 No\ priority\ information=優先度の情報がありません No\ rank\ information=評価の情報がありません @@ -1089,7 +1146,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=グループ「%0」の全下層グル To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=メモリースティックモードを無効にするには,JabRefと同じフォルダにあるjabref.xmlファイルを改名するか削除してください Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=接続ができません.一つの可能性としては,JabRefとOpenOffice/LibreOfficeが,ともに32ビットモードか64ビットモードで実行されていないせいかもしれません. Delimiter(s)=区切り文字 -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=ファイルをダウンロードする時やリンクしたファイルをファイルディレクトリに移動する際に,上記で設定したファイルディレクトリではなくbibファイルの場所を優先する Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=お使いの様式ファイルは,文字様式「%0」を指定していますが,これは,現在のOpenOffice/LibreOffice文書には定義されていません. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=お使いの様式ファイルは,段落様式「%0」を指定していますが,これは,現在のOpenOffice/LibreOffice文書には定義されていません. @@ -1100,6 +1156,7 @@ Please\ open\ or\ start\ a\ new\ library\ before\ searching=検索前にライ Canceled\ merging\ entries=項目の統合を取り消しました Merge\ entries=項目の統合 +Merged\ entry=統合された項目 Merged\ entries=項目を統合しました None=なし Parse=解析 @@ -1128,8 +1185,8 @@ Clear\ connection\ settings=接続設定を消去する Open\ folder=フォルダを開く Export\ sort\ order=書き出し整序順 Save\ sort\ order=整序順を保存 -Newline\ separator=新規行分離子 +Keep\ original\ order=元の順序を保持 Show\ extra\ columns=追加列を表示 Parsing\ error=解析エラー illegal\ backslash\ expression=バックスラッシュ表現が不正です @@ -1195,6 +1252,7 @@ Keep\ left=左側を維持 Keep\ right=右側を維持 Old\ entry=旧項目 From\ import=読込より +From\ DOI=DOIから No\ problems\ found.=問題は検出されませんでした. Save\ changes=変更点を保存 Discard\ changes=変更を放棄 @@ -1249,12 +1307,13 @@ Synchronize\ files=ファイルを同期 Unabbreviate=短縮解除 should\ contain\ a\ protocol=プロトコルを含む必要あり Copy\ preview=プレビューをコピー +Copy\ selection=選択内容のコピー Automatically\ setting\ file\ links=ファイルリンクを自動的に設定 -Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=BibTeXファイル中全項目の鍵を再生成 +Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=BibTeXファイル中全項目のキーを再生成 Show\ debug\ level\ messages=デバッグレベルメッセージを表示 Show\ only\ preferences\ deviating\ from\ their\ default\ value=既定値と異なる設定のみ表示 default=既定値 -key=鍵 +key=キー type=型 value=値 Show\ preferences=設定を表示 @@ -1280,6 +1339,8 @@ 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\ citation\ keys.=選択した項目のいずれにも文献キーがありません. +None\ of\ the\ selected\ entries\ have\ DOIs.=選択した項目のいずれにもDOIがありません. Unabbreviate\ journal\ names=学術誌名を非短縮形に Unabbreviating...=短縮解除中... Usage=使用法 @@ -1349,6 +1410,9 @@ Identity=同一 Clears\ the\ field\ completely.=フィールドを完全に消去します. Directory\ not\ found=ディレクトリが検出されませんでした This\ operation\ requires\ exactly\ one\ item\ to\ be\ selected.=この操作では,1項目のみ選択されている必要があります. +Opening\ large\ number\ of\ files=大量のファイルを開いています +You\ are\ about\ to\ open\ %0\ files.\ Continue?=あなたは %0 個のファイルを開こうとしています。続けていいですか? +Continue=続ける Importing\ in\ %0\ format=%0形式で読み込み Female\ name=女性名 Female\ names=女性名 @@ -1463,7 +1527,7 @@ Add\ {}\ around\ selected\ text=選択した平文の前後に{}を付加する Format\ field=フィールドを整形する New\ protected\ terms\ file=新規予約語ファイル change\ field\ %0\ of\ entry\ %1\ from\ %2\ to\ %3=%2から%3までの項目%1のフィールド%0を変更する -change\ key\ from\ %0\ to\ %1=%0から%1までの鍵を変更する +change\ key\ from\ %0\ to\ %1=%0から%1までのキーを変更する change\ string\ content\ %0\ to\ %1=文字列の内容%0を%1に変更する change\ string\ name\ %0\ to\ %1=文字列名%0を%1に変更する change\ type\ of\ entry\ %0\ from\ %1\ to\ %2=項目%0の型を%1から%2に変更する @@ -1512,6 +1576,7 @@ User=ユーザー Connect=接続 Connection\ error=接続エラー Connection\ to\ %0\ server\ established.=%0サーバーへの接続が確立されました. +There\ are\ connection\ issues\ with\ a\ JabRef\ server.\ Detailed\ information\:\ %0.=JabRefサーバーに接続の問題があります。詳細情報\: %0。 Required\ field\ "%0"\ is\ empty.=必須フィールド「%0」が空です. %0\ driver\ not\ available.=%0ドライバが利用できません. The\ connection\ to\ the\ server\ has\ been\ terminated.=サーバーへの接続が絶たれました. @@ -1682,6 +1747,7 @@ No\ full\ text\ document\ found\ for\ entry\ %0.=項目%0の文書本体が見 Next\ library=次のライブラリ Previous\ library=前のライブラリ +Add\ group=グループを追加 Entry\ is\ contained\ in\ the\ following\ groups\:=項目は以下のグループに属しています: Delete\ entries=エントリーを削除 Keep\ entries=項目を保持 @@ -1868,18 +1934,18 @@ Font=フォント Visual\ theme=ビジュアルテーマ Light\ theme=ライトテーマ Dark\ theme=ダークテーマ -Overwrite\ existing\ keys=既存鍵を上書きする -Key\ patterns=鍵パターン +Overwrite\ existing\ keys=既存のキーを上書きする +Key\ patterns=キー パターン Font\ settings=フォント設定 Override\ font\ settings=フォント設定を上書き Override\ font\ size=フォント寸法を上書き Theme\ changed\ to\ dark\ theme.=テーマをダークテーマに変更しました. Theme\ changed\ to\ light\ theme.=テーマをライトテーマに変更しました. You\ must\ enter\ an\ integer\ value\ higher\ than\ 8.=8よりも大きい整数値を入力する必要があります. -Letters\ after\ duplicate\ generated\ keys=生成鍵が重複している時に後置する文字 -Start\ on\ second\ duplicate\ key\ with\ letter\ A\ (a,\ b,\ ...)=2つ目以降の重複鍵を文字Aで始める(a, b, ...) -Start\ on\ second\ duplicate\ key\ with\ letter\ B\ (b,\ c,\ ...)=2つ目以降の重複鍵を文字Bで始める(b, c, ...) -Always\ add\ letter\ (a,\ b,\ ...)\ to\ generated\ keys=鍵生成時に常に(a, ,b, …)などの文字を付加 +Letters\ after\ duplicate\ generated\ keys=生成キーが重複している時に後置する文字 +Start\ on\ second\ duplicate\ key\ with\ letter\ A\ (a,\ b,\ ...)=2つ目以降の重複キーを文字Aで始める (a, b, ...) +Start\ on\ second\ duplicate\ key\ with\ letter\ B\ (b,\ c,\ ...)=2つ目以降の重複鍵を文字Bで始める (b, c, ...) +Always\ add\ letter\ (a,\ b,\ ...)\ to\ generated\ keys=キー生成時に常に (a, ,b, …) などの文字を付加 Default\ pattern=既定パターン Reset\ %s\ to\ default\ value=%sを既定値に戻す Library\ mode=ライブラリモード @@ -1900,28 +1966,45 @@ Invalid\ regular\ expression.=正規表現が不正です. Add\ to\ current\ library=現在のライブラリに追加 +%0\ entries\ were\ parsed\ from\ your\ query.=提出されたクエリから項目が %0 件解析されました。 +Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=抽出を開始して得られた項目を、現在開かれているデータベースに追加します Your\ text\ is\ being\ parsed...=テキストを解析しています... Add\ new\ Field=新規フィールドを追加 Add\ new\ entry\ type=新規項目型を追加 Field\ type=フィールド型 +Index=索引 Remove\ entry\ type=項目型を削除 Required=必須 +Shared\ database=共有データベース +Lookup=検索 +Year\ of\ publication.=出版年 +Auto\ complete\ disabled.=自動完了は無効。 +Auto\ complete\ enabled.=自動完了は有効。 +Close=閉じる +Close\ all=すべて閉じる +Close\ all\ libraries=すべてのライブラリを閉じる +Close\ other\ libraries=他のライブラリを閉じる +Close\ others=他を閉じる +Customized\ preview\ style=ユーザー定義のプレビュー様式 +Next\ preview\ style=次のプレビュー様式 +Previous\ preview\ style=前のプレビュー様式 +Reset=リセット @@ -1935,7 +2018,27 @@ Required=必須 +Authors\ and\ Title=著者とタイトル +Database=データベース +Databases=データベース +Manage\ study\ definition=調査の定義を管理 +Add\ Database\:=データベースを追加\: +Add\ Query\:=クエリを追加: +Add\ Research\ Question\:=研究課題を追加 +Perform\ search\ for\ existing\ systematic\ literature\ review=既存の系統的文献レビューについて検索を実行 +Research\ Questions=研究課題 +Start\ new\ systematic\ literature\ review=系統的文献レビューを新規に開始 +Study\ Title\:=調査タイトル\: +Study\ repository\ could\ not\ be\ created=調査レポジトリを生成できませんでした +All\ query\ terms\ are\ joined\ using\ the\ logical\ AND,\ and\ OR\ operators=クエリの全項目はAND・OR論理演算子を使用して結合されます。 +Finalize=仕上げ +Query\ terms\ are\ separated\ by\ spaces.=クエリ項目は空白で区切ります。 +Select\ the\ study\ directory\:=調査ディレクトリを選択してください\: +Define\ study\ parameters=調査パラメーターを定義 +Start\ survey=サーベイを開始 +Query=クエリ +Question=課題 diff --git a/src/main/resources/l10n/JabRef_ko.properties b/src/main/resources/l10n/JabRef_ko.properties new file mode 100644 index 00000000000..b36b586f5dc --- /dev/null +++ b/src/main/resources/l10n/JabRef_ko.properties @@ -0,0 +1,2391 @@ + + + + + +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 + +%0\ doesn't\ contain\ the\ regular\ expression\ %1=%0에 정규식 %1이 포함되어 있지 않습니다 + +%0\ doesn't\ contain\ the\ term\ %1=%0은 %1이라는 용어를 포함하지 않습니다 + +%0/%1\ entries=%0/%1 항목 + +%0\ export\ successful=%0 내보내기 성공 + +%0\ matches\ the\ regular\ expression\ %1=%0은 정규식 %1와 일치합니다. + +%0\ matches\ the\ term\ %1=%0은 항목 %1 와 일치합니다. + +Abbreviate\ journal\ names\ of\ the\ selected\ entries\ (DEFAULT\ abbreviation)=선택한 항목의 저널 이름 약어(DEFAULT약어) +Abbreviate\ journal\ names\ of\ the\ selected\ entries\ (MEDLINE\ abbreviation)=선택한 항목의 저널 이름 약어(MEDLINE 약어) +Abbreviate\ journal\ names\ of\ the\ selected\ entries\ (SHORTEST\ UNIQUE\ abbreviation)=선택한 항목의 저널 이름 약어(SHORTEST UNIQUE 약어) + +Abbreviate\ names=약어 이름 +Abbreviated\ %0\ journal\ names.=%0 저널 이름을 축약했습니다. + +Abbreviation=약어 +Abbreviations=단축어 + +About\ JabRef=JabRef 정보 + +Abstract=개요 + +Accept=수락 + +Accept\ change=변경 수락 + +Accept\ recommendations\ from\ Mr.\ DLib=DLib 씨의 추천을 수락합니다. + +Action=액션 + +Add=추가 정보 + +Add\ a\ (compiled)\ custom\ Importer\ class\ from\ a\ class\ path.=클래스 경로(컴파일된) 에서 사용자 지정 임포터 클래스를 추가합니다. +The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=경로가 JabRef 클래스의 경로와 일치하지 않을 수 있습니다. + +Add\ a\ regular\ expression\ for\ the\ key\ pattern.=키 패턴에 대한 정규식을 추가합니다. + + +Add\ selected\ entries\ to\ this\ group=선택한 항목을 이 그룹에 추가 + +Add\ subgroup=하위 그룹 추가 + +Added\ group\ "%0".=그룹 "%0"이 추가되었습니다. + +Added\ string=문자열 추가됨 + +All\ entries=모든 항목 + +Also\ remove\ subgroups=하위집단을 제거합니다 + +Always\ reformat\ BIB\ file\ on\ save\ and\ export=저장 및 내보낼 때 항상 BIB 파일 다시 포맷 + +and=그리고 + +any\ field\ that\ matches\ the\ regular\ expression\ %0=정규식 %0과 일치하는 필드 + +Appearance=모양 + +Application=신청 + +Application\ to\ push\ entries\ to=항목을 푸시하는 응용 프로그램 + +Apply=적용 + +Arguments\ passed\ on\ to\ running\ JabRef\ instance.\ Shutting\ down.=JabRef 인스턴스 실행으로 전달된 인수입니다. 종료됩니다. + +Assign\ the\ original\ group's\ entries\ to\ this\ group?=원래 그룹의 항목을 이 그룹에 할당하시겠습니까? + +Assigned\ %0\ entries\ to\ group\ "%1".=%0 항목을 "%1" 그룹에 할당했습니다. + +Assigned\ 1\ entry\ to\ group\ "%0".="%0" 그룹에 항목 1개를 할당했습니다. + +Autogenerate\ citation\ keys=인용 키 자동 생성 + +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=인용 키로 시작하는 이름의 파일을 자동으로 링크합니다. + +Autolink\ only\ files\ that\ match\ the\ citation\ key=인용 키와 일치하는 파일만 자동 링크 + +Automatically\ create\ groups=자동으로 그룹 생성 + +Automatically\ remove\ exact\ duplicates=전체 중복을 자동으로 삭제합니다. + +AUX\ file\ import=AUX 파일 가져오기 + +Available\ export\ formats=사용 가능한 내보내기 형식 + +Available\ import\ formats=사용 가능한 가져오기 형식 + +%0\ source=%0 소스 + +Background\ Tasks=백그라운드 작업 + +Background\ Tasks\ are\ running=백그라운드 작업이 실행 중 + +Background\ Tasks\ are\ done=백그라운드 작업 완료 + +Browse=찾아보기 + +by=에 의해 +The\ conflicting\ fields\ of\ these\ entries\ will\ be\ merged\ into\ the\ 'Comment'\ field.=이러한 항목의 충돌하는 필드는 '비고' 필드로 병합됩니다. + +Cancel=취소 +Cannot\ create\ group=그룹을 생성할 수 없습니다 + +Cannot\ create\ group.\ Please\ create\ a\ library\ first.=그룹을 만들 수 없습니다. 라이브러리를 먼저 만드십시오. + +Cannot\ open\ folder\ as\ the\ file\ is\ an\ online\ link.=파일이 온라인 링크이므로 폴더를 열 수 없습니다. + +case\ insensitive=대/소문자를 구분하지 않음 + +case\ sensitive=대/소문자 구분 + +Case\ sensitive=대/소문자 구분 + +change\ assignment\ of\ entries=항목 할당 변경 + +Change\ case=대소문자 변경 + +Change\ entry\ type=입력 유형 변경 + + +Change\ of\ Grouping\ Method=그룹화 방법 변경 + +change\ preamble=서문 변경 + +Changed\ language=변경된 언어 + +Changed\ preamble=변경된 서문 + +Cite\ command=인용 명령 + +Clear=초기화 + +Clear\ fields=필드 초기화 + +Open\ /\ close\ entry\ editor=항목 편집기 열기/닫기 + +Close\ dialog=대화상자 닫기 + +Close\ the\ current\ library=현재 라이브러리 닫기 + +Close\ window=창 닫기 + +Comments=코멘트 + +Contained\ in=에 포함됨 + +Content=내용 + +Copied=복사 완료 + + +Copy=복사 + +Copy\ citation\ key=인용 키 복사 + +Copy\ to\ clipboard=클립보드에 복사 + +Could\ not\ call\ executable=실행 파일을 호출할 수 없습니다. + +Could\ not\ export\ file=파일을 내보낼 수 없습니다. + +Could\ not\ export\ preferences=환경설정을 내보낼 수 없습니다. + +Could\ not\ find\ a\ suitable\ import\ format.=적절한 가져오기 형식을 찾을 수 없습니다. +Could\ not\ import\ preferences=환경설정을 가져올 수 없습니다. + +Could\ not\ instantiate\ %0=%0을 인스턴스화할 수 없습니다 +Could\ not\ instantiate\ %0\ %1=%0 %1을 인스턴스화할 수 없습니다 +Could\ not\ instantiate\ %0.\ Have\ you\ chosen\ the\ correct\ package\ path?=%0을 인스턴스화할 수 없습니다. 올바른 패키지 경로를 선택했습니까? + +Could\ not\ print\ preview=미리보기를 인쇄할 수 없습니다. + +Could\ not\ run\ the\ 'vim'\ program.='vim' 프로그램을 실행할 수 없습니다. + +Could\ not\ save\ file.=파일을 저장할 수 없습니다. +Character\ encoding\ '%0'\ is\ not\ supported.=문자 인코딩 '%0'은 지원되지 않습니다. + +Create\ custom\ fields\ for\ each\ BibTeX\ entry=각 BibTeX 항목에 대한 사용자 정의 필드 생성 + +crossreferenced\ entries\ included=상호 참조 항목 포함 + +Current\ content=현재 내용 + +Current\ value=현재 값 + +Custom\ entry\ types=사용자 정의 항목 유형 + +Custom\ entry\ types\ found\ in\ file=파일에서 찾은 사용자 정의 항목 유형 + +Customize\ entry\ types=항목 유형 사용자 정의 + +Customize\ key\ bindings=키 바인딩 사용자 지정 + +Cut=잘라내기 + +cut\ entries=항목 잘라내기 + +cut\ entry\ %0=항목 %0 잘라내기 + + +Library\ encoding=라이브러리 인코딩 + +Library\ properties=라이브러리 속성 + +Default=기본값 + +Default\ encoding=기본 인코딩 + +Downloading=다운로드 중 + +Execute\ default\ action\ in\ dialog=대화 상자에서 기본 작업 실행 + +Delete=삭제 + +Delete\ entry=항목 삭제 + +Delete\ multiple\ entries=여러 개 삭제하기 + +Deleted=삭제됨 + +Permanently\ delete\ local\ file=로컬 파일 완전 삭제 + +Descending=내림차순 + +Description=설명 + +Do\ not\ ask\ again=다시 묻지 않음 + +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=이름을 줄이지 마십시오 + +Do\ not\ import\ entry=항목을 가져오지 마십시오. + +Do\ not\ open\ any\ files\ at\ startup=시작 시 파일을 열지 마십시오. + +Do\ not\ wrap\ the\ following\ fields\ when\ saving=저장할 때 다음 필드를 줄 바꿈하지 마십시오. +Do\ not\ write\ the\ following\ fields\ to\ XMP\ Metadata=XMP 메타데이터에 다음 필드를 쓰지 마십시오. + +Donate\ to\ JabRef=JabRef에 기부하기 + +Download\ file=파일 다운로드 + +Downloaded\ website\ as\ an\ HTML\ file.=웹사이트를 HTML 파일로 다운로드했습니다. + +duplicate\ removal=중복 제거 + +Duplicate\ string\ name=문자열 이름 중복 + +Duplicates\ found=중복 발견 + +Dynamically\ group\ entries\ by\ a\ free-form\ search\ expression=자유 형식 검색 표현식으로 항목을 동적으로 그룹화 + +Dynamically\ group\ entries\ by\ searching\ a\ field\ for\ a\ keyword=필드에서 키워드를 검색하여 항목을 동적으로 그룹화 + +Each\ line\ must\ be\ of\ the\ following\ form\:\ 'tab\:field1;field2;...;fieldN'.=각 줄은 다음 형식이어야 합니다\:'tab\:field1;field2;...;fieldN'. + +Edit=편집 + +Edit\ file\ type=파일 형식 편집 + +Edit\ group=그룹 수정 + + +Edit\ preamble=전문 편집 +Edit\ strings=문자열 편집 + +empty\ library=빈 라이브러리 +Autocompletion=자동 완성 + +Enter\ URL\ to\ download=다운로드할 URL 입력 + +entries=항목 + +Entries\ exported\ to\ clipboard=클립보드로 내보낸 항목 + +entry=항목 + +Entry\ editor=항목 편집기 + +Entry\ owner=항목 소유자 + +Entry\ preview=항목 미리보기 + +Entry\ table=항목 목록 +Entry\ table\ columns=항목 테이블 열 +Entry\ Title\ (Required\ to\ deliver\ recommendations.)=항목 제목(권장사항을 전달하기 위해 필요) +Entry\ type=항목 유형 +Error=오류 +Error\ occurred\ when\ parsing\ entry=항목을 구문 분석하는 동안 오류가 발생했습니다. +Error\ opening\ file=파일을 여는 동안 오류 +Error\ while\ writing=쓰는 중 오류 +Error\ during\ persistence\ of\ crawling\ results.=크롤링 결과를 지속하는 동안 오류가 발생했습니다. +Error\ during\ reading\ of\ study\ definition\ file.=연구 정의 파일을 읽는 동안 오류가 발생했습니다. +'%0'\ exists.\ Overwrite\ file?='%0'이 있습니다. 파일을 덮어쓰시겠습니까? +Export=내보내기 +Export\ preferences=환경 설정 내보내기 +Export\ preferences\ to\ file=환경 설정을 파일로 내보내기 +Export\ to\ clipboard=클립보드로 내보내기 +Export\ to\ text\ file.=텍스트 파일로 내보내기 +Exporting=내보내는 중 +Extension=확장 프로그램 + +External\ changes=외부 변경 사항 + +External\ file\ links=외부 파일 링크 + +External\ programs=외부 프로그램 + + +Field=필드 + +field=필드 + +Field\ name=필드명 + +Field\ names\ are\ not\ allowed\ to\ contain\ white\ spaces\ or\ certain\ characters\ (%0).=필드 이름에는 공백이나 특정 문자를 사용할 수 없습니다 (%0) + +Field\ to\ group\ by=필드를 그룹화 하다 + +File=파일 + +file=파일 +File\ directory\ is\ not\ set\ or\ does\ not\ exist\!=파일 디렉토리가 설정되지 않았거나 존재하지 않습니다\! + +File\ exists=기존 파일 + +File\ not\ found=파일을 찾을 수 없음 + +Filter=필터 + +Filter\ groups=그룹 필터링 + +Finished\ writing\ metadata\ for\ %0\ file\ (%1\ skipped,\ %2\ errors).=%0 파일에 대한 메타데이터 쓰기를 완료했습니다(%1 건너뛰기, %2 오류). + +First\ select\ the\ entries\ you\ want\ keys\ to\ be\ generated\ for.=먼저 키를 생성할 항목을 선택합니다. + +Fit\ table\ horizontally\ on\ screen=화면에 수평으로 테이블 맞추기 + +Float=플로트 +Format\:\ Tab\:field;field;...\ (e.g.\ General\:url;pdf;note...)=형식\: 탭\:필드;필드;...(예\: 일반\:url;pdf;note...) + +Format\ of\ author\ and\ editor\ names=작성자 및 편집자 이름 형식 +Format\ string=문자열 형식 + +Format\ used=사용된 형식 +Formatter\ name=형식자 이름 + +found\ in\ AUX\ file=AUX 파일에 있음 + +Fulltext\ search=전체 텍스트 검색 + +Fulltext\ for=전체 텍스트\: + +Further\ information\ about\ Mr.\ DLib\ for\ JabRef\ users.=JabRef 사용자를 위한 DLib 씨에 대한 추가 정보입니다. + +General=일반 + +Generate=생성 + +Generate\ citation\ key=인용 키 생성 + +Generate\ keys=키 생성 + +Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=저장하기 전에 키 생성(키가 없는 항목의 경우) + +Generated\ citation\ key\ for=생성된 인용 키\: + +Generating\ citation\ key\ for=인용 키 생성 중\: +Get\ fulltext=전체 텍스트 가져오기 + +Gray\ out\ non-hits=부적합한 항목 비활성화 + +Groups=그룹 +has/have\ both\ a\ 'Comment'\ and\ a\ 'Review'\ field.='코멘트' 및 '리뷰' 필드가 모두 있습니다. + +Have\ you\ chosen\ the\ correct\ package\ path?=올바른 패키지 경로를 선택했습니까? + +Help=도움말 + +Help\ on\ key\ patterns=키 패턴에 대한 도움말 +Help\ on\ regular\ expression\ search=정규식 검색에 대한 도움말 + +Hide\ non-hits=부적합한 항목 숨기기 + +Hierarchical\ context=계층적 컨텍스트 + +Highlight=하이라이트 +Marking=마킹 +Underline=밑줄 +Empty\ Highlight=하이라이트 제거 +Empty\ Marking=마킹 제거 +Empty\ Underline=밑줄 제거 +The\ marked\ area\ does\ not\ contain\ any\ legible\ text\!=표시된 영역에는 읽을 수 있는 텍스트가 포함되어 있지 않습니다\! + +HTML\ table=HTML 테이블 +HTML\ table\ (with\ Abstract\ &\ BibTeX)=HTML 테이블(Abstract & BibTeX 포함) +Icon=아이콘 + +Ignore=무시 + +Import=가져오기 + +Import\ and\ keep\ old\ entry=가져오기 및 이전 항목 유지 + +Import\ and\ remove\ old\ entry=가져오기 및 이전 항목 삭제 + +Import\ entries=목록 가져오기 +Import\ file=파일 가져오기 + +Import\ name=이름 가져오기 + +Import\ preferences=환경 설정 가져오기 + +Import\ preferences\ from\ file=파일에서 설정 가져오기 + +Imported\ entries=가져온 목록 + +Importer\ class=클래스 가져오기 + +Importing=불러오는중 + +Importing\ in\ unknown\ format=알 수 없는 형식으로 가져오기 + +Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group\ or\ its\ subgroups=하위 그룹 포함\: 선택하면 이 그룹 또는 하위 그룹에 포함된 항목을 봅니다. + +Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=독립 그룹\: 선택하면 이 그룹의 항목만 봅니다. +I\ Agree=동의함 + +Indexing\ pdf\ files=PDF 파일 인덱싱 +Indexing\ for\ %0=%0에 대한 인덱싱 +%0\ of\ %1\ linked\ files\ added\ to\ the\ index=인덱스에 연결된 파일 %1개 중 %0개 추가됨 + +Invalid\ citation\ key=유효하지 않은 인용 키 + +Invalid\ URL=유효하지 않은 URL + +Online\ help=도움말 +JabRef\ Language\ (Provides\ for\ better\ recommendations\ by\ giving\ an\ indication\ of\ user's\ preferred\ language.)=JabRef 언어(사용자가 선호하는 언어를 표시하여 더 나은 권장 사항을 제공합니다.) + +JabRef\ preferences=JabRef 기본 설정 +JabRef\ requests\ recommendations\ from\ Mr.\ DLib,\ which\ is\ an\ external\ service.\ To\ enable\ Mr.\ DLib\ to\ calculate\ recommendations,\ some\ of\ your\ data\ must\ be\ shared\ with\ Mr.\ DLib.\ Generally,\ the\ more\ data\ is\ shared\ the\ better\ recommendations\ can\ be\ calculated.\ However,\ we\ understand\ that\ some\ of\ your\ data\ in\ JabRef\ is\ sensitive,\ and\ you\ may\ not\ want\ to\ share\ it.\ Therefore,\ Mr.\ DLib\ offers\ a\ choice\ of\ which\ data\ you\ would\ like\ to\ share.=JabRef는 Mr.DLib을 이용한 추천 서비스를 제공합니다.\nMr.DLib가 추천 서비스를 제공하기 위해서는 당신의 데이터가 Mr.DLib에 공유되어야 합니다.\n더 많은 데이터를 공유할 수록 더 좋은 추천 서비스를 제공할 수 있습니다.\n하지만, JabRef에 저장된 당신의 민감한 데이터는 공유하고 싶지 않을 수 있습니다.\n그래서 Mr.DLib은 당신이 어떤 데이터를 제공하고 싶어하는지 선택하도록 했습니다. +JabRef\ Version\ (Required\ to\ ensure\ backwards\ compatibility\ with\ Mr.\ DLib's\ Web\ Service)=JabRef 버전(DLib의 웹 서비스와 하위 호환성을 보장하기 위해 필요) + +Journal\ abbreviations=저널 약어 +Journal\ lists\:=저널 목록\: +Remove\ journal\ '%0'=저널 '%0' 제거 + +Keep\ both=둘 다 유지 + +Keep\ subgroups=하위 그룹 유지 + +Key\ bindings=키 바인딩 + +Key\ bindings\ changed=키 바인딩 변경됨 + +Key\ pattern=키 패턴 + +keys\ in\ library=라이브러리의 키 + +Keyword=키워드 + +Keywords=키워드 + +Label=라벨 + +Language=언어 + +Last\ modified=마지막으로 수정됨 +LaTeX\ AUX\ file\:=LaTeX AUX 파일\: + +Link=링크 +Listen\ for\ remote\ operation\ on\ port=포트에서 원격 작업 수신 +Load\ and\ Save\ preferences\ from/to\ jabref.xml\ on\ start-up\ (memory\ stick\ mode)=시작 시 jabref.xml에서 환경 설정 로드 및 저장(메모리 스틱 모드) + +Show\ advanced\ hints\ (i.e.\ helpful\ tooltips,\ suggestions\ and\ explanation)=상급 힌트 표시(예\: 유용한 툴팁, 제안 및 설명) + +Main\ file\ directory=기본 파일 디렉토리 + +Manage\ custom\ exports=사용자 지정 내보내기 관리 + +Manage\ custom\ imports=사용자 지정 가져오기 관리 +Manage\ external\ file\ types=외부 파일 형식 관리 + +Mark\ new\ entries\ with\ owner\ name=소유자 이름으로 새 항목 표시 + +Memory\ stick\ mode=메모리 스틱 모드 + +Merged\ external\ changes=병합된 외부 변경 사항 +Merge\ fields=필드 병합 + +Modified\ group\ "%0".=수정된 그룹 "%0". + +Modified\ groups=수정된 그룹 + +Modified\ string=수정된 문자열 + +Modify=수정 + +move\ group=그룹 이동 + +Moved\ group\ "%0".=그룹 "%0"을 이동했습니다. + +Mr.\ DLib\ Privacy\ settings=Mr. DLib 개인 정보 설정 + +No\ recommendations\ received\ from\ Mr.\ DLib\ for\ this\ entry.=이 항목에 대해 Mr. DLib로부터 받은 추천이 없습니다. + +Error\ while\ fetching\ recommendations\ from\ Mr.DLib.=Mr.DLib에서 추천을 가져오는 동안 오류가 발생했습니다. + +Name=이름 + +Name\ formatter=형식자 이름 + +Natbib\ style=Natbib 스타일 + +nested\ AUX\ files=중첩된 AUX 파일 + +New\ BibTeX\ sublibrary=새 BibTeX 서브라이브러리 + +New\ group=새 그룹 + +New\ string=새 문자열 + +Next\ entry=다음 항목 +no\ base-BibTeX-file\ specified=기본 BibTeX 파일이 지정되지 않았습니다. + +no\ library\ generated=생성된 라이브러리 없음 + +No\ entries\ found.\ Please\ make\ sure\ you\ are\ using\ the\ correct\ import\ filter.=항목을 찾을 수 없습니다. 올바른 가져오기 필터를 사용하고 있는지 확인하십시오. +No\ files\ found.=파일을 찾을 수 없습니다. + +No\ GUI.\ Only\ process\ command\ line\ options=GUI가 없습니다. 명령줄 옵션만 처리 + +No\ journal\ names\ could\ be\ abbreviated.=저널 이름은 축약할 수 없습니다. + +No\ journal\ names\ could\ be\ unabbreviated.=저널 이름을 축약할 수 없습니다. + + +not=아니다 + +not\ found=찾을 수 없습니다. + +Nothing\ to\ redo=다시 실행할 작업이 없습니다. + +Nothing\ to\ undo=되돌릴 작업이 없습니다. + +OK=확인 + +One\ or\ more\ keys\ will\ be\ overwritten.\ Continue?=하나 이상의 키를 덮어씁니다. 계속 할건가요? + + +Open=불러오기 + +Open\ library=라이브러리 불러오기 + +Open\ editor\ when\ a\ new\ entry\ is\ created=새 항목이 생성되면 편집기 열기 + +Open\ file=파일 열기 + +Open\ last\ edited\ libraries\ at\ startup=시작 시 마지막으로 편집한 라이브러리 열기 + +Connect\ to\ shared\ database=공유 데이터베이스와 연결 + +Open\ terminal\ here=터미널 지금 열기 + +Open\ URL\ or\ DOI=URL 또는 DOI 열기 + +Opening=불러오는중 + +Operation\ canceled.=작업이 취소되었습니다. +Operating\ System\ (Provides\ for\ better\ recommendations\ by\ giving\ an\ indication\ of\ user's\ system\ set-up.)=운영 체제(사용자의 시스템 설정을 표시하여 더 나은 권장 사항을 제공합니다.) + +Optional\ fields=부가적 항목 + +Options=옵션 + +or=또는 + +Override\ default\ file\ directories=기본 파일 디렉토리 재정의 +Overwrite=덮어쓰기 + +Overwrite\ keys=키 덮어쓰기 + +pairs\ processed=처리된 쌍 +Password=비밀번호 + +Paste=붙여넣기 + +paste\ entries=목록 붙여넣기 + +paste\ entry\ %0=%0 항목 붙여넣기 + +Path\ to\ %0\ not\ defined=%0에 대한 경로가 정의되지 않았습니다. + +Path\ to\ LyX\ pipe=LyX 파이프 경로 + +PDF\ does\ not\ exist=PDF 파일이 존재하지 않습니다 + +File\ has\ no\ attached\ annotations=파일에 첨부된 주석이 없습니다. + +Please\ enter\ a\ name\ for\ the\ group.=그룹 이름을 입력하세요. + +Please\ enter\ the\ string's\ label=문자열의 레이블을 입력하십시오 + +Please\ restart\ JabRef\ for\ preferences\ to\ take\ effect.=기본 설정을 적용하려면 JabRef를 다시 시작하십시오. + +Possible\ duplicate\ entries=중복 가능한 항목 + +Possible\ duplicate\ of\ existing\ entry.\ Click\ to\ resolve.=기존 항목의 중복 가능성이 있습니다. 해결하려면 클릭하세요. + +Preferences=환경 설정 + +Preferences\ recorded.=환경 설정이 기록되었습니다. + +Preview=미리보기 +Citation\ Style=인용 스타일 +Current\ Preview=현재 미리 보기 +Cannot\ generate\ preview\ based\ on\ selected\ citation\ style.=선택한 인용 스타일을 기반으로 미리보기를 생성할 수 없습니다. +Bad\ character\ inside\ entry=항목 내부의 잘못된 문자 +Error\ while\ generating\ citation\ style=인용 스타일을 생성하는 동안 오류가 발생했습니다. +Preview\ style\ changed\ to\:\ %0=미리보기 스타일이 다음으로 변경됨\: %0 +Next\ preview\ layout=다음 미리보기 레이아웃 +Previous\ preview\ layout=이전 미리보기 레이아웃 +Available=사용 가능 +Selected=선택된 +Selected\ Layouts\ can\ not\ be\ empty=선택한 레이아웃은 비워둘 수 없습니다. +Reset\ default\ preview\ style=기본 미리보기 스타일 재설정 +Previous\ entry=이전 항목 +Problem\ with\ parsing\ entry=항목 구문 분석 문제 +Processing\ %0=%0 처리 중 +Pull\ changes\ from\ shared\ database=공유 데이터베이스에서 변경 사항 가져오기 +Problem\ finding\ files.\ See\ error\ log\ for\ details.=파일을 찾는 데 문제가 있습니다. 자세한 내용은 오류 로그를 참조하십시오 + +Pushed\ citations\ to\ %0=인용을 %0로 푸시했습니다. + +Push\ applications=푸시 애플리케이션 + +Quit\ JabRef=JabRef 종료 + +Read\ only=읽기 전용 + +Redo=다시 실행 + +Refine\ supergroup\:\ When\ selected,\ view\ entries\ contained\ in\ both\ this\ group\ and\ its\ supergroup=상위 그룹 세분화\: 선택하면 이 그룹과 상위 그룹 모두에 포함된 항목을 봅니다. + +regular\ expression=정규식 + +Related\ articles=관련 글 + +Remote\ operation=원격 조작 + +Remove=제거 + +Remove\ subgroups=하위 그룹 제거 + +Remove\ all\ subgroups\ of\ "%0"?="%0"의 모든 하위 그룹을 제거하시겠습니까? + +Remove\ entry\ from\ import=가져오기에서 항목 제거 + +Remove\ selected\ entries\ from\ this\ group=이 그룹에서 선택한 항목 제거 + +Remove\ group=그룹 삭제 + +Remove\ group\ "%0"?=그룹 "%0"을 삭제하겠습니까? + +Remove\ group\ "%0"\ and\ its\ subgroups?=그룹 "%0" 및 해당 하위 그룹을 제거하시겠습니까? + +Remove\ group\ and\ subgroups=그룹 및 하위 그룹 제거 + +Remove\ link=링크 삭제 + +Remove\ old\ entry=오래된 항목 삭제 + +Remove\ string\ %0=문자열 %0 삭제 + +Removed\ group\ "%0".=그룹 %0 삭제 + +Removed\ group\ "%0"\ and\ its\ subgroups.=그룹 "%0" 및 해당 하위 그룹을 제거했습니다. + +Removed\ string=문자열 삭제 완료 + +Renamed\ string=문자열 이름 변경 완료 + +Replace=바꾸기 +Replace\ With\:=다음으로 교체\: +Limit\ to\ Selected\ Entries=선택한 항목으로 제한 +Limit\ to\ Fields=필드로 제한 +All\ Field\ Replace=모든 필드 바꾸기 +Find\:=찾기\: +Find\ and\ Replace=찾기 및 바꾸기 + +Replace\ (regular\ expression)=바꾸기(정규 표현식) + +Replace\ String=문자열 바꾸기 +Replace\ string=문자열 바꾸기 + +Replace\ Unicode\ ligatures=유니코드 연결 바꾸기 +Replaces\ Unicode\ ligatures\ with\ their\ expanded\ form=확장된 형식으로 유니코드 합자를 대체합니다. + +Required\ fields=필수 입력 사항 + +Reset\ all=모두 재설정 + +Resolve\ strings\ for\ all\ fields\ except=다음을 제외한 모든 필드의 문자열 확인 +Resolve\ strings\ for\ standard\ BibTeX\ fields\ only=표준 BibTeX 필드에 대해서만 문자열 해석 + +resolved=해결 + +Restart=다시 시작 + +Restart\ required=다시 시작하세요. + + +Review=검토 +Review\ changes=변경 사항 검토 +Review\ Field\ Migration=필드 마이그레이션 검토 + +Save=저장 +Save\ all\ finished.=모든 라이브러리 저장 완료 + +Save\ all\ open\ libraries=열려 있는 모든 라이브러리 저장 + +Save\ before\ closing=닫기 전에 저장 + +Save\ library=라이브러리 저장 +Save\ library\ as...=다른 형식으로 라이브러리 저장 + +Saved\ selected\ to\ '%0'.='%0'으로 선택해서 저장했습니다. + +Saving=저장 중 +Saving\ all\ libraries...=모든 라이브러리 저장 중... + +Saving\ library=라이브러리 저장 + +Search=검색 + +Search\ expression=수식 검색 + +Searching\ for\ duplicates...=중복 검색 중... + +Searching\ for\ files=파일 검색 + +Select\ all=전체 선택 +Select\ new\ encoding=새 인코딩 선택 + +Select\ entry\ type=항목 유형 선택 + +Select\ file\ from\ ZIP-archive=ZIP 아카이브에서 파일 선택 + +Select\ the\ tree\ nodes\ to\ view\ and\ accept\ or\ reject\ changes=변경 사항을 보고 수락하거나 거부할 트리 노드를 선택합니다. + +Set\ field=필드 설정 +Set\ fields=필드 설정 + +Settings=설정 + +Shortcut=단축키 + +Show/edit\ %0\ source=%0 소스 표시/편집 + +Show\ 'Firstname\ Lastname'='이름 성' 표시 + +Show\ 'Lastname,\ Firstname'='성 이름' 표시 + +Show\ BibTeX\ source\ by\ default=기본적으로 BibTeX 소스 표시 + +Show\ confirmation\ dialog\ when\ deleting\ entries=항목을 삭제할 때 확인 대화 상자 표시 + +Show\ last\ names\ only=성만 표시 + +Show\ names\ unchanged=변경되지 않은 이름 표시 + +Show\ optional\ fields=선택 필드 표시 + +Show\ required\ fields=필수 필드 표시 + +Show\ validation\ messages=확인 메시지 표시 + +Simple\ HTML=간단한 HTML +Since\ the\ 'Review'\ field\ was\ deprecated\ in\ JabRef\ 4.2,\ these\ two\ fields\ are\ about\ to\ be\ merged\ into\ the\ 'Comment'\ field.='검토' 필드는 JabRef 4.2에서 더 이상 사용되지 않으므로 이 두 필드는 '설명' 필드로 병합됩니다. + +Size=크기 + +Skipped\ -\ No\ PDF\ linked=건너뜀 - 연결된 PDF 없음 +Skipped\ -\ PDF\ does\ not\ exist=건너뜀 - PDF가 존재하지 않습니다 + +Skipped\ entry.=항목을 건너뛰었습니다. + +Sort\ subgroups=하위 그룹 정렬 + +source\ edit=소스 편집 +Special\ name\ formatters=특수 이름 포맷터 + +Statically\ group\ entries\ by\ manual\ assignment=수동 할당으로 항목을 정적으로 그룹화 + +Status=상태 +Strings\ for\ library=라이브러리용 문자열 + +Sublibrary\ from\ AUX\ to\ BibTeX=AUX에서 BibTeX로의 서브 라이브러리 + +Switches\ between\ full\ and\ abbreviated\ journal\ name\ if\ the\ journal\ name\ is\ known.=저널 이름을 알고 있는 경우 전체 저널 이름과 약식 저널 이름 사이를 전환합니다. + +The\ chosen\ encoding\ '%0'\ could\ not\ encode\ the\ following\ characters\:=선택한 인코딩 '%0'은 다음 문자를 인코딩할 수 없습니다. + + +the\ field\ %0=필드 %0 +The\ group\ "%0"\ already\ contains\ the\ selection.=그룹 "%0"에 이미 선택 항목이 포함되어 있습니다. + +The\ label\ of\ the\ string\ cannot\ be\ a\ number.=문자열의 레이블은 숫자일 수 없습니다. + +The\ label\ of\ the\ string\ cannot\ contain\ spaces.=문자열의 레이블에는 공백이 포함될 수 없습니다. + +The\ label\ of\ the\ string\ cannot\ contain\ the\ '\#'\ character.=문자열의 레이블은 '\#' 문자를 포함할 수 없습니다. + +The\ output\ option\ depends\ on\ a\ valid\ import\ option.=출력 옵션은 유효한 가져오기 옵션에 따라 다릅니다. + +The\ search\ is\ case\ insensitive.=검색은 대소문자를 구분하지 않습니다. + +The\ search\ is\ case\ sensitive.=검색은 대소문자를 구분합니다. + +There\ are\ possible\ duplicates\ that\ haven't\ been\ resolved.\ Continue?=해결되지 않은 중복 가능성이 있습니다. 계속하다? + +This\ operation\ requires\ all\ selected\ entries\ to\ have\ citation\ keys\ defined.=이 작업을 수행하려면 선택한 모든 항목에 인용 키가 정의되어 있어야 합니다. + +This\ operation\ requires\ one\ or\ more\ entries\ to\ be\ selected.=이 작업을 수행하려면 하나 이상의 항목을 선택해야 합니다. + +This\ setting\ may\ be\ changed\ in\ preferences\ at\ any\ time.=이 설정은 환경 설정에서 언제든지 변경할 수 있습니다. +Timezone\ (Provides\ for\ better\ recommendations\ by\ indicating\ the\ time\ of\ day\ the\ request\ is\ being\ made.)=시간대(요청이 이루어지는 시간을 표시하여 더 나은 권장 사항을 제공합니다.) +Time\ stamp=타임스탬프 +Toggle\ groups\ interface=토글 그룹 인터페이스 + +Trim\ all\ whitespace\ characters\ in\ the\ field\ content.=필드 내용의 모든 공백 문자를 자릅니다. + +Trim\ whitespace\ characters=공백 문자 자르기 + +Try\ different\ encoding=다른 인코딩 시도 + +Unabbreviate\ journal\ names\ of\ the\ selected\ entries=선택한 항목의 저널 이름을 축약하지 않음 +Unabbreviated\ %0\ journal\ names.=축약되지 않은 %0 저널 이름입니다. + +unable\ to\ write\ to=기록할 수 없습니다. + +Undo=되돌리기 + +Unknown\ BibTeX\ entries\:=알 수 없는 BibTeX 항목\: + +unknown\ edit=알 수 없는 편집 + +Unknown\ export\ format=알 수 없는 내보내기 형식 + +untitled=제목 없음 + +Upgrade\ external\ PDF/PS\ links\ to\ use\ the\ '%0'\ field.='%0' 필드를 사용하려면 외부 PDF/PS 링크를 업그레이드하십시오. + +usage=사용법 +Use\ autocompletion=자동 완성 사용 + +Use\ regular\ expression\ search=정규식 검색 사용 + +Username=사용자 이름 + +Value\ cleared\ externally=외부에서 값이 지워짐 + +Value\ set\ externally=외부에서 설정한 값 + +verify\ that\ LyX\ is\ running\ and\ that\ the\ lyxpipe\ is\ valid=LyX가 실행 중이고 lyxpipe가 유효한지 확인하십시오. + +View=보기 +Vim\ server\ name=Vim 서버 이름 + +Warn\ about\ unresolved\ duplicates\ when\ closing\ inspection\ window=검사 창을 닫을 때 해결되지 않은 중복에 대해 경고 + +Warn\ before\ overwriting\ existing\ keys=기존 키를 덮어쓰기 전에 경고 띄우기 + +Warning=경고 + +Warnings=경고 + +web\ link=웹 링크 + +What\ do\ you\ want\ to\ do?=어떤 작업을 수행하시겠습니까? +Whatever\ option\ you\ choose,\ Mr.\ DLib\ may\ share\ its\ data\ with\ research\ partners\ to\ further\ improve\ recommendation\ quality\ as\ part\ of\ a\ 'living\ lab'.\ Mr.\ DLib\ may\ also\ release\ public\ datasets\ that\ may\ contain\ anonymized\ information\ about\ you\ and\ the\ recommendations\ (sensitive\ information\ such\ as\ metadata\ of\ your\ articles\ will\ be\ anonymised\ through\ e.g.\ hashing).\ Research\ partners\ are\ obliged\ to\ adhere\ to\ the\ same\ strict\ data\ protection\ policy\ as\ Mr.\ DLib.=어떤 옵션을 선택하든 Mr. DLib은 '살아있는 연구실'의 일부로 추천 품질을 더욱 향상시키기 위해 연구 파트너와 데이터를 공유할 수 있습니다. Mr. DLib는 또한 귀하 및 권장 사항에 대한 익명 정보를 포함할 수 있는 공개 데이터 세트를 공개할 수 있습니다(귀하의 기사 메타데이터와 같은 민감한 정보는 해싱 등을 통해 익명화됩니다). 연구 파트너는 Mr. DLib와 동일한 엄격한 데이터 보호 정책을 준수해야 합니다. + +Will\ write\ XMP\ metadata\ to\ the\ PDFs\ linked\ from\ selected\ entries.=선택한 항목에서 링크된 PDF에 XMP 메타데이터를 씁니다. + +Write\ BibTeXEntry\ as\ metadata\ to\ PDF.=BibTeXEntry를 PDF에 메타데이터로 씁니다. +Write\ metadata\ for\ all\ PDFs\ in\ current\ library?=모든 PDF에 대한 메타데이터를 현재 라이브러리에서 작성하시겠습니까? +Writing\ metadata\ for\ selected\ entries...=선택된 항목에 관한 메타데이터 작성 중... +Writing\ metadata...=메타데이터 작성 중... + +Write\ XMP=XMP 작성 +Embed\ BibTeXEntry\ in\ PDF.=PDF에 BibTeXEntry를 포함합니다. +Write\ BibTeXEntry\ as\ XMP\ metadata\ to\ PDF.=BibTeXEntry를 PDF에 XMP 메타데이터로 씁니다. +Write\ BibTeXEntry\ metadata\ to\ PDF.=BibTeXEntry 메타데이터를 PDF에 씁니다. +Write\ metadata\ to\ PDF\ files=PDF 파일에 메타데이터 쓰기 + +XMP-annotated\ PDF=XMP 주석이 달린 PDF +XMP\ export\ privacy\ settings=XMP 내보내기 개인 정보 설정 +XMP\ metadata=XMP 메타데이터 +You\ must\ restart\ JabRef\ for\ this\ to\ come\ into\ effect.=이를 적용하려면 JabRef를 다시 시작해야 합니다. + +The\ following\ fetchers\ are\ available\:=다음 데이터 검색기를 사용할 수 있습니다. +Could\ not\ find\ fetcher\ '%0'=데이터 검색기 '% 0'을 찾을 수 없습니다 +Running\ query\ '%0'\ with\ fetcher\ '%1'.=검색기 '% 1'을 사용하여 쿼리 '% 0' 실행 중 +Invalid\ query.\ Check\ position\ %0.=잘못된 쿼리입니다. 위치 %0을 확인하십시오. +Invalid\ query\ element\ '%0'\ at\ position\ %1=위치 %1의 잘못된 쿼리 요소 '%0' + +Move\ file=파일 이동 +Rename\ file=파일 이름 변경 + +Move\ file\ to\ file\ directory\ and\ rename\ file=파일을 파일 디렉토리로 이동하고 파일 이름 바꾸기 + +Could\ not\ move\ file\ '%0'.=파일 '%0'을 이동할 수 없습니다. +Could\ not\ find\ file\ '%0'.=파일 "%0" 을 찾을 수 없습니다 +Number\ of\ entries\ successfully\ imported=항목들을 성공적으로 가져왔습니다 +Error\ while\ fetching\ from\ %0=%0에서 가져오는 중 오류 발생 + +Refuse\ to\ save\ the\ library\ before\ external\ changes\ have\ been\ reviewed.=외부 변경 사항이 검토되기 전에 라이브러리 저장을 거부합니다. +Library\ protection=라이브러리 보호 +Unable\ to\ save\ library=라이브러리를 저장할 수 없습니다 + +Citation\ key\ generator=인용 키 생성기 +Unable\ to\ open\ link.=링크를 열 수 없습니다. +MIME\ type=MIME 유형 + +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.=이 기능을 사용하면 새 파일을 열거나 새 인스턴스를 여는 대신 이미 실행 중인 JabRef 인스턴스로 가져올 수 있습니다. 예를 들어, 이것은 웹 브라우저에서 JabRef의 파일을 열 때 유용합니다. 이렇게 하면 한 번에 둘 이상의 JabRef 인스턴스를 실행할 수 없습니다. +Run\ fetcher=가져오기 실행 + +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을 찾았습니다(쉼표 누락). +No\ full\ text\ document\ found=전체 텍스트 문서를 찾을 수 없습니다. +Download\ from\ URL=URL에서 다운로드 +Rename\ field=필드 이름 변경 +Append\ field=필드 추가 +Append\ to\ fields=필드에 추가 +Rename\ field\ to=필드 이름 변경 +Move\ contents\ of\ a\ field\ into\ a\ field\ with\ a\ different\ name=필드 내용을 다른 이름의 필드로 이동 + +Cannot\ use\ port\ %0\ for\ remote\ operation;\ another\ application\ may\ be\ using\ it.\ Try\ specifying\ another\ port.=원격 작업에 포트 %0을 사용할 수 없습니다. 다른 응용 프로그램에서 사용 중일 수 있습니다. 다른 포트를 지정해 보십시오. + +Looking\ for\ full\ text\ document...=전체 텍스트 문서를 찾는 중... +Autosave=자동 저장 +A\ local\ copy\ will\ be\ opened.=로컬 사본이 열립니다. +Autosave\ local\ libraries=로컬 라이브러리 자동 저장 +Automatically\ save\ the\ library\ to=라이브러리 자동 저장 +Please\ enter\ a\ valid\ file\ path.=유효한 파일 경로를 입력하십시오. +Error\ opening\ file\ '%0'.=파일 '%0'을 여는 동안 오류가 발생했습니다. + +Formatter\ not\ found\:\ %0=포맷터를 찾을 수 없음\: %0 + +Could\ not\ save,\ file\ locked\ by\ another\ JabRef\ instance.=저장할 수 없습니다. 다른 JabRef 인스턴스에 의해 잠긴 파일입니다. +Metadata\ change=메타데이터 변경 +The\ following\ metadata\ changed\:=다음 메타데이터가 변경되었습니다. + +Unable\ to\ create\ backup=백업을 생성할 수 없습니다. +Move\ file\ to\ file\ directory=파일을 파일 디렉토리로 이동 +All\ Entries\ (this\ group\ cannot\ be\ edited\ or\ removed)=모든 항목(이 그룹은 편집하거나 제거할 수 없음) +static\ group=정적 그룹 +dynamic\ group=동적 그룹 +refines\ supergroup=상위 그룹을 정제하다 +includes\ subgroups=하위 그룹 포함 +contains=포함 +search\ expression=검색 표현식 + +Optional\ fields\ 2=선택 필드 2 +Waiting\ for\ save\ operation\ to\ finish=저장 작업이 완료되기를 기다리는 중 +Waiting\ for\ background\ tasks\ to\ finish.\ Quit\ anyway?=끝내야할 백그라운드 작업이 남아있습니다. 종료하시겠습니까? + +Find\ and\ remove\ duplicate\ citation\ keys=중복 인용 키 찾기 및 제거 +Expected\ syntax\ for\ --fetch\='\:'=--fetch\='<페처 이름>\:<쿼리>'에 대한 예상 구문 +Duplicate\ citation\ key=인용 키 중복 + + +General\ file\ directory=일반 파일 디렉토리 +User-specific\ file\ directory=사용자별 파일 디렉토리 +LaTeX\ file\ directory=LaTeX 파일 디렉토리 +Search\ failed\:\ illegal\ search\ expression=검색 실패\: 잘못된 검색 표현 + +You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=1025-65535 간격으로 정수 값을 입력해야 합니다. +Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only='이름 성' 형식의 이름만 자동 완성 +Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only='성, 이름' 형식의 이름만 자동 완성 +Autocomplete\ names\ in\ both\ formats=두 형식의 이름 자동 완성 +Send\ as\ email=이메일로 보내기 +References=레퍼런스 +Sending\ of\ emails=이메일 전송 +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.=일치하는 검색이 없습니다. +The\ output\ option\ depends\ on\ a\ valid\ input\ option.=출력 옵션은 유효한 입력 옵션에 따라 다릅니다. +Linked\ file\ name\ conventions=연결된 파일 이름 규칙 +Filename\ format\ pattern=파일 이름 형식 패턴 +Additional\ parameters=추가 매개변수 +Cite\ selected\ entries\ between\ parenthesis=괄호 사이에 선택한 항목 인용 +Cite\ selected\ entries\ with\ in-text\ citation=텍스트 내 인용으로 선택한 항목 인용 +Cite\ special=특별 인용 +Extra\ information\ (e.g.\ page\ number)=추가 정보(예\: 페이지 번호) +Manage\ citations=인용 관리 +Problem\ modifying\ citation=인용 수정 문제 +Citation=인용 +Connecting...=연결 중… +Could\ not\ resolve\ BibTeX\ entry\ for\ citation\ marker\ '%0'.=인용 표시자 '%0'에 대한 BibTeX 항목을 해결할 수 없습니다. +Select\ style=스타일 선택 +Journals=기록일지 +Cite=인용하다 +Cite\ in-text=텍스트 내 인용 +Insert\ empty\ citation=빈 인용 삽입 +Merge\ citations=인용문 병합 +Manual\ connect=수동 연결 +Select\ Writer\ document=작성자 문서 선택 +Sync\ OpenOffice/LibreOffice\ bibliography=OpenOffice/LibreOffice 참고 문헌 동기화 +Select\ which\ open\ Writer\ document\ to\ work\ on=작업할 열려 있는 Writer 문서 선택 +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\ 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=자동 검색 실패 +Please\ wait...=잠시 기다려 주십시오... +Connection\ lost=연결 실패 +The\ paragraph\ format\ is\ controlled\ by\ the\ property\ 'ReferenceParagraphFormat'\ or\ 'ReferenceHeaderParagraphFormat'\ in\ the\ style\ file.=단락 형식은 스타일 파일의 'ReferenceParagraphFormat' 또는 'ReferenceHeaderParagraphFormat' 속성에 의해 제어됩니다. +The\ character\ format\ is\ controlled\ by\ the\ citation\ property\ 'CitationCharacterFormat'\ in\ the\ style\ file.=문자 형식은 스타일 파일의 인용 속성 'CitationCharacterFormat'에 의해 제어됩니다. +Automatically\ sync\ bibliography\ when\ inserting\ citations=인용 삽입 시 참고 문헌 자동 동기화 +Look\ up\ BibTeX\ entries\ in\ the\ active\ tab\ only=활성 탭에서만 BibTeX 항목을 찾습니다. +Look\ up\ BibTeX\ entries\ in\ all\ open\ libraries=열려 있는 모든 라이브러리에서 BibTeX 항목 검색 +Autodetecting\ paths...=경로 자동 감지 중... +Could\ not\ find\ OpenOffice/LibreOffice\ installation=OpenOffice/LibreOffice 설치를 찾을 수 없습니다 +Found\ more\ than\ one\ OpenOffice/LibreOffice\ executable.=둘 이상의 OpenOffice/LibreOffice 실행 파일을 찾았습니다. +Please\ choose\ which\ one\ to\ connect\ to\:=연결할 것을 선택하십시오\: +Choose\ OpenOffice/LibreOffice\ executable=OpenOffice/LibreOffice 실행 파일 선택 +Select\ document=문서 선택 +HTML\ list=HTML 목록 +If\ possible,\ normalize\ this\ list\ of\ names\ to\ conform\ to\ standard\ BibTeX\ name\ formatting=가능한 경우 표준 BibTeX 이름 형식을 준수하도록 이 이름 목록을 정규화하십시오. +Could\ not\ open\ %0=%0을 열 수 없습니다 +Unknown\ import\ format=알 수 없는 가져오기 형식 +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 프로그램을 실행할 수 없습니다. emacsclient/gnuclient 프로그램이 설치되어 있고 PATH에서 사용할 수 있는지 확인하십시오. +You\ must\ select\ either\ a\ valid\ style\ file,\ or\ use\ one\ of\ the\ default\ styles.=유효한 스타일 파일을 고르거나 기본 스타일 파일을 사용해야 합니다 + +This\ feature\ generates\ a\ new\ library\ based\ on\ which\ entries\ are\ needed\ in\ an\ existing\ LaTeX\ document.=이 기능은 기존 LaTeX 문서에 필요한 항목을 기반으로 새 라이브러리를 생성합니다. + +First\ select\ entries\ to\ clean\ up.=삭제할 목록들을 먼저 선택하세요 +Cleanup\ entry=정리 항목 +Autogenerate\ PDF\ Names=PDF 이름 자동 생성 +Auto-generating\ PDF-Names\ does\ not\ support\ undo.\ Continue?=자동 생성된 PDF 이름이 '되돌리기'를 지원하지 않습니다. 진행하시겠습니까? + +Use\ full\ firstname\ whenever\ possible=되도록이면 전체 이름을 사용하세요 +Use\ abbreviated\ firstname\ whenever\ possible=되도록이면 짧은 이름을 사용하세요 +Use\ abbreviated\ and\ full\ firstname=약어 및 전체 이름 사용 +Name\ format=이름 형식 +First\ names=이름 +Cleanup\ entries=정리 항목 +Automatically\ assign\ new\ entry\ to\ selected\ groups=선택한 그룹에 자동으로 새 항목 할당 +%0\ mode=%0 모드 +Move\ DOIs\ from\ note\ and\ URL\ field\ to\ DOI\ field\ and\ remove\ http\ prefix=메모 및 URL 필드에서 DOI 필드로 DOI 이동 및 http 접두사 제거 +Make\ paths\ of\ linked\ files\ relative\ (if\ possible)=연결된 파일의 경로를 상대적으로 만듭니다(가능한 경우). +Rename\ PDFs\ to\ given\ filename\ format\ pattern=PDF의 이름을 주어진 파일 이름 포맷 유형으로 바꾸세요 +Rename\ only\ PDFs\ having\ a\ relative\ path=관련 경로가 있는 PDF 파일의 이름을 바꾸세요. +Doing\ a\ cleanup\ for\ %0\ entries...=%0 목록들 삭제 중... +No\ entry\ needed\ a\ clean\ up=삭제할 목록들이 없습니다 +One\ entry\ needed\ a\ clean\ up=1개 목록을 삭제해야 합니다 +%0\ entries\ needed\ a\ clean\ up=%0개 목록을 삭제해야 합니다 + +Group\ tree\ could\ not\ be\ parsed.\ If\ you\ save\ the\ BibTeX\ library,\ all\ groups\ will\ be\ lost.=그룹 트리를 구문 분석할 수 없습니다. BibTeX 라이브러리를 저장하면 모든 그룹이 손실됩니다. +Attach\ file=파일 첨부 +Setting\ all\ preferences\ to\ default\ values.=모든 기본 설정을 기본값으로 설정합니다. +Resetting\ preference\ key\ '%0'=기본 설정 키 '%0' 재설정 중 +Unable\ to\ clear\ preferences.=기본 설정을 지울 수 없습니다. + +Unselect\ all=모두 선택해제 +Expand\ all=전체 확장하기 +Collapse\ all=모두 축소하기 +Searches\ the\ selected\ directory\ for\ unlinked\ files.=링크되지 않은 파일에 대해 선택한 디렉토리를 검색합니다. +Starts\ the\ import\ of\ BibTeX\ entries.=BibTeX 항목 가져오기를 시작합니다. +Last\ edited\:=마지막으로 수정됨\: +All\ time=모든 기간 +last\ edited=마지막으로 수정됨 +Last\ day=지난 1일 +Last\ week=지난 주 +Last\ month=지난 달\n +Last\ year=지난 해 +Sort\ by\:=정렬 기준\: +Newest\ first=최신순 +Oldest\ first=오래된 순 +Directory=디렉토리 +Search\ results=검색 결과 +Import\ result=결과 가져오기 +Searching\ file\ system...=파일 시스템 검색 중... +Citation\ key\ patterns=인용 키 패턴 +Clear\ priority=우선순위 초기화 +Clear\ rank=순위 제거 +Enable\ special\ fields=특수 필드 활성화 +One\ star=별 1개 +Two\ stars=별 2개 +Three\ stars=별 3개 +Four\ stars=별 4개 +Five\ stars=별 5개 +Help\ on\ special\ fields=특수 분야에 대한 도움말 +Keywords\ of\ selected\ entries=선택한 항목의 키워드 +Manage\ content\ selectors=콘텐츠 선택기 관리 +Content\ selectors=콘텐츠 선택기 +Manage\ keywords=키워드 관리 +No\ priority\ information=우선순위에 대한 정보가 없습니다 +No\ rank\ information=순위 정보가 없습니다. +Priority=우선순위 +Priority\ high=높은 우선순위 +Priority\ low=낮은 우선순위 +Priority\ medium=중간 우선순위 +Quality=품질 +Rank=순위 +Relevance=연관성 +Set\ priority\ to\ high=높은 우선 순위로 설정 +Set\ priority\ to\ low=낮은 우선 순위로 설정 +Set\ priority\ to\ medium=중간 우선 순위로 설정 +Synchronize\ with\ keywords=키워드 동기화 +Synchronized\ special\ fields\ based\ on\ keywords=키워드 기반 동기화된 특수 필드 +Toggle\ relevance=관련성 전환 +Toggle\ quality\ assured=토글 품질 보증 +Toggle\ print\ status=인쇄 상태 전환 +Update\ keywords=키워드 업데이트 +Write\ values\ of\ special\ fields\ as\ separate\ fields\ to\ BibTeX=특수 필드의 값을 BibTeX에 별도의 필드로 쓰기 +Connection\ to\ OpenOffice/LibreOffice\ has\ been\ lost.\ Please\ make\ sure\ OpenOffice/LibreOffice\ is\ running,\ and\ try\ to\ reconnect.=OpenOffice/LibreOffice에 대한 연결이 끊어졌습니다. OpenOffice/LibreOffice가 실행 중인지 확인하고 다시 연결하십시오. +JabRef\ will\ send\ at\ least\ one\ request\ per\ entry\ to\ a\ publisher.=JabRef는 게시자에게 항목당 하나 이상의 요청을 보냅니다. +Correct\ the\ entry,\ and\ reopen\ editor\ to\ display/edit\ source.=항목을 수정하고 편집기를 다시 열어 소스를 표시/편집하십시오. +Could\ not\ connect\ to\ running\ OpenOffice/LibreOffice.=동작중인 OpenOffice/LibreOffice에 연결할 수 없습니다 +Make\ sure\ you\ have\ installed\ OpenOffice/LibreOffice\ with\ Java\ support.=Java support를 통해 OpenOffice/LibreOffice를 설치했는지 확인하세요. +If\ connecting\ manually,\ please\ verify\ program\ and\ library\ paths.=직접 연결한다면, 프로그램과 라이브러리의 경로를 확인하세요. +Error\ message\:=오류 메시지\: +If\ a\ pasted\ or\ imported\ entry\ already\ has\ the\ field\ set,\ overwrite.=붙여넣거나 가져온 항목에 이미 필드 세트가 있는 경우 덮어씁니다. +Not\ connected\ to\ any\ Writer\ document.\ Please\ make\ sure\ a\ document\ is\ open,\ and\ use\ the\ 'Select\ Writer\ document'\ button\ to\ connect\ to\ it.=Writer 문서에 연결되어 있지 않습니다. 문서가 열려 있는지 확인하고 '작성자 문서 선택' 버튼을 사용하여 문서에 연결하십시오. +Removed\ all\ subgroups\ of\ group\ "%0".=그룹 "%0"의 모든 하위 그룹을 제거했습니다. +To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=메모리 스틱 모드를 비활성화하려면 JabRef와 동일한 폴더에서 jabref.xml 파일의 이름을 바꾸거나 제거하십시오. +Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=연결할 수 없습니다. 한 가지 가능한 이유는 JabRef와 OpenOffice/LibreOffice가 모두 32비트 모드나 64비트 모드에서 실행되고 있지 않기 때문입니다. +Delimiter(s)=구분 기호 +Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=스타일 파일은 현재 OpenOffice/LibreOffice 문서에서 정의되지 않은 문자 형식 '%0'을 지정합니다. +Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=스타일 파일은 현재 OpenOffice/LibreOffice 문서에서 정의되지 않은 단락 형식 '%0'을 지정합니다. + +Searching...=검색 중... +Please\ enter\ a\ search\ string=검색 문자열을 입력하십시오 +Please\ open\ or\ start\ a\ new\ library\ before\ searching=검색전에 새 라이브러리를 열거나 시작하세요 + +Canceled\ merging\ entries=병합 항목이 취소됨 + +Merge\ entries=항목 병합 +Merged\ entry=병합 항목 +Merged\ entries=병합 항목 +None=없음 +Parse=분석 +Result=결과 +You\ have\ to\ choose\ exactly\ two\ entries\ to\ merge.=병합하려면 정확히 두 개의 항목을 선택해야 합니다. + +Add\ timestamp\ to\ modified\ entries\ (field\ "modificationdate")=수정된 항목에 타임스탬프 추가(필드 "수정 날짜") +Add\ timestamp\ to\ new\ entries\ (field\ "creationdate")=새 항목에 타임스탬프 추가(필드 "creationdate") +All\ key\ bindings\ will\ be\ reset\ to\ their\ defaults.=모든 키 바인딩이 기본값으로 재설정됩니다. + +Automatically\ set\ file\ links=자동으로 파일 링크 설정 +Finished\ automatically\ setting\ external\ links.=외부 링크 자동 설정을 완료했습니다. +Changed\ %0\ entries.=%0 항목이 변경되었습니다. + +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=사용자 지정 프록시 구성 사용 +Proxy\ requires\ authentication=프록시에 인증이 필요합니다. +Attention\:\ Password\ is\ stored\ in\ plain\ text\!=주의\: 비밀번호는 일반 텍스트로 저장됩니다\! +Clear\ connection\ settings=연결 설정 지우기 + +Open\ folder=폴더 열기 +Export\ sort\ order=정렬 순서 내보내기 +Save\ sort\ order=정렬 순서 저장 + +Keep\ original\ order=원래 순서 유지 +Use\ current\ table\ sort\ order=현재 테이블 정렬 순서 사용 +Use\ specified\ order=지정된 순서 사용 +Show\ extra\ columns=추가 열 표시 +Parsing\ error=구문분석 오류 +illegal\ backslash\ expression=잘못된 백슬래시 표현 + +Clear\ read\ status=읽기 상태 초기화 +Convert\ to\ biblatex\ format\ (for\ example,\ move\ the\ value\ of\ the\ 'journal'\ field\ to\ 'journaltitle')=biblatex 포맷 변경(예. journal 필드 이름을 journaltitle로 바꿈) +Deprecated\ fields=사용되지 않는 필드 +No\ read\ status\ information=읽기 상태에 대한 정보가 없습니다 +Printed=인쇄 +Read\ status=읽기 상태 +Read\ status\ read=읽음 +Read\ status\ skimmed=훑어봄 +Save\ selected\ as\ plain\ BibTeX...=선택 항목을 일반 BibTeX로 저장... +Set\ read\ status\ to\ read=읽기 상태를 '읽음'으로 설정 +Set\ read\ status\ to\ skimmed=읽기 상태를 '훑어봄'으로 설정 +Show\ deprecated\ BibTeX\ fields=더 이상 사용되지 않는 BibTeX 필드 표시 + +Opens\ JabRef's\ GitHub\ page=JabRef 깃허브 페이지 바로가기 +Opens\ JabRef's\ Twitter\ page=JabRef 트위터 페이지 바로가기 +Opens\ JabRef's\ Facebook\ page=JabRef 페이스북 페이지 바로가기 +Opens\ JabRef's\ blog=JabRef 블로그 바로가기 +Opens\ JabRef's\ website=JabRef 홈페이지 바로가기 + +Could\ not\ open\ browser.=브라우저를 열 수 없습니다. +Please\ open\ %0\ manually.=%0을 수동으로 여십시오. +The\ link\ has\ been\ copied\ to\ the\ clipboard.=링크가 클립보드에 복사되었습니다. + +Open\ %0\ file=%0 파일 열기 + +Cannot\ delete\ file=파일을 삭제할 수 없습니다 +File\ permission\ error=파일 권한 오류 +JabRef\ does\ not\ have\ permission\ to\ access\ %s=JabRef는 %s에 접근할 권한이 없습니다 +Path\ to\ %0=% 0 통과 +Convert=변환 +Normalize\ to\ BibTeX\ name\ format=BibTeX 이름 형식으로 정규화 +Help\ on\ Name\ Formatting=이름 형식에 대한 도움말 + +Add\ new\ file\ type=새로운 파일 형식 추가 + +Left\ entry=왼쪽 항목 +Right\ entry=오른쪽 항목 +Original\ entry=기존 항목 +No\ information\ added=추가된 정보 없음 +Select\ at\ least\ one\ entry\ to\ manage\ keywords.=키워드를 관리할 항목을 하나 이상 선택하십시오. +OpenDocument\ text=OpenDocument 텍스트 +OpenDocument\ spreadsheet=OpenDocument 스프레드시트 +OpenDocument\ presentation=OpenDocument 프레젠테이션 +%0\ image=%0 이미지 +Added\ entry=추가된 항목 +Modified\ entry=수정된 항목 +Deleted\ entry=엔트리 삭제됨 +Modified\ groups\ tree=수정된 그룹 +Removed\ all\ groups=모든 그룹을 제거했습니다. +Accepting\ the\ change\ replaces\ the\ complete\ groups\ tree\ with\ the\ externally\ modified\ groups\ tree.=변경 사항을 수락하면 전체 그룹 트리가 외부에서 수정된 그룹 트리로 바뀝니다. +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\ citation\ key.=경고\: %1 목록에 있는 %0가 정의되지 않은 인용 키를 가지고 있음 +Warning\:\ %0\ out\ of\ %1\ entries\ have\ undefined\ DOIs.=경고\: %1 목록에 있는 %0가 정의되지 않은 DOI를 가지고 있음 +Really\ delete\ the\ selected\ entry?=선택한 항목을 제거하시겠습니까? +Really\ delete\ the\ %0\ selected\ entries?=선택한 항목 %0을 제거하시겠습니까? +Keep\ merged\ entry\ only=합쳐진 항목만 유지 +Keep\ left=왼쪽 항목 유지 +Keep\ right=오른쪽 항목 유지 +Old\ entry=이전 항목 +From\ import=불러오다 +From\ DOI=DOI에서 +No\ problems\ found.=발견된 문제가 없습니다. +Save\ changes=변경사항 저장 +Discard\ changes=변경 내용 취소 +Library\ '%0'\ has\ changed.=라이브러리 '%0'이 변경되었습니다. +Print\ entry\ preview=항목 미리보기 인쇄 +Copy\ title=제목 복사 +Copy\ \\cite{citation\ key}=\\cite{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=예기치 않은 닫는 중괄호 +unexpected\ opening\ curly\ bracket=예기치 않은 여는 중괄호 +capital\ letters\ are\ not\ masked\ using\ curly\ brackets\ {}=대문자는 중괄호 {}를 사용하여 마스킹되지 않습니다. +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 용어가 포함된 항목이 포함되어 있습니다. +This\ search\ contains\ entries\ in\ which=이 검색에는 다음 항목이 포함되어 있습니다. + +Unable\ to\ autodetect\ OpenOffice/LibreOffice\ installation.\ Please\ choose\ the\ installation\ directory\ manually.=OpenOffice/LibreOffice 설치를 자동 감지할 수 없습니다. 설치 디렉토리를 수동으로 선택하십시오. + +Close\ library=라이브러리 닫기 +Entry\ editor,\ next\ entry=항목 설정, 다음 항목 +Entry\ editor,\ next\ panel=항목 편집기, 다음 패널 +Entry\ editor,\ next\ panel\ 2=항목 편집기, 다음 패널2 +Entry\ editor,\ previous\ entry=항목 편집기, 이전 항목 +Entry\ editor,\ previous\ panel=항목 편집기, 이전 패널 +Entry\ editor,\ previous\ panel\ 2=항목 편집기, 이전 패널2 +File\ list\ editor,\ move\ entry\ down=파일 목록 편집기, 항목을 아래로 이동 +File\ list\ editor,\ move\ entry\ up=파일 목록 편집기, 항목을 위로 이동 +Focus\ entry\ table=항목 테이블 포커스 +Import\ into\ current\ library=현재 라이브러리로 가져오기 +Import\ into\ new\ library=새 라이브러리로 가져오기 +New\ article=새 기사 +New\ book=새 책 +New\ entry=새 항목 +New\ inbook=새 수첩 +New\ mastersthesis=새 석사 논문 +New\ phdthesis=새 박사 논문 +New\ proceedings=새로운 절차 +New\ unpublished=게시되지 않은 새 항목 +Preamble\ editor,\ store\ changes=서문 편집기, 변경 사항 저장 +Push\ to\ application=애플리케이션에 푸시 +Refresh\ OpenOffice/LibreOffice=OpenOffice/LibreOffice 새로 고침 +Resolve\ duplicate\ citation\ keys=중복 인용 키 해결 +Save\ all=모든 라이브러리 저장 +String\ dialog,\ add\ string=문자열 대화 상자, 문자열 추가 +String\ dialog,\ remove\ string=문자열 대화 상자, 문자열 제거 +Synchronize\ files=파일 동기화 +Unabbreviate=생략하지 않은 +should\ contain\ a\ protocol=프로토콜을 포함해야 합니다 +Copy\ preview=미리보기 복사 +Copy\ selection=선택 항목 복사 +Automatically\ setting\ file\ links=파일 링크 자동 설정 +Regenerating\ citation\ keys\ according\ to\ metadata=메타데이터를 통한 인용 키 재생성 +Regenerate\ all\ keys\ for\ the\ entries\ in\ a\ BibTeX\ file=BibTeX 파일의 항목에 대한 모든 키 재생성 +Show\ debug\ level\ messages=디버그 수준 메시지 표시 +Default\ library\ mode=기본 라이브러리 모드 +Show\ only\ preferences\ deviating\ from\ their\ default\ value=기본값과 다른 기본 설정만 표시 +default=기본값 +key=키 +type=유형 +value=값 +Show\ preferences=환경 설정 보기 +Save\ actions=작업 저장 +Convert\ to\ BibTeX\ format\ (for\ example,\ move\ the\ value\ of\ the\ 'journaltitle'\ field\ to\ 'journal')=BibTex 포맷 변경(예. journaltitle 라는 이름을 journal로 바꿈) + +Other\ fields=다른 필드 +Show\ remaining\ fields=나머지 필드 표시 + +link\ should\ refer\ to\ a\ correct\ file\ path=링크는 올바른 파일 경로를 참조해야 합니다. +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=복제된 저널 파일 +Error\ Occurred=오류 발생 +Journal\ file\ %s\ already\ added=저널 파일 %s이 이미 추가되었습니다. +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\ citation\ keys.=선택한 목록들이 인용 키를 갖고 있지 않습니다 +None\ of\ the\ selected\ entries\ have\ DOIs.=선택한 목록들이 DOI를 갖고 있지 않습니다 +Unabbreviate\ journal\ names=저널 이름이 축약되지 않았습니다 +Unabbreviating...=축약되지 않은... +Usage=사용법 + + +Adds\ {}\ brackets\ around\ acronyms,\ month\ names\ and\ countries\ to\ preserve\ their\ case.=대소문자를 보존하기 위해 약어, 월 이름 및 국가 주위에 {} 괄호를 추가합니다. +Are\ you\ sure\ you\ want\ to\ reset\ all\ settings\ to\ default\ values?=모든 설정을 기본값으로 재설정하시겠습니까? +Reset\ preferences=환경설정 재설정 +Ill-formed\ entrytype\ comment\ in\ BIB\ file=BIB 파일의 잘못된 형식의 항목 유형 주석 + +Move\ linked\ files\ to\ default\ file\ directory\ %0=연결된 파일을 기본 파일 디렉토리 %0으로 이동 + +Do\ you\ still\ want\ to\ continue?=계속하시겠습니까? +Internal\ style=내부 스타일 +Add\ style\ file=스타일 파일 추가 +Current\ style\ is\ '%0'=현재 스타일\: '%0' +Remove\ style=스타일 제거 +You\ must\ select\ a\ valid\ style\ file.\ Your\ style\ is\ probably\ missing\ a\ line\ for\ the\ type\ "default".=유효한 스타일 파일을 선택해야 합니다. 스타일에 "default" 유형에 대한 줄이 누락되었을 수 있습니다. +Invalid\ style\ selected=유효하지 않은 스타일을 선택함 + +Reload=새로고침 + +Capitalize=대문자로 +Capitalize\ all\ words,\ but\ converts\ articles,\ prepositions,\ and\ conjunctions\ to\ lower\ case.=모든 단어를 대문자로 표시하지만 관사, 전치사 및 접속사는 소문자로 변환합니다. +Capitalize\ the\ first\ word,\ changes\ other\ words\ to\ lower\ case.=첫 번째 단어를 대문자로 바꾸고 다른 단어는 소문자로 바꿉니다. +Changes\ all\ letters\ to\ lower\ case.=모든 글자 소문자로 변경 +Changes\ all\ letters\ to\ upper\ case.=모든 글자 대문자로 변경 +Changes\ the\ first\ letter\ of\ all\ words\ to\ capital\ case\ and\ the\ remaining\ letters\ to\ lower\ case.=첫 글자는 대문자로, 나머지는 소문자로 변경 +Cleans\ up\ LaTeX\ code.=LaTeX 코드 삭제 +Converts\ HTML\ code\ to\ LaTeX\ code.=HTML 코드를 LaTeX 코드로 변경 +HTML\ to\ Unicode=HTML에서 유니코드로 +Converts\ HTML\ code\ to\ Unicode.=HTML 코드를 Unicode로 변경 +Converts\ LaTeX\ encoding\ to\ Unicode\ characters.=LaTeX 인코딩을 Unicode 문자로 변경 +Converts\ Unicode\ characters\ to\ LaTeX\ encoding.=Unicode 문자를 LaTeX 인코딩으로 변경 +Converts\ ordinals\ to\ LaTeX\ superscripts.=서수를 LaTeX 대문자로 변환합니다. +Converts\ units\ to\ LaTeX\ formatting.=단위를 LaTeX 형식으로 변환합니다. +HTML\ to\ LaTeX=HTML에서 LaTeX로 +LaTeX\ cleanup=LaTeX 정리 +LaTeX\ to\ Unicode=LaTeX에서 유니코드로 +Lower\ case=소문자 +Minify\ list\ of\ person\ names=사용자 이름 목록 최소화 +Normalize\ date=날짜 정규화 +Normalize\ en\ dashes=대시 정규화 +Normalize\ month=월 정규화 +Normalize\ month\ to\ BibTeX\ standard\ abbreviation.=월을 BibTeX 표준 약어로 정규화합니다. +Normalize\ names\ of\ persons=사람의 이름을 정규화 +Normalize\ page\ numbers=페이지 번호 표준화 +Normalize\ pages\ to\ BibTeX\ standard.=페이지를 BibTeX 표준으로 표준화합니다. +Normalizes\ lists\ of\ persons\ to\ the\ BibTeX\ standard.=사람 목록을 BibTeX 표준으로 정규화합니다. +Normalizes\ the\ date\ to\ ISO\ date\ format.=날짜를 ISO 날짜 형식으로 표준화합니다. +Normalizes\ the\ en\ dashes.=대시를 정규화합니다. +Ordinals\ to\ LaTeX\ superscript=LaTeX 대문자에 대한 서수 +Protect\ terms=프로젝트 기간 +Add\ enclosing\ braces=둘러싸는 중괄호 추가 +Add\ braces\ encapsulating\ the\ complete\ field\ content.=전체 필드 내용을 캡슐화하는 중괄호를 추가하십시오. +Remove\ enclosing\ braces=둘러싸는 중괄호 제거 +Removes\ braces\ encapsulating\ the\ complete\ field\ content.=전체 필드 내용을 캡슐화하는 중괄호를 제거합니다. +Removes\ all\ balanced\ {}\ braces\ around\ words.=단어 주위의 모든 균형 {} 중괄호를 제거합니다. +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.".="et al."에 2명 이상이면 사람 목록을 줄입니다. +Title\ case=타이틀 케이스 +Unicode\ to\ LaTeX=유니코드를 LaTeX로 +Units\ to\ LaTeX=단위를 LaTeX로 +Upper\ case=대문자 +Does\ nothing.=아무것도 안합니다. +Identity=아이덴티티 +Clears\ the\ field\ completely.=필드를 완전히 지웁니다. +Directory\ not\ found=디렉토리 찾지 못함. +Main\ file\ directory\ not\ set.\ Check\ the\ preferences\ (linked\ files)\ or\ the\ library\ properties.=기본 파일 디렉토리가 설정되지 않았습니다. 환경 설정(링크된 파일) 또는 라이브러리 속성을 확인하십시오. +This\ operation\ requires\ exactly\ one\ item\ to\ be\ selected.=이 작업을 수행하려면 정확히 하나의 항목을 선택해야 합니다. +Opening\ large\ number\ of\ files=많은 양의 파일 열기 +You\ are\ about\ to\ open\ %0\ files.\ Continue?=%0개의 파일을 열려고 합니다. 계속하시겠습니까? +Continue=계속 +Importing\ in\ %0\ format=%0 형식으로 가져오기 +Female\ name=여자 이름 +Female\ names=여자 이름 +Male\ name=남자 이름 +Male\ names=남자 이름 +Mixed\ names=뒤섞인 이름 +Neuter\ name=중성 이름 +Neuter\ names=중성 이름 + +Determined\ %0\ for\ %1\ entries=%1 항목에 대해 %0을 확인했습니다. +Look\ up\ %0=%0 찾아보기 +Looking\ up\ %0...\ -\ entry\ %1\ out\ of\ %2\ -\ found\ %3=%0 찾는 중... - %2 중 %1 항목 - %3을 찾았습니다 + +Audio\ CD=오디오 CD +British\ patent=영국 특허 +British\ patent\ request=영국 특허 요청 +Candidate\ thesis=후보자 논문 +Collaborator=협업자 +Column=열 +Compiler=컴파일러 +Continuator=연속체 +Data\ CD=데이터 CD +Editor=편집기 +European\ patent=유럽 특허 +European\ patent\ request=유럽 특허 신청 +Founder=창립자 +French\ patent=프랑스 특허 +French\ patent\ request=프랑스 특허 신청 +German\ patent=독일 특허 +German\ patent\ request=독일 특허 신청 +Line=선 +Master's\ thesis=석사 논문 +Page=페이지 +Paragraph=절 +Patent=특허 +Patent\ request=특허 요청 +PhD\ thesis=박사 논문 +Redactor=편집자 +Research\ report=연구 보고서 +Reviser=수정자 +Section=섹션 +Software=소프트웨어 +Technical\ report=기술 보고서 +U.S.\ patent=미국 특허 +U.S.\ patent\ request=미국 특허 요청 +Verse=절 + +change\ entries\ of\ group=그룹 항목 변경 +odd\ number\ of\ unescaped\ '\#'=이스케이프 처리되지 않은 '\#'의 홀수 + +Plain\ text=일반 텍스트 +Show\ diff=차이점 표시 +character=성격 +word=단어 +Show\ symmetric\ diff=달라진 부분 보여주기 +Copy\ Version=버전 복사 +Maintainers=관리자 +Contributors=도움을 주신 분들 +License=라이선스 +JabRef\ would\ not\ have\ been\ possible\ without\ the\ help\ of\ our\ contributors.=여러분의 도움이 없었다면 JabRef를 만들지 못했을 것입니다 + +HTML\ encoded\ character\ found=HTML로 코딩된 문자 발견 +booktitle\ ends\ with\ 'conference\ on'=책 제목은 'conference on'으로 끝나야 합니다 + +incorrect\ control\ digit=잘못된 제어 숫자 +incorrect\ format=잘못된 형식 +Copied\ version\ to\ clipboard=클립보드에 버전 복사 + +Citation\ key=인용 키 +Message=메시지 + + +MathSciNet\ Review=MathSciNet 리뷰 +Reset\ Bindings=바인딩 재설정 + +Decryption\ not\ supported.=암호 해독이 지원되지 않습니다. + +Cleared\ '%0'\ for\ %1\ entries=%1 목록에 있는 %0 삭제됨 +Set\ '%0'\ to\ '%1'\ for\ %2\ entries=%2 목록에서 '%0'을 '%1'로 설정 +Toggled\ '%0'\ for\ %1\ entries=%1 항목에 대해 '%0' 전환됨 + +Check\ for\ updates=업데이트 확인 +Download\ update=최신 버전 다운로드 +New\ version\ available=새 버전 이용 가능 +Installed\ version=설치된 버전 +Remind\ me\ later=나중에 다시 알림 +Ignore\ this\ update=해당 업데이트 건너뛰기 +Could\ not\ connect\ to\ the\ update\ server.=업데이트 서버에 연결할 수 없습니다. +Please\ try\ again\ later\ and/or\ check\ your\ network\ connection.=나중에 다시 시도하거나 네트워크 연결을 확인하십시오. +To\ see\ what\ is\ new\ view\ the\ changelog.=새로운 내용을 보려면 변경 로그를 확인하십시오. +A\ new\ version\ of\ JabRef\ has\ been\ released.=JabRef의 새 버전이 나왔습니다 +JabRef\ is\ up-to-date.=최신 버전입니다 +Latest\ version=최신 버전 +Online\ help\ forum=온라인에서 질문하기 +Custom=사용자 정의 + +Export\ cited=사이트 전하기 +Unable\ to\ generate\ new\ library=새 라이브러리를 만들 수 없습니다. + +Found\ identical\ ranges=동일한 범위를 찾았습니다. +Found\ overlapping\ ranges=겹치는 범위를 찾았습니다. +Found\ touching\ ranges=접촉 범위를 찾았습니다. + +Note\:\ Use\ the\ placeholder\ %DIR%\ for\ the\ location\ of\ the\ opened\ library\ file.=참고\: 열린 라이브러리 파일의 위치에 플레이스홀더 %DIR%를 사용하십시오. +Error\ occured\ while\ executing\ the\ command\ "%0".="%0" 명령 실행 중 에러 발생 +Reformat\ ISSN=ISSN 다시 포맷 + +Countries\ and\ territories\ in\ English=영어로 된 국가 및 지역 +Electrical\ engineering\ terms=전기공학 용어 +Enabled=활성화됨 +Internal\ list=내부 목록 +Protected\ terms\ files=보호된 용어 파일 +Months\ and\ weekdays\ in\ English=영어로 된 월과 요일 +The\ text\ after\ the\ last\ line\ starting\ with\ \#\ will\ be\ used=\#으로 시작하는 마지막 줄 뒤의 텍스트가 사용됩니다. +Add\ protected\ terms\ file=보호된 용어 파일 추가 +Are\ you\ sure\ you\ want\ to\ remove\ the\ protected\ terms\ file?=보호 용어 파일을 제거하시겠습니까? +Remove\ protected\ terms\ file=보호 용어 파일 제거 +Add\ selected\ text\ to\ list=선택한 텍스트를 리스트에 추가 +Add\ {}\ around\ selected\ text=선택한 텍스트 주위에 {} 추가 +Format\ field=필드 형식 +New\ protected\ terms\ file=새 보호 용어 파일 +change\ field\ %0\ of\ entry\ %1\ from\ %2\ to\ %3=목록 %1에 있는 %0 필드를 %2에서 %3으로 변경 +change\ key\ from\ %0\ to\ %1=키 값을 %0에서 %1로 변경 +change\ string\ content\ %0\ to\ %1=문자열 내용 %0에서 %1로 변경 +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=알 수 없음 +Cannot\ get\ info\ based\ on\ given\ %0\:\ %1=지정된 %0에 기반한 정보를 가져올 수 없음\: %1 +Get\ bibliographic\ data\ from\ %0=%0에서 서지 데이터 가져오기 +No\ %0\ found=%0을 찾을 수 없습니다. +Entry\ from\ %0=%0의 항목 +Merge\ entry\ with\ %0\ information=%0 정보와 항목 병합 +Updated\ entry\ with\ info\ from\ %0=%0의 정보로 업데이트된 항목 + +Add\ new\ list=새 목록 추가 +Open\ existing\ list=기존 목록 열기 +Remove\ list=목록 제거 +Add\ abbreviation=약어 추가 +Full\ journal\ name=전체 저널 이름 +Abbreviation\ name=약어 이름 +Shortest\ unique\ abbreviation=가장 짧은 고유 약어 + +No\ abbreviation\ files\ loaded=로드된 약어 파일이 없습니다. + +Loading\ built\ in\ lists=기본 제공 목록 로드 + +JabRef\ built\ in\ list=JabRef 내장 목록 + +Event\ log=이벤트 로그 +We\ now\ give\ you\ insight\ into\ the\ inner\ workings\ of\ JabRef's\ internals.\ This\ information\ might\ be\ helpful\ to\ diagnose\ the\ root\ cause\ of\ a\ problem.\ Please\ feel\ free\ to\ inform\ the\ developers\ about\ an\ issue.=이제 JabRef 내부의 내부 작동에 대한 통찰력을 제공합니다. 이 정보는 문제의 근본 원인을 진단하는 데 도움이 될 수 있습니다. 개발자에게 문제에 대해 자유롭게 알려주십시오. +Log\ copied\ to\ clipboard.=기록이 클립보드에 복사됨 +Copy\ Log=기록 복사 +Clear\ Log=기록 삭제 +Report\ Issue=문제 보고 +Issue\ on\ GitHub\ successfully\ reported.=깃허브에 이슈가 성공적으로 제출되었습니다 +Issue\ report\ successful=성공적으로 이슈를 알렸습니다 +Your\ issue\ was\ reported\ in\ your\ browser.=브라우저에서 이슈를 알렸습니다 +The\ log\ and\ exception\ information\ was\ copied\ to\ your\ clipboard.=로그 정보와 예외 정보가 클립보드에 저장되었습니다 +Please\ paste\ this\ information\ (with\ Ctrl+V)\ in\ the\ issue\ description.=문제 설명에 이 정보를 붙여넣으십시오(Ctrl+V 사용). + +Host=호스트 +Port=포트 +Library=라이브러리 +User=사용자 +Connect=연결 +Connection\ error=연결 오류 +Connection\ to\ %0\ server\ established.=%0 서버에 연결됨 +There\ are\ connection\ issues\ with\ a\ JabRef\ server.\ Detailed\ information\:\ %0.=JabRef 서버와 연관된 이슈가 있습니다.\n설명\: %0 +Required\ field\ "%0"\ is\ empty.=필수 필드 "%0"이 비어 있습니다. +%0\ driver\ not\ available.=%0 드라이버를 사용할 수 없습니다. +The\ connection\ to\ the\ server\ has\ been\ terminated.=서버와의 연결이 끊겼습니다 +Reconnect=재접속 +Work\ offline=오프라인에서 작업 +Working\ offline.=오프라인에서 작업 중 +Update\ refused.=업데이트가 거부되었습니다. +Update\ refused=업데이트가 거부되었습니다 +Update\ could\ not\ be\ performed\ due\ to\ existing\ change\ conflicts.=기존 변경 충돌로 인해 업데이트를 수행할 수 없습니다. +You\ are\ not\ working\ on\ the\ newest\ version\ of\ BibEntry.=최신 버전의 BibEntry에서 작업하고 있지 않습니다. +Local\ version\:\ %0=설치된 버전\: %0 +Shared\ version\:\ %0=공유 버전\: %0 +Press\ "Merge\ entries"\ to\ merge\ the\ changes\ and\ resolve\ this\ problem.=변경 사항을 병합하고 이 문제를 해결하려면 "항목 병합"을 누르십시오. +Canceling\ this\ operation\ will\ leave\ your\ changes\ unsynchronized.=이 작업을 취소하면 변경 사항이 동기화되지 않은 상태로 남습니다. +Shared\ entry\ is\ no\ longer\ present=공유 항목이 더 이상 존재하지 않습니다. +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\ citation\ keys.\ Generate\ keys\ now?=인용 키 없이 항목을 인용할 수 없습니다. 지금 키를 생성하시겠습니까? +New\ technical\ report=새로운 기술 보고서 + +%0\ file=%0 파일 +Custom\ layout\ file=사용자 정의 레이아웃 파일 +Protected\ terms\ file=보호된 용어 파일 +Style\ file=파일 스타일 + +Open\ OpenOffice/LibreOffice\ connection=OpenOffice/LibreOffice 연결 열기 +You\ must\ enter\ at\ least\ one\ field\ name=하나 이상의 필드 이름을 입력해야 합니다. +Non-ASCII\ encoded\ character\ found=ASCII가 아닌 인코딩된 문자를 찾았습니다. +Non-UTF-8\ encoded\ field\ found=UTF-8이 아닌 인코딩 필드를 찾았습니다. +Toggle\ web\ search\ interface=웹 검색 인터페이스 전환 + +Migration\ help\ information=마이그레이션 도움말 정보 +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\ citation\ key\ does\ not\ exist=참조된 인용 키가 존재하지 않습니다 +Full\ text\ document\ for\ entry\ %0\ already\ linked.=항목 %0에 대한 전체 텍스트 문서가 이미 연결되어 있습니다. +Download\ full\ text\ documents=전체 텍스트 문서 다운로드 +You\ are\ about\ to\ download\ full\ text\ documents\ for\ %0\ entries.=%0 항목에 대한 전체 텍스트 문서를 다운로드하려고 합니다. +last\ four\ nonpunctuation\ characters\ should\ be\ numerals=마지막 네 글자는 숫자여야 한다. + +Author=작가 +Date=날짜 +File\ annotations=파일 주석 +Show\ file\ annotations=파일 주석 표시 +shared=공유됨 +should\ contain\ an\ integer\ or\ a\ literal=정수 또는 리터럴을 포함해야 합니다. +should\ have\ the\ first\ letter\ capitalized=첫 글자는 대문자여야 합니다 +edition\ of\ book\ reported\ as\ just\ 1=1판이라고 보도된 책 +no\ integer\ as\ values\ for\ edition\ allowed=에디션 값으로 정수가 허용되지 않음 +Tools=도구 +What's\ new\ in\ this\ version?=이 버전의 새로운 기능은 무엇입니까? +Want\ to\ help?=도움을 원하십니까? +Make\ a\ donation=기부하기 +get\ involved=참여하다 +Used\ libraries=사용된 라이브러리들 \: +Existing\ file=기존 파일 + +ID=아이디 +ID\ type=ID 유형 +Fetcher\ '%0'\ did\ not\ find\ an\ entry\ for\ id\ '%1'.=가져오기 프로그램 '%0'이 ID '%1'에 대한 항목을 찾지 못했습니다. + +Select\ first\ entry=첫 번째 항목 선택 +Select\ last\ entry=마지막 항목 선택 + +Invalid\ ISBN\:\ '%0'.=유효하지 않은 ISBN\: '%0' +should\ be\ an\ integer\ or\ normalized=정수형이거나 정규화되어야 합니다. +should\ be\ normalized=정규화되어야 합니다 + +Empty\ search\ ID=탐색 ID 없음 +The\ given\ search\ ID\ was\ empty.=주어진 탐색 ID가 없습니다 +Copy\ citation\ key\ and\ link=인용 키와 링크 복사 +biblatex\ field\ only=biblatex 필드만 + +Error\ while\ generating\ fetch\ URL=가져오기 URL을 생성하는 동안 오류가 발생했습니다. +Error\ while\ parsing\ ID\ list=ID 목록을 구문 분석하는 동안 오류가 발생했습니다. +Unable\ to\ get\ PubMed\ IDs=PubMed ID를 가져올 수 없음 +Backup\ found=백업을 찾을 수 없음 +A\ backup\ file\ for\ '%0'\ was\ found.='%0'에 대한 백업 파일을 찾았습니다. +This\ could\ indicate\ that\ JabRef\ did\ not\ shut\ down\ cleanly\ last\ time\ the\ file\ was\ used.=이것은 JabRef가 파일이 마지막으로 사용되었을 때 완전히 종료되지 않았음을 나타낼 수 있습니다. +Do\ you\ want\ to\ recover\ the\ library\ from\ the\ backup\ file?=백업 파일에서 라이브러리를 복구하시겠습니까? + +Show\ 'Related\ Articles'\ tab='관련 기사' 탭 표시 +This\ might\ be\ caused\ by\ reaching\ the\ traffic\ limitation\ of\ Google\ Scholar\ (see\ 'Help'\ for\ details).=이는 Google Scholar의 트래픽 제한에 도달하여 발생할 수 있습니다(자세한 내용은 '도움말' 참조). + +Could\ not\ open\ website.=JabRef 홈페이지를 열 수 없습니다 +Problem\ downloading\ from\ %1=%1에서 다운로드하는 동안 문제가 발생했습니다 + +File\ directory\ pattern=파일 디렉터리 패턴 +Update\ with\ bibliographic\ information\ from\ the\ web=웹의 서지 정보로 업데이트 + +Could\ not\ find\ any\ bibliographic\ information.=서지 정보를 찾을 수 없습니다. +Citation\ key\ deviates\ from\ generated\ key=인용 키가 생성된 키에서 벗어남 +DOI\ %0\ is\ invalid=DOI %0가 유효하지 않습니다 + +Select\ all\ customized\ types\ to\ be\ stored\ in\ local\ preferences\:=로컬 기본 설정에 저장할 모든 사용자 정의 유형 선택\: +Different\ customization,\ current\ settings\ will\ be\ overwritten=다른 사용자 정의, 현재 설정을 덮어씁니다. + +Entry\ type\ %0\ is\ only\ defined\ for\ Biblatex\ but\ not\ for\ BibTeX=항목 유형 %0은 Biblatex에 대해서만 정의되지만 BibTeX에는 정의되지 않습니다. + +Copied\ %0\ citations.=%0 인용을 복사했습니다. + +journal\ not\ found\ in\ abbreviation\ list=약어 목록에서 저널을 찾을 수 없습니다. +Unhandled\ exception\ occurred.=처리하지 못한 오류가 발생했습니다. + +strings\ included=문자열 포함 +Escape\ underscores=이스케이프 밑줄 +Color=색상 +Please\ also\ add\ all\ steps\ to\ reproduce\ this\ issue,\ if\ possible.=가능한 경우 이 문제를 재현하기 위한 모든 단계도 추가하십시오. +Fit\ width=가로맞춤 +Fit\ a\ single\ page=한 페이지에 맞추기 +Zoom\ in=확대 +Zoom\ out=축소 +Previous\ page=이전 페이지 +Next\ page=다음 페이지 +Document\ viewer=문서 뷰어 +Live=실시간 +Locked=잠김 +Show\ the\ document\ of\ the\ currently\ selected\ entry.=현재 선택한 항목의 문서를 표시합니다. +Show\ this\ document\ until\ unlocked.=잠금이 해제될 때까지 이 문서를 표시합니다. +Set\ current\ user\ name\ as\ owner.=현재 사용자 이름을 소유자로 설정합니다. + +Collect\ and\ share\ telemetry\ data\ to\ help\ improve\ JabRef=JabRef 개선에 도움이 되는 원격 측정 데이터 수집 및 공유 +Don't\ share=공유하지 마세요 +Share\ anonymous\ statistics=익명 통계 공유 +Telemetry\:\ Help\ make\ JabRef\ better=원격 측정\: JabRef 개선에 도움 +To\ improve\ the\ user\ experience,\ we\ would\ like\ to\ collect\ anonymous\ statistics\ on\ the\ features\ you\ use.\ We\ will\ only\ record\ what\ features\ you\ access\ and\ how\ often\ you\ do\ it.\ We\ will\ neither\ collect\ any\ personal\ data\ nor\ the\ content\ of\ bibliographic\ items.\ If\ you\ choose\ to\ allow\ data\ collection,\ you\ can\ later\ disable\ it\ via\ Options\ ->\ Preferences\ ->\ General.=사용자 경험을 증진시키기 위해서 우리는 당신이 사용한 익명의 자료들을 모으고 싶습니다.\n우리는 오직 당신이 어떤 요소들을 사용했고 그 빈도수는 얼마가 되는지를 기록할 것입니다.\n우리는 절대 당신의 개인 정보를 수집하지 않습니다. \n데이터 수집을 허용하신다면, '옵션 -> 환경 설정 -> 일반' 에 들어가서 해당 내용의 항목 체크를 해제해주세요. +This\ file\ was\ found\ automatically.\ Do\ you\ want\ to\ link\ it\ to\ this\ entry?=이 파일은 자동으로 발견되었습니다. 이 항목에 연결하시겠습니까? +Names\ are\ not\ in\ the\ standard\ %0\ format.=이름이 표준 %0 형식이 아닙니다. + +Delete\ the\ selected\ file\ permanently\ from\ disk,\ or\ just\ remove\ the\ file\ from\ the\ entry?\ Pressing\ Delete\ will\ delete\ the\ file\ permanently\ from\ disk.=선택한 파일을 디스크에서 영구적으로 삭제하시겠습니까, 아니면 항목에서 파일을 제거하시겠습니까? 삭제를 누르면 디스크에서 파일이 영구적으로 삭제됩니다. +Delete\ '%0'=%0 삭제 +Delete\ from\ disk=디스크에서 삭제 +Remove\ from\ entry=항목에서 제거 +There\ exists\ already\ a\ group\ with\ the\ same\ name.=같은 이름의 그룹이 존재합니다 +If\ you\ use\ it,\ it\ will\ inherit\ all\ entries\ from\ this\ other\ group.=사용할 경우 다른 그룹의 모든 항목을 상속합니다. + +Copy\ linked\ file=링크된 파일 복사 +Copy\ linked\ file\ to\ folder...=링크된 파일을 폴더에 복사... +Could\ not\ copy\ file\ to\ %0,\ maybe\ the\ file\ is\ already\ existing?=파일을 %0로 복사할 수 없습니다. 파일이 이미 존재하는 것 같습니다. +Successfully\ copied\ file\ to\ %0.=파일이 %0에 복사됨 +Could\ not\ resolve\ the\ file\ %0=파일 %0을 해결할 수 없습니다 + +Copy\ linked\ files\ to\ folder...=링크된 파일을 폴더에 복사... +Copied\ file\ successfully=파일을 성공적으로 복사했습니다. +Copying\ files...=파일 복사 중... +Copying\ file\ %0\ of\ entry\ %1=%1 목록에 있는 %0 파일 복사 중 +Finished\ copying=복사 완료 +Could\ not\ copy\ file=파일을 복사할 수 없습니다 +Copied\ %0\ files\ of\ %1\ sucessfully\ to\ %2=%1의 %0 파일을 %2에 성공적으로 복사했습니다 +Rename\ failed=이름 변경 실패 +JabRef\ cannot\ access\ the\ file\ because\ it\ is\ being\ used\ by\ another\ process.=JabRef는 다른 프로세스에서 사용 중인 파일에 접근할 수 없습니다 +Show\ console\ output\ (only\ when\ the\ launcher\ is\ used)=콘솔 출력 표시(런처를 사용하는 경우에만) + +Remove\ line\ breaks=줄바꿈 제거 +Removes\ all\ line\ breaks\ in\ the\ field\ content.=필드 내용에서 모든 줄 바꿈을 제거합니다. +Checking\ integrity...=무결성 확인 중... + +Remove\ hyphenated\ line\ breaks=하이픈으로 묶인 줄 바꿈 제거 +Removes\ all\ hyphenated\ line\ breaks\ in\ the\ field\ content.=필드 내용에서 하이픈으로 연결된 줄 바꿈을 모두 제거합니다. + +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\ citation\ key=빈 인용 키 +Aux\ file=AUX 파일 +Group\ containing\ entries\ cited\ in\ a\ given\ TeX\ file=주어진 TeX 파일에서 인용된 항목을 포함하는 그룹 + +Any\ file=모든 파일 + +No\ linked\ files\ found\ for\ export.=내보낼 링크된 파일이 없습니다. + +No\ full\ text\ document\ found\ for\ entry\ %0.=%0 항목에 대한 전체 텍스트 문서를 찾을 수 없습니다. + +Next\ library=다음 라이브러리 +Previous\ library=이전 라이브러리 +Add\ group=그룹 추가 +Entry\ is\ contained\ in\ the\ following\ groups\:=항목은 다음 그룹에 포함됩니다. +Delete\ entries=항목 삭제 +Keep\ entries=항목 보관 +Keep\ entry=항목 유지 +Ignore\ backup=백업 무시 +Restore\ from\ backup=백업에서 복원 + +Overwrite\ file=파일 덮어쓰기 +Shared\ database\ connection=공유 데이터베이스 연결 + +Could\ not\ connect\ to\ Vim\ server.\ Make\ sure\ that\ Vim\ is\ running\ with\ correct\ server\ name.=Vim 서버에 연결할 수 없습니다. Vim 서버가 정확한 이름으로 동작하는지 확인하세요. +Could\ not\ connect\ to\ a\ running\ gnuserv\ process.\ Make\ sure\ that\ Emacs\ or\ XEmacs\ is\ running,\ and\ that\ the\ server\ has\ been\ started\ (by\ running\ the\ command\ 'server-start'/'gnuserv-start').=실행 중인 gnuserv 프로세스에 연결할 수 없습니다. Emacs 또는 XEmacs가 실행 중이고 서버가 시작되었는지 확인하십시오('server-start'/'gnuserv-start' 명령을 실행하여). +Error\ pushing\ entries=항목을 푸시하는 동안 오류가 발생했습니다. + +Undefined\ character\ format=정의되지 않은 문자 형식 +Undefined\ paragraph\ format=정의되지 않은 문단 형식 + +Edit\ Preamble=전문 편집 +Markings=마킹 +Use\ selected\ instance=선택한 인스턴스 사용 + +Hide\ panel=패널 감추기 +Move\ panel\ up=패널을 위로 이동 +Move\ panel\ down=패널을 아래로 이동 +Linked\ files=링크된 파일 +Group\ view\ mode\ set\ to\ intersection=그룹 보기 모드가 교차로 설정됨 +Group\ view\ mode\ set\ to\ union=그룹 보기 모드가 결합됨 +Open\ file\ %0=파일 열기 %0 +Toggle\ intersection=교차로 전환 +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=무결성 확인 +Cleanup\ URL\ link=URL 링크 정리 +Cleanup\ URL\ link\ by\ removing\ special\ symbols\ and\ extracting\ simple\ link=특수기호를 제거하고 단순링크를 추출하여 URL링크 정리 +Copy\ DOI\ url=DOI URL 복사 +Copy\ citation=인용 복사 +Development\ version=개발 버전 +Export\ selected\ entries=선택한 항목 내보내기 +Export\ selected\ entries\ to\ clipboard=선택한 항목을 클립보드로 내보내기 +Find\ duplicates=중복 찾기 +JabRef\ resources=JabRef 리소스 +Manage\ journal\ abbreviations=저널 약어 관리 +Manage\ protected\ terms=보호 용어 관리 +New\ entry\ from\ plain\ text=텍스트로부터 새 항목 추가 +New\ sublibrary\ based\ on\ AUX\ file=AUX 파일 기반의 새 서브라이브러리 +Push\ entries\ to\ external\ application\ (%0)=외부 응용 프로그램에 항목 푸시(%0) +Quit=종료 +Recent\ libraries=최근 라이브러리 +Set\ up\ general\ fields=일반 필드 설정 +View\ change\ log=변경 기록 보기 +View\ event\ log=이벤트 기록 보기 +Website=JabRef 홈페이지 +Write\ XMP\ metadata\ to\ PDFs=PDF에 XMP 메타데이터 쓰기 + +Override\ default\ font\ settings=기본 글자 크기 설정 무시 +Clear\ search=검색 초기화 + +Click\ help\ to\ learn\ about\ the\ migration\ of\ pre-3.6\ databases.=3.6 이전 데이터베이스의 마이그레이션에 대해 알아보려면 도움말을 클릭하십시오. +Database\ Type\:=데이터베이스 유형\: +Database\:=데이터베이스\: +Host/Port\:=호스트/포트\: +User\:=사용자\: +Keystore\ password\:=키 저장소 암호\: +Keystore\:=키 저장소\: +Password\:=암호\: +Server\ Timezone\:=서버 시간대\: +Remember\ Password=비밀번호 기억 +Use\ SSL=SSL 사용 +Move\ preprint\ information\ from\ 'URL'\ and\ 'journal'\ field\ to\ the\ 'eprint'\ field=사전 인쇄 정보를 'URL' 및 '저널' 필드에서 'eprint' 필드로 이동 +Customize\ Export\ Formats=사용자 지정 내보내기 형식 +Export\ name=이름 내보내기 +Main\ layout\ file\:=기본 레이아웃 파일\: +Main\ layout\ file=기본 레이아웃 파일\: +Save\ exporter=내보내기 저장 +File\ extension\:=파일 확장자\: +Export\ format\ name\:=내보내기 형식 이름\: +Cleared\ connection\ settings=연결 설정 삭제 +Error\ adding\ discovered\ CitationStyles=발견된 CitationStyles를 추가하는 동안 오류가 발생했습니다. +(more)=(더) +Cancel\ import=가져오기 취소 +Continue\ with\ import=가져오기 계속 +Import\ canceled=가져오기가 취소되었습니다 +Select\ all\ new\ entries=모든 새 항목 선택 +Select\ all\ entries=모든 항목 선택 +Total\ items\ found\:=발견된 총 항목\: +Selected\ items\:=선택된 목록\: +Download\ linked\ online\ files=연결된 온라인 파일 다운로드 +Select\ the\ entries\ to\ be\ imported\:=가져온 목록 선택 +Add\ new\ String=문자열 추가 +Must\ not\ be\ empty\!=비워둘 수 없습니다\! +Open\ Help\ page=도움말 열기 +Add\ new\ field\ name=새 필드 이름 추가 +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\ separator=키워드 분류기 +Remove\ keyword=키워드 제거 +Are\ you\ sure\ you\ want\ to\ remove\ keyword\:\ "%0"?=키워드 "%0"을 제거하시겠습니까? +Reset\ to\ default=기본값으로 되돌리기 +Edit\ string\ constants=문자열 내용 수정 +Export\ all\ entries=모든 항목 내보내기 +Generate\ citation\ keys=인용 키 생성 +Groups\ interface=그룹 인터페이스 +Manage\ field\ names\ &\ content=필드 이름 및 콘텐츠 관리 +New\ library=새 라이브러리 +OpenOffice/LibreOffice=OpenOffice/LibreOffice +Open\ document\ viewer=문서 뷰어 열기 +Open\ entry\ editor=항목 편집기 열기 +Search\ document\ identifier\ online=온라인에서 문서 식별자 검색 +Search\ for\ unlinked\ local\ files=연결 해제된 로컬 파일 검색 +Search\ full\ text\ documents\ online=온라인에서 전체 텍스트 문서 검색 +Find\ and\ replace=찾기 및 바꾸기 + +Found\ documents\:=발견 문서\: +Use\ selected\ document=선택한 문서 사용 +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로 설정 + +A\ string\ with\ the\ label\ '%0'\ already\ exists.=레이블이 '%0'인 문자열이 이미 있습니다. + +Executing\ command\ "%0"...="%0" 명령 실행 중... + +Rename\ file\ to\ a\ given\ name=파일 이름을 주어진 이름으로 변경 +New\ Filename=새 파일 이름 +Rename\ file\ to\ defined\ pattern=파일 이름을 정의된 패턴으로 변경 + +Application\ settings=애플리케이션 설정 + +Export\ an\ input\ to\ a\ file=입력 내용을 파일로 내보내기 +Export\ preferences\ to\ a\ file=환경 설정을 파일로 내보내기 +Import\ BibTeX=BibTeX 가져오기 +Import\ preferences\ from\ a\ file=파일에서 설정 가져오기 +Matching=어울리는 +Same\ as\ --import,\ but\ will\ be\ imported\ to\ the\ opened\ tab=--import와 동일하지만 열린 탭으로 가져옵니다. +Allow\ integers\ in\ 'edition'\ field\ in\ BibTeX\ mode=BibTeX 모드의 '에디션' 필드에 정수 허용 + +Search\ for\ citations\ in\ LaTeX\ files...=LaTeX 파일에서 인용 검색... +LaTeX\ Citations\ Search\ Results=LaTeX 인용 검색 결과 +LaTeX\ files\ directory\:=LaTeX 파일 디렉토리\: +LaTeX\ files\ found\:=찾은 LaTeX 파일\: +files=파일 +Show\ 'LaTeX\ Citations'\ tab='LaTeX 인용' 탭 표시 +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\ citation\ key.=선택한 항목에 연결된 인용 키가 없습니다. +Current\ search\ directory\:=현재 검색 디렉토리\: +Set\ LaTeX\ file\ directory=LaTeX 파일 디렉토리 설정 +Import\ entries\ from\ LaTeX\ files=LaTeX 파일에서 항목 가져오기 +Import\ new\ entries=새 항목 가져오기 +Group\ color=그룹 색상 + +Columns=열 +File\ type=파일 형식 +IEEE=IEEE +Internal=내부의 +Special=특별한 +Remove\ column=열 제거 +Add\ custom\ column=사용자 지정 열 추가 +Update\ to\ current\ column\ order=현재 열 순서로 업데이트 +Sort\ column\ one\ step\ upwards=열을 한 단계 위로 정렬 +Sort\ column\ one\ step\ downwards=열을 한 단계 아래로 정렬 +Synchronize\ special\ fields\ to\ keywords=특수 필드를 키워드에 동기화 +Serialize\ special\ fields=특수 필드 직렬화 +List\ must\ not\ be\ empty.=목록은 비워둘 수 없습니다. + +Order=정렬 + +Add\ field\ to\ filter\ list=필터 목록에 필드 추가 +Add\ formatter\ to\ list=목록에 포맷터 추가 +Filter\ List=필터 목록 +Open\ files...=파일 열기... + +Affected\ fields\:=영향을 받는 필드\: +Show\ preview\ as\ a\ tab\ in\ entry\ editor=항목 편집기에서 탭으로 미리보기 표시 +Font=글자 크기 +Visual\ theme=테마 +Light\ theme=밝은 테마 +Dark\ theme=어두운 테마 +Custom\ theme=사용자 지정 테마 +Overwrite\ existing\ keys=기존 키 덮어쓰기 +Key\ patterns=키 패턴 +Font\ settings=글자 크기 설정 +Override\ font\ settings=글꼴 설정 무시 +Override\ font\ size=글꼴 크기 무시 +Theme\ changed\ to\ dark\ theme.=어두운 테마로 변경되었습니다 +Theme\ changed\ to\ light\ theme.=밝은 테마로 변경되었습니다 +Theme\ changed\ to\ a\ custom\ theme\:=사용자 지정 테마로 변경되었습니다 +Please\ specify\ a\ css\ theme\ file.=css 테마 파일을 지정하세요. +You\ must\ enter\ an\ integer\ value\ higher\ than\ 8.=8보다 큰 정수 값을 입력해야 합니다. +Letters\ after\ duplicate\ generated\ keys=키 뒤의 문자 중복 생성 +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=기본 패턴 +Reset\ %s\ to\ default\ value=%s을 기본값으로 재설정 +Library\ mode=라이브러리 모드 +Reset\ to\ recommended=권장 사항으로 재설정 +Remove\ all=모두 제거 +Reset\ All=전체 초기화 +Linked\ identifiers=연결된 식별자 + +insert\ entries=항목 삽입 +In\ JabRef=JabRef에서 +On\ disk=디스크에 +Select\ all\ changes\ on\ the\ left=왼쪽의 모든 변경 사항 선택 +Select\ all\ changes\ on\ the\ right=오른쪽의 모든 변경 사항 선택 +Dismiss=무시 +Mark\ all\ changes\ as\ accepted=모든 변경 사항을 수락된 것으로 표시 +Unmark\ all\ changes=모든 변경 사항 표시 해제 + +Normalize\ newline\ characters=개행 문자 정규화 +Normalizes\ all\ newline\ characters\ in\ the\ field\ content.=필드 내용의 모든 개행 문자를 정규화합니다. + +Independent=무소속 +Intersection=교차로 +Union=결합 +Collect\ by=수집 +Explicit\ selection=명시적 선택 +Searching\ for\ a\ keyword=키워드 검색 +Free\ search\ expression=자유 검색 표현식 +Specified\ keywords=지정된 키워드 +Cited\ entries=인용 항목 +Search\ term\ is\ empty.=검색어가 비어 있습니다. +Invalid\ regular\ expression.=잘못된 정규 표현식입니다. +Please\ provide\ a\ valid\ aux\ file.=유효한 aux 파일을 제공하십시오. +Keyword\ delimiter=키워드 구분자 +Hierarchical\ keyword\ delimiter=계층적 키워드 구분 기호 +Escape\ ampersands=앰퍼샌드 탈출 + +Hint\:\n\nTo\ search\ all\ fields\ for\ Smith,\ enter\:\nsmith\n\nTo\ search\ the\ field\ author\ for\ Smith\ and\ the\ field\ title\ for\ electrical,\ enter\:\nauthor\=Smith\ and\ title\=electrical=힌트\:\n\n모든 영역에서 Smith를 검색하고 싶다면 smith 라고 입력하세요.\n\n작가 영역에서 Smith를 검색하고 싶거나 \n제목 영역에서 electrical를 검색하고 싶다면\nauthor\=Smith and title\=electrical라고 입력하세요 + +Copied\ '%0'\ to\ clipboard.='%0'을 클립보드에 복사했습니다. +This\ operation\ requires\ an\ open\ library.='라이브러리 불러오기'를 먼저 실행하세요. + +Plain\ References\ Parser=일반 참조 구문 분석기 +Please\ enter\ the\ plain\ references\ to\ extract\ from\ separated\ by\ double\ empty\ lines.=추출할 일반 참조를 이중 빈 줄로 구분하여 입력하십시오. +Add\ to\ current\ library=현재 라이브러리에 추가 +%0\ entries\ were\ parsed\ from\ your\ query.=쿼리에서 %0개의 항목이 구문 분석되었습니다. +Starts\ the\ extraction\ and\ adds\ the\ resulting\ entries\ to\ the\ currently\ opened\ database=추출을 시작하고 결과 항목을 현재 열려 있는 데이터베이스에 추가합니다. +Your\ text\ is\ being\ parsed...=텍스트가 구문 분석 중입니다... + +Citation\ key\ filters=인용 키 필터 +Field\ filters=필드 필터 +Message\ filters=메시지 필터 +Clear\ filters=필터 지우기 + +Add\ new\ Field=새 필드 추가 +Add\ new\ entry\ type=새 항목 유형 추가 +Field\ type=필드 유형 +Required\ and\ optional\ fields=필수 및 선택 필드 +Index=인덱스 +Remove\ entry\ type=항목 유형 제거 +Remove\ field\ %0\ from\ currently\ selected\ entry\ type=현재 선택한 항목 유형에서 %0 필드 제거 +Optional=선택사항 +Required=필수 +Entry\ type\ cannot\ be\ empty.\ Please\ enter\ a\ name.=항목 유형은 비워둘 수 없습니다. 이름을 입력하세요. +Field\ cannot\ be\ empty.\ Please\ enter\ a\ name.=필드는 비워둘 수 없습니다. 이름을 입력하세요. + +Capitalize\ current\ word=현재 단어를 대문자로 +Delete\ text=텍스트 삭제 +Make\ current\ word\ lowercase=현재 단어를 소문자로 만들기 +Make\ current\ word\ uppercase=현재 단어를 대문자로 만들기 +Move\ caret\ left=캐럿을 왼쪽으로 이동 +Move\ caret\ right=캐럿을 오른쪽으로 이동 +Move\ caret\ to\ previous\ word=캐럿을 이전 단어로 이동 +Move\ caret\ to\ next\ word=캐럿을 다음 단어로 이동 +Move\ caret\ to\ beginning\ of\ line=캐럿을 줄의 시작으로 이동 +Move\ caret\ to\ end\ of\ line=캐럿을 줄 끝으로 이동 +Move\ the\ caret\ down=캐럿을 아래로 이동 +Move\ the\ caret\ to\ the\ beginning\ of\ text=캐럿을 텍스트 시작 부분으로 이동 +Move\ the\ caret\ to\ the\ end\ of\ text=캐럿을 텍스트 끝으로 이동 +Move\ the\ caret\ up=캐럿을 위로 이동 +Remove\ line\ after\ caret=캐럿 뒤에 줄 제거 +Remove\ characters\ until\ next\ word=다음 단어까지 문자 제거 +Remove\ the\ current\ word\ backwards=현재 단어를 뒤로 제거 + +Text\ editor=텍스트 편집기 + +Search\ ShortScience=ShortScience 검색 +Unable\ to\ open\ ShortScience.=ShortScience를 열 수 없습니다. + +Shared\ database=공유 데이터베이스 +Lookup=검색 + +Please\ enter\ a\ field\ name\ to\ search\ for\ a\ keyword.=키워드를 검색하려면 필드 이름을 입력하세요. +Access\ date\ of\ the\ address\ specified\ in\ the\ url\ field.=url 필드에 지정된 주소의 액세스 날짜입니다. +Additional\ information\ related\ to\ the\ resource\ indicated\ by\ the\ eprint\ field.=eprint 필드에 표시된 리소스와 관련된 추가 정보입니다. +Annex\ to\ the\ eventtitle\ field.=eventtitle 필드에 대한 부록입니다. +Author(s)\ of\ a\ commentary\ to\ the\ work.=작품에 대한 논평의 작성자. +Author(s)\ of\ an\ afterword\ to\ the\ work.=작품에 대한 후기의 작성자. +Author(s)\ of\ an\ introduction\ to\ the\ work.=작품 소개의 작성자. +Author(s)\ of\ annotations\ to\ the\ work.=저작물에 대한 주석 작성자 +Author(s)\ of\ the\ work.=작품의 저자. +Can\ be\ used\ for\ known\ event\ acronyms.=알려진 이벤트 약어에 사용할 수 있습니다. +Chapter\ or\ section\ or\ any\ other\ unit\ of\ a\ work.=작업의 장 또는 섹션 또는 기타 단위. +Date\ of\ a\ conference,\ a\ symposium,\ or\ some\ other\ event.=회의, 심포지엄 등등의 날짜 +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.=일반 레이블을 생성하는 데 필요한 데이터가 누락된 경우 일반 레이블을 대신하여 인용 스타일에서 사용할 지정. +Digital\ Object\ Identifier\ of\ the\ work.=작품의 디지털 개체 식별자입니다. +Edition\ of\ a\ printed\ publication.=인쇄된 간행물의 판. +Editor(s)\ of\ the\ work\ or\ the\ main\ publication,\ depending\ on\ the\ type\ of\ the\ entry.=출품작의 유형에 따라 작품 또는 주요 출판물의 편집자. +Electronic\ identifier\ of\ a\ work.=저작물의 전자식별자. +Electronic\ identifier\ of\ an\ online\ publication.=온라인 출판물의 전자식별자. +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.=저널이나 컬렉션의 기사와 같이 저작물이 다른 저작물의 일부로 출판된 경우 이 필드는 다른 저작물의 관련 페이지 범위를 보유합니다. 또한 작업의 특정 부분(예\: 책의 한 장)에 대한 참조를 제한하는 데 사용할 수도 있습니다. 비고전적인 페이지 매김 설정이 있는 전자 저널의 논문의 경우 eid 필드가 더 적합할 수 있습니다. +Information\ such\ as\ a\ library\ name\ and\ a\ call\ number.=라이브러리 이름 및 호출 번호와 같은 정보. +International\ Standard\ Book\ Number\ of\ a\ book.=국제 표준 도서 번호입니다. +Issue\ of\ a\ journal.=저널 발행. +Key\ by\ which\ the\ work\ may\ be\ cited.=작업을 인용할 수 있는 키입니다. +Link(s)\ to\ a\ local\ PDF\ or\ other\ document\ of\ the\ work.=로컬 PDF 파일이나 다른 문서에 링크 +Location\ of\ a\ conference,\ a\ symposium,\ or\ some\ other\ event.=회의, 심포지엄 등의 장소 +Main\ title\ of\ a\ multi-volume\ book,\ such\ as\ "Collected\ Works".="전집"과 같은 여러 권으로 된 책의 주 제목입니다. +Miscellaneous\ bibliographic\ data\ usually\ printed\ at\ the\ end\ of\ the\ entry.=기타 서지 데이터는 일반적으로 항목 끝에 인쇄됩니다. +Miscellaneous\ bibliographic\ data\ which\ does\ not\ fit\ into\ any\ other\ field.=다른 분야에 맞지 않는 기타 서지 데이터. +Name(s)\ of\ the\ (manual)\ groups\ the\ entry\ belongs\ to.=항목이 속한 (수동) 그룹의 이름입니다. +Name(s)\ of\ the\ publisher(s).=게시자의 이름입니다. +Name\ of\ a\ journal,\ a\ newspaper,\ or\ some\ other\ periodical.=저널, 신문 또는 기타 정기 간행물의 이름. +Name\ of\ a\ publication\ series,\ such\ as\ "Studies\ in...",\ or\ the\ number\ of\ a\ journal\ series.="Studies in..." 또는 저널 시리즈 번호와 같은 출판 시리즈의 이름입니다. +Name\ of\ a\ university\ or\ some\ other\ institution.=대학 또는 연구기관의 이름 +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.=이 필드에는 이벤트의 일반 제목이 있습니다. "제5차 XYZ 회의의 절차"와 같은 것은 titleaddon 또는 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.=이 필드는 저자 외에 해설자가 있는 주석이 달린 에디션을 위한 것입니다. 저작물이 단독 해설인 경우, 해설자는 저자 필드에 기재해야 합니다. +Number\ of\ a\ journal\ or\ the\ volume/number\ of\ a\ book\ in\ a\ series.=저널 번호 또는 시리즈 책의 권/번호. +One\ or\ more\ page\ numbers\ or\ page\ ranges.=하나 이상의 페이지 번호 또는 페이지 범위. +Organization(s)\ that\ published\ a\ manual\ or\ an\ online\ resource,\ or\ sponsored\ a\ conference.=매뉴얼 또는 온라인 리소스를 출판했거나 컨퍼런스를 후원한 조직입니다. +Publication\ date\ of\ the\ work.=작품의 출판일. +Publication\ month.=출판월. +Publication\ notice\ for\ unusual\ publications\ which\ do\ not\ fit\ into\ any\ of\ the\ common\ categories.=일반적인 범주에 속하지 않는 특이한 출판물에 대한 출판 통지. +Publication\ state\ of\ the\ work,\ e.\ g.,\ "in\ press".=저작물의 출판 상태, e. g., "보도 중". +Revision\ number\ of\ a\ piece\ of\ software,\ a\ manual,\ etc.=소프트웨어, 매뉴얼 등의 개정 번호 +Separated\ list\ of\ keywords.=분리된 키워드 목록입니다. +Subtitle\ of\ a\ specific\ issue\ of\ a\ journal\ or\ other\ periodical.=잡지/간행물 내용의 부제 +Subtitle\ of\ the\ work.=작품의 부제 +Place(s)\ of\ publication,\ i.\ e.,\ the\ location\ of\ the\ publisher\ or\ institution,\ depending\ on\ the\ entry\ type.=출판 장소, i. 예\: 출품 유형에 따른 발행인 또는 기관의 위치. +This\ could\ be\ a\ section\ of\ an\ archive,\ a\ path\ indicating\ a\ service,\ a\ classification\ of\ some\ sort.=이것은 아카이브의 섹션, 서비스를 나타내는 경로, 일종의 분류일 수 있습니다. +This\ field\ is\ intended\ for\ journals\ whose\ individual\ issues\ are\ identified\ by\ a\ designation\ such\ as\ "Spring"\ or\ "Summer"\ rather\ than\ the\ month\ or\ a\ number.\ Integer\ ranges\ and\ short\ designators\ are\ better\ written\ to\ the\ number\ field.=이 필드는 개별 호가 월이나 숫자가 아닌 "봄" 또는 "여름"과 같은 명칭으로 식별되는 저널을 위한 것입니다. 정수 범위와 짧은 지정자는 숫자 필드에 더 잘 기록됩니다. +This\ field\ may\ replace\ the\ pages\ field\ for\ journals\ deviating\ from\ the\ classic\ pagination\ scheme\ of\ printed\ journals\ by\ only\ enumerating\ articles\ or\ papers\ and\ not\ pages.=이 필드는 페이지가 아닌 기사 또는 논문만 열거함으로써 인쇄된 저널의 고전적인 페이지 매기기 방식에서 벗어나는 저널의 페이지 필드를 대체할 수 있습니다. +This\ is\ roughly\ comparable\ to\ a\ DOI\ but\ specific\ to\ a\ certain\ archive,\ repository,\ service,\ or\ system.=이것은 대략 DOI와 비슷하지만 특정 아카이브, 저장소, 서비스 또는 시스템에만 해당됩니다. +Title\ of\ a\ conference,\ a\ symposium,\ or\ some\ other\ event.=회의, 심포지엄 또는 기타 이벤트의 제목입니다. +Title\ of\ a\ specific\ issue\ of\ a\ journal\ or\ other\ periodical.=학술지 또는 기타 정기간행물의 특정 호 제목. +Title\ of\ the\ main\ publication\ this\ work\ is\ part\ of.=이 작품이 속한 주요 간행물의 제목입니다. +Title\ of\ the\ work.=작품의 제목입니다. +Total\ number\ of\ pages\ of\ the\ work.=작품의 총 페이지 수입니다. +Total\ number\ of\ volumes\ of\ a\ multi-volume\ work.=여러 권으로 된 작품의 총 권수. +Type\ of\ the\ eprint\ identifier,\ e.\ g.,\ the\ name\ of\ the\ archive,\ repository,\ service,\ or\ system\ the\ eprint\ field\ refers\ to.=eprint 식별자의 유형, e. g., eprint 필드가 참조하는 아카이브, 저장소, 서비스 또는 시스템의 이름. +URL\ of\ an\ online\ publication.=온라인 출판물 URL +Volume\ of\ a\ multi-volume\ book\ or\ a\ periodical.=여러 권의 책이나 정기 간행물의 권. +Year\ of\ publication.=출판 년도 +This\ field\ is\ intended\ for\ recording\ abstracts,\ to\ be\ printed\ by\ a\ special\ bibliography\ style.=이 필드는 특별한 서지 스타일로 인쇄할 초록을 기록하기 위한 것입니다. +This\ field\ may\ be\ useful\ when\ implementing\ a\ style\ for\ annotated\ bibliographies.=이 필드는 주석이 달린 참고 문헌의 스타일을 구현할 때 유용할 수 있습니다. +Subtitle\ related\ to\ the\ "Booktitle".="책 제목"과 연관된 부제 +Annex\ to\ the\ "Booktitle",\ to\ be\ printed\ in\ a\ different\ font.=다른 글꼴로 인쇄되는 "Booktitle"의 부록. +Comment\ to\ this\ entry.=이 항목에 대한 댓글입니다. +Secondary\ editor\ performing\ a\ different\ editorial\ role,\ such\ as\ compiling,\ redacting,\ etc.=편집, 편집 등과 같은 다른 편집 역할을 수행하는 보조 편집자 +Another\ secondary\ editor\ performing\ a\ different\ role.=다른 역할을 수행하는 다른 보조 편집자. +Type\ of\ editorial\ role\ performed\ by\ the\ "Editor".="편집자"가 수행하는 편집 역할 유형입니다. +Type\ of\ editorial\ role\ performed\ by\ the\ "Editora".="Editora"가 수행하는 편집 역할의 유형입니다. +Type\ of\ editorial\ role\ performed\ by\ the\ "Editorb".="Editorb"가 수행하는 편집 역할 유형입니다. +Type\ of\ editorial\ role\ performed\ by\ the\ "Editorc".="Editorc"가 수행하는 편집 역할 유형입니다. +Author(s)\ of\ a\ foreword\ to\ the\ work.=저작에 대한 서문의 저자. +International\ Standard\ Technical\ Report\ Number\ of\ a\ technical\ report.=국제 표준 기술 보고서 기술 보고서의 번호입니다. +International\ Standard\ Serial\ Number\ of\ a\ periodical.=정기 간행물의 국제 표준 일련 번호입니다. +Subtitle\ of\ a\ journal,\ a\ newspaper,\ or\ some\ other\ periodical.=잡지/신문/간행물의 부제 +Language(s)\ of\ the\ work.\ Languages\ may\ be\ specified\ literally\ or\ as\ localisation\ keys.=작품의 언어. 언어는 문자 그대로 또는 현지화 키로 지정할 수 있습니다. +Subtitle\ related\ to\ the\ "Maintitle".="제목"과 관련된 부제 +Annex\ to\ the\ "Maintitle",\ to\ be\ printed\ in\ a\ different\ font.="Maintitle"의 부록, 다른 글꼴로 인쇄됩니다. +Addon\ to\ be\ printed\ immediately\ after\ the\ author\ name\ in\ the\ bibliography.=부록은 참고 문헌 목록에서 작성자 이름 바로 뒤에 인쇄해야 합니다. +If\ the\ work\ is\ a\ translation,\ a\ reprint,\ or\ something\ similar,\ the\ publication\ date\ of\ the\ original\ edition.=저작물이 번역, 재판 또는 이와 유사한 것인 경우에는 원판의 발행일. +If\ the\ work\ is\ a\ translation,\ the\ language(s)\ of\ the\ original\ work.=저작물이 번역인 경우 원본 저작물의 언어입니다. +Pagination\ of\ the\ work.\ The\ key\ should\ be\ given\ in\ the\ singular\ form.=작품의 페이지 매김. 키는 단수형으로 주어져야 합니다. +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.=부분 볼륨의 번호입니다. 이 필드는 저널이 아닌 책에만 적용됩니다. 논리적 볼륨이 둘 이상의 물리적 볼륨으로 구성된 경우 사용할 수 있습니다. +Title\ in\ an\ abridged\ form.=요약 형식의 제목입니다. +Annex\ to\ the\ "Title",\ to\ be\ printed\ in\ a\ different\ font.=다른 글꼴로 인쇄할 "제목"의 부록. +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.=항목 유형에 따라 "제목" 또는 "책제목"의 번역자입니다. 번역자가 "편집자"와 동일한 경우 표준 스타일은 참고 문헌에서 이러한 필드를 자동으로 연결합니다. +Type\ of\ a\ "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.=이 필드에는 상호 참조 기능에 대한 입력 키가 있습니다. "Crossref" 필드가 있는 하위 항목은 "Crossref" 필드에 지정된 상위 항목의 데이터를 상속합니다. +Gender\ of\ the\ author\ or\ gender\ of\ the\ editor,\ if\ there\ is\ no\ author.=작성자의 성별 또는 편집자의 성별(작성자가 없는 경우). +Citation\ keys\ of\ other\ entries\ which\ have\ a\ relationship\ to\ this\ entry.=이 항목과 관계가 있는 다른 항목의 인용 키입니다. +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.=이 필드는 대체 상호 참조 메커니즘입니다. 하위 항목이 "Xref" 필드에 지정된 상위 항목의 데이터를 상속하지 않는다는 점에서 "Crossref"와 다릅니다. +Owner/creator\ of\ this\ entry.=이 항목의 소유자/작성자입니다. +Timestamp\ of\ this\ entry,\ when\ it\ has\ been\ created\ or\ last\ modified.=생성되었거나 마지막으로 수정된 이 항목의 타임스탬프입니다. +User-specific\ printed\ flag,\ in\ case\ the\ entry\ has\ been\ printed.=항목이 인쇄된 경우 사용자별 인쇄 플래그입니다. +User-specific\ priority.=사용자 지정 우선순위 +User-specific\ quality\ flag,\ in\ case\ its\ quality\ is\ assured.=품질이 보장되는 경우 사용자별 품질 플래그입니다. +User-specific\ ranking.=사용자 지정 순위 +User-specific\ read\ status.=사용자 지정 읽기 상태 +User-specific\ relevance\ flag,\ in\ case\ the\ entry\ is\ relevant.=항목이 관련된 경우 사용자별 관련성 플래그입니다. + +Auto\ complete\ disabled.=자동 완성이 비활성화되었습니다. +Auto\ complete\ enabled.=자동 완성이 활성화되었습니다. + +Remove\ formatter\ for\ %0=%0에 대한 포맷터 제거 +Remove\ formatter\ '%0'=포맷터 '%0' 제거 + +An\ article\ in\ a\ journal,\ magazine,\ newspaper,\ or\ other\ periodical\ which\ forms\ a\ self-contained\ unit\ with\ its\ own\ title.=저널, 잡지, 신문 또는 기타 정기 간행물의 기사로 자체 제목으로 독립된 단위를 구성합니다. +A\ single-volume\ book\ with\ one\ or\ more\ authors\ where\ the\ authors\ share\ credit\ for\ the\ work\ as\ a\ whole.=저자가 작품 전체에 대한 크레딧을 공유하는 한 명 이상의 저자가 있는 단권 책. +A\ book-like\ work\ without\ a\ formal\ publisher\ or\ sponsoring\ institution.=공식 출판사나 후원 기관이 없는 책 같은 작품. +A\ single-volume\ collection\ with\ multiple,\ self-contained\ contributions\ by\ distinct\ authors\ which\ have\ their\ own\ title.\ The\ work\ as\ a\ whole\ has\ no\ overall\ author\ but\ it\ will\ usually\ have\ an\ editor.=고유한 제목을 가진 고유한 저자의 여러 독립된 기고가 포함된 단일 볼륨 컬렉션입니다. 작품 전체에는 전체 저자가 없지만 일반적으로 편집자가 있습니다. +A\ legacy\ alias\ for\ "InProceedings".="InProceedings"의 레거시 별칭입니다. +A\ part\ of\ a\ book\ which\ forms\ a\ self-contained\ unit\ with\ its\ own\ title.=자체 제목으로 독립된 단위를 구성하는 책의 일부입니다. +A\ contribution\ to\ a\ collection\ which\ forms\ a\ self-contained\ unit\ with\ a\ distinct\ author\ and\ title.=고유한 저자와 제목으로 독립된 단위를 형성하는 컬렉션에 대한 기여. +An\ article\ in\ a\ conference\ proceedings.=회의록에 실린 글. +Technical\ or\ other\ documentation,\ not\ necessarily\ in\ printed\ form.=기술 문서 또는 기타 문서(인쇄된 형식일 필요는 없음). +A\ fallback\ type\ for\ entries\ which\ do\ not\ fit\ into\ any\ other\ category.=다른 카테고리에 맞지 않는 항목에 대한 대체 유형입니다. +Similar\ to\ "Thesis"\ except\ that\ the\ type\ field\ is\ optional\ and\ defaults\ to\ the\ localised\ term\ \ Master's\ thesis.=유형 필드가 선택 사항이고 기본적으로 현지화된 용어인 석사 논문을 사용한다는 점을 제외하고 "논문"과 유사합니다. +Similar\ to\ "Thesis"\ except\ that\ the\ type\ field\ is\ optional\ and\ defaults\ to\ the\ localised\ term\ PhD\ thesis.=유형 필드가 선택 사항이고 기본적으로 현지화된 용어 PhD 논문으로 설정된다는 점을 제외하고 "Thesis"와 유사합니다. +A\ single-volume\ conference\ proceedings.\ This\ type\ is\ very\ similar\ to\ "Collection".=단권 회의 절차. 이 유형은 "컬렉션"과 매우 유사합니다. +Similar\ to\ "Report"\ except\ that\ the\ type\ field\ is\ optional\ and\ defaults\ to\ the\ localised\ term\ technical\ report.=유형 필드가 선택 사항이고 기본적으로 현지화된 용어 기술 보고서를 사용한다는 점을 제외하고 "보고서"와 유사합니다. +A\ work\ with\ an\ author\ and\ a\ title\ which\ has\ not\ been\ formally\ published,\ such\ as\ a\ manuscript\ or\ the\ script\ of\ a\ talk.=원고나 대본과 같이 정식으로 출판되지 않은 제목과 저자가 있는 작품. +This\ type\ is\ similar\ to\ "InBook"\ but\ intended\ for\ works\ originally\ published\ as\ a\ stand-alone\ book.=이 유형은 "InBook"과 유사하지만 원래 독립형 책으로 출판된 작품을 위한 것입니다. +An\ article\ in\ a\ work\ of\ reference.\ This\ is\ a\ more\ specific\ variant\ of\ the\ generic\ "InCollection"\ entry\ type.=참고 문헌의 기사. 이것은 일반 "InCollection" 항목 유형의 보다 구체적인 변형입니다. +A\ multi-volume\ "Book".=다중 볼륨 "책" +A\ multi-volume\ "Collection".=다중 볼륨 "컬렉션" +A\ multi-volume\ "Proceedings"\ entry.=다중 볼륨 "진행" 항목 +A\ multi-volume\ "Reference"\ entry.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ an\ alias\ for\ "MvCollection".=다중 볼륨 "참조" 항목. 표준 스타일은 이 항목 유형을 "MvCollection"의 별칭으로 취급합니다. +This\ entry\ type\ is\ intended\ for\ sources\ such\ as\ web\ sites\ which\ are\ intrinsically\ online\ resources.=이 항목 유형은 본질적으로 온라인 리소스인 웹 사이트와 같은 소스를 위한 것입니다. +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\ "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.=학위요건을 충족시키기 위해 교육기관에서 작성하는 논문. +An\ alias\ for\ "Online",\ provided\ for\ jurabib\ compatibility.=jurabib 호환성을 위해 제공되는 "온라인"의 별칭입니다. +Computer\ software.\ The\ standard\ styles\ will\ treat\ this\ entry\ type\ as\ an\ alias\ for\ "Misc".=컴퓨터 소프트웨어. 표준 스타일은 이 항목 유형을 "기타"의 별칭으로 취급합니다. +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=파일 탐색기에 표시 + +Autolink\ files=자동 링크 파일 + +Custom\ editor\ tabs=사용자 정의 편집기 탭 +Custom\ export\ formats=사용자 정의 내보내기 형식 +Custom\ import\ formats=사용자 정의 가져오기 형식 + +No\ list\ enabled=활성화된 목록 없음 +Protect\ selection=선택 보호 + +Customized\ preview\ style=맞춤형 미리보기 스타일 +Next\ preview\ style=다음 미리보기 스타일 +Previous\ preview\ style=이전 미리보기 스타일 + +(\ Note\:\ Press\ return\ to\ commit\ changes\ in\ the\ table\!\ )=( 참고\: 테이블의 변경 사항을 커밋하려면 return 키를 누르십시오\! ) +Reset=초기화 +New\ inproceedings=새로운 절차 +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.=숫자 제거 + +Presets=프리셋 + +Check\ Proxy\ Setting=프록시 설정 확인 +Check\ connection=연결 확인 +Connection\ failed\!=연결 실패\! +Connection\ successful\!=연결 성공\! +Generate\ groups\ from\ keywords\ in\ the\ following\ field=다음 필드의 키워드에서 그룹 생성 +Generate\ groups\ for\ author\ last\ names=작가의 성씨를 가지고 그룹 생성 +Regular\ expression=정규식 + +Error\ importing.\ See\ the\ error\ log\ for\ details.=가져오는 중에 오류가 발생했습니다. 자세한 내용은 오류 로그를 참조하십시오. + +Error\ from\ import\:\ %0=가져오기 오류\: %0 +Error\ reading\ PDF\ content\:\ %0=PDF 콘텐츠를 읽는 중 오류\: %0 +Importing\ bib\ entry=출입 항목 가져오는중 +Importing\ using\ extracted\ PDF\ data=추출된 PDF 데이터를 사용하여 가져오기 +No\ BibTeX\ data\ found.\ Creating\ empty\ entry\ with\ file\ link=BibTex 데이터가 발견되지 않음.\n파일 링크로 빈 항목 생성 중. +No\ metadata\ found.\ Creating\ empty\ entry\ with\ file\ link=메타데이터가 발견되지 않음.\n파일 링크로 빈 항목 생성 중. +Processing\ file\ %0=파일 %0 처리중 +Export\ selected=선택한 항목 내보내기 + +Separate\ merged\ citations=병합된 인용 분리 +Separate\ citations=별도 인용문 + +Unprotect\ terms=약관 보호 해제 +Error\ connecting\ to\ Writer\ document=Writer 문서에 연결하는 동안 오류가 발생했습니다. +You\ need\ to\ open\ Writer\ with\ a\ document\ before\ connecting=연결하기 전에 문서와 함께 Writer를 열어야 합니다. + +Generate\ a\ new\ key\ for\ imported\ entries\ (overwriting\ their\ default)=가져온 항목에 대한 새 키 생성(기본값 덮어쓰기) +Import\ and\ Export=가져오기 및 내보내기 +Custom\ DOI\ URI=사용자 지정 DOI URI +Use\ custom\ DOI\ base\ URI\ for\ article\ access=기사 접근을 위해 사용자 정의 DOI 기본 URI 사용 + +Cited\ on\ pages=페이지에 인용됨 +Unable\ to\ find\ valid\ certification\ path\ to\ requested\ target(%0),\ download\ anyway?=요청하신 (%0)에서 유효한 인증 경로를 발견하지 못했습니다. 그래도 다운로드 하시겠습니까? +Download\ operation\ canceled.=다운로드 취소 + +Convert\ timestamp\ field\ to\ field\ 'creationdate'=타임스탬프 필드를 'creationdate' 필드로 변환 +Convert\ timestamp\ field\ to\ field\ 'modificationdate'=타임스탬프 필드를 'modificationdate' 필드로 변환 + +New\ entry\ by\ type=유형별 새 항목 + +File\ '%1'\ is\ a\ duplicate\ of\ '%0'.\ Keeping\ '%0'=%1 파일은 %0과 동일합니다. %0을 유지합니다. +File\ '%1'\ is\ a\ duplicate\ of\ '%0'.\ Keeping\ both\ due\ to\ deletion\ error=%1 파일은 %0과 동일합니다. \n삭제 오류로 인해 두 파일을 유지합니다. + +Enable\ field\ formatters=필드 포맷터 활성화 +Entry\ Type=목록 유형 +Entry\ types=목록 유형들 +Field\ names=필드 이름 +Others=기타 +Overwrite\ existing\ field\ values=기존의 필드 값 덮어쓰기 +Recommended=권장 + +Authors\ and\ Title=작가와 제목 +Database=데이터베이스 +Databases=데이터베이스 +Manage\ study\ definition=연구 정의 관리 +Add\ Author\:=작가 추가\: +Add\ Database\:=데이터베이스 추가 +Add\ Query\:=쿼리 추가하기 +Add\ Research\ Question\:=연구 질문 추가\: +Perform\ search\ for\ existing\ systematic\ literature\ review=기존의 체계적인 문헌 검토 검색 수행 +Queries=쿼리 +Research\ Questions=연구 질문 +Searching=검색 중 +Start\ new\ systematic\ literature\ review=체계적인 새로운 문헌 검토 시작 +Study\ Title\:=연구 제목\: +Study\ repository\ could\ not\ be\ created=연구 저장소를 만들 수 없습니다. + +All\ query\ terms\ are\ joined\ using\ the\ logical\ AND,\ and\ OR\ operators=모든 쿼리 용어는 논리적 AND 및 OR 연산자를 사용하여 결합됩니다. +Finalize=최종 승인 +If\ the\ sequence\ of\ terms\ is\ relevant\ wrap\ them\ in\ double\ quotes =용어의 순서가 관련이 있는 경우 큰따옴표로 묶습니다. +Query\ terms\ are\ separated\ by\ spaces.=검색어는 공백으로 구분됩니다. +Select\ the\ study\ directory\:=연구 디렉토리 선택\: +An\ example\:=예\: +Define\ study\ parameters=연구 매개변수 정의 +Start\ survey=설문조사 시작 +Query=쿼리 +Question=질문 +Select\ directory=디렉토리를 선택 + +Rebuild\ fulltext\ search\ index=전체 텍스트 검색 색인 재구축 +Rebuild\ fulltext\ search\ index\ for\ current\ library?=현재 라이브러리에 대한 전체 텍스트 검색 인덱스를 다시 작성하시겠습니까? +Rebuilding\ fulltext\ search\ index...=전체 텍스트 검색 색인 재구축 중... +Failed\ to\ access\ fulltext\ search\ index=전체 텍스트 검색 색인에 액세스하지 못했습니다. +Found\ match\ in\ %0=%0에서 일치하는 항목을 찾았습니다. +On\ page\ %0=페이지 %0 +Found\ matches\ in\ Annotations\:=주석에서 일치하는 항목을 찾았습니다. + +Grobid\ URL=Grobid 주소(URL) +Remote\ services=원격 서비스 +Allow\ sending\ PDF\ files\ and\ raw\ citation\ strings\ to\ a\ JabRef\ online\ service\ (Grobid)\ to\ determine\ Metadata.\ This\ produces\ better\ results.=더 좋은 결과를 위해서 JabRef의 온라인 서비스(Grobid)에 전송한 PDF 파일과 인용 문구들이 메타데이터를 결정할 수 있도록 하세요. + +Character\ by\ character=한 문자씩 +Embedded=내장 +Entry=목록 +Parse\ Metadata\ from\ PDF.=PDF로부터 메타데이터 파싱하기 +Symmetric\ character\ by\ character=한 문자씩 대조 +Symmetric\ word\ by\ word=한 단어씩 대조 +Verbatim=원본 +Word\ by\ word=한 단어씩 +Could\ not\ extract\ Metadata\ from\:\ %0=%0 에서 메타데이터를 가져오지 못했습니다. + +Search\ across\ libraries\ in\ a\ new\ window=새 창에서 검색 결과 확인 +Keep\ search\ string\ across\ libraries=라이브러리 내에서 문자열 검색 +Keep\ dialog\ always\ on\ top=대화창 위로 고정 diff --git a/src/main/resources/l10n/JabRef_nl.properties b/src/main/resources/l10n/JabRef_nl.properties index 9c8fb055eab..42e42dad9cc 100644 --- a/src/main/resources/l10n/JabRef_nl.properties +++ b/src/main/resources/l10n/JabRef_nl.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 bevat de standaard-uitdruk %1 %0\ contains\ the\ term\ %1=%0 bevat de term %1 @@ -40,6 +45,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Het pad moet niet in h Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Een reguliere expressie voor het belangrijkste patroon toevoegen. + Add\ selected\ entries\ to\ this\ group=De geselecteerde invoergegevens toevoegen aan deze groep Add\ subgroup=Voeg subgroep toe @@ -302,6 +308,7 @@ External\ file\ links=Externe bestand links External\ programs=Externe programma's + Field=Veld field=veld @@ -512,6 +519,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Er konden geen logboeknamen worden a No\ journal\ names\ could\ be\ unabbreviated.=Geen logboeknamen konden niet worden afgekort. + not=niet not\ found=niet gevonden @@ -620,8 +628,6 @@ Related\ articles=Gerelateerde artikelen Remote\ operation=Externe operatie -Remote\ server\ port=Externe server poort - Remove=Verwijderen Remove\ subgroups=Verwijder alle subgroepen @@ -682,6 +688,7 @@ Restart=Herstarten Restart\ required=Herstart vereist + Review=Herzien Review\ changes=Wijzigingen herzien Review\ Field\ Migration=Veldmigratie controleren @@ -873,7 +880,6 @@ Unable\ to\ open\ link.=Link openen niet mogelijk. MIME\ type=MIME type -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Als er geen link is bepaald, zoek dan naar overeenkomend bestand als de bestandslink wordt geopend No\ full\ text\ document\ found=Geen volledig tekstdocument gevonden Download\ from\ URL=Download vanaf URL Rename\ field=Veld hernoemen @@ -917,7 +923,6 @@ General\ file\ directory=Algemene bestandsmap User-specific\ file\ directory=Gebruiker-specifieke map Search\ failed\:\ illegal\ search\ expression=Zoeken mislukt\: verboden zoekformule -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Bladervenster automatisch openen bij het maken van een nieuwe bestandslink Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Vul namen in de vorm 'Voornaam Achternaam' formaat automatisch in Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Vul namen in de vorm 'Achternaam, Voornaam' formaat automatisch in Autocomplete\ names\ in\ both\ formats=Namen in beide formaten automatisch aanvullen @@ -1062,7 +1067,6 @@ Not\ connected\ to\ any\ Writer\ document.\ Please\ make\ sure\ a\ document\ is\ Removed\ all\ subgroups\ of\ group\ "%0".=Alle subgroepen van groep "%0" verwijderd. To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Om de geheugenstick modus in te schakelen, hernoem of verwijder het jabref.xml bestand in dezelfde folder als JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Verbinden niet mogelijk. Een mogelijke reden is, dat JabRef en OpenOffice/LibreOffice niet beiden in 32 bit modus ofwel 64 bit modus draaien. -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Bij het downloaden van bestanden of het verplaatsen van gekoppelde bestanden naar de bestandsmap, geeft u de voorkeur aan de locatie van het BIB-bestand in plaats van de hierboven ingestelde bestandsdirectory Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Uw stijlbestand specificeert de tekenopmaak '%0', die in huw huidige OpenOffice/LibreOffice document ongedefinieerd is. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Uw stijlbestand specificeert de alinea-opmaak '%0', die in uw huidige OpenOffice/LibreOffice document ongedefinieerd is. @@ -1096,7 +1100,6 @@ Clear\ connection\ settings=Verbindingsinstellingen wissen Open\ folder=Map openen Export\ sort\ order=Sorteervolgorde exporteren -Newline\ separator=Nieuwelijn scheidingsteken Show\ extra\ columns=Extra kolommen tonen Parsing\ error=Parseerfout diff --git a/src/main/resources/l10n/JabRef_no.properties b/src/main/resources/l10n/JabRef_no.properties index cb43412a292..41f9a102412 100644 --- a/src/main/resources/l10n/JabRef_no.properties +++ b/src/main/resources/l10n/JabRef_no.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 inneholder regulæruttrykket %1 %0\ contains\ the\ term\ %1=%0 inneholder uttrykket %1 @@ -38,6 +43,7 @@ Add\ a\ (compiled)\ custom\ Importer\ class\ from\ a\ class\ path.=Legg til en ( The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Stien trenger ikke å være på JabRefs classpath. + Add\ selected\ entries\ to\ this\ group=Legg valgte oppføringer til denne gruppen Add\ subgroup=Legg til undergruppe @@ -291,6 +297,7 @@ External\ file\ links=Eksterne linker External\ programs=Eksterne programmer + Field=Felt field=felt @@ -489,6 +496,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Ingen journalnavn kunne forkortes. No\ journal\ names\ could\ be\ unabbreviated.=Ingen journalnavn kunne ekspanderes. + not=ikke not\ found=ikke funnet @@ -587,8 +595,6 @@ regular\ expression=Regulæruttrykk Remote\ operation=Fjernstyring -Remote\ server\ port=Port for fjernstyring - Remove=Fjern Remove\ subgroups=Fjern undergrupper @@ -646,6 +652,7 @@ resolved=tatt hånd om Restart=Omstart + Review=Kommentarer Review\ changes=Se over endringer @@ -831,7 +838,6 @@ MIME\ type=MIME-type 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.=Denne funksjonen lar deg åpne eller importere nye filer til en allerede kjørende instans av JabRef fra nettleseren din. Merk at dette vil hindre deg i å kjøre mer enn en instans av JabRef av gangen. -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Ved åpning av linke, s¸k etter matchende fil hvis ingen er definert Download\ from\ URL=Last ned fra URL Rename\ field=Endre navn på felt Rename\ field\ to=Endre navn på felt til @@ -868,7 +874,6 @@ General\ file\ directory=Standard filkatalog User-specific\ file\ directory=Brukerdefinert filkatalog Search\ failed\:\ illegal\ search\ expression=Kunne ikke søke\: feil i søkeuttrykk -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Åpne fildialog automatisk når ny link opprettes Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autokompletter navn i 'Fornavn Etternavn'-format Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autokompletter navn i 'Etternavn, Fornavn'-format Autocomplete\ names\ in\ both\ formats=Autokompletter navn i begge format diff --git a/src/main/resources/l10n/JabRef_pl.properties b/src/main/resources/l10n/JabRef_pl.properties index 328791c21f1..dd4efc2fbc9 100644 --- a/src/main/resources/l10n/JabRef_pl.properties +++ b/src/main/resources/l10n/JabRef_pl.properties @@ -8,6 +8,11 @@ + + + + + Abbreviation=Skrót About\ JabRef=O JabRef @@ -26,6 +31,7 @@ Add=Dodaj + Add\ subgroup=Dodaj podgrupę Added\ group\ "%0".=Dodano grupę "%0". @@ -228,6 +234,7 @@ Extension=Rozszerzenie External\ programs=Programy zewnętrzne + Field=Pole field=pole @@ -378,6 +385,7 @@ No\ files\ found.=Nie znaleziono plików. + not=nie not\ found=nie znaleziono @@ -455,7 +463,6 @@ Related\ articles=Powiązane artykuły Remote\ operation=Zdalna operacja - Remove=Usuń Remove\ subgroups=Usuń podgrupy @@ -497,6 +504,7 @@ Restart=Uruchom ponownie Restart\ required=Wymagane ponowne uruchomienie + Review\ changes=Przejrzyj zmiany Save=Zapisz @@ -703,7 +711,6 @@ Hostname=Nazwa hosta Proxy\ configuration=Konfiguracja proxy Open\ folder=Otwórz folder -Newline\ separator=Separator nowej linii Parsing\ error=Błąd parsowania diff --git a/src/main/resources/l10n/JabRef_pt.properties b/src/main/resources/l10n/JabRef_pt.properties index ceefd33cf9c..ed91d0b3ae6 100644 --- a/src/main/resources/l10n/JabRef_pt.properties +++ b/src/main/resources/l10n/JabRef_pt.properties @@ -1,3 +1,8 @@ + + + + + %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 @@ -39,6 +44,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=O caminho não precisa Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Adicione uma expressão para a chave padrão. + Add\ selected\ entries\ to\ this\ group=Adicionar as entradas selecionadas a este grupo Add\ subgroup=Adicionar subgrupo @@ -296,6 +302,7 @@ External\ file\ links=Links de arquivos externos External\ programs=Programas externos + Field=Campo field=campo @@ -505,6 +512,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Nenhum nome de periódico pôde ser No\ journal\ names\ could\ be\ unabbreviated.=Nenhum nome de periódico pôde ser desabreviado. + not=não not\ found=não encontrado @@ -612,8 +620,6 @@ regular\ expression=Expressão regular Remote\ operation=Operação remota -Remote\ server\ port=Remover porta do servidor - Remove=Remover Remove\ subgroups=Remover todos os subgrupos @@ -661,6 +667,7 @@ resolved=resolvido + Review=Revisar Review\ changes=Revisar mudanças @@ -843,7 +850,6 @@ 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. -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 Rename\ field=Renomear campo Rename\ field\ to=Renomear campo para Move\ contents\ of\ a\ field\ into\ a\ field\ with\ a\ different\ name=Mover conteúdo de um campo para um campo com nome diferente @@ -883,7 +889,6 @@ General\ file\ directory=Diretório geral de arquivos User-specific\ file\ directory=Diretório de arquivo específico do usuário Search\ failed\:\ illegal\ search\ expression=A pesquisa falhou\: expressão de pesquisa ilegal -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Abrir janela de diálogo automaticamente ao criar um novo link de arquivo Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autocompletar nome em um formato 'Nome, Sobrenome' apenas Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autocompletar nomes em um formato 'Sobrenome, Nome' apenas Autocomplete\ names\ in\ both\ formats=Autocompletar nomes em ambos os formatos @@ -1024,7 +1029,6 @@ Not\ connected\ to\ any\ Writer\ document.\ Please\ make\ sure\ a\ document\ is\ Removed\ all\ subgroups\ of\ group\ "%0".=Todos os subgrupos do grupo "%0" foram removidos. To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Para desabilitar o modo memory stick renomeie ou remova o arquivo jabref.xml no mesmo diretório que o JabRef Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Não possível conectar. Uma possível razão é que o JabRef e o OpenOffice/LibreOffice não estão rodando no mesmo modo\: 32 bits ou 64 bits. -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Quand estiver baixando arquivos, ou mesmo movendo arquivos ao diretório, dê preferência ao local onde está o seu arquivo bib. Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Seu arquivo de estilo especifica o formato de caracter '%0', que não está definido no seu documento OpenOffice/LibreOffice atual Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Seu arquivo de estilo especifica o formato de parágrafo '%0', que não está definido no seu documento OpenOffice/LibreOffice atual @@ -1056,7 +1060,6 @@ Clear\ connection\ settings=Limpar configurações da conexão Open\ folder=Abrir diretório Export\ sort\ order=Exportar ordenação -Newline\ separator=Separador de quebra de linha Show\ extra\ columns=Mostrar colunas extra Parsing\ error=Erro de interpretação diff --git a/src/main/resources/l10n/JabRef_pt_BR.properties b/src/main/resources/l10n/JabRef_pt_BR.properties index c49af8647f4..aeb175d0b41 100644 --- a/src/main/resources/l10n/JabRef_pt_BR.properties +++ b/src/main/resources/l10n/JabRef_pt_BR.properties @@ -1,3 +1,8 @@ + + + + + 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 @@ -7,6 +12,7 @@ Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ %0\ doesn't\ contain\ the\ term\ %1=%0 não contém o termo %1 +%0/%1\ entries=%0/%1 entradas %0\ export\ successful=%0 exportado com sucesso @@ -43,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=O caminho não precisa Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Adicione uma expressão para a chave padrão. + Add\ selected\ entries\ to\ this\ group=Adicionar as entradas selecionadas a este grupo Add\ subgroup=Adicionar subgrupo @@ -139,6 +146,7 @@ Clear=Limpar Clear\ fields=Limpar campos +Open\ /\ close\ entry\ editor=Abrir / fechar o editor de referências Close\ dialog=Fechar janela de diálogo @@ -230,6 +238,7 @@ Descending=Descendente Description=Descrição +Do\ not\ ask\ again=Não perguntar novamente Display\ all\ entries\ belonging\ to\ one\ or\ more\ of\ the\ selected\ groups=Exibir todas as referências pertencentes a um ou mais grupos selecionados @@ -318,6 +327,7 @@ External\ file\ links=Links de arquivos externos External\ programs=Programas externos + Field=Campo field=campo @@ -357,6 +367,7 @@ Formatter\ name=Nome do formatador found\ in\ AUX\ file=encontrado em arquivo AUX +Fulltext\ search=Pesquisa de texto completo Fulltext\ for=Texto completo para @@ -537,6 +548,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Nenhum nome de periódico pôde ser No\ journal\ names\ could\ be\ unabbreviated.=Nenhum nome de periódico pôde ser desabreviado. + not=não not\ found=não encontrado @@ -650,8 +662,6 @@ Related\ articles=Artigos relacionados Remote\ operation=Operação remota -Remote\ server\ port=Remover porta do servidor - Remove=Remover Remove\ subgroups=Remover todos os subgrupos @@ -713,6 +723,7 @@ Restart=Reiniciar Restart\ required=Reinicialização necessária + Review=Revisar Review\ changes=Revisar mudanças Review\ Field\ Migration=Revisar Migração de Campo @@ -917,7 +928,6 @@ MIME\ type=MIME type 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. 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\ 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). @@ -970,7 +980,6 @@ LaTeX\ file\ directory=Diretório de arquivos LaTeX Search\ failed\:\ illegal\ search\ expression=A pesquisa falhou\: expressão de pesquisa ilegal You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=Você deve digitar um valor inteiro no intervalo 1025-65535 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Abrir janela de diálogo automaticamente ao criar um novo link de arquivo Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Autocompletar nome em um formato 'Nome, Sobrenome' apenas Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Autocompletar nomes em um formato 'Sobrenome, Nome' apenas Autocomplete\ names\ in\ both\ formats=Autocompletar nomes em ambos os formatos @@ -1080,6 +1089,9 @@ Expand\ all=Expandir todos Collapse\ all=Reduzir todos Searches\ the\ selected\ directory\ for\ unlinked\ files.=Buscar arquivos não referenciados no diretório selecionado Starts\ the\ import\ of\ BibTeX\ entries.=Iniciar a importação de entradas BibTeX +Last\ month=Mês anterior +Last\ year=Ano anterior +Directory=Diretório Searching\ file\ system...=Buscando sistema de arquivo... Citation\ key\ patterns=Padrões de chave de citação Clear\ priority=Limpar prioridades @@ -1127,7 +1139,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Todos os subgrupos do grupo "%0" foram To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Para desabilitar o modo memory stick renomeie ou remova o arquivo jabref.xml no mesmo diretório que o JabRef Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Não possível conectar. Uma possível razão é que o JabRef e o OpenOffice/LibreOffice não estão rodando no mesmo modo\: 32 bits ou 64 bits. Delimiter(s)=Delimitador(es) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Quand estiver baixando arquivos, ou mesmo movendo arquivos ao diretório, dê preferência ao local onde está o seu arquivo bib. Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Seu arquivo de estilo especifica o formato de caracter '%0', que não está definido no seu documento OpenOffice/LibreOffice atual Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Seu arquivo de estilo especifica o formato de parágrafo '%0', que não está definido no seu documento OpenOffice/LibreOffice atual @@ -1168,7 +1179,6 @@ Clear\ connection\ settings=Limpar configurações da conexão Open\ folder=Abrir diretório Export\ sort\ order=Exportar ordenação Save\ sort\ order=Salvar ordenação -Newline\ separator=Separador de quebra de linha Show\ extra\ columns=Mostrar colunas extra Parsing\ error=Erro de interpretação diff --git a/src/main/resources/l10n/JabRef_ru.properties b/src/main/resources/l10n/JabRef_ru.properties index 8cf9a6c7f52..34632ad5434 100644 --- a/src/main/resources/l10n/JabRef_ru.properties +++ b/src/main/resources/l10n/JabRef_ru.properties @@ -1,3 +1,8 @@ + + + + + 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 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Путь может н Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Добавьте регулярное выражение для шаблона ключа. + Add\ selected\ entries\ to\ this\ group=Добавить выбранные записи в эту группу Add\ subgroup=Добавить подгруппу @@ -323,6 +329,7 @@ External\ file\ links=Ссылки на внешние файлы External\ programs=Внешние программы + Field=Поле field=поле @@ -550,6 +557,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Названия журналов н No\ journal\ names\ could\ be\ unabbreviated.=Названия журналов не могут быть развернуты. + not=не not\ found=не найдено @@ -663,8 +671,6 @@ Related\ articles=Связанные статьи Remote\ operation=Операции удаленного подключения -Remote\ server\ port=Порт сервера удаленного подключения - Remove=Удалить Remove\ subgroups=Удалить подгруппы @@ -726,6 +732,7 @@ Restart=Перезапустить Restart\ required=Требуется перезапуск + Review=Просмотр Review\ changes=Просмотр изменений Review\ Field\ Migration=Перемещение поля обзора @@ -904,6 +911,7 @@ Writing\ metadata\ for\ selected\ entries...=Запись метаданных Writing\ metadata...=Обновление метаданных... Write\ XMP=Запись XMP +Embed\ BibTeXEntry\ in\ PDF.=Встроенная BibTeX запись в файле PDF. Write\ BibTeXEntry\ as\ XMP\ metadata\ to\ PDF.=Записать статью BibTeX как метаданные XMP в файл PDF. Write\ BibTeXEntry\ metadata\ to\ PDF.=Запись метаданные BibTeXEntry в PDF. Write\ metadata\ to\ PDF\ files=Запись метаданных в PDF-файлы @@ -940,7 +948,6 @@ MIME\ type=MIME-тип 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.=Эта функция позволяет открывать или импортировать файлы в работающий экземпляр JabRef без запуска нового экземпляра приложения. Например, при передаче файла в JabRef из веб-браузера. Обратите внимание, что эта функция не даст запустить несколько экземпляров JabRef одновременно. Run\ fetcher=Запустить выборку -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=При переходе по ссылке выполнять поиск соответствующего файла, если ссылка не определена 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 (запятая отсутствует). @@ -993,7 +1000,6 @@ LaTeX\ file\ directory=Папка с файлами LaTeX Search\ failed\:\ illegal\ search\ expression=Ошибка поиска\: недопустимое выражение для поиска You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=Необходимо ввести целое число в интервале 1025-65535 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Автоматически открывать диалоговое окно обзора при создании новой ссылки на файл Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Автозавершение имен только для формата 'Имя Фамилия' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Автозавершение имен только для формата 'Фамилия, Имя' Autocomplete\ names\ in\ both\ formats=Автозавершение имен в обоих форматах @@ -1163,7 +1169,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Все подгруппы группы To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Для отключения режима флеш-памяти переименуйте или удалите файл jabref.xml в каталоге JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Не удалось выполнить подключение. Возможная причина\: JabRef и OpenOffice/LibreOffice не запущены в режиме 32-х или 64-х битного приложения. Delimiter(s)=Разделитель(и) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=При загрузке файлов или перемещении связанных файлов в каталог файлов желательно использовать каталог расположения файла bib, а не вышеуказанный каталог Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=В пользовательском файле стиля указан формат знака '%0', не определенный в текущем документе OpenOffice/LibreOffice. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=В пользовательском файле стиля указан формат абзаца '%0', не определенный в текущем документе OpenOffice/LibreOffice. @@ -1207,7 +1212,6 @@ Clear\ connection\ settings=Удалить настройки подключен Open\ folder=Открыть папку Export\ sort\ order=Экспорт в порядке сортировки Save\ sort\ order=Сохранить порядок сортировки -Newline\ separator=Разделитель для новой строки Keep\ original\ order=Сохранить исходную сортировку Use\ current\ table\ sort\ order=Использовать текущую сортировку @@ -1373,6 +1377,7 @@ 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\ citation\ keys.=Ни одна из выбранных записей не имеет ключей цитат. +None\ of\ the\ selected\ entries\ have\ DOIs.=Ни одна из выбранных записей не содержит заголовок. Unabbreviate\ journal\ names=Полные названия журналов Unabbreviating...=Отмена сокращений... Usage=Использование @@ -1547,6 +1552,9 @@ Custom=Определено пользователем Export\ cited=Экспорт цитированного Unable\ to\ generate\ new\ library=Не удалось создать новую БД +Found\ identical\ ranges=Найдены идентичные диапазоны +Found\ overlapping\ ranges=Найдены пересекающиеся диапазоны +Found\ touching\ ranges=Найдены соприкасающиеся диапазоны Note\:\ Use\ the\ placeholder\ %DIR%\ for\ the\ location\ of\ the\ opened\ library\ file.=Примечание. Используйте подстановочный знак %DIR% для указания файла библиотеки. Error\ occured\ while\ executing\ the\ command\ "%0".=Ошибка при выполнении команды "%0". @@ -2304,9 +2312,11 @@ Error\ connecting\ to\ Writer\ document=Ошибка подключения к You\ need\ to\ open\ Writer\ with\ a\ document\ before\ connecting=Вам нужно Writer с документом перед подключением Generate\ a\ new\ key\ for\ imported\ entries\ (overwriting\ their\ default)=Создать новый ключ для импортированных записей (взамен существующих) +Import\ and\ Export=Импорт и экспорт Custom\ DOI\ URI=Пользовательский DOI URI Use\ custom\ DOI\ base\ URI\ for\ article\ access=Использовать пользовательский базовый URI от DOI для доступа к материалам +Cited\ on\ pages=Цитаты на страницах Unable\ to\ find\ valid\ certification\ path\ to\ requested\ target(%0),\ download\ anyway?=Не удается найти действительный путь сертификации к запрошенной цели (%0), все равно загрузить? Download\ operation\ canceled.=Операция загрузки отменена. @@ -2354,6 +2364,28 @@ Query=Запрос Question=Вопрос Select\ directory=Выберите каталог - - - +Rebuild\ fulltext\ search\ index=Перестроить полнотекствой индекс +Rebuild\ fulltext\ search\ index\ for\ current\ library?=Перестроить полнотекстовой индекс для текущей библиотеки? +Rebuilding\ fulltext\ search\ index...=Перестроить полнотекствой индекс... +Failed\ to\ access\ fulltext\ search\ index=Не удалось получить доступ к поисковому индексу +Found\ match\ in\ %0=Найдены совпадения в %0 +On\ page\ %0=На странице %0 +Found\ matches\ in\ Annotations\:=Найдены совпадения в аннотациях\: + +Grobid\ URL=Grobid URL +Remote\ services=Удаленные сервисы +Allow\ sending\ PDF\ files\ and\ raw\ citation\ strings\ to\ a\ JabRef\ online\ service\ (Grobid)\ to\ determine\ Metadata.\ This\ produces\ better\ results.=Разрешить отправку PDF-файлов и цитат в онлайн сервис JabRef (Grobid) для определения метаданных. Это приводит к улучшению результатов. + +Character\ by\ character=Посимвольно +Embedded=Встроенный +Entry=Запись +Parse\ Metadata\ from\ PDF.=Парсинг метаданных из PDF. +Symmetric\ character\ by\ character=Симметрично по каждому символу +Symmetric\ word\ by\ word=Симметрично по каждому слову +Verbatim=Verbatim +Word\ by\ word=По каждому слову +Could\ not\ extract\ Metadata\ from\:\ %0=Не удалось извлечь метаданные из\: %0 + +Search\ across\ libraries\ in\ a\ new\ window=Поиск по библиотекам в новом окне +Keep\ search\ string\ across\ libraries=Сохранить строку поиска по библиотекам +Keep\ dialog\ always\ on\ top=Показывать диалог поверх всех окон diff --git a/src/main/resources/l10n/JabRef_sv.properties b/src/main/resources/l10n/JabRef_sv.properties index 7f1083aa3b8..04cde68aa98 100644 --- a/src/main/resources/l10n/JabRef_sv.properties +++ b/src/main/resources/l10n/JabRef_sv.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 innehåller det reguljära uttrycket %1 %0\ contains\ the\ term\ %1=%0 innehåller termen %1 @@ -38,6 +43,7 @@ Add=Lägg till Add\ a\ (compiled)\ custom\ Importer\ class\ from\ a\ class\ path.=Lägg till en (kompilerad) Importer-klass från en sökväg till en klass. + Add\ selected\ entries\ to\ this\ group=Lägg till valda poster till denna grupp Add\ subgroup=Lägg till undergrupp @@ -294,6 +300,7 @@ External\ file\ links=Externa fillänkar External\ programs=Externa program + Field=Fält field=fält @@ -488,6 +495,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Inga tidskriftsnamn kunde förkortas No\ journal\ names\ could\ be\ unabbreviated.=Inga tidskriftsnamn kunde expanderas. + not=inte not\ found=hittades inte @@ -590,8 +598,6 @@ Related\ articles=Relaterade artiklar Remote\ operation=Fjärrstyrning -Remote\ server\ port=Port på fjärrserver - Remove=Ta bort Remove\ subgroups=Ta bort undergrupper @@ -642,6 +648,7 @@ Resolve\ strings\ for\ standard\ BibTeX\ fields\ only=Ersätt bara strängar fö Restart\ required=Omstart krävs + Review\ changes=Kontrollera ändringar Save=Spara @@ -858,7 +865,6 @@ General\ file\ directory=Generell filmapp User-specific\ file\ directory=Användarspecifik filmapp Search\ failed\:\ illegal\ search\ expression=Sökning misslyckades\: ogiltigt sökuttryck -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Öppna fildialog automatiskt när ny fillänk skapas Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Komplettera enbart namn i 'Förnamn Efternamn'-format Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Komplettera enbart namn i 'Efternamn, Förnamn'-format Autocomplete\ names\ in\ both\ formats=Komplettera namn automatiskt i bägge formaten @@ -1020,7 +1026,6 @@ Clear\ connection\ settings=Rensa anslutningsinställningar Open\ folder=Öppna mapp Export\ sort\ order=Soteringsordning vid export -Newline\ separator=Radbrytningstecken Show\ extra\ columns=Visa extrakolumner diff --git a/src/main/resources/l10n/JabRef_tl.properties b/src/main/resources/l10n/JabRef_tl.properties index 2c6b117af0c..81144c6230d 100644 --- a/src/main/resources/l10n/JabRef_tl.properties +++ b/src/main/resources/l10n/JabRef_tl.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 ay naglalaman ng regular na ekspresyon%1 %0\ contains\ the\ term\ %1=%ay naglalaman ng mga term%1 @@ -38,6 +43,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Ang landas ay kinakail Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Magdagdag ng regular na ekspresyon para sa pangunahing pattern. + Add\ selected\ entries\ to\ this\ group=Magdagdag ng piniling entries dito sa grupo Add\ subgroup=Magdagdag ng mababang grupo @@ -285,6 +291,7 @@ External\ file\ links=Mga labas na file links External\ programs=Panlabas na mga programa + Field=Patlang field=patlang @@ -482,6 +489,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Walang talaarawan na pangalan ang pu No\ journal\ names\ could\ be\ unabbreviated.=Walang talaarawag ang puwedeng paikliin. + not=hindi not\ found=hindi nakita @@ -581,8 +589,6 @@ Related\ articles=Kaugnay na mga artikulo Remote\ operation=Naka-remote na operasyon -Remote\ server\ port=I-remote ang serber na port - Remove=Alisin Remove\ subgroups=I-remove ang mababang grupo @@ -634,6 +640,7 @@ resolved=nalutas + Review=Mag balig-aral Review\ changes=Suriin ang mga pagbabago Review\ Field\ Migration=Suriin ang patlang ng paglipat @@ -821,7 +828,6 @@ MIME\ type=Uri ng MIME 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.=Ang tampok na ito ay nagbibigay-daan sa mga bagong file na mabuksan o ma-import sa isang tumatakbo na halimbawa ng JabRef sa halip ng pagbubukas ng isang bagong pagkakataon. Halimbawa, ito ay kapaki-pakinabang kapag binuksan mo ang isang file sa JabRef mula sa iyong web browser. Tandaan na ito ay pipigil sa iyo mula sa pagpapatakbo ng higit sa isang halimbawa ng JabRef sa isang pagkakataon. -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Kapag binubuksan ang link ng file, maghanap ng pagtutugma ng file kung walang tinukoy na link Download\ from\ URL=I-download mula sa URL Rename\ field=Palitan ang pangalan ng patlang Append\ field=Ilagay ang field @@ -864,7 +870,6 @@ General\ file\ directory=Pangkalahatang direktoryo ng file User-specific\ file\ directory=Direktoryo ng file tukoy sa gumagamit Search\ failed\:\ illegal\ search\ expression=Nabigo ang paghahanap\: iligal na ekspresyon sa paghahanap -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Awtomatikong buksan ang pag-browse ng dialog kapag lumilikha ng bagong fine na link Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=Awtomatikong isali ang mga pangalan sa format ng 'Firstname Lastname' Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=Awtomatikong isali ang mga pangalan sa format ng 'Firstname Lastname' lamang Autocomplete\ names\ in\ both\ formats=Mga pangalan ng autocomplete sa parehong mga format @@ -1005,7 +1010,6 @@ Not\ connected\ to\ any\ Writer\ document.\ Please\ make\ sure\ a\ document\ is\ Removed\ all\ subgroups\ of\ group\ "%0".=Tanggalin ang lahat ng mga mababang grupo sa grupo "%0". To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Para di paganahin ang memory stick mode palitan ulit ng pangalan o tanggalin ang jabref.xml na file sa ka parehong folder bilang JabRef. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Hindi makakonek. Isang posibleng rason ay ang JabRef at OpenOffice/LibreOffice ay parehong hindi tumatakbo o anumang 32 bit na mode o 64 bit na mode. -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Kapag nagda-download ng file, o naglilipat ng linked files sa direktoryo na file, I-prefer lokasyon ng BIB file sa halip na sa direktoryo na file na naka-set sa taas Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Ang iyong estilo ng file ay nakatukoy sa karakter na format '%0', kung saan hindi natukoy ang iyong kasalukuyang OpenOffice/LibreOffice na dokumento. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Ang iyong estilo ng file ay nakatukoy sa nakatalata na format '%0', kung saan hindi natukoy ang iyong kasalukuyang OpenOffice/LibreOffice na dokumento. @@ -1037,7 +1041,6 @@ Attention\:\ Password\ is\ stored\ in\ plain\ text\!=Pansin\: Ang password ay na Clear\ connection\ settings=I-clear ang mga setting ng koneksyon Export\ sort\ order=Mag-export ng uri ng order -Newline\ separator=Separator ng bagong linya Show\ extra\ columns=Magpakita ng mga dagdag na haligi Parsing\ error=Error sa pag-parse diff --git a/src/main/resources/l10n/JabRef_tr.properties b/src/main/resources/l10n/JabRef_tr.properties index 79f9de896b0..368299adf2b 100644 --- a/src/main/resources/l10n/JabRef_tr.properties +++ b/src/main/resources/l10n/JabRef_tr.properties @@ -1,3 +1,8 @@ + + + + + Unable\ to\ monitor\ file\ changes.\ Please\ close\ files\ and\ processes\ and\ restart.\ You\ may\ encounter\ errors\ if\ you\ continue\ with\ this\ session.=Dosya değişiklikleri izlenemiyor. Lütfen dosyaları ve süreçleri kapatın ve yeniden başlatın. Bu seansa devam ederseniz hatalarla karşılaşabilirsiniz. %0\ contains\ the\ regular\ expression\ %1=%0 şu düzenli ifadeyi içeriyor %1 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Yolun JabRef'in sını Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Anahtar kalıbı için bir düzenli ifade ekle. + Add\ selected\ entries\ to\ this\ group=Seçili girdileri bu gruba ekle Add\ subgroup=Altgrup ekle @@ -323,6 +329,7 @@ External\ file\ links=Harici dosya linkleri External\ programs=Harici programlar + Field=Alan field=alan @@ -550,6 +557,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Hiçbir dergi adı kısaltılamadı. No\ journal\ names\ could\ be\ unabbreviated.=Hiçbir dergi adı kısaltması açılamadı. + not=hariç not\ found=bulunmadı @@ -663,8 +671,6 @@ Related\ articles=İlgili makaleler Remote\ operation=Uzak işlem -Remote\ server\ port=Uzak sunucu bağlantı noktası - Remove=Sil Remove\ subgroups=Tüm altgrupları sil @@ -726,6 +732,7 @@ Restart=Yeniden başlat Restart\ required=Yeniden başlatma gerekli + Review=Gözden geçir Review\ changes=Değişklikleri incele Review\ Field\ Migration=Alan Birleştirmeyi İncele @@ -941,7 +948,6 @@ MIME\ type=MIME türü 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.=Bu özellik yeni dosyaların yeni bir oturum açmaktansa halen çalışmakta olan bir
JabRef oturumu içine açılması ya da aktarılmasını sağlar. Örneğin bu, tarayıcınızdan bir dosyayı
JabRef içine açtığnızda kullanışlıdır.
Bunun, birden fazla JabRef oturumunu aynı anda çalıştırmanızı önleyeceğini not ediniz. 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\ citation\ key\ %1.=Satır %0\: Bozulmuş atıf anahtarı bulundu %1. Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=Satır %0\: Bozulmuş atıf anahtarı bulundu %1 (beyaz boşluk içeriyor). Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=Satır %0\: Bozulmuş atıf anahtarı bulundu %1 (virgül kayıp). @@ -994,7 +1000,6 @@ LaTeX\ file\ directory=LaTeX dosya dizini Search\ failed\:\ illegal\ search\ expression=Arama başarısız\: uygunsuz arama dizgesi You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=1025-65535 aralığında bir tam sayı değeri girmelisiniz -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Yeni dosya bağlantısını oluştururken gözatma iletişim kutusunu otomatikman aç Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=İsimleri yalnızca 'Ad Soyad' biçiminde otomatik tamamla Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=İsimleri yalnızca 'Soyad, Ad' biçiminde otomatik tamamla Autocomplete\ names\ in\ both\ formats=İsimleri her iki biçimde otomatik tamamla @@ -1164,7 +1169,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=Grup "%0"'ın bütün alt grupları si To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=Taşınabilir hafıza kartı kipini etkisizleştirmek için JabRef'le aynı klasördeki jabref.xml dosyasını silin ya da adını değiştirin. Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=Bağlanılamadı. Bir olası neden JabRef ve OpenOffice/LibreOffice'in birlikte 32 bit ya da 64 bit kipinde çalışmamasıdır. Delimiter(s)=Sınırlayıcı(lar) -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=Dosya indirirken ya da bağlantılı dosyaları dosya dizinine taşırken, yukarıda atanan dosya dizini yerine BIB dosyası konumunu tercih edin Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Stil dosyanız, mevcut OpenOffice/LibreOffice belgenizde tanımlanmamış olan '%0' karakter formatını belirtiyor. Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=Stil dosyanız, mevcut OpenOffice/LibreOffice belgenizde tanımlanmamış olan '%0' paragraf formatını belirtiyor. @@ -1208,7 +1212,6 @@ Clear\ connection\ settings=Bağlantı ayarlarını sil Open\ folder=Klasörü aç Export\ sort\ order=Sıralama kriterlerini dışa aktar Save\ sort\ order=Sıralama kriterlerini kaydet -Newline\ separator=Satırbaşı ayracı Keep\ original\ order=Orjinal sırayı koru Use\ current\ table\ sort\ order=Mevcut tablo sıralama kuralını kullan diff --git a/src/main/resources/l10n/JabRef_vi.properties b/src/main/resources/l10n/JabRef_vi.properties index ce29625a686..668226c84ac 100644 --- a/src/main/resources/l10n/JabRef_vi.properties +++ b/src/main/resources/l10n/JabRef_vi.properties @@ -1,3 +1,8 @@ + + + + + %0\ contains\ the\ regular\ expression\ %1=%0 chứa biểu thức chính tắc %1 %0\ contains\ the\ term\ %1=%0 chứa thuật ngữ %1 @@ -42,6 +47,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=Đường dẫn không Add\ a\ regular\ expression\ for\ the\ key\ pattern.=Thêm một biểu thức chính quy cho mẫu chính. + Add\ selected\ entries\ to\ this\ group=Thêm các mục đã chọn vào nhóm này Add\ subgroup=Thêm nhóm con @@ -299,6 +305,7 @@ External\ file\ links=Các liên kết tập tin ngoài External\ programs=Các chương trình ngoài + Field=Dữ liệu field=dữ liệu @@ -495,6 +502,7 @@ No\ journal\ names\ could\ be\ abbreviated.=Không có tên tạp chí nào có No\ journal\ names\ could\ be\ unabbreviated.=Không có tên tạp chí nào có thể viết đầy đủ. + not=không not\ found=không tìm thấy @@ -596,8 +604,6 @@ regular\ expression=Biểu thức chính tắc Remote\ operation=Lệnh từ xa -Remote\ server\ port=Cổng máy chủ từ xa - Remove=Loại bỏ Remove\ subgroups=Loại bỏ tất cả các nhóm con @@ -645,6 +651,7 @@ resolved=được giải + Review=Xem xét lại Review\ changes=Xem xét lại các thay đổi @@ -829,7 +836,6 @@ MIME\ type=Kiểu MIME 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.=Tính chất này cho phép các tập tin mới có thể được mở hoặc nhập vào một phiên JabRef đang chạy thay vì phải mở một phiên làm việc mới. Điều này có ích, ví dụ như khi bạn mở một tập tin trong JabRef từ trình duyệt web của mình. Lưu ý rằng điều này sẽ không cho phép bạn chạy nhiều hơn một phiên làm việc của JabRef cùng lúc. -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=Khi mở liên kết tập tin, tìm tập tin khớp nếu liên kết không được định nghĩa Download\ from\ URL=Kéo từ URL Rename\ field=Đổi tên dữ liệu Rename\ field\ to=Đổi tên dữ liệu thành @@ -869,7 +875,6 @@ General\ file\ directory=Tổng quát thư mục tập tin User-specific\ file\ directory=Thư mục tập tin của người sử dụng cụ thể Search\ failed\:\ illegal\ search\ expression=Tìm kiếm thất bại\: biểu thức tìm kiếm bất hợp lệ -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=Mở tự động hộp thoại khi tạo ra đường dẫn tập tin mới Send\ as\ email=Gửi bằng email Connecting...=Đang kết nối... Please\ wait...=Vui lòng chờ... diff --git a/src/main/resources/l10n/JabRef_zh_CN.properties b/src/main/resources/l10n/JabRef_zh_CN.properties index a01c82c67f0..ed359388679 100644 --- a/src/main/resources/l10n/JabRef_zh_CN.properties +++ b/src/main/resources/l10n/JabRef_zh_CN.properties @@ -1,3 +1,8 @@ + + + + + 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 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=该路径不需要在 Add\ a\ regular\ expression\ for\ the\ key\ pattern.=对模式串添加正则表达式。 + Add\ selected\ entries\ to\ this\ group=添加选定记录到该组 Add\ subgroup=添加子分组 @@ -80,9 +86,9 @@ Assigned\ 1\ entry\ to\ group\ "%0".=分配了 1 条记录到分组 "%0". Autogenerate\ citation\ keys=自动生成citationkey -Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=自动链接文件名以 BibTeX 键开头的文件 +Autolink\ files\ with\ names\ starting\ with\ the\ citation\ key=自动链接文件名以Citationkey开头的文件 -Autolink\ only\ files\ that\ match\ the\ citation\ key=自动链接文件名匹配 BibTeX 键的文件 +Autolink\ only\ files\ that\ match\ the\ citation\ key=自动链接文件名匹配Citationkey的文件 Automatically\ create\ groups=自动创建分组 @@ -323,6 +329,7 @@ External\ file\ links=外部文件链接 External\ programs=外部程序 + Field=域 field=域 @@ -346,8 +353,9 @@ Filter=筛选 Filter\ groups=筛选组 +Finished\ writing\ metadata\ for\ %0\ file\ (%1\ skipped,\ %2\ errors).=已为%0个文件写入元数据(跳过%1个,出错%2个)。 -First\ select\ the\ entries\ you\ want\ keys\ to\ be\ generated\ for.=首先选中您要生成 BibTeX 键的记录。 +First\ select\ the\ entries\ you\ want\ keys\ to\ be\ generated\ for.=首先选中要生成Citationkey的条目。 Fit\ table\ horizontally\ on\ screen=列表宽度填满屏幕宽度 @@ -362,6 +370,7 @@ Formatter\ name=格式化器名称 found\ in\ AUX\ file=在 AUX 文件内发现 +Fulltext\ search=全文检索 Fulltext\ for=全文如下: @@ -375,7 +384,7 @@ Generate\ citation\ key=生成CitationKey Generate\ keys=生成键 -Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=保存数据库前为缺失键值的记录自动生成 BibTeX 键 +Generate\ keys\ before\ saving\ (for\ entries\ without\ a\ key)=在保存之前,为缺失键值的记录自动生成Citationkey Generated\ citation\ key\ for=生成Citation key @@ -440,6 +449,8 @@ Include\ subgroups\:\ When\ selected,\ view\ entries\ contained\ in\ this\ group Independent\ group\:\ When\ selected,\ view\ only\ this\ group's\ entries=独立分组:当分组被选中时,只显示属于此分组的记录 I\ Agree=我同意 +Indexing\ pdf\ files=正在索引 pdf 文件 +Indexing\ for\ %0=正在索引 %0 Invalid\ citation\ key=无效的Citation key @@ -453,6 +464,7 @@ JabRef\ requests\ recommendations\ from\ Mr.\ DLib,\ which\ is\ an\ external\ se JabRef\ Version\ (Required\ to\ ensure\ backwards\ compatibility\ with\ Mr.\ DLib's\ Web\ Service)=JabRef版本(需要确保与Mr. DLib的网页服务向后兼容) Journal\ abbreviations=期刊缩写名 +Journal\ lists\:=期刊列表: Keep\ both=保留全部 @@ -515,7 +527,7 @@ No\ recommendations\ received\ from\ Mr.\ DLib\ for\ this\ entry.=没有收到 M Error\ while\ fetching\ recommendations\ from\ Mr.DLib.=在接收 Mr. DLib 的建议时发生了一个错误。 -Name=名字 +Name=名称 Name\ formatter=姓名格式化器 @@ -543,6 +555,7 @@ No\ journal\ names\ could\ be\ abbreviated.=没有可供缩写的期刊全称。 No\ journal\ names\ could\ be\ unabbreviated.=没有可供展开的期刊名缩写。 + not=非 not\ found=未找到 @@ -553,7 +566,7 @@ Nothing\ to\ undo=没有可撤销的操作 OK=好 -One\ or\ more\ keys\ will\ be\ overwritten.\ Continue?=一个或多个 BibTeX 键将会被覆盖,是否继续? +One\ or\ more\ keys\ will\ be\ overwritten.\ Continue?=一个或多个Citationkey将被覆盖,是否继续? Open=打开 @@ -656,8 +669,6 @@ Related\ articles=相关文章 Remote\ operation=远程操作 -Remote\ server\ port=远程服务器端口 - Remove=移除 Remove\ subgroups=移除子分组 @@ -719,6 +730,7 @@ Restart=重新启动 Restart\ required=需要重新启动 + Review=评论 Review\ changes=复查修改 Review\ Field\ Migration=查看字段迁移 @@ -876,9 +888,9 @@ verify\ that\ LyX\ is\ running\ and\ that\ the\ lyxpipe\ is\ valid=检查 LyX View=视图 Vim\ server\ name=Vim 服务器名 -Warn\ about\ unresolved\ duplicates\ when\ closing\ inspection\ window=关闭检视窗口时警告未处理的 BibTeX 键重复情况 +Warn\ about\ unresolved\ duplicates\ when\ closing\ inspection\ window=关闭检视窗口时提示重复的Citationkey -Warn\ before\ overwriting\ existing\ keys=覆盖已存在的 BibTeX 键之前发出警告 +Warn\ before\ overwriting\ existing\ keys=覆盖已存在的Citationkey之前发出警告 Warning=警告 @@ -891,13 +903,15 @@ Whatever\ option\ you\ choose,\ Mr.\ DLib\ may\ share\ its\ data\ with\ research Will\ write\ XMP\ metadata\ to\ the\ PDFs\ linked\ from\ selected\ entries.=将为选中条目链接的PDF文件写入XMP元数据。 +Writing\ metadata...=正在写入元数据... Write\ XMP=写入 XMP Write\ BibTeXEntry\ as\ XMP\ metadata\ to\ PDF.=将 BibTeX 条目作为 XMP 元数据写入 PDF 中 +Write\ metadata\ to\ PDF\ files=写入元数据到 PDF 文件 XMP-annotated\ PDF=XMP注释的PDF文档 XMP\ export\ privacy\ settings=XMP 导出隐私设置 -XMP\ metadata=XMP 元数据 +XMP\ metadata=XMP元数据 You\ must\ restart\ JabRef\ for\ this\ to\ come\ into\ effect.=为使这项更改生效,您必须重启 JabRef。 The\ following\ fetchers\ are\ available\:=下面列出的是可用的抓取器\: @@ -927,8 +941,7 @@ MIME\ type=MIME 类型 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.=在当前运行的 JabRef 中打开或者导入新文件,而非新建另一个 JabRef 窗口。例如,当通过浏览器调用 JabRef 打开文件时,这个选项会比较有用。注意:它将阻止同时运行多个 JabRef 实例。 Run\ fetcher=运行检索器 -When\ opening\ file\ link,\ search\ for\ matching\ file\ if\ no\ link\ is\ defined=打开文件时,如果文件链接未定义,则自动寻找匹配的文件。 -Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=第 %0 行\: 发现错误的 citationkey %1. +Line\ %0\:\ Found\ corrupted\ citation\ key\ %1.=第 %0 行\: 发现错误的Citationkey %1. Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (contains\ whitespaces).=第 %0 行\: 发现错误的 citationkey %1 (包含空格). Line\ %0\:\ Found\ corrupted\ citation\ key\ %1\ (comma\ missing).=第 %0 行\: 发现错误的 citationkey %1 (缺少逗号). No\ full\ text\ document\ found=未发现完整的文档 @@ -980,14 +993,13 @@ LaTeX\ file\ directory=LaTeX 文件目录 Search\ failed\:\ illegal\ search\ expression=搜索失败\: 不合法的搜索表达式 You\ must\ enter\ an\ integer\ value\ in\ the\ interval\ 1025-65535=请输入一个 1025-65535 之间的整数值 -Automatically\ open\ browse\ dialog\ when\ creating\ new\ file\ link=创建新的文件链接时自动打开文件浏览对话框 Autocomplete\ names\ in\ 'Firstname\ Lastname'\ format\ only=仅自动补全形如 'Firstname Lastname' 格式的姓名 Autocomplete\ names\ in\ 'Lastname,\ Firstname'\ format\ only=仅自动补全形如 'Lastname, Firstname' 格式的姓名 Autocomplete\ names\ in\ both\ formats=自动补全两种格式的姓名 Send\ as\ email=以邮件形式发送 References=引用 Sending\ of\ emails=邮件发送选项 -Subject\ for\ sending\ an\ email\ with\ references=发送带参考的邮件时的主题 +Subject\ for\ sending\ an\ email\ with\ references=发送参考文献邮件时的主题 Automatically\ open\ folders\ of\ attached\ files=自动打开附件所在的文件夹 Error\ creating\ email=创建邮件失败 Entries\ added\ to\ an\ email=记录已添加到邮件中 @@ -1150,7 +1162,6 @@ Removed\ all\ subgroups\ of\ group\ "%0".=移除 "%0" 组中的所有子分组 To\ disable\ the\ memory\ stick\ mode\ rename\ or\ remove\ the\ jabref.xml\ file\ in\ the\ same\ folder\ as\ JabRef.=要禁用记忆棒模式,请在与JabRef相同的文件夹中重命名或删除jabref.xml文件。 Unable\ to\ connect.\ One\ possible\ reason\ is\ that\ JabRef\ and\ OpenOffice/LibreOffice\ are\ not\ both\ running\ in\ either\ 32\ bit\ mode\ or\ 64\ bit\ mode.=无法连接。一个可能的原因是, JabRef 和 OpenOffice/LibreOffice 不是同时在32位模式或64位模式下运行。 Delimiter(s)=分隔符 -When\ downloading\ files,\ or\ moving\ linked\ files\ to\ the\ file\ directory,\ prefer\ the\ BIB\ file\ location\ rather\ than\ the\ file\ directory\ set\ above=在下载文件或将链接的文件移动到文件目录时, 请选择 "BIB" 文件位置, 而不是之前选定的文件目录。 Your\ style\ file\ specifies\ the\ character\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=您的样式文件指定字符格式为 "%0', 它在您当前的 OpenOffice/LibreOffice 文档中未定义。 Your\ style\ file\ specifies\ the\ paragraph\ format\ '%0',\ which\ is\ undefined\ in\ your\ current\ OpenOffice/LibreOffice\ document.=您的样式文件指定段落格式为 "%0', 它在您当前的 OpenOffice/LibreOffice 文档中未定义。 @@ -1193,7 +1204,6 @@ Clear\ connection\ settings=清除连接设置 Open\ folder=打开文件夹 Export\ sort\ order=导出顺序 Save\ sort\ order=保存排序 -Newline\ separator=换行符 Keep\ original\ order=原顺序 Use\ current\ table\ sort\ order=当前顺序 @@ -1549,7 +1559,7 @@ Remove\ protected\ terms\ file=删除受保护的术语文件 Add\ selected\ text\ to\ list=添加选定文本到列表 Add\ {}\ around\ selected\ text=给选定文本加上 {} Format\ field=格式化字段 -New\ protected\ terms\ file=新的受保护术语文件 +New\ protected\ terms\ file=保存为新的术语文件 change\ field\ %0\ of\ entry\ %1\ from\ %2\ to\ %3=将 %1 条目中的字段 %0 从 %2 更改为 %3 change\ key\ from\ %0\ to\ %1=将密钥从 %0 更改为 %1 change\ string\ content\ %0\ to\ %1=将字符串内容 %0 更改为 %1 @@ -1988,7 +1998,7 @@ Theme\ changed\ to\ light\ theme.=更改为明亮主题。 Theme\ changed\ to\ a\ custom\ theme\:=更改为自定义主题: Please\ specify\ a\ css\ theme\ file.=请指定一个 css 主题文件。 You\ must\ enter\ an\ integer\ value\ higher\ than\ 8.=你必须输入一个大于8的整数。 -Letters\ after\ duplicate\ generated\ keys=在重复的BibTeX键后添加字母 +Letters\ after\ duplicate\ generated\ keys=为重复的Citationkey添加字母后缀 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, ...) @@ -2077,7 +2087,7 @@ Remove\ the\ current\ word\ backwards=向后移除当前单词 Text\ editor=文本编辑器 -Search\ ShortScience=搜索 ShortScience +Search\ ShortScience=在ShortScience中搜索 Unable\ to\ open\ ShortScience.=无法打开 ShortScience Shared\ database=共享数据库 @@ -2236,7 +2246,7 @@ Reveal\ in\ file\ explorer=在文件资源管理器中显示 Autolink\ files=自动链接文件 -Custom\ editor\ tabs=编辑器标签 +Custom\ editor\ tabs=条目编辑器的标签 Custom\ export\ formats=自定义导出格式 Custom\ import\ formats=自定义导入格式 @@ -2288,6 +2298,7 @@ Error\ connecting\ to\ Writer\ document=连接到Writer文档时错误 You\ need\ to\ open\ Writer\ with\ a\ document\ before\ connecting=连接前需要打开一个Writer文档 Generate\ a\ new\ key\ for\ imported\ entries\ (overwriting\ their\ default)=为导入的条目生成一个新 citationkey (覆盖默认值) +Import\ and\ Export=导入导出 Custom\ DOI\ URI=自定义 DOI URI Use\ custom\ DOI\ base\ URI\ for\ article\ access=使用基于DOI的URI访问文章 @@ -2338,9 +2349,20 @@ Query=查询 Question=问题 Select\ directory=选择目录 +Rebuild\ fulltext\ search\ index=重建全文检索索引 +Rebuild\ fulltext\ search\ index\ for\ current\ library?=重建当前库的全文检索索引? +Rebuilding\ fulltext\ search\ index...=正在重建全文检索索引... +Failed\ to\ access\ fulltext\ search\ index=无法访问全文检索索引 +Found\ match\ in\ %0=在 %0 找到匹配项 +On\ page\ %0=在页面 %0 +Grobid\ URL=Grobid URL +Allow\ sending\ PDF\ files\ and\ raw\ citation\ strings\ to\ a\ JabRef\ online\ service\ (Grobid)\ to\ determine\ Metadata.\ This\ produces\ better\ results.=允许将 PDF 文件和原始引用字符串发送到一个 JabRef 在线服务(Grobid)来确定元数据。这将产生更好的结果。 +Character\ by\ character=逐个字符 +Embedded=内嵌 Entry=条目 +Word\ by\ word=逐个单词 Could\ not\ extract\ Metadata\ from\:\ %0=无法从 %0 提取元数据 Search\ across\ libraries\ in\ a\ new\ window=在新窗口中搜索库 diff --git a/src/main/resources/l10n/JabRef_zh_TW.properties b/src/main/resources/l10n/JabRef_zh_TW.properties index 352676ef84e..22320e8b536 100644 --- a/src/main/resources/l10n/JabRef_zh_TW.properties +++ b/src/main/resources/l10n/JabRef_zh_TW.properties @@ -1,3 +1,8 @@ + + + + + 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 @@ -44,6 +49,7 @@ The\ path\ need\ not\ be\ on\ the\ classpath\ of\ JabRef.=該路徑不需要位 Add\ a\ regular\ expression\ for\ the\ key\ pattern.=對鍵值模式添加正規表達式。 + Add\ selected\ entries\ to\ this\ group=新增選取條目至群組 Add\ subgroup=建立子群組 @@ -297,6 +303,7 @@ External\ file\ links=外部檔案連結 External\ programs=外部程式 + Field=欄位 field=欄位 @@ -476,6 +483,7 @@ No\ journal\ names\ could\ be\ abbreviated.=期刊名稱可以縮寫 No\ journal\ names\ could\ be\ unabbreviated.=期刊名稱不可以縮寫 + not\ found=沒有找到 @@ -558,8 +566,6 @@ Related\ articles=相關文章 Remote\ operation=遠端操作 -Remote\ server\ port=遠端伺服器埠號 - Remove=移除 Remove\ subgroups=移除子群組 @@ -601,6 +607,7 @@ Restart=重新啟動 + Save=儲存 @@ -793,7 +800,6 @@ Proxy\ requires\ authentication=代理伺服器需要認證 Attention\:\ Password\ is\ stored\ in\ plain\ text\!=注意:密碼將以明文形式存放! Export\ sort\ order=匯出順序 -Newline\ separator=換行分隔符號 Clear\ read\ status=清除閱讀狀態 diff --git a/src/main/resources/resource/layout/endnote/Readme.txt b/src/main/resources/resource/layout/endnote/Readme.txt index ce91dd89b4b..b220ba6aa4d 100644 --- a/src/main/resources/resource/layout/endnote/Readme.txt +++ b/src/main/resources/resource/layout/endnote/Readme.txt @@ -14,7 +14,7 @@ The EndNote Export Filter for JabRef (when combined with the "EndNote Import fro Installation: ********************************************************************************* EndNote Import from JabRef.eni -This file must be placed in your EndNote Filters directory. On a Mac OS X system, the default directory is /Applications/EndNote 7/Filters. On a Windows XP system, the default directory is C:\Program Files\EndNote\Filters. The default EndNote Import filter will be able to import the files from JabRef, but supports fewer fields. You should then open up the Filter Manager (Edit->Import Filters->Open Filter Manager) and add it to your Favorites. +This file must be placed in your EndNote Filters directory. On a macOS system, the default directory is /Applications/EndNote 7/Filters. On a Windows XP system, the default directory is C:\Program Files\EndNote\Filters. The default EndNote Import filter will be able to import the files from JabRef, but supports fewer fields. You should then open up the Filter Manager (Edit->Import Filters->Open Filter Manager) and add it to your Favorites. EndNote Preferences The filter provided will only work if certain fields are added to EndNote's default Reference Types. Open up Preferences and click on Reference Types, then Modify Reference Types. The following table lists the field names that must be added to certain reference types for EndNote to support these fields. For example, the Publisher field for Journal Article is blank by default; Type in Publisher in this field. @@ -40,7 +40,7 @@ EndNote.tab: This is the tab-delimited spreadsheet containing a list of all the Refer codes, how they map to the Generic EndNote fields, and how the JabRef fields for the default BibTeX types are mapped to the Generic EndNote fields. BibTeX Export to JabRef, BibTeX Export to JabRef* -These file are optional for if you wish to re-export these entries to JabRef. They must be placed in your EndNote Styles directory. On a Mac OS X system, the default directory is /Applications/EndNote 7/Styles. On a Windows XP system, the default directory is C:\Program Files\EndNote\Styles. You may then want to open up the Filter Manager (Edit->Output Styles->Open Style Manager) and add it to your Favorites. +These file are optional for if you wish to re-export these entries to JabRef. They must be placed in your EndNote Styles directory. On a macOS system, the default directory is /Applications/EndNote 7/Styles. On a Windows XP system, the default directory is C:\Program Files\EndNote\Styles. You may then want to open up the Filter Manager (Edit->Output Styles->Open Style Manager) and add it to your Favorites. ********************************************************************************* Usage diff --git a/src/test/java/org/jabref/JabRefPreferencesTest.java b/src/test/java/org/jabref/JabRefPreferencesTest.java index eb2557a5030..27f00b68298 100644 --- a/src/test/java/org/jabref/JabRefPreferencesTest.java +++ b/src/test/java/org/jabref/JabRefPreferencesTest.java @@ -2,10 +2,12 @@ import java.nio.charset.StandardCharsets; +import org.jabref.preferences.GeneralPreferences; import org.jabref.preferences.JabRefPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Answers; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -17,7 +19,9 @@ class JabRefPreferencesTest { @BeforeEach void setUp() { prefs = mock(JabRefPreferences.class); - when(prefs.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + GeneralPreferences generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + when(prefs.getGeneralPreferences()).thenReturn(generalPreferences); } // FIXME: This test is not testing anything. prefs.getDefaultEncoding() will always return StandardCharsets.UTF_8 diff --git a/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java b/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java index d26f8d15693..2244bdb3c77 100644 --- a/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java +++ b/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java @@ -30,6 +30,7 @@ import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; import org.jabref.model.metadata.MetaData; +import org.jabref.preferences.GeneralPreferences; import org.jabref.preferences.ImportExportPreferences; import org.jabref.preferences.PreferencesService; @@ -102,7 +103,9 @@ public void export(BibDatabaseContext databaseContext, Path file, Charset encodi when(importExportPrefs.getLastExportExtension()).thenReturn("HTML"); when(preferences.getImportExportPreferences()).thenReturn(importExportPrefs); - when(preferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + GeneralPreferences generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + when(preferences.getGeneralPreferences()).thenReturn(generalPreferences); when(libraryTab.getSelectedEntries()).thenReturn(selectedEntries); when(libraryTab.getBibDatabaseContext()).thenReturn(databaseContext); when(databaseContext.getFileDirectories(preferences.getFilePreferences())).thenReturn(new ArrayList<>(Arrays.asList(Path.of("path")))); diff --git a/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java b/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java index 20293bb06c4..5e77b46c329 100644 --- a/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java +++ b/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java @@ -1,7 +1,6 @@ package org.jabref.gui.exporter; import java.io.IOException; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -27,6 +26,7 @@ import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.entry.field.StandardField; import org.jabref.model.metadata.MetaData; +import org.jabref.preferences.GeneralPreferences; import org.jabref.preferences.JabRefPreferences; import org.junit.jupiter.api.BeforeEach; @@ -103,14 +103,14 @@ private SaveDatabaseAction createSaveDatabaseActionForBibDatabase(BibDatabase da FieldWriterPreferences fieldWriterPreferences = mock(FieldWriterPreferences.class); when(fieldWriterPreferences.getFieldContentFormatterPreferences()).thenReturn(mock(FieldContentFormatterPreferences.class)); + GeneralPreferences generalPreferences = mock(GeneralPreferences.class); SavePreferences savePreferences = mock(SavePreferences.class); // In case a "thenReturn" is modified, the whole mock has to be recreated dbContext = mock(BibDatabaseContext.class); libraryTab = mock(LibraryTab.class); MetaData metaData = mock(MetaData.class); - when(savePreferences.withEncoding(any(Charset.class))).thenReturn(savePreferences); when(savePreferences.withSaveType(any(SavePreferences.DatabaseSaveType.class))).thenReturn(savePreferences); - when(savePreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); when(savePreferences.getFieldWriterPreferences()).thenReturn(fieldWriterPreferences); GlobalCitationKeyPattern emptyGlobalCitationKeyPattern = GlobalCitationKeyPattern.fromPattern(""); when(metaData.getCiteKeyPattern(any(GlobalCitationKeyPattern.class))).thenReturn(emptyGlobalCitationKeyPattern); @@ -122,7 +122,7 @@ private SaveDatabaseAction createSaveDatabaseActionForBibDatabase(BibDatabase da when(dbContext.getMetaData()).thenReturn(metaData); when(dbContext.getEntries()).thenReturn(database.getEntries()); when(preferences.getBoolean(JabRefPreferences.LOCAL_AUTO_SAVE)).thenReturn(false); - when(preferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + when(preferences.getGeneralPreferences()).thenReturn(generalPreferences); when(preferences.getFieldContentParserPreferences()).thenReturn(mock(FieldContentFormatterPreferences.class)); when(preferences.getSavePreferences()).thenReturn(savePreferences); when(libraryTab.frame()).thenReturn(jabRefFrame); diff --git a/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java b/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java index 3cadd81045f..22c73109876 100644 --- a/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java +++ b/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java @@ -56,7 +56,7 @@ public void testFindAssociatedNotLinkedFilesSuccess() throws Exception { @Test public void testFindAssociatedNotLinkedFilesForEmptySearchDir() throws Exception { - when(fileDirPrefs.shouldStoreFilesRelativeToBib()).thenReturn(false); + when(fileDirPrefs.shouldStoreFilesRelativeToBibFile()).thenReturn(false); AutoSetFileLinksUtil util = new AutoSetFileLinksUtil(databaseContext, fileDirPrefs, autoLinkPrefs, externalFileTypes); List actual = util.findAssociatedNotLinkedFiles(entry); assertEquals(Collections.emptyList(), actual); diff --git a/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java b/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java index 446f868384b..32967ed0d34 100644 --- a/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java +++ b/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java @@ -184,7 +184,7 @@ void deleteWhenDialogCancelledReturnsFalseAndDoesNotRemoveFile() { @Test void downloadHtmlFileCausesWarningDisplay() throws MalformedURLException { - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(true); when(filePreferences.getFileNamePattern()).thenReturn("[citationkey]"); when(filePreferences.getFileDirectoryPattern()).thenReturn("[entrytype]"); databaseContext.setDatabasePath(tempFile); @@ -228,7 +228,7 @@ void downloadHtmlWhenLinkedFilePointsToHtml() throws MalformedURLException { String fileType = StandardExternalFileType.URL.getName(); linkedFile = new LinkedFile(new URL(url), fileType); - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(true); when(filePreferences.getFileNamePattern()).thenReturn("[citationkey]"); when(filePreferences.getFileDirectoryPattern()).thenReturn("[entrytype]"); @@ -285,7 +285,7 @@ void mimeTypeStringWithParameterIsReturnedAsWithoutParameter() { void downloadPdfFileWhenLinkedFilePointsToPdfUrl() throws MalformedURLException { linkedFile = new LinkedFile(new URL("http://arxiv.org/pdf/1207.0408v1"), "pdf"); // Needed Mockito stubbing methods to run test - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(true); when(filePreferences.getFileNamePattern()).thenReturn("[citationkey]"); when(filePreferences.getFileDirectoryPattern()).thenReturn("[entrytype]"); diff --git a/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java b/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java index 31a496a8a81..a1b1c0370c8 100644 --- a/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java +++ b/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Set; +import org.jabref.logic.exporter.BibWriter; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ParserResult; import org.jabref.logic.importer.fileformat.BibtexParser; @@ -35,20 +36,20 @@ class BibEntryWriterTest { private static ImportFormatPreferences importFormatPreferences; - private BibEntryWriter writer; + private StringWriter stringWriter = new StringWriter(); + private BibWriter bibWriter = new BibWriter(stringWriter, OS.NEWLINE); + private BibEntryWriter bibEntryWriter; private final FileUpdateMonitor fileMonitor = new DummyFileUpdateMonitor(); @BeforeEach void setUpWriter() { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); FieldWriterPreferences fieldWriterPreferences = mock(FieldWriterPreferences.class, Answers.RETURNS_DEEP_STUBS); - writer = new BibEntryWriter(new FieldWriter(fieldWriterPreferences), new BibEntryTypesManager()); + bibEntryWriter = new BibEntryWriter(new FieldWriter(fieldWriterPreferences), new BibEntryTypesManager()); } @Test void testSerialization() throws IOException { - StringWriter stringWriter = new StringWriter(); - BibEntry entry = new BibEntry(StandardEntryType.Article); // set a required field entry.setField(StandardField.AUTHOR, "Foo Bar"); @@ -57,12 +58,10 @@ void testSerialization() throws IOException { entry.setField(StandardField.NUMBER, "1"); entry.setField(StandardField.NOTE, "some note"); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off - String expected = OS.NEWLINE + "@Article{," + OS.NEWLINE + + String expected = "@Article{," + OS.NEWLINE + " author = {Foo Bar}," + OS.NEWLINE + " journal = {International Journal of Something}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + @@ -70,12 +69,12 @@ void testSerialization() throws IOException { "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test void writeOtherTypeTest() throws Exception { - String expected = OS.NEWLINE + "@Other{test," + OS.NEWLINE + + String expected = "@Other{test," + OS.NEWLINE + " comment = {testentry}," + OS.NEWLINE + "}" + OS.NEWLINE; @@ -83,12 +82,8 @@ void writeOtherTypeTest() throws Exception { entry.setField(StandardField.COMMENT, "testentry"); entry.setCitationKey("test"); - // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); - - assertEquals(expected, actual); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); + assertEquals(expected, stringWriter.toString()); } @Test @@ -97,11 +92,9 @@ void writeEntryWithFile() throws Exception { LinkedFile file = new LinkedFile("test", Path.of("/home/uers/test.pdf"), "PDF"); entry.addFile(file); - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(OS.NEWLINE + - "@Article{," + assertEquals("@Article{," + OS.NEWLINE + " file = {test:/home/uers/test.pdf:PDF}," + OS.NEWLINE @@ -110,8 +103,6 @@ void writeEntryWithFile() throws Exception { @Test void writeEntryWithOrField() throws Exception { - StringWriter stringWriter = new StringWriter(); - BibEntry entry = new BibEntry(StandardEntryType.InBook); // set an required OR field (author/editor) entry.setField(StandardField.EDITOR, "Foo Bar"); @@ -120,12 +111,10 @@ void writeEntryWithOrField() throws Exception { entry.setField(StandardField.NUMBER, "1"); entry.setField(StandardField.NOTE, "some note"); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off - String expected = OS.NEWLINE + "@InBook{," + OS.NEWLINE + + String expected = "@InBook{," + OS.NEWLINE + " editor = {Foo Bar}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + " number = {1}," + OS.NEWLINE + @@ -133,13 +122,11 @@ void writeEntryWithOrField() throws Exception { "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test void writeEntryWithOrFieldBothFieldsPresent() throws Exception { - StringWriter stringWriter = new StringWriter(); - BibEntry entry = new BibEntry(StandardEntryType.InBook); // set an required OR field with both fields(author/editor) entry.setField(StandardField.AUTHOR, "Foo Thor"); @@ -149,12 +136,10 @@ void writeEntryWithOrFieldBothFieldsPresent() throws Exception { entry.setField(StandardField.NUMBER, "1"); entry.setField(StandardField.NOTE, "some note"); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off - String expected = OS.NEWLINE + "@InBook{," + OS.NEWLINE + + String expected = "@InBook{," + OS.NEWLINE + " author = {Foo Thor}," + OS.NEWLINE + " editor = {Edi Bar}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + @@ -163,12 +148,12 @@ void writeEntryWithOrFieldBothFieldsPresent() throws Exception { "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test void writeReallyUnknownTypeTest() throws Exception { - String expected = OS.NEWLINE + "@Reallyunknowntype{test," + OS.NEWLINE + + String expected = "@Reallyunknowntype{test," + OS.NEWLINE + " comment = {testentry}," + OS.NEWLINE + "}" + OS.NEWLINE; @@ -176,13 +161,9 @@ void writeReallyUnknownTypeTest() throws Exception { entry.setType(new UnknownEntryType("ReallyUnknownType")); entry.setField(StandardField.COMMENT, "testentry"); entry.setCitationKey("test"); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); - - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test @@ -193,7 +174,7 @@ void roundTripTest() throws IOException { " Journal = {International Journal of Something}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + " Number = {1}" + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on // read in bibtex string @@ -202,11 +183,9 @@ void roundTripTest() throws IOException { BibEntry entry = entries.iterator().next(); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(bibtexEntry, actual); + assertEquals(bibtexEntry, stringWriter.toString()); } @Test @@ -217,7 +196,7 @@ void roundTripWithPrependingNewlines() throws IOException { " Journal = {International Journal of Something}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + " Number = {1}" + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on // read in bibtex string @@ -226,17 +205,63 @@ void roundTripWithPrependingNewlines() throws IOException { BibEntry entry = entries.iterator().next(); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(bibtexEntry, actual); + assertEquals(bibtexEntry.substring(2), stringWriter.toString()); + } + + @Test + void roundTripWithKeepsCRLFLineBreakStyle() throws IOException { + // @formatter:off + String bibtexEntry = "@Article{test,\r\n" + + " Author = {Foo Bar},\r\n" + + " Journal = {International Journal of Something},\r\n" + + " Note = {some note},\r\n" + + " Number = {1}\r\n" + + "}\r\n"; + // @formatter:on + + // read in bibtex string + ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(new StringReader(bibtexEntry)); + Collection entries = result.getDatabase().getEntries(); + BibEntry entry = entries.iterator().next(); + + // write out bibtex string + // need to reconfigure writer to use "\r\n" + bibWriter = new BibWriter(stringWriter, "\r\n"); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); + + assertEquals(bibtexEntry, stringWriter.toString()); + } + + @Test + void roundTripWithKeepsLFLineBreakStyle() throws IOException { + // @formatter:off + String bibtexEntry = "@Article{test,\n" + + " Author = {Foo Bar},\n" + + " Journal = {International Journal of Something},\n" + + " Note = {some note},\n" + + " Number = {1}\n" + + "}\n"; + // @formatter:on + + // read in bibtex string + ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(new StringReader(bibtexEntry)); + Collection entries = result.getDatabase().getEntries(); + BibEntry entry = entries.iterator().next(); + + // write out bibtex string + // need to reconfigure writer to use "\n" + bibWriter = new BibWriter(stringWriter, "\n"); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); + + assertEquals(bibtexEntry, stringWriter.toString()); } @Test void roundTripWithModification() throws IOException { // @formatter:off - String bibtexEntry = OS.NEWLINE + "@Article{test," + OS.NEWLINE + + String bibtexEntry = "@Article{test," + OS.NEWLINE + " Author = {Foo Bar}," + OS.NEWLINE + " Journal = {International Journal of Something}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + @@ -253,19 +278,17 @@ void roundTripWithModification() throws IOException { entry.setField(StandardField.AUTHOR, "BlaBla"); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off - String expected = OS.NEWLINE + "@Article{test," + OS.NEWLINE + + String expected = "@Article{test," + OS.NEWLINE + " author = {BlaBla}," + OS.NEWLINE + " journal = {International Journal of Something}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + " number = {1}," + OS.NEWLINE + "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test @@ -289,12 +312,10 @@ void roundTripWithCamelCasingInTheOriginalEntryAndResultInLowerCase() throws IOE entry.setField(StandardField.AUTHOR, "BlaBla"); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off - String expected = OS.NEWLINE + "@Article{test," + OS.NEWLINE + + String expected = "@Article{test," + OS.NEWLINE + " author = {BlaBla}," + OS.NEWLINE + " journal = {International Journal of Something}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + @@ -302,7 +323,7 @@ void roundTripWithCamelCasingInTheOriginalEntryAndResultInLowerCase() throws IOE " howpublished = {asdf}," + OS.NEWLINE + "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test @@ -326,12 +347,10 @@ void testEntryTypeChange() throws IOException { entry.setType(StandardEntryType.InProceedings); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off - String expectedNewEntry = OS.NEWLINE + "@InProceedings{test," + OS.NEWLINE + + String expectedNewEntry = "@InProceedings{test," + OS.NEWLINE + " author = {BlaBla}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + " number = {1}," + OS.NEWLINE + @@ -339,7 +358,7 @@ void testEntryTypeChange() throws IOException { " journal = {International Journal of Something}," + OS.NEWLINE + "}" + OS.NEWLINE; // @formatter:on - assertEquals(expectedNewEntry, actual); + assertEquals(expectedNewEntry, stringWriter.toString()); } @Test @@ -359,12 +378,41 @@ void roundTripWithAppendedNewlines() throws IOException { BibEntry entry = entries.iterator().next(); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); String actual = stringWriter.toString(); - // Only one appending newline is written by the writer, the rest by FileActions. So, these should be removed here. - assertEquals(bibtexEntry.substring(0, bibtexEntry.length() - 1), actual); + // Only one appending newline is written by the writer + // OS.NEWLINE is used, not the given one + assertEquals(bibtexEntry.substring(0, bibtexEntry.length() - 2) + OS.NEWLINE, actual); + } + + @Test + void roundTripNormalizesNewLines() throws IOException { + // @formatter:off + String bibtexEntry = "@Article{test,\n" + + " Author = {Foo Bar},\r\n" + + " Journal = {International Journal of Something},\n" + + " Number = {1},\n" + + " Note = {some note}\r\n" + + "}\n\n"; + // @formatter:on + + // read in bibtex string + ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(new StringReader(bibtexEntry)); + Collection entries = result.getDatabase().getEntries(); + BibEntry entry = entries.iterator().next(); + + // write out bibtex string + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); + String actual = stringWriter.toString(); + + String expected = "@Article{test," + OS.NEWLINE + + " Author = {Foo Bar}," + OS.NEWLINE + + " Journal = {International Journal of Something}," + OS.NEWLINE + + " Number = {1}," + OS.NEWLINE + + " Note = {some note}" + OS.NEWLINE + + "}" + OS.NEWLINE; + assertEquals(expected, actual); } @Test @@ -375,7 +423,7 @@ void multipleWritesWithoutModification() throws IOException { " Journal = {International Journal of Something}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + " Number = {1}" + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on String result = testSingleWrite(bibtexEntry); @@ -392,10 +440,11 @@ private String testSingleWrite(String bibtexEntry) throws IOException { BibEntry entry = entries.iterator().next(); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + StringWriter writer = new StringWriter(); + BibWriter bibWriter = new BibWriter(writer, OS.NEWLINE); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); + String actual = writer.toString(); assertEquals(bibtexEntry, actual); return actual; } @@ -407,7 +456,7 @@ void monthFieldSpecialSyntax() throws IOException { " Author = {Foo Bar}," + OS.NEWLINE + " Month = mar," + OS.NEWLINE + " Number = {1}" + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on // read in bibtex string @@ -421,11 +470,9 @@ void monthFieldSpecialSyntax() throws IOException { assertEquals("#mar#", entry.getField(StandardField.MONTH).get()); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(bibtexEntry, actual); + assertEquals(bibtexEntry, stringWriter.toString()); } @Test @@ -435,11 +482,9 @@ void constantMonthApril() throws Exception { // enable writing entry.setChanged(true); - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(OS.NEWLINE + - "@Misc{," + OS.NEWLINE + + assertEquals("@Misc{," + OS.NEWLINE + " month = apr," + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); @@ -452,11 +497,9 @@ void monthApril() throws Exception { // enable writing entry.setChanged(true); - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(OS.NEWLINE + - "@Misc{," + OS.NEWLINE + + assertEquals("@Misc{," + OS.NEWLINE + " month = {apr}," + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); @@ -482,9 +525,7 @@ void addFieldWithLongerLength() throws IOException { entry.setField(StandardField.HOWPUBLISHED, "asdf"); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); // @formatter:off String expected = OS.NEWLINE + "@Article{test," + OS.NEWLINE + @@ -495,36 +536,30 @@ void addFieldWithLongerLength() throws IOException { " howpublished = {asdf}," + OS.NEWLINE + "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test void doNotWriteEmptyFields() throws IOException { - StringWriter stringWriter = new StringWriter(); - BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, " "); entry.setField(StandardField.NOTE, "some note"); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - String expected = OS.NEWLINE + "@Article{," + OS.NEWLINE + + String expected = "@Article{," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + "}" + OS.NEWLINE; - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test void writeThrowsErrorIfFieldContainsUnbalancedBraces() { - StringWriter stringWriter = new StringWriter(); - BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.NOTE, "some text with unbalanced { braces"); - assertThrows(IOException.class, () -> writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX)); + assertThrows(IOException.class, () -> bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX)); } @Test @@ -536,7 +571,7 @@ void roundTripWithPrecedingCommentTest() throws IOException { " Journal = {International Journal of Something}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + " Number = {1}" + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on // read in bibtex string @@ -545,11 +580,9 @@ void roundTripWithPrecedingCommentTest() throws IOException { BibEntry entry = entries.iterator().next(); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); - assertEquals(bibtexEntry, actual); + assertEquals(bibtexEntry, stringWriter.toString()); } @Test @@ -573,11 +606,10 @@ void roundTripWithPrecedingCommentAndModificationTest() throws IOException { entry.setField(StandardField.AUTHOR, "John Doe"); // write out bibtex string - StringWriter stringWriter = new StringWriter(); - writer.write(entry, stringWriter, BibDatabaseMode.BIBTEX); - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBTEX); + // @formatter:off - String expected = "% Some random comment that should stay here" + OS.NEWLINE + OS.NEWLINE + + String expected = "% Some random comment that should stay here" + OS.NEWLINE + "@Article{test," + OS.NEWLINE + " author = {John Doe}," + OS.NEWLINE + " journal = {International Journal of Something}," + OS.NEWLINE + @@ -586,13 +618,11 @@ void roundTripWithPrecedingCommentAndModificationTest() throws IOException { "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test void alphabeticSerialization() throws IOException { - StringWriter stringWriter = new StringWriter(); - BibEntry entry = new BibEntry(StandardEntryType.Article); // required fields entry.setField(StandardField.AUTHOR, "Foo Bar"); @@ -606,12 +636,10 @@ void alphabeticSerialization() throws IOException { entry.setField(StandardField.YEAR, "2019"); entry.setField(StandardField.CHAPTER, "chapter"); - writer.write(entry, stringWriter, BibDatabaseMode.BIBLATEX); - - String actual = stringWriter.toString(); + bibEntryWriter.write(entry, bibWriter, BibDatabaseMode.BIBLATEX); // @formatter:off - String expected = OS.NEWLINE + "@Article{," + OS.NEWLINE + + String expected = "@Article{," + OS.NEWLINE + " author = {Foo Bar}," + OS.NEWLINE + " date = {2019-10-16}," + OS.NEWLINE + " journaltitle = {International Journal of Something}," + OS.NEWLINE + @@ -623,7 +651,7 @@ void alphabeticSerialization() throws IOException { "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected, actual); + assertEquals(expected, stringWriter.toString()); } @Test @@ -656,10 +684,10 @@ void testSerializeAll() throws IOException { entry2.setField(StandardField.YEAR, "2020"); entry2.setField(StandardField.CHAPTER, "chapter"); - String output = writer.serializeAll(List.of(entry1, entry2), BibDatabaseMode.BIBLATEX); + String output = bibEntryWriter.serializeAll(List.of(entry1, entry2), BibDatabaseMode.BIBLATEX); // @formatter:off - String expected1 = OS.NEWLINE + "@Article{," + OS.NEWLINE + + String expected1 = "@Article{," + OS.NEWLINE + " author = {Journal Author}," + OS.NEWLINE + " date = {2020-11-16}," + OS.NEWLINE + " journaltitle = {Journal of Words}," + OS.NEWLINE + @@ -672,7 +700,7 @@ void testSerializeAll() throws IOException { // @formatter:on // @formatter:off - String expected2 = OS.NEWLINE + "@Book{," + OS.NEWLINE + + String expected2 = "@Book{," + OS.NEWLINE + " author = {John Book}," + OS.NEWLINE + " date = {2017-12-20}," + OS.NEWLINE + " title = {Entry Title}," + OS.NEWLINE + @@ -684,7 +712,7 @@ void testSerializeAll() throws IOException { "}" + OS.NEWLINE; // @formatter:on - assertEquals(expected1 + expected2, output); + assertEquals(expected1 + OS.NEWLINE + expected2, output); } } diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java index eb10dc02721..58a75f5470f 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java @@ -49,6 +49,45 @@ void compareOfDifferentEntriesWithSameDataReportsNoDifferences() throws Exceptio assertEquals(Collections.emptyList(), diff.getEntryDifferences()); } + @Test + void compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences() throws Exception { + BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryOne))); + + BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibDatabaseContext databaseTwo = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryTwo))); + + BibDatabaseDiff diff = BibDatabaseDiff.compare(databaseOne, databaseTwo); + + assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + } + + @Test + void compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences() throws Exception { + BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryOne))); + + BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + BibDatabaseContext databaseTwo = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryTwo))); + + BibDatabaseDiff diff = BibDatabaseDiff.compare(databaseOne, databaseTwo); + + assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + } + + @Test + void compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences() throws Exception { + BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryOne))); + + BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + BibDatabaseContext databaseTwo = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryTwo))); + + BibDatabaseDiff diff = BibDatabaseDiff.compare(databaseOne, databaseTwo); + + assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + } + @Test void compareOfTwoDifferentEntriesWithDifferentDataReportsDifferences() throws Exception { BibEntry entryOne = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "test"); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java b/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java index ae4a437c9c3..4dd225aa275 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java +++ b/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java @@ -99,6 +99,33 @@ void compareObjectsByKeyWithBlank() { assertEquals(-1, new EntryComparator(false, false, InternalField.KEY_FIELD).compare(e1, e2)); assertEquals(1, new EntryComparator(false, false, InternalField.KEY_FIELD).compare(e2, e1)); } + + @Test + void compareWithCrLfFields() { + BibEntry e1 = new BibEntry() + .withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + BibEntry e2 = new BibEntry() + .withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + assertEquals(0, new EntryComparator(false, false, InternalField.KEY_FIELD).compare(e1, e2)); + } + + @Test + void compareWithLfFields() { + BibEntry e1 = new BibEntry() + .withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibEntry e2 = new BibEntry() + .withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + assertEquals(0, new EntryComparator(false, false, InternalField.KEY_FIELD).compare(e1, e2)); + } + + @Test + void compareWithMixedLineEndings() { + BibEntry e1 = new BibEntry() + .withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibEntry e2 = new BibEntry() + .withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + assertEquals(-1, new EntryComparator(false, false, InternalField.KEY_FIELD).compare(e1, e2)); + } } diff --git a/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java b/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java index 5d79df998d9..77e20ec00d1 100644 --- a/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java +++ b/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java @@ -67,7 +67,7 @@ void setUp(@TempDir Path bibFolder) throws IOException { FilePreferences fileDirPrefs = mock(FilePreferences.class, Answers.RETURNS_SMART_NULLS); // Search and store files relative to bib file overwrites all other dirs - when(fileDirPrefs.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(fileDirPrefs.shouldStoreFilesRelativeToBibFile()).thenReturn(true); worker = new CleanupWorker(context, new CleanupPreferences(mock(LayoutFormatterPreferences.class), fileDirPrefs), mock(TimestampPreferences.class)); diff --git a/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java index 1c96bd82658..a9f576d4447 100644 --- a/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java @@ -63,7 +63,7 @@ void setUp(@TempDir Path bibFolder) throws IOException { entry.setField(StandardField.FILE, FileFieldWriter.getStringRepresentation(fileField)); filePreferences = mock(FilePreferences.class); - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(false); // Biblocation as Primary overwrites all other dirs, therefore we set it to false here + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(false); // Biblocation as Primary overwrites all other dirs, therefore we set it to false here cleanup = new MoveFilesCleanup(databaseContext, filePreferences); } diff --git a/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java b/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java index 4edb3db296c..2ddfee970d5 100644 --- a/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java +++ b/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java @@ -45,7 +45,7 @@ void setUp(@TempDir Path testFolder) { entry.setCitationKey("Toot"); filePreferences = mock(FilePreferences.class); - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(true); // Set Biblocation as Primary Directory, otherwise the tmp folders won't be cleaned up correctly + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(true); // Set Biblocation as Primary Directory, otherwise the tmp folders won't be cleaned up correctly cleanup = new RenamePdfCleanup(false, context, filePreferences); } diff --git a/src/test/java/org/jabref/logic/crawler/CrawlerTest.java b/src/test/java/org/jabref/logic/crawler/CrawlerTest.java index 6dcc82f08ac..28713055a0a 100644 --- a/src/test/java/org/jabref/logic/crawler/CrawlerTest.java +++ b/src/test/java/org/jabref/logic/crawler/CrawlerTest.java @@ -2,7 +2,6 @@ import java.net.URL; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -12,11 +11,11 @@ import org.jabref.logic.exporter.SavePreferences; import org.jabref.logic.git.SlrGitHandler; import org.jabref.logic.importer.ImportFormatPreferences; -import org.jabref.logic.preferences.TimestampPreferences; import org.jabref.logic.util.io.FileUtil; import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.metadata.SaveOrderConfig; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.eclipse.jgit.api.Git; import org.junit.jupiter.api.Test; @@ -36,16 +35,17 @@ class CrawlerTest { Path tempRepositoryDirectory; ImportFormatPreferences importFormatPreferences; SavePreferences savePreferences; - TimestampPreferences timestampPreferences; BibEntryTypesManager entryTypesManager; SlrGitHandler gitHandler = mock(SlrGitHandler.class, Answers.RETURNS_DEFAULTS); String hashCodeQuantum = String.valueOf("Quantum".hashCode()); String hashCodeCloudComputing = String.valueOf("Cloud Computing".hashCode()); + GeneralPreferences generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + @Test public void testWhetherAllFilesAreCreated() throws Exception { setUp(); - Crawler testCrawler = new Crawler(getPathToStudyDefinitionFile(), gitHandler, importFormatPreferences, savePreferences, timestampPreferences, entryTypesManager, new DummyFileUpdateMonitor()); + Crawler testCrawler = new Crawler(getPathToStudyDefinitionFile(), gitHandler, generalPreferences, importFormatPreferences, savePreferences, entryTypesManager, new DummyFileUpdateMonitor()); testCrawler.performCrawl(); @@ -86,16 +86,13 @@ private void setUp() throws Exception { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); savePreferences = mock(SavePreferences.class, Answers.RETURNS_DEEP_STUBS); - timestampPreferences = mock(TimestampPreferences.class); when(savePreferences.getSaveOrder()).thenReturn(new SaveOrderConfig()); - when(savePreferences.getEncoding()).thenReturn(null); when(savePreferences.takeMetadataSaveOrderInAccount()).thenReturn(true); when(savePreferences.getCitationKeyPatternPreferences()).thenReturn(citationKeyPatternPreferences); - when(savePreferences.getEncoding()).thenReturn(Charset.defaultCharset()); + when(generalPreferences.getDefaultEncoding()).thenReturn(Charset.defaultCharset()); when(importFormatPreferences.getKeywordSeparator()).thenReturn(','); when(importFormatPreferences.getFieldContentFormatterPreferences()).thenReturn(new FieldContentFormatterPreferences()); when(importFormatPreferences.isKeywordSyncEnabled()).thenReturn(false); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); entryTypesManager = new BibEntryTypesManager(); } diff --git a/src/test/java/org/jabref/logic/crawler/StudyDatabaseToFetcherConverterTest.java b/src/test/java/org/jabref/logic/crawler/StudyDatabaseToFetcherConverterTest.java index a984361fe0a..18a2d3690a3 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyDatabaseToFetcherConverterTest.java +++ b/src/test/java/org/jabref/logic/crawler/StudyDatabaseToFetcherConverterTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.crawler; import java.net.URL; -import java.nio.charset.StandardCharsets; +import java.nio.charset.Charset; import java.nio.file.Path; import java.util.List; @@ -15,6 +15,7 @@ import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.metadata.SaveOrderConfig; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -26,6 +27,7 @@ import static org.mockito.Mockito.when; class StudyDatabaseToFetcherConverterTest { + GeneralPreferences generalPreferences; ImportFormatPreferences importFormatPreferences; SavePreferences savePreferences; TimestampPreferences timestampPreferences; @@ -36,16 +38,16 @@ class StudyDatabaseToFetcherConverterTest { @BeforeEach void setUpMocks() { + generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); savePreferences = mock(SavePreferences.class, Answers.RETURNS_DEEP_STUBS); timestampPreferences = mock(TimestampPreferences.class); + when(generalPreferences.getDefaultEncoding()).thenReturn(Charset.defaultCharset()); when(savePreferences.getSaveOrder()).thenReturn(new SaveOrderConfig()); - when(savePreferences.getEncoding()).thenReturn(null); when(savePreferences.takeMetadataSaveOrderInAccount()).thenReturn(true); when(importFormatPreferences.getKeywordSeparator()).thenReturn(','); when(importFormatPreferences.getFieldContentFormatterPreferences()).thenReturn(new FieldContentFormatterPreferences()); when(importFormatPreferences.isKeywordSyncEnabled()).thenReturn(false); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); entryTypesManager = new BibEntryTypesManager(); gitHandler = mock(SlrGitHandler.class, Answers.RETURNS_DEFAULTS); } @@ -55,7 +57,7 @@ public void getActiveFetcherInstances() throws Exception { Path studyDefinition = tempRepositoryDirectory.resolve("study.yml"); copyTestStudyDefinitionFileIntoDirectory(studyDefinition); - StudyRepository studyRepository = new StudyRepository(tempRepositoryDirectory, gitHandler, importFormatPreferences, new DummyFileUpdateMonitor(), savePreferences, entryTypesManager); + StudyRepository studyRepository = new StudyRepository(tempRepositoryDirectory, gitHandler, generalPreferences, importFormatPreferences, new DummyFileUpdateMonitor(), savePreferences, entryTypesManager); StudyDatabaseToFetcherConverter converter = new StudyDatabaseToFetcherConverter(studyRepository.getActiveLibraryEntries(), importFormatPreferences); List result = converter.getActiveFetchers(); diff --git a/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java b/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java index cc483f897c5..6dd4e5c0be8 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java +++ b/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.net.URL; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.time.LocalDate; @@ -31,6 +30,7 @@ import org.jabref.model.study.FetchResult; import org.jabref.model.study.QueryResult; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -47,6 +47,7 @@ class StudyRepositoryTest { private static final String NON_EXISTING_DIRECTORY = "nonExistingTestRepositoryDirectory"; CitationKeyPatternPreferences citationKeyPatternPreferences; + GeneralPreferences generalPreferences; ImportFormatPreferences importFormatPreferences; SavePreferences savePreferences; TimestampPreferences timestampPreferences; @@ -64,6 +65,7 @@ class StudyRepositoryTest { */ @BeforeEach public void setUpMocks() throws Exception { + generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); savePreferences = mock(SavePreferences.class, Answers.RETURNS_DEEP_STUBS); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); timestampPreferences = mock(TimestampPreferences.class); @@ -77,15 +79,13 @@ public void setUpMocks() throws Exception { DEFAULT_UNWANTED_CHARACTERS, GlobalCitationKeyPattern.fromPattern("[auth][year]"), ','); + when(generalPreferences.getDefaultEncoding()).thenReturn(Charset.defaultCharset()); when(savePreferences.getSaveOrder()).thenReturn(new SaveOrderConfig()); - when(savePreferences.getEncoding()).thenReturn(null); when(savePreferences.takeMetadataSaveOrderInAccount()).thenReturn(true); - when(savePreferences.getEncoding()).thenReturn(Charset.defaultCharset()); when(savePreferences.getCitationKeyPatternPreferences()).thenReturn(citationKeyPatternPreferences); when(importFormatPreferences.getKeywordSeparator()).thenReturn(','); when(importFormatPreferences.getFieldContentFormatterPreferences()).thenReturn(new FieldContentFormatterPreferences()); when(importFormatPreferences.isKeywordSyncEnabled()).thenReturn(false); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); when(timestampPreferences.getTimestampField()).then(invocation -> StandardField.TIMESTAMP); entryTypesManager = new BibEntryTypesManager(); getTestStudyRepository(); @@ -95,7 +95,7 @@ public void setUpMocks() throws Exception { void providePathToNonExistentRepositoryThrowsException() { Path nonExistingRepositoryDirectory = tempRepositoryDirectory.resolve(NON_EXISTING_DIRECTORY); - assertThrows(IOException.class, () -> new StudyRepository(nonExistingRepositoryDirectory, gitHandler, importFormatPreferences, new DummyFileUpdateMonitor(), savePreferences, entryTypesManager)); + assertThrows(IOException.class, () -> new StudyRepository(nonExistingRepositoryDirectory, gitHandler, generalPreferences, importFormatPreferences, new DummyFileUpdateMonitor(), savePreferences, entryTypesManager)); } /** @@ -175,7 +175,7 @@ void studyResultsPersistedCorrectly() throws Exception { private StudyRepository getTestStudyRepository() throws Exception { setUpTestStudyDefinitionFile(); - studyRepository = new StudyRepository(tempRepositoryDirectory, gitHandler, importFormatPreferences, new DummyFileUpdateMonitor(), savePreferences, entryTypesManager); + studyRepository = new StudyRepository(tempRepositoryDirectory, gitHandler, generalPreferences, importFormatPreferences, new DummyFileUpdateMonitor(), savePreferences, entryTypesManager); return studyRepository; } diff --git a/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java b/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java index af7de7e11ee..e043aab7150 100644 --- a/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java +++ b/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java @@ -306,4 +306,25 @@ public void sameBooksWithDifferentEditionsAreNotDuplicates() { assertFalse(duplicateChecker.isDuplicate(editionOne, editionTwo, BibDatabaseMode.BIBTEX)); } + + @Test + void compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences() throws Exception { + BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + assertTrue(duplicateChecker.isDuplicate(entryOne, entryTwo, BibDatabaseMode.BIBTEX)); + } + + @Test + void compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences() throws Exception { + BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + assertTrue(duplicateChecker.isDuplicate(entryOne, entryTwo, BibDatabaseMode.BIBTEX)); + } + + @Test + void compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences() throws Exception { + BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); + BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); + assertTrue(duplicateChecker.isDuplicate(entryOne, entryTwo, BibDatabaseMode.BIBTEX)); + } } diff --git a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java b/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java index 87c241fa30b..33713059eb4 100644 --- a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java +++ b/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java @@ -47,6 +47,7 @@ import org.jabref.model.metadata.SaveOrderConfig; import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.FileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -59,25 +60,29 @@ class BibtexDatabaseWriterTest { - private StringWriter stringWriter; private BibtexDatabaseWriter databaseWriter; private BibDatabase database; private MetaData metaData; private BibDatabaseContext bibtexContext; private ImportFormatPreferences importFormatPreferences; private final FileUpdateMonitor fileMonitor = new DummyFileUpdateMonitor(); - private SavePreferences preferences; + private GeneralPreferences generalPreferences; + private SavePreferences savePreferences; private BibEntryTypesManager entryTypesManager; + private StringWriter stringWriter; + private BibWriter bibWriter; @BeforeEach void setUp() { - stringWriter = new StringWriter(); - preferences = mock(SavePreferences.class, Answers.RETURNS_DEEP_STUBS); - when(preferences.getSaveOrder()).thenReturn(new SaveOrderConfig()); - when(preferences.getEncoding()).thenReturn(null); - when(preferences.takeMetadataSaveOrderInAccount()).thenReturn(true); + generalPreferences = mock(GeneralPreferences.class); + when(generalPreferences.getDefaultEncoding()).thenReturn(null); + savePreferences = mock(SavePreferences.class, Answers.RETURNS_DEEP_STUBS); + when(savePreferences.getSaveOrder()).thenReturn(new SaveOrderConfig()); + when(savePreferences.takeMetadataSaveOrderInAccount()).thenReturn(true); entryTypesManager = new BibEntryTypesManager(); - databaseWriter = new BibtexDatabaseWriter(stringWriter, preferences, entryTypesManager); + stringWriter = new StringWriter(); + bibWriter = new BibWriter(stringWriter, OS.NEWLINE); + databaseWriter = new BibtexDatabaseWriter(bibWriter, generalPreferences, savePreferences, entryTypesManager); database = new BibDatabase(); metaData = new MetaData(); @@ -97,7 +102,7 @@ void writeWithNullEntriesThrowsException() throws Exception { @Test void writeEncoding() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); @@ -110,12 +115,12 @@ void writePreamble() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@Preamble{Test preamble}" + OS.NEWLINE, stringWriter.toString()); + assertEquals("@Preamble{Test preamble}" + OS.NEWLINE, stringWriter.toString()); } @Test void writePreambleAndEncoding() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); database.setPreamble("Test preamble"); databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); @@ -132,16 +137,14 @@ void writeEntry() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); - assertEquals( - OS.NEWLINE + - "@Article{," + OS.NEWLINE + "}" + assertEquals("@Article{," + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); } @Test void writeEncodingAndEntry() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); database.insertEntry(entry); @@ -161,12 +164,12 @@ void writeEpilogue() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "Test epilog" + OS.NEWLINE, stringWriter.toString()); + assertEquals("Test epilog" + OS.NEWLINE, stringWriter.toString()); } @Test void writeEpilogueAndEncoding() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); database.setEpilog("Test epilog"); databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); @@ -183,13 +186,13 @@ void writeMetadata() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@Comment{jabref-meta: keypatterndefault:test;}" + OS.NEWLINE, + assertEquals("@Comment{jabref-meta: keypatterndefault:test;}" + OS.NEWLINE, stringWriter.toString()); } @Test void writeMetadataAndEncoding() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); DatabaseCitationKeyPattern bibtexKeyPattern = new DatabaseCitationKeyPattern(mock(GlobalCitationKeyPattern.class)); bibtexKeyPattern.setDefaultValue("test"); metaData.setCiteKeyPattern(bibtexKeyPattern); @@ -210,8 +213,7 @@ void writeGroups() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); // @formatter:off - assertEquals(OS.NEWLINE - + "@Comment{jabref-meta: grouping:" + OS.NEWLINE + assertEquals("@Comment{jabref-meta: grouping:" + OS.NEWLINE + "0 AllEntriesGroup:;" + OS.NEWLINE + "1 StaticGroup:test\\;2\\;1\\;\\;\\;\\;;" + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); @@ -220,7 +222,7 @@ void writeGroups() throws Exception { @Test void writeGroupsAndEncoding() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); GroupTreeNode groupRoot = GroupTreeNode.fromGroup(new AllEntriesGroup("")); groupRoot.addChild(GroupTreeNode.fromGroup(new ExplicitGroup("test", GroupHierarchyType.INCLUDING, ','))); @@ -245,12 +247,12 @@ void writeString() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); + assertEquals("@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } @Test void writeStringAndEncoding() throws Exception { - when(preferences.getEncoding()).thenReturn(StandardCharsets.US_ASCII); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); database.addString(new BibtexString("name", "content")); databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); @@ -259,6 +261,16 @@ void writeStringAndEncoding() throws Exception { "@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } + @Test + void doNotWriteUtf8StringAndEncoding() throws Exception { + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + database.addString(new BibtexString("name", "content")); + + databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + + assertEquals("@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); + } + @Test void writeEntryWithCustomizedTypeAlsoWritesTypeDeclaration() throws Exception { EntryType customizedType = new UnknownEntryType("customizedType"); @@ -282,9 +294,7 @@ void writeEntryWithCustomizedTypeAlsoWritesTypeDeclaration() throws Exception { databaseWriter.saveDatabase(bibtexContext); - assertEquals( - OS.NEWLINE + - "@Customizedtype{," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + assertEquals("@Customizedtype{," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: databaseType:bibtex;}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-entrytype: customizedtype: req[title;author;date] opt[year;month;publisher]}" + OS.NEWLINE, @@ -314,8 +324,7 @@ void writeCustomizedTypesInAlphabeticalOrder() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Arrays.asList(entry, otherEntry)); assertEquals( - OS.NEWLINE - + "@Customizedtype{," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + "@Customizedtype{," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + "@Othercustomizedtype{," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: databaseType:bibtex;}" + OS.NEWLINE + OS.NEWLINE @@ -330,22 +339,49 @@ void roundtripWithArticleMonths() throws Exception { Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(Importer.getReader(testBibtexFile, encoding)); - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); assertEquals(Files.readString(testBibtexFile, encoding), stringWriter.toString()); } + @Test + void roundtripUtf8EncodingHeaderRemoved() throws Exception { + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + // @formatter:off + String bibtexEntry = OS.NEWLINE + "% Encoding: UTF8" + OS.NEWLINE + + OS.NEWLINE + + "@Article{," + OS.NEWLINE + + " author = {Foo Bar}," + OS.NEWLINE + + " journal = {International Journal of Something}," + OS.NEWLINE + + " note = {some note}," + OS.NEWLINE + + " number = {1}," + OS.NEWLINE + + "}" + OS.NEWLINE; + // @formatter:on + ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(new StringReader(bibtexEntry)); + BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); + databaseWriter.saveDatabase(context); + // @formatter:off + String expected = "@Article{," + OS.NEWLINE + + " author = {Foo Bar}," + OS.NEWLINE + + " journal = {International Journal of Something}," + OS.NEWLINE + + " note = {some note}," + OS.NEWLINE + + " number = {1}," + OS.NEWLINE + + "}" + OS.NEWLINE; + // @formatter:on + assertEquals(expected, stringWriter.toString()); + } + @Test void roundtripWithComplexBib() throws Exception { Path testBibtexFile = Path.of("src/test/resources/testbib/complex.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(Importer.getReader(testBibtexFile, encoding)); - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); @@ -358,14 +394,72 @@ void roundtripWithUserComment() throws Exception { Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(Importer.getReader(testBibtexFile, encoding)); - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); assertEquals(Files.readString(testBibtexFile, encoding), stringWriter.toString()); } + @Test + void roundtripWithOneUserCommentAndEntryChange() throws Exception { + String bibEntry = "@Comment this in an unbracketed comment that should be preserved as well\n" + + "\n" + + "This is some arbitrary user comment that should be preserved\n" + + "\n" + + "@InProceedings{1137631,\n" + + " author = {Mr. Author},\n" + + "}\n"; + + // read in bibtex string + ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); + ParserResult result = new BibtexParser(importFormatPreferences, new DummyFileUpdateMonitor()).parse(new StringReader(bibEntry)); + + BibEntry entry = result.getDatabase().getEntryByCitationKey("1137631").get(); + entry.setField(StandardField.AUTHOR, "Mr. Author"); + + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); + BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); + + // we need a new writer because "\n" instead of "OS.NEWLINE" + bibWriter = new BibWriter(stringWriter, "\n"); + databaseWriter = new BibtexDatabaseWriter(bibWriter, generalPreferences, savePreferences, entryTypesManager); + databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); + assertEquals(bibEntry, stringWriter.toString()); + } + + @Test + void roundtripWithTwoEntriesAndOneUserCommentAndEntryChange() throws Exception { + String bibEntry = "@Article{test,}\n" + + "\n" + + "@Comment this in an unbracketed comment that should be preserved as well\n" + + "\n" + + "This is some arbitrary user comment that should be preserved\n" + + "\n" + + "@InProceedings{1137631,\n" + + " author = {Mr. Author},\n" + + "}\n"; + + // read in bibtex string + ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); + ParserResult result = new BibtexParser(importFormatPreferences, new DummyFileUpdateMonitor()).parse(new StringReader(bibEntry)); + + BibEntry entry = result.getDatabase().getEntryByCitationKey("1137631").get(); + entry.setField(StandardField.AUTHOR, "Mr. Author"); + + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); + BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); + + // we need a new writer because "\n" instead of "OS.NEWLINE" + bibWriter = new BibWriter(stringWriter, "\n"); + databaseWriter = new BibtexDatabaseWriter(bibWriter, generalPreferences, savePreferences, entryTypesManager); + databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); + assertEquals(bibEntry, stringWriter.toString()); + } + @Test void roundtripWithUserCommentAndEntryChange() throws Exception { Path testBibtexFile = Path.of("src/test/resources/testbib/bibWithUserComments.bib"); @@ -375,8 +469,8 @@ void roundtripWithUserCommentAndEntryChange() throws Exception { BibEntry entry = result.getDatabase().getEntryByCitationKey("1137631").get(); entry.setField(StandardField.AUTHOR, "Mr. Author"); - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); @@ -394,8 +488,8 @@ void roundtripWithUserCommentBeforeStringAndChange() throws Exception { string.setContent(string.getContent()); } - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); @@ -409,8 +503,8 @@ void roundtripWithUnknownMetaData() throws Exception { Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences, fileMonitor).parse(Importer.getReader(testBibtexFile, encoding)); - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.savePartOfDatabase(context, result.getDatabase().getEntries()); @@ -428,7 +522,7 @@ void writeSavedSerializationOfEntryIfUnchanged() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); - assertEquals("presaved serialization", stringWriter.toString()); + assertEquals("presaved serialization" + OS.NEWLINE, stringWriter.toString()); } @Test @@ -440,12 +534,10 @@ void reformatEntryIfAskedToDoSo() throws Exception { entry.setChanged(false); database.insertEntry(entry); - when(preferences.shouldReformatFile()).thenReturn(true); + when(savePreferences.shouldReformatFile()).thenReturn(true); databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); - assertEquals( - OS.NEWLINE - + "@Article{," + OS.NEWLINE + " author = {Mr. author}," + OS.NEWLINE + "}" + assertEquals("@Article{," + OS.NEWLINE + " author = {Mr. author}," + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); } @@ -458,7 +550,7 @@ void writeSavedSerializationOfStringIfUnchanged() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals("serialization", stringWriter.toString()); + assertEquals("serialization" + OS.NEWLINE, stringWriter.toString()); } @Test @@ -467,10 +559,10 @@ void reformatStringIfAskedToDoSo() throws Exception { string.setParsedSerialization("wrong serialization"); database.addString(string); - when(preferences.shouldReformatFile()).thenReturn(true); + when(savePreferences.shouldReformatFile()).thenReturn(true); databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); + assertEquals("@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } @Test @@ -484,9 +576,7 @@ void writeSaveActions() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals( - OS.NEWLINE + - "@Comment{jabref-meta: saveActions:enabled;" + assertEquals("@Comment{jabref-meta: saveActions:enabled;" + OS.NEWLINE + "day[upper_case]" + OS.NEWLINE + "journal[title_case]" + OS.NEWLINE @@ -505,8 +595,7 @@ void writeSaveOrderConfig() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE - + "@Comment{jabref-meta: saveOrderConfig:specified;author;false;year;true;abstract;false;}" + assertEquals("@Comment{jabref-meta: saveOrderConfig:specified;author;false;year;true;abstract;false;}" + OS.NEWLINE, stringWriter.toString()); } @@ -519,7 +608,7 @@ void writeCustomKeyPattern() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@Comment{jabref-meta: keypattern_article:articleTest;}" + OS.NEWLINE + assertEquals("@Comment{jabref-meta: keypattern_article:articleTest;}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: keypatterndefault:test;}" + OS.NEWLINE, stringWriter.toString()); } @@ -530,7 +619,7 @@ void writeBiblatexMode() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@Comment{jabref-meta: databaseType:biblatex;}" + OS.NEWLINE, + assertEquals("@Comment{jabref-meta: databaseType:biblatex;}" + OS.NEWLINE, stringWriter.toString()); } @@ -540,7 +629,7 @@ void writeProtectedFlag() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@Comment{jabref-meta: protectedFlag:true;}" + OS.NEWLINE, + assertEquals("@Comment{jabref-meta: protectedFlag:true;}" + OS.NEWLINE, stringWriter.toString()); } @@ -552,7 +641,7 @@ void writeFileDirectories() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); - assertEquals(OS.NEWLINE + "@Comment{jabref-meta: fileDirectory:\\\\Literature\\\\;}" + OS.NEWLINE + + assertEquals("@Comment{jabref-meta: fileDirectory:\\\\Literature\\\\;}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: fileDirectory-defaultOwner-user:D:\\\\Documents;}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: fileDirectoryLatex-defaultOwner-user:D:\\\\Latex;}" + OS.NEWLINE, stringWriter.toString()); } @@ -586,9 +675,7 @@ void writeEntriesSorted() throws Exception { databaseWriter.savePartOfDatabase(bibtexContext, database.getEntries()); - assertEquals( - OS.NEWLINE + - "@Article{," + OS.NEWLINE + + assertEquals("@Article{," + OS.NEWLINE + " author = {A}," + OS.NEWLINE + " year = {2010}," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + @@ -626,12 +713,10 @@ void writeEntriesInOriginalOrderWhenNoSaveOrderConfigIsSetInMetadata() throws Ex database.insertEntry(secondEntry); database.insertEntry(thirdEntry); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(false); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(false); databaseWriter.savePartOfDatabase(bibtexContext, database.getEntries()); - assertEquals( - OS.NEWLINE + - "@Article{," + OS.NEWLINE + + assertEquals("@Article{," + OS.NEWLINE + " author = {A}," + OS.NEWLINE + " year = {2010}," + OS.NEWLINE + "}" + OS.NEWLINE + OS.NEWLINE + @@ -655,8 +740,7 @@ void trimFieldContents() throws IOException { databaseWriter.saveDatabase(bibtexContext); - assertEquals( - OS.NEWLINE + "@Article{," + OS.NEWLINE + + assertEquals("@Article{," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); @@ -672,8 +756,7 @@ void newlineAtEndOfAbstractFieldIsDeleted() throws Exception { databaseWriter.saveDatabase(bibtexContext); - assertEquals( - OS.NEWLINE + "@Article{," + OS.NEWLINE + + assertEquals("@Article{," + OS.NEWLINE + " abstract = {" + text + "}," + OS.NEWLINE + "}" + OS.NEWLINE, stringWriter.toString()); @@ -681,18 +764,20 @@ void newlineAtEndOfAbstractFieldIsDeleted() throws Exception { @Test void roundtripWithContentSelectorsAndUmlauts() throws Exception { - String fileContent = "% Encoding: UTF-8" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: selector_journal:Test {\\\\\"U}mlaut;}" + OS.NEWLINE; + String encodingHeader = "% Encoding: UTF-8" + OS.NEWLINE + OS.NEWLINE; + String commentEntry = "@Comment{jabref-meta: selector_journal:Test {\\\\\"U}mlaut;}" + OS.NEWLINE; + String fileContent = encodingHeader + commentEntry; Charset encoding = StandardCharsets.UTF_8; ParserResult firstParse = new BibtexParser(importFormatPreferences, fileMonitor).parse(new StringReader(fileContent)); - when(preferences.getEncoding()).thenReturn(encoding); - when(preferences.shouldSaveInOriginalOrder()).thenReturn(true); + when(generalPreferences.getDefaultEncoding()).thenReturn(encoding); + when(savePreferences.shouldSaveInOriginalOrder()).thenReturn(true); BibDatabaseContext context = new BibDatabaseContext(firstParse.getDatabase(), firstParse.getMetaData()); databaseWriter.savePartOfDatabase(context, firstParse.getDatabase().getEntries()); - assertEquals(fileContent, stringWriter.toString()); + assertEquals(commentEntry, stringWriter.toString()); } @Test @@ -725,11 +810,11 @@ void saveAlsoSavesSecondModification() throws Exception { // write a second time stringWriter = new StringWriter(); - databaseWriter = new BibtexDatabaseWriter(stringWriter, preferences, entryTypesManager); + bibWriter = new BibWriter(stringWriter, OS.NEWLINE); + databaseWriter = new BibtexDatabaseWriter(bibWriter, generalPreferences, savePreferences, entryTypesManager); databaseWriter.savePartOfDatabase(context, firstParse.getDatabase().getEntries()); - assertEquals(OS.NEWLINE + - "@Article{test," + OS.NEWLINE + + assertEquals("@Article{test," + OS.NEWLINE + " author = {Test}," + OS.NEWLINE + " journal = {International Journal of Something}," + OS.NEWLINE + " note = {some note}," + OS.NEWLINE + @@ -742,12 +827,12 @@ void saveAlsoSavesSecondModification() throws Exception { @Test void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws Exception { // @formatter:off - String bibtexEntry = OS.NEWLINE + "@Article{test," + OS.NEWLINE + + String bibtexEntry = "@Article{test," + OS.NEWLINE + " Author = {Foo Bar}," + OS.NEWLINE + " Journal = {International Journal of Something}," + OS.NEWLINE + " Number = {1}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on // read in bibtex string @@ -763,8 +848,6 @@ void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws Exception { entry.setChanged(false); // write entry - stringWriter = new StringWriter(); - databaseWriter = new BibtexDatabaseWriter(stringWriter, preferences, entryTypesManager); BibDatabaseContext context = new BibDatabaseContext(firstParse.getDatabase(), firstParse.getMetaData()); databaseWriter.savePartOfDatabase(context, firstParse.getDatabase().getEntries()); @@ -772,14 +855,14 @@ void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws Exception { } @Test - void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePrecenseOfSavedModifications() throws Exception { + void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePresenceOfSavedModifications() throws Exception { // @formatter:off - String bibtexEntry = OS.NEWLINE + "@Article{test," + OS.NEWLINE + + String bibtexEntry = "@Article{test," + OS.NEWLINE + " Author = {Foo Bar}," + OS.NEWLINE + " Journal = {International Journal of Something}," + OS.NEWLINE + " Note = {some note}," + OS.NEWLINE + " Number = {1}," + OS.NEWLINE + - "}"; + "}" + OS.NEWLINE; // @formatter:on // read in bibtex string @@ -802,7 +885,8 @@ void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePrecenseOfSav // write a second time stringWriter = new StringWriter(); - databaseWriter = new BibtexDatabaseWriter(stringWriter, preferences, entryTypesManager); + bibWriter = new BibWriter(stringWriter, OS.NEWLINE); + databaseWriter = new BibtexDatabaseWriter(bibWriter, generalPreferences, savePreferences, entryTypesManager); databaseWriter.savePartOfDatabase(context, firstParse.getDatabase().getEntries()); // returns tu original entry, not to the last saved one diff --git a/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java b/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java index d676aea61bf..5deca4549bd 100644 --- a/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java @@ -107,7 +107,7 @@ void setUp() throws IOException { filePreferences = mock(FilePreferences.class); when(filePreferences.getUser()).thenReturn(tempDir.toAbsolutePath().toString()); - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(false); + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(false); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.getFieldContentFormatterPreferences().getNonWrappableFields()).thenReturn(List.of()); diff --git a/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java b/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java new file mode 100644 index 00000000000..95d1994e607 --- /dev/null +++ b/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java @@ -0,0 +1,131 @@ +package org.jabref.logic.exporter; + +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +import org.jabref.logic.layout.LayoutFormatterPreferences; +import org.jabref.logic.xmp.XmpPreferences; +import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; +import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.BibEntryTypesManager; +import org.jabref.model.entry.field.StandardField; +import org.jabref.model.entry.types.StandardEntryType; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; +import org.mockito.Answers; +import org.xmlunit.builder.Input; +import org.xmlunit.diff.DefaultNodeMatcher; +import org.xmlunit.diff.ElementSelectors; +import org.xmlunit.matchers.CompareMatcher; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.mockito.Mockito.mock; + +public class OpenOfficeDocumentCreatorTest { + private static final String OPEN_OFFICE_EXPORTER_ID = "oocalc"; + + public BibDatabaseContext databaseContext; + public Charset charset; + public List entries; + + private Path xmlFile; + private Exporter exporter; + + @BeforeEach + void setUp() throws URISyntaxException { + xmlFile = Path.of(OpenOfficeDocumentCreatorTest.class.getResource("OldOpenOfficeCalcExportFormatContentSingleEntry.xml").toURI()); + + List customFormats = new ArrayList<>(); + LayoutFormatterPreferences layoutPreferences = mock(LayoutFormatterPreferences.class, Answers.RETURNS_DEEP_STUBS); + SavePreferences savePreferences = mock(SavePreferences.class); + XmpPreferences xmpPreferences = mock(XmpPreferences.class); + BibEntryTypesManager entryTypesManager = mock(BibEntryTypesManager.class); + ExporterFactory exporterFactory = ExporterFactory.create(customFormats, layoutPreferences, savePreferences, xmpPreferences, BibDatabaseMode.BIBTEX, entryTypesManager); + + exporter = exporterFactory.getExporterByName(OPEN_OFFICE_EXPORTER_ID).get(); + + databaseContext = new BibDatabaseContext(); + charset = StandardCharsets.UTF_8; + + BibEntry entry = new BibEntry(StandardEntryType.Article); + entry.setField(StandardField.ADDRESS, "New York, NY, USA"); + entry.setField(StandardField.TITLE, "Design and usability in security systems: daily life as a context of use?"); + entry.setField(StandardField.AUTHOR, "Tony Clear"); + entry.setField(StandardField.ISSN, "0097-8418"); + entry.setField(StandardField.DOI, "http://doi.acm.org/10.1145/820127.820136"); + entry.setField(StandardField.JOURNAL, "SIGCSE Bull."); + entry.setField(StandardField.NUMBER, "4"); + entry.setField(StandardField.PAGES, "13--14"); + entry.setField(StandardField.PUBLISHER, "ACM"); + entry.setField(StandardField.VOLUME, "34"); + entry.setField(StandardField.YEAR, "2002"); + + entries = Collections.singletonList(entry); + } + + @Test + void testPerformExportForSingleEntry(@TempDir Path testFolder) throws Exception { + Path zipPath = testFolder.resolve("OpenOfficeRandomNamedFile"); + + exporter.export(databaseContext, zipPath, charset, entries); + + Path unzipFolder = testFolder.resolve("unzipFolder"); + unzipContentXml(zipPath, testFolder.resolve(unzipFolder)); + Path contentXmlPath = unzipFolder.resolve("content.xml"); + + Input.Builder control = Input.from(Files.newInputStream(xmlFile)); + Input.Builder test = Input.from(Files.newInputStream(contentXmlPath)); + + assertThat(test, CompareMatcher.isSimilarTo(control) + .normalizeWhitespace() + .withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText)).throwComparisonFailure()); + } + + private static void unzipContentXml(Path zipFile, Path unzipFolder) throws IOException { + try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile.toFile()))) { + ZipEntry zipEntry = zis.getNextEntry(); + + while (zipEntry != null) { + boolean isContentXml = zipEntry.getName().equals("content.xml"); + + Path newPath = zipSlipProtect(zipEntry, unzipFolder); + + if (isContentXml) { + if (newPath.getParent() != null) { + if (Files.notExists(newPath.getParent())) { + Files.createDirectories(newPath.getParent()); + } + } + Files.copy(zis, newPath, StandardCopyOption.REPLACE_EXISTING); + } + + zipEntry = zis.getNextEntry(); + } + zis.closeEntry(); + } + } + + // protect zip slip attack: https://snyk.io/research/zip-slip-vulnerability + private static Path zipSlipProtect(ZipEntry zipEntry, Path targetDir) throws IOException { + Path targetDirResolved = targetDir.resolve(zipEntry.getName()); + Path normalizePath = targetDirResolved.normalize(); + if (!normalizePath.startsWith(targetDir)) { + throw new IOException("Bad zip entry: " + zipEntry.getName()); + } + return normalizePath; + } +} diff --git a/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java b/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java index 45dd764fa61..67ceffc850a 100644 --- a/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java +++ b/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java @@ -102,7 +102,7 @@ void setUp() throws IOException { filePreferences = mock(FilePreferences.class); when(filePreferences.getUser()).thenReturn(tempDir.toAbsolutePath().toString()); - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(false); + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(false); importer = new PdfXmpImporter(xmpPreferences); exporter = new XmpPdfExporter(xmpPreferences); diff --git a/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java b/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java index a9567095d44..16f7dfd36c0 100644 --- a/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java +++ b/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java @@ -10,6 +10,7 @@ import org.jabref.logic.xmp.XmpPreferences; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; @@ -28,9 +29,10 @@ class ImportFormatReaderIntegrationTest { void setUp() { reader = new ImportFormatReader(); ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); when(importFormatPreferences.getCustomImportList()).thenReturn(Set.of()); - reader.resetImportFormats(mock(ImporterPreferences.class), importFormatPreferences, mock(XmpPreferences.class), new DummyFileUpdateMonitor()); + GeneralPreferences generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); + reader.resetImportFormats(mock(ImporterPreferences.class), generalPreferences, importFormatPreferences, mock(XmpPreferences.class), new DummyFileUpdateMonitor()); } @ParameterizedTest diff --git a/src/test/java/org/jabref/logic/importer/ImportFormatReaderTestParameterless.java b/src/test/java/org/jabref/logic/importer/ImportFormatReaderTestParameterless.java index ba25256bf2e..7cd43538bc6 100644 --- a/src/test/java/org/jabref/logic/importer/ImportFormatReaderTestParameterless.java +++ b/src/test/java/org/jabref/logic/importer/ImportFormatReaderTestParameterless.java @@ -7,6 +7,7 @@ import org.jabref.logic.xmp.XmpPreferences; import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.FileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -24,10 +25,11 @@ class ImportFormatReaderTestParameterless { @BeforeEach void setUp() { reader = new ImportFormatReader(); + GeneralPreferences generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); when(importFormatPreferences.getCustomImportList()).thenReturn(Set.of()); - reader.resetImportFormats(mock(ImporterPreferences.class), importFormatPreferences, mock(XmpPreferences.class), fileMonitor); + reader.resetImportFormats(mock(ImporterPreferences.class), generalPreferences, importFormatPreferences, mock(XmpPreferences.class), fileMonitor); } @Test diff --git a/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java b/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java index a29f248fcc8..222f68e809a 100644 --- a/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java +++ b/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java @@ -13,6 +13,7 @@ import org.jabref.model.entry.field.StandardField; import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.FileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -25,6 +26,7 @@ class OpenDatabaseTest { private final Charset defaultEncoding = StandardCharsets.UTF_8; + private GeneralPreferences generalPreferences; private ImportFormatPreferences importFormatPreferences; private final Path bibNoHeader; private final Path bibWrongHeader; @@ -43,39 +45,40 @@ class OpenDatabaseTest { @BeforeEach void setUp() { + generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); } @Test void useFallbackEncodingIfNoHeader() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibNoHeader, importFormatPreferences, fileMonitor); + ParserResult result = OpenDatabase.loadDatabase(bibNoHeader, generalPreferences, importFormatPreferences, fileMonitor); assertEquals(defaultEncoding, result.getMetaData().getEncoding().get()); } @Test void useFallbackEncodingIfUnknownHeader() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibWrongHeader, importFormatPreferences, fileMonitor); + ParserResult result = OpenDatabase.loadDatabase(bibWrongHeader, generalPreferences, importFormatPreferences, fileMonitor); assertEquals(defaultEncoding, result.getMetaData().getEncoding().get()); } @Test void useSpecifiedEncoding() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibHeader, - importFormatPreferences.withEncoding(StandardCharsets.US_ASCII), fileMonitor); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); + ParserResult result = OpenDatabase.loadDatabase(bibHeader, generalPreferences, importFormatPreferences, fileMonitor); assertEquals(defaultEncoding, result.getMetaData().getEncoding().get()); } @Test void useSpecifiedEncodingWithSignature() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibHeaderAndSignature, - importFormatPreferences.withEncoding(StandardCharsets.US_ASCII), fileMonitor); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.US_ASCII); + ParserResult result = OpenDatabase.loadDatabase(bibHeaderAndSignature, generalPreferences, importFormatPreferences, fileMonitor); assertEquals(defaultEncoding, result.getMetaData().getEncoding().get()); } @Test void entriesAreParsedNoHeader() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibNoHeader, importFormatPreferences, fileMonitor); + ParserResult result = OpenDatabase.loadDatabase(bibNoHeader, generalPreferences, importFormatPreferences, fileMonitor); BibDatabase db = result.getDatabase(); // Entry @@ -85,7 +88,7 @@ void entriesAreParsedNoHeader() throws IOException { @Test void entriesAreParsedHeader() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibHeader, importFormatPreferences, fileMonitor); + ParserResult result = OpenDatabase.loadDatabase(bibHeader, generalPreferences, importFormatPreferences, fileMonitor); BibDatabase db = result.getDatabase(); // Entry @@ -95,7 +98,7 @@ void entriesAreParsedHeader() throws IOException { @Test void entriesAreParsedHeaderAndSignature() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibHeaderAndSignature, importFormatPreferences, fileMonitor); + ParserResult result = OpenDatabase.loadDatabase(bibHeaderAndSignature, generalPreferences, importFormatPreferences, fileMonitor); BibDatabase db = result.getDatabase(); // Entry @@ -108,7 +111,7 @@ void entriesAreParsedHeaderAndSignature() throws IOException { */ @Test void correctlyParseEncodingWithoutNewline() throws IOException { - ParserResult result = OpenDatabase.loadDatabase(bibEncodingWithoutNewline, importFormatPreferences, fileMonitor); + ParserResult result = OpenDatabase.loadDatabase(bibEncodingWithoutNewline, generalPreferences, importFormatPreferences, fileMonitor); assertEquals(StandardCharsets.US_ASCII, result.getMetaData().getEncoding().get()); BibDatabase db = result.getDatabase(); 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 84bb345e80a..018262e1fea 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ArXivTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/ArXivTest.java @@ -6,7 +6,6 @@ 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.PagedSearchBasedFetcher; import org.jabref.logic.importer.SearchBasedFetcher; @@ -223,7 +222,7 @@ void searchEntryByIdWith5Digits() throws Exception { @Test void searchWithMalformedIdThrowsException() throws Exception { - assertThrows(FetcherException.class, () -> fetcher.performSearchById("123412345")); + assertEquals(Optional.empty(), fetcher.performSearchById("123412345")); } @Test diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java new file mode 100644 index 00000000000..c1543e6d2d6 --- /dev/null +++ b/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java @@ -0,0 +1,115 @@ +package org.jabref.logic.importer.fetcher; + +import java.util.Optional; +import java.util.stream.Stream; + +import org.jabref.logic.bibtex.FieldContentFormatterPreferences; +import org.jabref.logic.importer.CompositeIdFetcher; +import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.field.StandardField; +import org.jabref.model.entry.field.UnknownField; +import org.jabref.model.entry.types.StandardEntryType; +import org.jabref.testutils.category.FetcherTest; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * Tests the CompositeIdFetcher, for which Fetchers implementing the + * IdBasedFetcher interface are a prerequisite. Excluding TitleFetcher. + */ +@FetcherTest +class CompositeIdFetcherTest { + + private CompositeIdFetcher compositeIdFetcher; + + public static Stream provideTestData() { + return Stream.of( + Arguments.arguments( + "performSearchByIdReturnsCorrectEntryForArXivId", + new BibEntry(StandardEntryType.Article) + .withField(StandardField.AUTHOR, "Emily C. Cunningham and Robyn E. Sanderson and Kathryn V. Johnston and Nondh Panithanpaisal and Melissa K. Ness and Andrew Wetzel and Sarah R. Loebman and Ivanna Escala and Danny Horta and Claude-André Faucher-Giguère") + .withField(StandardField.TITLE, "Reading the CARDs: the Imprint of Accretion History in the Chemical Abundances of the Milky Way's Stellar Halo") + .withField(StandardField.DATE, "2021-10-06") + .withField(StandardField.ABSTRACT, "In the era of large-scale spectroscopic surveys in the Local Group (LG), we can explore using chemical abundances of halo stars to study the star formation and chemical enrichment histories of the dwarf galaxy progenitors of the Milky Way (MW) and M31 stellar halos. In this paper, we investigate using the Chemical Abundance Ratio Distributions (CARDs) of seven stellar halos from the Latte suite of FIRE-2 simulations. We attempt to infer galaxies' assembly histories by modelling the CARDs of the stellar halos of the Latte galaxies as a linear combination of template CARDs from disrupted dwarfs, with different stellar masses $M_{\\star}$ and quenching times $t_{100}$. We present a method for constructing these templates using present-day dwarf galaxies. For four of the seven Latte halos studied in this work, we recover the mass spectrum of accreted dwarfs to a precision of $<10\\%$. For the fraction of mass accreted as a function of $t_{100}$, we find residuals of $20-30\\%$ for five of the seven simulations. We discuss the failure modes of this method, which arise from the diversity of star formation and chemical enrichment histories dwarf galaxies can take. These failure cases can be robustly identified by the high model residuals. Though the CARDs modeling method does not successfully infer the assembly histories in these cases, the CARDs of these disrupted dwarfs contain signatures of their unusual formation histories. Our results are promising for using CARDs to learn more about the histories of the progenitors of the MW and M31 stellar halos.") + .withField(StandardField.EPRINT, "2110.02957") + .withField(StandardField.FILE, ":http\\://arxiv.org/pdf/2110.02957v1:PDF") + .withField(StandardField.EPRINTTYPE, "arXiv") + .withField(StandardField.EPRINTCLASS, "astro-ph.GA") + .withField(StandardField.KEYWORDS, "astro-ph.GA"), + "arXiv:2110.02957" + ), + Arguments.arguments( + "performSearchByIdReturnsCorrectEntryForIacrEprintId", + new BibEntry(StandardEntryType.Misc) + .withField(StandardField.ABSTRACT, "The decentralized cryptocurrency Bitcoin has experienced great success but also encountered many challenges. One of the challenges has been the long confirmation time. Another challenge is the lack of incentives at certain steps of the protocol, raising concerns for transaction withholding, selfish mining, etc. To address these challenges, we propose Solida, a decentralized blockchain protocol based on reconfigurable Byzantine consensus augmented by proof-of-work. Solida improves on Bitcoin in confirmation time, and provides safety and liveness assuming the adversary control less than (roughly) one-third of the total mining power.\n") + .withField(StandardField.AUTHOR, "Ittai Abraham and Dahlia Malkhi and Kartik Nayak and Ling Ren and Alexander Spiegelman") + .withField(StandardField.DATE, "2017-11-18") + .withField(StandardField.HOWPUBLISHED, "Cryptology ePrint Archive, Report 2017/1118") + .withField(StandardField.NOTE, "\\url{https://ia.cr/2017/1118}") + .withField(StandardField.TITLE, "Solida: A Blockchain Protocol Based on Reconfigurable Byzantine Consensus") + .withField(StandardField.URL, "https://eprint.iacr.org/2017/1118/20171124:064527") + .withField(StandardField.VERSION, "20171124:064527") + .withField(StandardField.YEAR, "2017") + .withCitationKey("cryptoeprint:2017:1118"), + "2017/1118" + ), + Arguments.arguments( + "performSearchByIdReturnsCorrectEntryForIsbnId", + new BibEntry(StandardEntryType.Book) + .withField(StandardField.TITLE, "Effective Java") + .withField(StandardField.PUBLISHER, "Addison Wesley") + .withField(StandardField.YEAR, "2018") + .withField(StandardField.AUTHOR, "Bloch, Joshua") + .withField(StandardField.DATE, "2018-01-01") + .withField(new UnknownField("ean"), "9780134685991") + .withField(StandardField.ISBN, "0134685997") + .withField(StandardField.URL, "https://www.ebook.de/de/product/28983211/joshua_bloch_effective_java.html") + .withCitationKey("9780134685991"), + "9780134685991" + ), + Arguments.arguments( + "performSearchByIdReturnsCorrectEntryForDoiId", + new BibEntry(StandardEntryType.Book) + .withField(StandardField.TITLE, "Java{\\textregistered} For Dummies{\\textregistered}") + .withField(StandardField.PUBLISHER, "Wiley Publishing, Inc.") + .withField(StandardField.YEAR, "2011") + .withField(StandardField.AUTHOR, "Barry Burd") + .withField(StandardField.MONTH, "jul") + .withField(StandardField.DOI, "10.1002/9781118257517") + .withCitationKey("2011"), + "10.1002/9781118257517" + ) + ); + } + + @BeforeEach + void setUp() throws Exception { + ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class); + FieldContentFormatterPreferences fieldContentFormatterPreferences = mock(FieldContentFormatterPreferences.class); + when(importFormatPreferences.getFieldContentFormatterPreferences()).thenReturn(fieldContentFormatterPreferences); + compositeIdFetcher = new CompositeIdFetcher(importFormatPreferences); + } + + @ParameterizedTest + @ValueSource(strings = "arZiv:2110.02957") + void performSearchByIdReturnsEmptyForInvalidId(String groundInvalidArXivId) throws FetcherException { + assertEquals(Optional.empty(), compositeIdFetcher.performSearchById(groundInvalidArXivId)); + } + + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestData") + void performSearchByIdReturnsCorrectEntryForIdentifier(String name, BibEntry bibEntry, String identifier) throws FetcherException { + assertEquals(Optional.of(bibEntry), compositeIdFetcher.performSearchById(identifier)); + } + +} diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java b/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java index ded0b80fbef..4ba961fa076 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java @@ -4,6 +4,7 @@ import java.net.URL; import java.util.Optional; +import org.jabref.logic.preferences.DOIPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.testutils.category.FetcherTest; @@ -12,6 +13,8 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; @FetcherTest class DoiResolutionTest { @@ -20,15 +23,16 @@ class DoiResolutionTest { private BibEntry entry; @BeforeEach - void setUp() { - finder = new DoiResolution(); + void setup() { + DOIPreferences doiPreferences = mock(DOIPreferences.class); + when(doiPreferences.isUseCustom()).thenReturn(false); + finder = new DoiResolution(doiPreferences); entry = new BibEntry(); } @Test void linkWithPdfInTitleTag() throws IOException { entry.setField(StandardField.DOI, "10.1051/0004-6361/201527330"); - assertEquals( Optional.of(new URL("https://www.aanda.org/articles/aa/pdf/2016/01/aa27330-15.pdf")), finder.findFullText(entry) @@ -53,10 +57,18 @@ void notReturnAnythingWhenMultipleLinksAreFound() throws IOException { assertEquals(Optional.empty(), finder.findFullText(entry)); } + @Test + void returnAnythingWhenBehindSpringerPayWall() throws IOException { + // Springer returns a HTML page instead of an empty page, + // even if the user does not have access + // We cannot easily handle this case, because other publisher return the wrong media type. + entry.setField(StandardField.DOI, "10.1007/978-3-319-62594-2_12"); + assertEquals(Optional.of(new URL("https://link.springer.com/content/pdf/10.1007%2F978-3-319-62594-2_12.pdf")), finder.findFullText(entry)); + } + @Test void notFoundByDOI() throws IOException { entry.setField(StandardField.DOI, "10.1186/unknown-doi"); - assertEquals(Optional.empty(), finder.findFullText(entry)); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java b/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java index b5ead872a6f..d30abe26e1b 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java +++ b/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java @@ -12,6 +12,7 @@ import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; +import org.jabref.support.DisabledOnCIServer; import org.jabref.testutils.category.FetcherTest; import org.junit.jupiter.api.BeforeEach; @@ -30,6 +31,7 @@ import static org.mockito.Mockito.mock; @FetcherTest +@DisabledOnCIServer("eprint.iacr.org blocks with 500 when there are too many calls from the same IP address.") public class IacrEprintFetcherTest { private IacrEprintFetcher fetcher; diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java b/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java index e0958825e03..12ca044d5bf 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java @@ -343,8 +343,8 @@ void parseRecognizesEntryWithAtInField() throws IOException { @Test void parseRecognizesEntryPrecedingComment() throws IOException { String comment = "@Comment{@article{myarticle,}" + OS.NEWLINE - + "@inproceedings{blabla, title={the proceedings of bl@bl@}; }" + OS.NEWLINE + "}"; - String entryWithComment = comment + OS.NEWLINE + "@article{test,author={Ed von T@st}}"; + + "@inproceedings{blabla, title={the proceedings of bl@bl@}; }" + OS.NEWLINE + "}" + OS.NEWLINE; + String entryWithComment = comment + "@article{test,author={Ed von T@st}}"; BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(InternalField.KEY_FIELD, "test") .withField(StandardField.AUTHOR, "Ed von T@st"); @@ -1197,7 +1197,7 @@ void parseSavesOneNewlineAfterEntryInParsedSerialization() throws IOException { } @Test - void parseSavesNewlinesBeforeEntryInParsedSerialization() throws IOException { + void parseSavesAllButOneNewlinesBeforeEntryInParsedSerialization() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser .parse(new StringReader(OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry)); @@ -1206,11 +1206,12 @@ void parseSavesNewlinesBeforeEntryInParsedSerialization() throws IOException { BibEntry parsedEntry = parsedEntries.iterator().next(); assertEquals(1, parsedEntries.size()); - assertEquals(OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry, parsedEntry.getParsedSerialization()); + // The first newline is removed, because JabRef interprets that always as block separator + assertEquals(OS.NEWLINE + OS.NEWLINE + testEntry, parsedEntry.getParsedSerialization()); } @Test - void parseRemovesEncodingLineInParsedSerialization() throws IOException { + void parseRemovesEncodingLineAndSeparatorInParsedSerialization() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser.parse( new StringReader(SavePreferences.ENCODING_PREFIX + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry)); @@ -1219,7 +1220,9 @@ void parseRemovesEncodingLineInParsedSerialization() throws IOException { BibEntry parsedEntry = parsedEntries.iterator().next(); assertEquals(1, parsedEntries.size()); - assertEquals(OS.NEWLINE + OS.NEWLINE + testEntry, parsedEntry.getParsedSerialization()); + // First two newlines are removed because of removal of "Encoding" + // Third newline removed because of block functionality + assertEquals(testEntry, parsedEntry.getParsedSerialization()); } @Test @@ -1242,7 +1245,8 @@ void parseSavesNewlinesBetweenEntriesInParsedSerialization() throws IOException assertEquals(2, parsedEntries.size()); assertEquals(testEntryOne + OS.NEWLINE, first.getParsedSerialization()); - assertEquals(OS.NEWLINE + OS.NEWLINE + testEntryTwo, second.getParsedSerialization()); + // one newline is removed, because it is written by JabRef's block functionality + assertEquals(OS.NEWLINE + testEntryTwo, second.getParsedSerialization()); } @Test @@ -1299,6 +1303,32 @@ void parseRecognizesSaveActionsAfterEntry() throws IOException { saveActions.getConfiguredActions()); } + @Test + void parseRecognizesCRLFLineBreak() throws IOException { + ParserResult result = parser.parse( + new StringReader("@InProceedings{6055279,\r\n" + " Title = {Educational session 1},\r\n" + + " Booktitle = {Custom Integrated Circuits Conference (CICC), 2011 IEEE},\r\n" + + " Year = {2011},\r\n" + " Month = {Sept},\r\n" + + " Pages = {1-7},\r\n" + + " Abstract = {Start of the above-titled section of the conference proceedings record.},\r\n" + + " DOI = {10.1109/CICC.2011.6055279},\r\n" + + " ISSN = {0886-5930}\r\n" + "}\r\n")); + assertEquals("\r\n", result.getDatabase().getNewLineSeparator()); + } + + @Test + void parseRecognizesLFLineBreak() throws IOException { + ParserResult result = parser.parse( + new StringReader("@InProceedings{6055279,\n" + " Title = {Educational session 1},\n" + + " Booktitle = {Custom Integrated Circuits Conference (CICC), 2011 IEEE},\n" + + " Year = {2011},\n" + " Month = {Sept},\n" + + " Pages = {1-7},\n" + + " Abstract = {Start of the above-titled section of the conference proceedings record.},\n" + + " DOI = {10.1109/CICC.2011.6055279},\n" + + " ISSN = {0886-5930}\n" + "}\n")); + assertEquals("\n", result.getDatabase().getNewLineSeparator()); + } + @Test void integrationTestSaveActions() throws IOException { ParserResult parserResult = parser diff --git a/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java b/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java index 3577ffedaa7..296fd455c68 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java +++ b/src/test/java/org/jabref/logic/importer/fileformat/PdfGrobidImporterTest.java @@ -12,6 +12,7 @@ import org.jabref.logic.util.StandardFileType; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; +import org.jabref.testutils.category.FetcherTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -23,6 +24,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +@FetcherTest public class PdfGrobidImporterTest { private PdfGrobidImporter importer; diff --git a/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java b/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java index 1371e4598f3..6da545c6897 100644 --- a/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java +++ b/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java @@ -179,7 +179,7 @@ private void assertWrong(BibDatabaseContext context) { private void assertCorrect(BibDatabaseContext context) { FilePreferences filePreferencesMock = mock(FilePreferences.class); - when(filePreferencesMock.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(filePreferencesMock.shouldStoreFilesRelativeToBibFile()).thenReturn(true); List messages = new IntegrityCheck(context, filePreferencesMock, createCitationKeyPatternPreferences(), diff --git a/src/test/java/org/jabref/logic/net/URLDownloadTest.java b/src/test/java/org/jabref/logic/net/URLDownloadTest.java index ea0f133c10f..8891cb91579 100644 --- a/src/test/java/org/jabref/logic/net/URLDownloadTest.java +++ b/src/test/java/org/jabref/logic/net/URLDownloadTest.java @@ -64,7 +64,7 @@ public void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws IOExce @Test public void downloadToTemporaryFileKeepsName() throws IOException { - URLDownload google = new URLDownload(new URL("https://github.com/JabRef/jabref/blob/master/LICENSE.md")); + URLDownload google = new URLDownload(new URL("https://github.com/JabRef/jabref/blob/main/LICENSE.md")); String path = google.toTemporaryFile().toString(); assertTrue(path.contains("LICENSE") && path.endsWith(".md"), path); diff --git a/src/test/java/org/jabref/logic/pdf/search/indexing/DocumentReaderTest.java b/src/test/java/org/jabref/logic/pdf/search/indexing/DocumentReaderTest.java index 55baa935a63..27cdb271844 100644 --- a/src/test/java/org/jabref/logic/pdf/search/indexing/DocumentReaderTest.java +++ b/src/test/java/org/jabref/logic/pdf/search/indexing/DocumentReaderTest.java @@ -36,7 +36,7 @@ public void setup() { this.filePreferences = mock(FilePreferences.class); when(filePreferences.getUser()).thenReturn("test"); when(filePreferences.getFileDirectory()).thenReturn(Optional.empty()); - when(filePreferences.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(true); } @Test diff --git a/src/test/java/org/jabref/logic/texparser/LatexParserTest.java b/src/test/java/org/jabref/logic/texparser/LatexParserTest.java index ccf70f598c6..6cdfc20d9df 100644 --- a/src/test/java/org/jabref/logic/texparser/LatexParserTest.java +++ b/src/test/java/org/jabref/logic/texparser/LatexParserTest.java @@ -14,6 +14,7 @@ import org.jabref.model.texparser.LatexParserResult; import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.FileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -32,14 +33,16 @@ public class LatexParserTest { private final static String EINSTEIN_C = "Einstein1920c"; private final FileUpdateMonitor fileMonitor = new DummyFileUpdateMonitor(); + private GeneralPreferences generalPreferences; private ImportFormatPreferences importFormatPreferences; private BibDatabase database; private BibDatabase database2; @BeforeEach private void setUp() { + generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); database = new BibDatabase(); database2 = new BibDatabase(); @@ -102,12 +105,12 @@ public void testSameFileDifferentDatabases() throws URISyntaxException { expectedParserResult.addKey(EINSTEIN, texFile, 6, 14, 33, "Einstein said \\cite{Einstein1920} that lorem impsum, consectetur adipiscing elit."); expectedParserResult.addKey(DARWIN, texFile, 7, 67, 84, "Nunc ultricies leo nec libero rhoncus, eu vehicula enim efficitur. \\cite{Darwin1888}"); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(expectedParserResult); assertEquals(expectedCrossingResult, crossingResult); - LatexBibEntriesResolverResult crossingResult2 = new TexBibEntriesResolver(database2, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult2 = new TexBibEntriesResolver(database2, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult2 = new LatexBibEntriesResolverResult(expectedParserResult); expectedCrossingResult2.addEntry(database.getEntryByCitationKey(EINSTEIN).get()); @@ -135,12 +138,12 @@ public void testTwoFilesDifferentDatabases() throws URISyntaxException { expectedParserResult.addKey(EINSTEIN, texFile2, 5, 48, 67, "This is some content trying to cite a bib file: \\cite{Einstein1920}"); expectedParserResult.addKey(NEWTON, texFile2, 6, 48, 65, "This is some content trying to cite a bib file: \\cite{Newton1999}"); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(expectedParserResult); assertEquals(expectedCrossingResult, crossingResult); - LatexBibEntriesResolverResult crossingResult2 = new TexBibEntriesResolver(database2, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult2 = new TexBibEntriesResolver(database2, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult2 = new LatexBibEntriesResolverResult(expectedParserResult); expectedCrossingResult2.addEntry(database.getEntryByCitationKey(EINSTEIN).get()); diff --git a/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java b/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java index 169d688cf36..773851c147d 100644 --- a/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java +++ b/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java @@ -14,6 +14,7 @@ import org.jabref.model.texparser.LatexParserResult; import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.FileUpdateMonitor; +import org.jabref.preferences.GeneralPreferences; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -32,6 +33,7 @@ public class TexBibEntriesResolverTest { private final static String EINSTEIN_C = "Einstein1920c"; private final FileUpdateMonitor fileMonitor = new DummyFileUpdateMonitor(); + private GeneralPreferences generalPreferences; private ImportFormatPreferences importFormatPreferences; private BibDatabase database; private BibDatabase database2; @@ -39,8 +41,9 @@ public class TexBibEntriesResolverTest { @BeforeEach private void setUp() { + generalPreferences = mock(GeneralPreferences.class, Answers.RETURNS_DEEP_STUBS); + when(generalPreferences.getDefaultEncoding()).thenReturn(StandardCharsets.UTF_8); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); database = new BibDatabase(); database2 = new BibDatabase(); @@ -102,7 +105,7 @@ public void testSingleFile() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("paper.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(parserResult); assertEquals(expectedCrossingResult, crossingResult); @@ -114,7 +117,7 @@ public void testTwoFiles() throws URISyntaxException { Path texFile2 = Path.of(TexBibEntriesResolverTest.class.getResource("paper2.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(Arrays.asList(texFile, texFile2)); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(parserResult); assertEquals(expectedCrossingResult, crossingResult); @@ -125,7 +128,7 @@ public void testDuplicateFiles() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("paper.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(parserResult); assertEquals(expectedCrossingResult, crossingResult); @@ -136,7 +139,7 @@ public void testUnknownKey() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("unknown_key.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(parserResult); assertEquals(expectedCrossingResult, crossingResult); @@ -147,7 +150,7 @@ public void testNestedFiles() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("nested.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(parserResult); assertEquals(expectedCrossingResult, crossingResult); @@ -158,7 +161,7 @@ public void testCrossRef() throws URISyntaxException { Path texFile = Path.of(TexBibEntriesResolverTest.class.getResource("crossref.tex").toURI()); LatexParserResult parserResult = new DefaultLatexParser().parse(texFile); - LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, importFormatPreferences, fileMonitor).resolve(parserResult); + LatexBibEntriesResolverResult crossingResult = new TexBibEntriesResolver(database, generalPreferences, importFormatPreferences, fileMonitor).resolve(parserResult); LatexBibEntriesResolverResult expectedCrossingResult = new LatexBibEntriesResolverResult(parserResult); expectedCrossingResult.addEntry(bibEntry); diff --git a/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java b/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java index b923e54675e..b93181f7562 100644 --- a/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java +++ b/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java @@ -38,7 +38,6 @@ class XmpUtilReaderTest { @BeforeEach void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - when(importFormatPreferences.getEncoding()).thenReturn(StandardCharsets.UTF_8); xmpPreferences = mock(XmpPreferences.class); // The code assumes privacy filters to be off when(xmpPreferences.shouldUseXmpPrivacyFilter()).thenReturn(false); diff --git a/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java b/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java index f52b9571c4e..7c8e52fa033 100644 --- a/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java +++ b/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java @@ -26,7 +26,7 @@ class BibDatabaseContextTest { void setUp() { fileDirPrefs = mock(FilePreferences.class); currentWorkingDir = Path.of(System.getProperty("user.dir")); - when(fileDirPrefs.shouldStoreFilesRelativeToBib()).thenReturn(true); + when(fileDirPrefs.shouldStoreFilesRelativeToBibFile()).thenReturn(true); } @Test @@ -70,7 +70,7 @@ void getFileDirectoriesWithRelativeMetadata() { BibDatabaseContext database = new BibDatabaseContext(); database.setDatabasePath(file); database.getMetaData().setDefaultFileDirectory("../Literature"); - assertEquals(Arrays.asList(currentWorkingDir.resolve(file.getParent()), Path.of("/absolute/Literature").toAbsolutePath()), + assertEquals(Arrays.asList(Path.of("/absolute/Literature").toAbsolutePath(), currentWorkingDir.resolve(file.getParent())), database.getFileDirectories(fileDirPrefs)); } @@ -81,7 +81,7 @@ void getFileDirectoriesWithMetadata() { BibDatabaseContext database = new BibDatabaseContext(); database.setDatabasePath(file); database.getMetaData().setDefaultFileDirectory("Literature"); - assertEquals(Arrays.asList(currentWorkingDir.resolve(file.getParent()), Path.of("/absolute/subdir/Literature").toAbsolutePath()), + assertEquals(Arrays.asList(Path.of("/absolute/subdir/Literature").toAbsolutePath(), currentWorkingDir.resolve(file.getParent())), database.getFileDirectories(fileDirPrefs)); } diff --git a/src/test/java/org/jabref/model/database/BibDatabaseTest.java b/src/test/java/org/jabref/model/database/BibDatabaseTest.java index 36ebf8eb5c4..875b0ad3393 100644 --- a/src/test/java/org/jabref/model/database/BibDatabaseTest.java +++ b/src/test/java/org/jabref/model/database/BibDatabaseTest.java @@ -16,6 +16,7 @@ import org.jabref.model.entry.field.UnknownField; import org.jabref.model.entry.types.StandardEntryType; import org.jabref.model.event.TestEventListener; +import org.jabref.model.metadata.MetaData; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -36,6 +37,25 @@ void setUp() { database = new BibDatabase(); } + @Test + void noEmptyEntry() { + BibEntry entry = new BibEntry(); + entry.setField(StandardField.AUTHOR, "#AAA#"); + database.insertEntry(entry); + BibDatabaseContext bibDatabaseContext = new BibDatabaseContext(database, new MetaData()); + assertEquals(false, bibDatabaseContext.hasEmptyEntries()); + } + + @Test + void withEmptyEntry() { + BibEntry entry = new BibEntry(); + database.insertEntry(entry); + BibDatabaseContext bibDatabaseContext = new BibDatabaseContext(database, new MetaData()); + assertEquals(true, bibDatabaseContext.hasEmptyEntries()); + bibDatabaseContext.getDatabase().removeEntries(Collections.singletonList(entry)); + assertEquals(Collections.emptyList(), bibDatabaseContext.getEntries()); + } + @Test void insertEntryAddsEntryToEntriesList() { BibEntry entry = new BibEntry(); diff --git a/src/test/java/org/jabref/model/entry/AuthorTest.java b/src/test/java/org/jabref/model/entry/AuthorTest.java index 046c602b1e3..8935c197a4d 100644 --- a/src/test/java/org/jabref/model/entry/AuthorTest.java +++ b/src/test/java/org/jabref/model/entry/AuthorTest.java @@ -1,6 +1,9 @@ package org.jabref.model.entry; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.NullAndEmptySource; +import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -20,23 +23,57 @@ void addDotIfAbbreviationDoesNotAddMultipleSpaces() { assertEquals("A. O.", Author.addDotIfAbbreviation("A O")); } + @ParameterizedTest + @ValueSource(strings = {"O.", "A. O.", "A.-O.", + "O. Moore", "A. O. Moore", "O. von Moore", "A.-O. Moore", + "Moore, O.", "Moore, O., Jr.", "Moore, A. O.", "Moore, A.-O.", + "MEmre", "{\\'{E}}douard", "J{\\\"o}rg", "Moore, O. and O. Moore", + "Moore, O. and O. Moore and Moore, O. O."}) + void addDotIfAbbreviationDoNotAddDot(String input) { + assertEquals(input, Author.addDotIfAbbreviation(input)); + } + + @ParameterizedTest + @NullAndEmptySource + void addDotIfAbbreviationIfNameIsNullOrEmpty(String input) { + assertEquals(input, Author.addDotIfAbbreviation(input)); + } + + @ParameterizedTest + @ValueSource(strings = {"asdf", "a"}) + void addDotIfAbbreviationLowerCaseLetters(String input) { + assertEquals(input, Author.addDotIfAbbreviation(input)); + } + @Test - void addDotIfAbbreviationDoNotAddDot() { - assertEquals("O.", Author.addDotIfAbbreviation("O.")); - assertEquals("A. O.", Author.addDotIfAbbreviation("A. O.")); - assertEquals("A.-O.", Author.addDotIfAbbreviation("A.-O.")); - assertEquals("O. Moore", Author.addDotIfAbbreviation("O. Moore")); - assertEquals("A. O. Moore", Author.addDotIfAbbreviation("A. O. Moore")); - assertEquals("O. von Moore", Author.addDotIfAbbreviation("O. von Moore")); - assertEquals("A.-O. Moore", Author.addDotIfAbbreviation("A.-O. Moore")); - assertEquals("Moore, O.", Author.addDotIfAbbreviation("Moore, O.")); - assertEquals("Moore, O., Jr.", Author.addDotIfAbbreviation("Moore, O., Jr.")); - assertEquals("Moore, A. O.", Author.addDotIfAbbreviation("Moore, A. O.")); - assertEquals("Moore, A.-O.", Author.addDotIfAbbreviation("Moore, A.-O.")); - assertEquals("MEmre", Author.addDotIfAbbreviation("MEmre")); - assertEquals("{\\'{E}}douard", Author.addDotIfAbbreviation("{\\'{E}}douard")); - assertEquals("J{\\\"o}rg", Author.addDotIfAbbreviation("J{\\\"o}rg")); - assertEquals("Moore, O. and O. Moore", Author.addDotIfAbbreviation("Moore, O. and O. Moore")); - assertEquals("Moore, O. and O. Moore and Moore, O. O.", Author.addDotIfAbbreviation("Moore, O. and O. Moore and Moore, O. O.")); + void addDotIfAbbreviationStartWithUpperCaseAndHyphen() { + assertEquals("A.-melia", Author.addDotIfAbbreviation("A-melia")); } + + @Test + void addDotIfAbbreviationEndsWithUpperCaseLetter() { + assertEquals("AmeliA", Author.addDotIfAbbreviation("AmeliA")); + } + + @Test + void addDotIfAbbreviationEndsWithUpperCaseLetterSpaced() { + assertEquals("Ameli A.", Author.addDotIfAbbreviation("Ameli A")); + } + + @Test + void addDotIfAbbreviationEndsWithWhiteSpaced() { + assertEquals("Ameli", Author.addDotIfAbbreviation("Ameli ")); + } + + @Test + void addDotIfAbbreviationEndsWithDoubleAbbreviation() { + assertEquals("Ameli A. A.", Author.addDotIfAbbreviation("Ameli AA")); + } + + @ParameterizedTest + @ValueSource(strings = {"1", "1 23"}) + void addDotIfAbbreviationIfStartsWithNumber(String input) { + assertEquals(input, Author.addDotIfAbbreviation(input)); + } + } diff --git a/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java b/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java index cbcfa455e2b..888f8836861 100644 --- a/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java +++ b/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java @@ -1,5 +1,6 @@ package org.jabref.model.entry.identifier; +import java.net.URI; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -50,6 +51,18 @@ void parseOldIdentifier() throws Exception { assertEquals(Optional.of(new ArXivIdentifier("math.GT/0309136", "math.GT")), parsed); } + @Test + public void acceptLegacyEprint() { + Optional parsed = ArXivIdentifier.parse("astro-ph.GT/1234567"); + assertEquals(Optional.of(new ArXivIdentifier("astro-ph.GT/1234567", "astro-ph.GT")), parsed); + } + + @Test + public void acceptLegacyMathEprint() { + Optional parsed = ArXivIdentifier.parse("math/1234567"); + assertEquals(Optional.of(new ArXivIdentifier("math/1234567", "math")), parsed); + } + @Test void parseOldIdentifierWithArXivPrefix() throws Exception { Optional parsed = ArXivIdentifier.parse("arXiv:math.GT/0309136"); @@ -91,4 +104,71 @@ void parseOldUrlWithVersion() throws Exception { assertEquals(Optional.of(new ArXivIdentifier("hep-ex/0307015", "1", "hep-ex")), parsed); } + + @Test + void fourDigitDateIsInvalidInLegacyFormat() throws Exception { + Optional parsed = ArXivIdentifier.parse("2017/1118"); + assertEquals(Optional.empty(), parsed); + } + + @Test + public void acceptPlainEprint() { + Optional parsed = ArXivIdentifier.parse("0706.0001"); + assertEquals(Optional.of(new ArXivIdentifier("0706.0001")), parsed); + } + + @Test + public void acceptPlainEprintWithVersion() { + Optional parsed = ArXivIdentifier.parse("0706.0001v1"); + assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); + } + + @Test + public void acceptArxivPrefix() { + Optional parsed = ArXivIdentifier.parse("arXiv:0706.0001v1"); + assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); + } + + @Test + public void ignoreLeadingAndTrailingWhitespaces() { + Optional parsed = ArXivIdentifier.parse(" 0706.0001v1 "); + assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); + } + + @Test + public void rejectEmbeddedEprint() { + Optional parsed = ArXivIdentifier.parse("other stuff 0706.0001v1 end"); + assertEquals(Optional.empty(), parsed); + } + + @Test + public void rejectInvalidEprint() { + Optional parsed = ArXivIdentifier.parse("https://thisisnouri"); + assertEquals(Optional.empty(), parsed); + } + + @Test + public void acceptUrlHttpEprint() { + Optional parsed = ArXivIdentifier.parse("http://arxiv.org/abs/0706.0001v1"); + assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); + } + + @Test + public void acceptUrlHttpsEprint() { + Optional parsed = ArXivIdentifier.parse("https://arxiv.org/abs/0706.0001v1"); + assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "v1", "")), parsed); + } + + @Test + public void rejectUrlOtherDomainEprint() { + Optional parsed = ArXivIdentifier.parse("https://asdf.org/abs/0706.0001v1"); + assertEquals(Optional.empty(), parsed); + } + + @Test + public void constructCorrectURLForEprint() throws Exception { + Optional parsed = ArXivIdentifier.parse("0706.0001v1"); + assertEquals(Optional.of(new URI("https://arxiv.org/abs/0706.0001v1")), parsed.get().getExternalURI()); + } + } diff --git a/src/test/java/org/jabref/model/entry/identifier/DOITest.java b/src/test/java/org/jabref/model/entry/identifier/DOITest.java index b1f9e4e5762..b08e8470d50 100644 --- a/src/test/java/org/jabref/model/entry/identifier/DOITest.java +++ b/src/test/java/org/jabref/model/entry/identifier/DOITest.java @@ -118,6 +118,13 @@ private static Stream testData() { Arguments.of("https://doi.org/10.1109/VLHCC.2004.20", DOI.parse("https : / / doi.org / 10 .1109 /V LHCC.20 04.20").get().getURIAsASCIIString()), // parse short DOI with whitespace Arguments.of("https://doi.org/10/gf4gqc", DOI.parse("https : / / doi.org / 10 / gf4gqc").get().getURIAsASCIIString()), + // parse DOI with non-ASCII characters and whitespace + Arguments.of("https://doi.org/10/gf4gqc", DOI.parse("�https : \n ␛ / / doi.org / \t 10 / \r gf4gqc�␛").get().getURIAsASCIIString()), + Arguments.of("10/gf4gqc", DOI.parse("�https : \n ␛ / / doi.org / \t 10 / \r gf4gqc�␛").get().getDOI()), + Arguments.of("10/gf4gqc", DOI.parse(" 10 / gf4gqc ").get().getDOI()), + Arguments.of("10.3218/3846-0", DOI.parse(" �10.3218\n/384␛6-0�").get().getDOI()), + // parse already-cleaned DOI + Arguments.of("10.3218/3846-0", DOI.parse("10.3218/3846-0").get().getDOI()), // correctlyEncodeDOIs // See http://www.doi.org/doi_handbook/2_Numbering.html#2.5.2.4 diff --git a/src/test/java/org/jabref/model/entry/identifier/EprintTest.java b/src/test/java/org/jabref/model/entry/identifier/EprintTest.java deleted file mode 100644 index 3ada9792566..00000000000 --- a/src/test/java/org/jabref/model/entry/identifier/EprintTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.jabref.model.entry.identifier; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -public class EprintTest { - - @Test - public void acceptPlainEprint() { - assertEquals("0706.0001", new Eprint("0706.0001").getEprint()); - } - - @Test - public void acceptLegacyEprint() { - assertEquals("astro-ph.GT/1234567", new Eprint("astro-ph.GT/1234567").getEprint()); - assertEquals("math/1234567", new Eprint("math/1234567").getEprint()); - } - - @Test - public void acceptPlainEprintWithVersion() { - assertEquals("0706.0001v1", new Eprint("0706.0001v1").getEprint()); - } - - @Test - public void ignoreLeadingAndTrailingWhitespaces() { - assertEquals("0706.0001v1", new Eprint(" 0706.0001v1 ").getEprint()); - } - - @Test - public void rejectEmbeddedEprint() { - assertThrows(IllegalArgumentException.class, () -> new Eprint("other stuff 0706.0001v1 end")); - } - - @Test - public void rejectInvalidEprint() { - assertThrows(IllegalArgumentException.class, () -> new Eprint("https://thisisnouri")); - } - - @Test - public void acceptArxivPrefix() { - assertEquals("0706.0001v1", new Eprint("arXiv:0706.0001v1").getEprint()); - } - - @Test - public void acceptURLEprint() { - // http - assertEquals("0706.0001v1", new Eprint("http://arxiv.org/abs/0706.0001v1").getEprint()); - // https - assertEquals("0706.0001v1", new Eprint("https://arxiv.org/abs/0706.0001v1").getEprint()); - // other domains - assertEquals("0706.0001v1", new Eprint("https://asdf.org/abs/0706.0001v1").getEprint()); - } - - @Test - public void constructCorrectURLForEprint() { - assertEquals("https://arxiv.org/abs/0706.0001v1", new Eprint("0706.0001v1").getURIAsASCIIString()); - } -} diff --git a/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java b/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java new file mode 100644 index 00000000000..ff0e55d67c2 --- /dev/null +++ b/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java @@ -0,0 +1,60 @@ +package org.jabref.model.entry.identifier; + +import java.util.stream.Stream; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class IacrEprintTest { + + private static Stream provideTestData() { + return Stream.of( + Arguments.arguments( + "acceptPlainIacrEprint", + "2019/001" + ), + Arguments.arguments( + "ignoreLeadingAndTrailingWhitespaces", + " 2019/001 " + ), + Arguments.arguments( + "acceptFullUrlIacrEprint", + "https://eprint.iacr.org/2019/001" + ), + Arguments.arguments( + "acceptShortenedUrlIacrEprint", + "https://ia.cr/2019/001" + ), + Arguments.arguments( + "acceptDomainUrlIacrEprint", + "eprint.iacr.org/2019/001" + ), + Arguments.arguments( + "acceptShortenedDomainUrlIacrEprint", + "ia.cr/2019/001" + ) + ); + } + + @Test + public void rejectInvalidIacrEprint() { + assertThrows(IllegalArgumentException.class, () -> new IacrEprint("2021/12")); + } + + @ParameterizedTest(name = "{index} {0}") + @MethodSource("provideTestData") + public void acceptCorrectIacrEprintIdentifier(String name, String identifier) { + assertEquals("2019/001", new IacrEprint(identifier).getNormalized()); + } + + @Test + public void constructValidIacrEprintUrl() { + assertEquals("https://ia.cr/2019/001", new IacrEprint("2019/001").getAsciiUrl()); + } + +} diff --git a/src/test/java/org/jabref/model/groups/SearchGroupTest.java b/src/test/java/org/jabref/model/groups/SearchGroupTest.java index c5b2f6a68da..5bdec41d87e 100644 --- a/src/test/java/org/jabref/model/groups/SearchGroupTest.java +++ b/src/test/java/org/jabref/model/groups/SearchGroupTest.java @@ -3,6 +3,7 @@ import java.util.EnumSet; import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.field.StandardField; import org.jabref.model.search.rules.SearchRules; import org.junit.jupiter.api.Test; @@ -29,4 +30,24 @@ public void containsDoesNotFindsWordWithInvalidRegularExpression() { assertFalse(group.contains(entry)); } + + @Test + public void notQueryWorksWithLeftPartOfQuery() { + SearchGroup groupToBeClassified = new SearchGroup("to-be-classified", GroupHierarchyType.INDEPENDENT, "NOT(groups=alpha) AND NOT(groups=beta)", EnumSet.noneOf(SearchRules.SearchFlags.class)); + + BibEntry alphaEntry = new BibEntry() + .withCitationKey("alpha") + .withField(StandardField.GROUPS, "alpha"); + assertFalse(groupToBeClassified.contains(alphaEntry)); + } + + @Test + public void notQueryWorksWithLRightPartOfQuery() { + SearchGroup groupToBeClassified = new SearchGroup("to-be-classified", GroupHierarchyType.INDEPENDENT, "NOT(groups=alpha) AND NOT(groups=beta)", EnumSet.noneOf(SearchRules.SearchFlags.class)); + + BibEntry betaEntry = new BibEntry() + .withCitationKey("beta") + .withField(StandardField.GROUPS, "beta"); + assertFalse(groupToBeClassified.contains(betaEntry)); + } } diff --git a/src/test/java/org/jabref/preferences/FilePreferenceTest.java b/src/test/java/org/jabref/preferences/FilePreferenceTest.java deleted file mode 100644 index d97efe91c86..00000000000 --- a/src/test/java/org/jabref/preferences/FilePreferenceTest.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.jabref.preferences; - -import java.nio.file.Path; -import java.util.Optional; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class FilePreferenceTest { - - private FilePreferences filePreferences; - private final String testUser = "test"; - private final String testMainFileDirectory = "test"; - private final boolean shouldStoreFilesRelativeToBibFile = false; - private final String testFileNamePattern = "test"; - private final String testFileDirPattern = "test"; - private final boolean shouldDownloadLinkedFiles = false; - private final boolean shouldSearchFilesOnOpen = false; - private final boolean shouldOpenBrowseOnCreate = false; - - @BeforeEach - public void setup() { - filePreferences = new FilePreferences(testUser, testMainFileDirectory, shouldStoreFilesRelativeToBibFile, - testFileNamePattern, testFileDirPattern, shouldDownloadLinkedFiles, shouldSearchFilesOnOpen, - shouldOpenBrowseOnCreate); - } - - @Test - public void getUserTest() { - assertEquals(testUser, filePreferences.getUser()); - } - - @Test - public void getFileDirectoryNonEmptyTest() { - assertEquals(Optional.of(Path.of(testMainFileDirectory)), filePreferences.getFileDirectory()); - } - - @Test - public void getFileDirectoryEmptyTest() { - filePreferences = new FilePreferences(testUser, "", shouldStoreFilesRelativeToBibFile, - testFileNamePattern, testFileDirPattern, shouldDownloadLinkedFiles, shouldSearchFilesOnOpen, - shouldOpenBrowseOnCreate); - - assertEquals(Optional.empty(), filePreferences.getFileDirectory()); - } - - @Test - public void shouldStoreFilesRelativeToBibTest() { - assertEquals(shouldStoreFilesRelativeToBibFile, filePreferences.shouldStoreFilesRelativeToBib()); - } - - @Test - public void getFileNamePatternTest() { - assertEquals(testFileNamePattern, filePreferences.getFileNamePattern()); - } - - @Test - public void getFileDirectoryPatternTest() { - assertEquals(testFileDirPattern, filePreferences.getFileDirectoryPattern()); - } - - @Test - public void shouldDownloadLinkedFilesTest() { - assertEquals(shouldDownloadLinkedFiles, filePreferences.shouldDownloadLinkedFiles()); - } - - @ParameterizedTest - @ValueSource(booleans = {true, false}) - public void withShouldDownloadLinkedFilesTest(boolean newShouldDownloadLinkedFiles) { - FilePreferences expected = new FilePreferences(testUser, testMainFileDirectory, shouldStoreFilesRelativeToBibFile, - testFileNamePattern, testFileDirPattern, newShouldDownloadLinkedFiles, shouldSearchFilesOnOpen, - shouldOpenBrowseOnCreate); - - assertEquals(expected.shouldDownloadLinkedFiles(), - filePreferences.withShouldDownloadLinkedFiles(newShouldDownloadLinkedFiles).shouldDownloadLinkedFiles()); - } - - @Test - public void shouldSearchFilesOnOpenTest() { - assertEquals(shouldSearchFilesOnOpen, filePreferences.shouldSearchFilesOnOpen()); - } - - @Test - public void shouldOpenBrowseOnCreateTest() { - assertEquals(shouldOpenBrowseOnCreate, filePreferences.shouldOpenBrowseOnCreate()); - } -} diff --git a/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib b/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib new file mode 100644 index 00000000000..4de2f5a489d --- /dev/null +++ b/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib @@ -0,0 +1,13 @@ +@Article{, + address = {New York, NY, USA}, + author = {Tony Clear}, + doi = {http://doi.acm.org/10.1145/820127.820136}, + issn = {0097-8418}, + journal = {SIGCSE Bull.}, + number = {4}, + pages = {13--14}, + publisher = {ACM}, + title = {Design and usability in security systems: daily life as a context of use?}, + volume = {34}, + year = {2002}, +} diff --git a/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml b/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml new file mode 100644 index 00000000000..9695f3bdea2 --- /dev/null +++ b/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml @@ -0,0 +1,806 @@ + + + + + + + + + + + + + + + + Type + + + Citationkey + + + Abstract + + + Addendum + + + Address + + + Afterword + + + Annote + + + Annotation + + + Annotator + + + Archiveprefix + + + Assignee + + + Author + + + Bookauthor + + + Bookpagination + + + Booksubtitle + + + Booktitle + + + Booktitleaddon + + + Chapter + + + Commentator + + + Comment + + + Crossref + + + Date + + + Day + + + Dayfiled + + + DOI + + + Edition + + + Editor + + + Editora + + + Editorb + + + Editorc + + + Editortype + + + Editoratype + + + Editorbtype + + + Editorctype + + + Eid + + + Entryset + + + Eprint + + + Eprintclass + + + Eprinttype + + + Eventdate + + + Eventtitle + + + Eventtitleaddon + + + File + + + Foreword + + + Folder + + + Gender + + + Hal_id + + + Hal_version + + + Holder + + + Howpublished + + + Ids + + + Institution + + + Introduction + + + Introducedin + + + ISBN + + + ISRN + + + ISSN + + + Issue + + + Issuetitle + + + Issuesubtitle + + + Journal + + + Journalsubtitle + + + Journaltitle + + + Key + + + Keywords + + + Language + + + Label + + + Library + + + License + + + Location + + + Mainsubtitle + + + Maintitle + + + Maintitleaddon + + + Month + + + Monthfiled + + + Nameaddon + + + Nationality + + + Note + + + Number + + + Organization + + + Origdate + + + Origlanguage + + + Pages + + + Pagetotal + + + Pagination + + + Part + + + PDF + + + PMID + + + PS + + + Publisher + + + Pubstate + + + Primaryclass + + + Related + + + Relatedtype + + + Relatedstring + + + Reportno + + + Repository + + + Review + + + Revision + + + School + + + Series + + + Shortauthor + + + Shorteditor + + + Shorttitle + + + Sortkey + + + Sortname + + + Subtitle + + + Swhid + + + Title + + + Titleaddon + + + Translator + + + Type + + + URI + + + URL + + + Urldate + + + Venue + + + Version + + + Volume + + + Volumes + + + Year + + + Yearfiled + + + Mrnumber + + + Zbl + + + Xdata + + + Xref + + + Groups + + + Owner + + + Timestamp + + + Creationdate + + + Modificationdate + + + Reporttype + + + + + 7 + + + + + + + + + + + + New York, NY, USA + + + + + + + + + + + + + + + + + + + + + Tony Clear + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://doi.acm.org/10.1145/820127.820136 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0097-8418 + + + + + + + + + + + + SIGCSE Bull. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + 13--14 + + + + + + + + + + + + + + + + + + + + + ACM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Design and usability in security systems: daily life as a context of use? + + + + + + + + + + + + + + + + + + + + + + + + + + + 34 + + + + + + 2002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/resources/testbib/articleWithMonths.bib b/src/test/resources/testbib/articleWithMonths.bib index 6898d754ade..0664116e9c9 100644 --- a/src/test/resources/testbib/articleWithMonths.bib +++ b/src/test/resources/testbib/articleWithMonths.bib @@ -1,4 +1,3 @@ -% Encoding: UTF-8 @Article{constant, month = apr } diff --git a/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib b/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib index 326c45842a3..17933272edd 100644 --- a/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib +++ b/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib @@ -1,5 +1,3 @@ -% Encoding: UTF-8 - @Preamble{preamble} @String{firstString = {my first string}} diff --git a/src/test/resources/testbib/bibWithUserComments.bib b/src/test/resources/testbib/bibWithUserComments.bib index 90685b10eac..fbe2d05c7b4 100644 --- a/src/test/resources/testbib/bibWithUserComments.bib +++ b/src/test/resources/testbib/bibWithUserComments.bib @@ -1,5 +1,3 @@ -% Encoding: UTF-8 - @Preamble{preamble} @String{firstString = {my first string}} diff --git a/src/test/resources/testbib/complex.bib b/src/test/resources/testbib/complex.bib index a46342912bf..8fb2ba87f74 100644 --- a/src/test/resources/testbib/complex.bib +++ b/src/test/resources/testbib/complex.bib @@ -1,5 +1,3 @@ -% Encoding: UTF-8 - @Preamble{preamble} This is some arbitrary user comment that should be preserved diff --git a/src/test/resources/testbib/unknownMetaData.bib b/src/test/resources/testbib/unknownMetaData.bib index d32a1b9a382..69ed04d5466 100644 --- a/src/test/resources/testbib/unknownMetaData.bib +++ b/src/test/resources/testbib/unknownMetaData.bib @@ -1,5 +1,3 @@ -% Encoding: UTF-8 - @Article{author2017title, author = {Author}, title = {Title},