diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 008a459e..3283b887 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,6 +31,7 @@ jobs: cargo install mdbook --no-default-features --features search --vers "^0.4" --locked cargo install mdbook-variables --vers "^0.2" --locked cargo install mdbook-admonish --vers "^1" --locked + cargo install mdbook-i18n-helpers --locked export PATH="$PATH:$HOME/.cargo/bin" mdbook --version diff --git a/.gitignore b/.gitignore index 0b302eea..728f0098 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,13 @@ metals.sbt .vscode +# GetText +*.pot +*.po~ +*.mo +po/ja.po +po/zh-cn.po + # Dependencies node_modules diff --git a/DEVELOPING.md b/DEVELOPING.md index 4844605b..72c0b193 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -1,3 +1,35 @@ +Globalization +------------- + +To add a new locale (es, zh-cn, etc): + +```bash +script/genpo.sh xx +``` + +To resync the po files to the original: + +```bash +script/sync.sh xx +``` + +To serve the po files, run the following: + +```bash +script/serve.sh xx +``` + +then run: + +```bash +script/concat.sh xx +``` + +when you change a `*.po` file + +Diataxis +-------- + The following is the [four kinds of documentation](https://www.writethedocs.org/videos/eu/2017/the-four-kinds-of-documentation-and-why-you-need-to-understand-what-they-are-daniele-procida/) structure, which I'm not really sure would work, but worth giving it some try. ### tutorial diff --git a/book.toml b/book.toml index e1fb3199..49c8aab4 100644 --- a/book.toml +++ b/book.toml @@ -7,7 +7,7 @@ title = "The Book of sbt" [output.html] theme = "theme" -additional-css = ["src/reference/custom-202409.css", "src/reference/mdbook-admonish.css"] +additional-css = ["src/reference/custom-202410.css", "src/reference/mdbook-admonish.css"] cname = "www.scala-sbt.org" [preprocessor.variables] @@ -21,3 +21,9 @@ scala2_13_example_version = "2.13.15" [preprocessor.admonish] command = "mdbook-admonish" assets_version = "3.0.2" # do not edit: managed by `mdbook-admonish install` + +[preprocessor.gettext] +after = ["links"] + +[build] +extra-watch-dirs = ["po"] diff --git a/build.sbt b/build.sbt index d646f796..55561b3a 100644 --- a/build.sbt +++ b/build.sbt @@ -17,7 +17,7 @@ lazy val root = (project in file(".")) name := "website", siteEmail := "eed3si9n" + "@gmail.com", // Reference - MdBook / siteSubdirName := s"""$targetSbtBinaryVersion/docs/en""", + MdBook / siteSubdirName := s"""$targetSbtBinaryVersion/docs/""", tutorialSubDirName := s"""$targetSbtBinaryVersion/tutorial""", landingSubDirName := "", // Redirects diff --git a/po/summary/appendix-glossary.ja.po b/po/summary/appendix-glossary.ja.po new file mode 100644 index 00000000..5b6f1932 --- /dev/null +++ b/po/summary/appendix-glossary.ja.po @@ -0,0 +1,135 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/appendix/glossary.md:20 +msgid "Glossary" +msgstr "" + +#: src/reference/appendix/glossary.md:23 +msgid "Symbols" +msgstr "" + +#: src/reference/appendix/glossary.md:26 +msgid "`:=`, `+=`, `++=`" +msgstr "" + +#: src/reference/appendix/glossary.md:28 +msgid "" +"These construct a [Setting](../../../../1.x/api/sbt/internal/util/" +"Init$Setting.html), which is the fundamental type in the [settings](../guide/" +"build-definition-basics.md) system." +msgstr "" + +#: src/reference/appendix/glossary.md:30 +msgid "`%`" +msgstr "" + +#: src/reference/appendix/glossary.md:32 +msgid "" +"This is used to build up a [ModuleID](../../../../1.x/api/sbt/" +"librarymanagement/ModuleID.html)." +msgstr "" + +#: src/reference/appendix/glossary.md:34 +msgid "`%%`" +msgstr "" + +#: src/reference/appendix/glossary.md:36 +msgid "" +"This is similar to `%` except that it identifies a dependency that has been " +"[cross built](../concepts/cross-building.html)." +msgstr "" + +#: src/reference/appendix/glossary.md:38 +msgid "`%%%`" +msgstr "" + +#: src/reference/appendix/glossary.md:40 +msgid "" +"This is defined in [sbt-platform-deps](https://github.com/portable-scala/sbt-" +"platform-deps) in sbt 1.x." +msgstr "" + +#: src/reference/appendix/glossary.md:42 +msgid "C" +msgstr "" + +#: src/reference/appendix/glossary.md:45 +msgid "Command" +msgstr "" + +#: src/reference/appendix/glossary.md:47 +msgid "" +"A system-level building block of sbt, often used to capture user interaction " +"or IDE interaction. See [Command](../concepts/command.html)." +msgstr "" + +#: src/reference/appendix/glossary.md:49 +msgid "Cross building" +msgstr "" + +#: src/reference/appendix/glossary.md:51 +msgid "" +"The idea of building multiple targets from the same set of source file. This " +"includes Scala cross building, targetting multiple versions of Scala " +"releases; platform cross building, targetting JVM, Scala.JS, and Scala " +"Native; and custom virtual axis like Spark versions." +msgstr "" + +#: src/reference/appendix/glossary.md:53 +msgid "D" +msgstr "" + +#: src/reference/appendix/glossary.md:56 +msgid "Dependency resolution" +msgstr "" + +#: src/reference/appendix/glossary.md:58 +msgid "" +"During library management, when multiple version candidates (e.g. " +"`foo:2.2.0` and `foo:3.0.0`) are found for a library `foo` within a " +"dependency graph, it is called a _dependency conflict_. The process of " +"mediating the conflict into a single version is called _dependency " +"resolution_. Often, this would result in the older version beging removed " +"from the dependency graph, which is called an _eviction_ of `foo:2.2.0`. In " +"some cases, an eviction is considered unsafe because the candidates are not " +"replacable. See [sbt update](../reference/sbt-update.md)." +msgstr "" + +#: src/reference/appendix/glossary.md:60 +msgid "E" +msgstr "" + +#: src/reference/appendix/glossary.md:63 +msgid "Eviction" +msgstr "" + +#: src/reference/appendix/glossary.md:65 +msgid "See [dependency resolution](#dependency-resolution)." +msgstr "" + +#: src/reference/appendix/glossary.md:67 +msgid "V" +msgstr "" + +#: src/reference/appendix/glossary.md:70 +msgid "`value`" +msgstr "" + +#: src/reference/appendix/glossary.md:72 +msgid "" +"`.value` is used to denote a happens-before relationship from one task or " +"setting to another. This method is special (it is a macro) and cannot be " +"used except in `:=` or in the standalone construction methods `Def.setting` " +"and `Def.task`." +msgstr "" diff --git a/po/summary/appendix-glossary.zh-cn.po b/po/summary/appendix-glossary.zh-cn.po new file mode 100644 index 00000000..151d0a24 --- /dev/null +++ b/po/summary/appendix-glossary.zh-cn.po @@ -0,0 +1,135 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/appendix/glossary.md:20 +msgid "Glossary" +msgstr "" + +#: src/reference/appendix/glossary.md:23 +msgid "Symbols" +msgstr "" + +#: src/reference/appendix/glossary.md:26 +msgid "`:=`, `+=`, `++=`" +msgstr "" + +#: src/reference/appendix/glossary.md:28 +msgid "" +"These construct a [Setting](../../../../1.x/api/sbt/internal/util/" +"Init$Setting.html), which is the fundamental type in the [settings](../guide/" +"build-definition-basics.md) system." +msgstr "" + +#: src/reference/appendix/glossary.md:30 +msgid "`%`" +msgstr "" + +#: src/reference/appendix/glossary.md:32 +msgid "" +"This is used to build up a [ModuleID](../../../../1.x/api/sbt/" +"librarymanagement/ModuleID.html)." +msgstr "" + +#: src/reference/appendix/glossary.md:34 +msgid "`%%`" +msgstr "" + +#: src/reference/appendix/glossary.md:36 +msgid "" +"This is similar to `%` except that it identifies a dependency that has been " +"[cross built](../concepts/cross-building.html)." +msgstr "" + +#: src/reference/appendix/glossary.md:38 +msgid "`%%%`" +msgstr "" + +#: src/reference/appendix/glossary.md:40 +msgid "" +"This is defined in [sbt-platform-deps](https://github.com/portable-scala/sbt-" +"platform-deps) in sbt 1.x." +msgstr "" + +#: src/reference/appendix/glossary.md:42 +msgid "C" +msgstr "" + +#: src/reference/appendix/glossary.md:45 +msgid "Command" +msgstr "" + +#: src/reference/appendix/glossary.md:47 +msgid "" +"A system-level building block of sbt, often used to capture user interaction " +"or IDE interaction. See [Command](../concepts/command.html)." +msgstr "" + +#: src/reference/appendix/glossary.md:49 +msgid "Cross building" +msgstr "" + +#: src/reference/appendix/glossary.md:51 +msgid "" +"The idea of building multiple targets from the same set of source file. This " +"includes Scala cross building, targetting multiple versions of Scala " +"releases; platform cross building, targetting JVM, Scala.JS, and Scala " +"Native; and custom virtual axis like Spark versions." +msgstr "" + +#: src/reference/appendix/glossary.md:53 +msgid "D" +msgstr "" + +#: src/reference/appendix/glossary.md:56 +msgid "Dependency resolution" +msgstr "" + +#: src/reference/appendix/glossary.md:58 +msgid "" +"During library management, when multiple version candidates (e.g. " +"`foo:2.2.0` and `foo:3.0.0`) are found for a library `foo` within a " +"dependency graph, it is called a _dependency conflict_. The process of " +"mediating the conflict into a single version is called _dependency " +"resolution_. Often, this would result in the older version beging removed " +"from the dependency graph, which is called an _eviction_ of `foo:2.2.0`. In " +"some cases, an eviction is considered unsafe because the candidates are not " +"replacable. See [sbt update](../reference/sbt-update.md)." +msgstr "" + +#: src/reference/appendix/glossary.md:60 +msgid "E" +msgstr "" + +#: src/reference/appendix/glossary.md:63 +msgid "Eviction" +msgstr "" + +#: src/reference/appendix/glossary.md:65 +msgid "See [dependency resolution](#dependency-resolution)." +msgstr "" + +#: src/reference/appendix/glossary.md:67 +msgid "V" +msgstr "" + +#: src/reference/appendix/glossary.md:70 +msgid "`value`" +msgstr "" + +#: src/reference/appendix/glossary.md:72 +msgid "" +"`.value` is used to denote a happens-before relationship from one task or " +"setting to another. This method is special (it is a macro) and cannot be " +"used except in `:=` or in the standalone construction methods `Def.setting` " +"and `Def.task`." +msgstr "" diff --git a/po/summary/appendix-setup-notes.ja.po b/po/summary/appendix-setup-notes.ja.po new file mode 100644 index 00000000..5083bad6 --- /dev/null +++ b/po/summary/appendix-setup-notes.ja.po @@ -0,0 +1,174 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/appendix/setup-notes.md:1 +msgid "Setup Notes" +msgstr "" + +#: src/reference/appendix/setup-notes.md:4 +msgid "" +"See [Installing sbt runner](Setup.md) for the instruction on general setup. " +"Using Coursier or SDKMAN has two advantages." +msgstr "" + +#: src/reference/appendix/setup-notes.md:6 +msgid "" +"They will install the official packaging by Eclipse Adoptium etc, as opposed " +"to the [\"mystery meat OpenJDK builds\"](https://mail.openjdk.java.net/" +"pipermail/jdk8u-dev/2019-May/009330.html)." +msgstr "" + +#: src/reference/appendix/setup-notes.md:7 +msgid "" +"They will install `tgz` packaging of sbt that contains all JAR files. (DEB " +"and RPM packages do not to save bandwidth)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:9 +msgid "" +"This page describes alternative ways of installing the sbt runner. Note that " +"some of the third-party packages may not provide the latest version." +msgstr "" + +#: src/reference/appendix/setup-notes.md:11 +msgid "OS specific setup" +msgstr "" + +#: src/reference/appendix/setup-notes.md:14 +msgid "macOS" +msgstr "" + +#: src/reference/appendix/setup-notes.md:16 +msgid "Homebrew" +msgstr "" + +#: src/reference/appendix/setup-notes.md:22 +msgid "" +"```admonish warning\n" +"Homebrew maintainers have added a dependency to JDK 13 because they want to " +"use more brew dependencies ([brew#50649](https://github.com/Homebrew/" +"homebrew-core/issues/50649)). This causes sbt to use JDK 13 even when `java` " +"available on PATH is JDK 8 or 11. To prevent `sbt` from running on JDK 13, " +"install [jEnv](https://www.jenv.be/) or switch to using [SDKMAN](https://" +"sdkman.io/).\n" +"```" +msgstr "" + +#: src/reference/appendix/setup-notes.md:26 +msgid "Windows" +msgstr "" + +#: src/reference/appendix/setup-notes.md:28 +msgid "[sbt-.msi](https://github.com/sbt/sbt/releases/download/v/sbt-.msi)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:30 +msgid "[Chocolatey](https://chocolatey.org/packages/sbt)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:36 +msgid "[Scoop](https://scoop.sh/)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:42 +msgid "Linux" +msgstr "" + +#: src/reference/appendix/setup-notes.md:44 +msgid "Ubuntu and other Debian-based distributions" +msgstr "" + +#: src/reference/appendix/setup-notes.md:46 +msgid "" +"[DEB]($sbt_deb_package_base$sbt-$app_version$.deb) package is officially " +"supported by sbt, but it does not contain JAR files to save bandwidth." +msgstr "" + +#: src/reference/appendix/setup-notes.md:48 +msgid "" +"Ubuntu and other Debian-based distributions use the DEB format, but usually " +"you don't install your software from a local DEB file. Instead they come " +"with package managers both for the command line (e.g. `apt-get`, `aptitude`) " +"or with a graphical user interface (e.g. Synaptic). Run the following from " +"the terminal to install `sbt` (You'll need superuser privileges to do so, " +"hence the `sudo`)." +msgstr "" + +#: src/reference/appendix/setup-notes.md:54 +msgid "\"deb https://repo.scala-sbt.org/scalasbt/debian all main\"" +msgstr "" + +#: src/reference/appendix/setup-notes.md:55 +msgid "\"deb https://repo.scala-sbt.org/scalasbt/debian /\"" +msgstr "" + +#: src/reference/appendix/setup-notes.md:56 +msgid "" +"\"https://keyserver.ubuntu.com/pks/lookup?" +"op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823\"" +msgstr "" + +#: src/reference/appendix/setup-notes.md:62 +msgid "" +"Package managers will check a number of configured repositories for packages " +"to offer for installation. You just have to add the repository to the places " +"your package manager will check." +msgstr "" + +#: src/reference/appendix/setup-notes.md:64 +msgid "" +"Once `sbt` is installed, you'll be able to manage the package in `aptitude` " +"or Synaptic after you updated their package cache. You should also be able " +"to see the added repository at the bottom of the list in System Settings -> " +"Software & Updates -> Other Software:" +msgstr "" + +#: src/reference/appendix/setup-notes.md:66 +msgid "" +"![Ubuntu Software & Updates Screenshot](/files/ubuntu-sources.png \"Ubuntu " +"Software & Updates Screenshot\")" +msgstr "" + +#: src/reference/appendix/setup-notes.md:68 +msgid "" +"`sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv " +"2EE0EA64E40A89B84B2DF73499E82A75642AC823` may not work on Ubuntu Bionic LTS " +"(18.04) since it's using a buggy GnuPG, so we are advising to use web API to " +"download the public key in the above." +msgstr "" + +#: src/reference/appendix/setup-notes.md:70 +msgid "Red Hat Enterprise Linux and other RPM-based distributions" +msgstr "" + +#: src/reference/appendix/setup-notes.md:72 +msgid "" +"[RPM]($sbt_rpm_package_base$sbt-$app_version$.rpm) package is officially " +"supported by sbt, but it does not contain JAR files to save bandwidth." +msgstr "" + +#: src/reference/appendix/setup-notes.md:74 +msgid "" +"Red Hat Enterprise Linux and other RPM-based distributions use the RPM " +"format. Run the following from the terminal to install `sbt` (You'll need " +"superuser privileges to do so, hence the `sudo`)." +msgstr "" + +#: src/reference/appendix/setup-notes.md:78 +#: src/reference/appendix/setup-notes.md:88 +msgid "# remove old Bintray repo file\n" +msgstr "" + +#: src/reference/appendix/setup-notes.md:85 +msgid "On Fedora (31 and above), use `sbt-rpm.repo`:" +msgstr "" diff --git a/po/summary/appendix-setup-notes.zh-cn.po b/po/summary/appendix-setup-notes.zh-cn.po new file mode 100644 index 00000000..37573775 --- /dev/null +++ b/po/summary/appendix-setup-notes.zh-cn.po @@ -0,0 +1,174 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/appendix/setup-notes.md:1 +msgid "Setup Notes" +msgstr "" + +#: src/reference/appendix/setup-notes.md:4 +msgid "" +"See [Installing sbt runner](Setup.md) for the instruction on general setup. " +"Using Coursier or SDKMAN has two advantages." +msgstr "" + +#: src/reference/appendix/setup-notes.md:6 +msgid "" +"They will install the official packaging by Eclipse Adoptium etc, as opposed " +"to the [\"mystery meat OpenJDK builds\"](https://mail.openjdk.java.net/" +"pipermail/jdk8u-dev/2019-May/009330.html)." +msgstr "" + +#: src/reference/appendix/setup-notes.md:7 +msgid "" +"They will install `tgz` packaging of sbt that contains all JAR files. (DEB " +"and RPM packages do not to save bandwidth)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:9 +msgid "" +"This page describes alternative ways of installing the sbt runner. Note that " +"some of the third-party packages may not provide the latest version." +msgstr "" + +#: src/reference/appendix/setup-notes.md:11 +msgid "OS specific setup" +msgstr "" + +#: src/reference/appendix/setup-notes.md:14 +msgid "macOS" +msgstr "" + +#: src/reference/appendix/setup-notes.md:16 +msgid "Homebrew" +msgstr "" + +#: src/reference/appendix/setup-notes.md:22 +msgid "" +"```admonish warning\n" +"Homebrew maintainers have added a dependency to JDK 13 because they want to " +"use more brew dependencies ([brew#50649](https://github.com/Homebrew/" +"homebrew-core/issues/50649)). This causes sbt to use JDK 13 even when `java` " +"available on PATH is JDK 8 or 11. To prevent `sbt` from running on JDK 13, " +"install [jEnv](https://www.jenv.be/) or switch to using [SDKMAN](https://" +"sdkman.io/).\n" +"```" +msgstr "" + +#: src/reference/appendix/setup-notes.md:26 +msgid "Windows" +msgstr "" + +#: src/reference/appendix/setup-notes.md:28 +msgid "[sbt-.msi](https://github.com/sbt/sbt/releases/download/v/sbt-.msi)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:30 +msgid "[Chocolatey](https://chocolatey.org/packages/sbt)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:36 +msgid "[Scoop](https://scoop.sh/)" +msgstr "" + +#: src/reference/appendix/setup-notes.md:42 +msgid "Linux" +msgstr "" + +#: src/reference/appendix/setup-notes.md:44 +msgid "Ubuntu and other Debian-based distributions" +msgstr "" + +#: src/reference/appendix/setup-notes.md:46 +msgid "" +"[DEB]($sbt_deb_package_base$sbt-$app_version$.deb) package is officially " +"supported by sbt, but it does not contain JAR files to save bandwidth." +msgstr "" + +#: src/reference/appendix/setup-notes.md:48 +msgid "" +"Ubuntu and other Debian-based distributions use the DEB format, but usually " +"you don't install your software from a local DEB file. Instead they come " +"with package managers both for the command line (e.g. `apt-get`, `aptitude`) " +"or with a graphical user interface (e.g. Synaptic). Run the following from " +"the terminal to install `sbt` (You'll need superuser privileges to do so, " +"hence the `sudo`)." +msgstr "" + +#: src/reference/appendix/setup-notes.md:54 +msgid "\"deb https://repo.scala-sbt.org/scalasbt/debian all main\"" +msgstr "" + +#: src/reference/appendix/setup-notes.md:55 +msgid "\"deb https://repo.scala-sbt.org/scalasbt/debian /\"" +msgstr "" + +#: src/reference/appendix/setup-notes.md:56 +msgid "" +"\"https://keyserver.ubuntu.com/pks/lookup?" +"op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823\"" +msgstr "" + +#: src/reference/appendix/setup-notes.md:62 +msgid "" +"Package managers will check a number of configured repositories for packages " +"to offer for installation. You just have to add the repository to the places " +"your package manager will check." +msgstr "" + +#: src/reference/appendix/setup-notes.md:64 +msgid "" +"Once `sbt` is installed, you'll be able to manage the package in `aptitude` " +"or Synaptic after you updated their package cache. You should also be able " +"to see the added repository at the bottom of the list in System Settings -> " +"Software & Updates -> Other Software:" +msgstr "" + +#: src/reference/appendix/setup-notes.md:66 +msgid "" +"![Ubuntu Software & Updates Screenshot](/files/ubuntu-sources.png \"Ubuntu " +"Software & Updates Screenshot\")" +msgstr "" + +#: src/reference/appendix/setup-notes.md:68 +msgid "" +"`sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv " +"2EE0EA64E40A89B84B2DF73499E82A75642AC823` may not work on Ubuntu Bionic LTS " +"(18.04) since it's using a buggy GnuPG, so we are advising to use web API to " +"download the public key in the above." +msgstr "" + +#: src/reference/appendix/setup-notes.md:70 +msgid "Red Hat Enterprise Linux and other RPM-based distributions" +msgstr "" + +#: src/reference/appendix/setup-notes.md:72 +msgid "" +"[RPM]($sbt_rpm_package_base$sbt-$app_version$.rpm) package is officially " +"supported by sbt, but it does not contain JAR files to save bandwidth." +msgstr "" + +#: src/reference/appendix/setup-notes.md:74 +msgid "" +"Red Hat Enterprise Linux and other RPM-based distributions use the RPM " +"format. Run the following from the terminal to install `sbt` (You'll need " +"superuser privileges to do so, hence the `sudo`)." +msgstr "" + +#: src/reference/appendix/setup-notes.md:78 +#: src/reference/appendix/setup-notes.md:88 +msgid "# remove old Bintray repo file\n" +msgstr "" + +#: src/reference/appendix/setup-notes.md:85 +msgid "On Fedora (31 and above), use `sbt-rpm.repo`:" +msgstr "" diff --git a/po/summary/changes.ja.po b/po/summary/changes.ja.po new file mode 100644 index 00000000..8ccfd9a2 --- /dev/null +++ b/po/summary/changes.ja.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/changes/index.md:1 +msgid "Changes" +msgstr "" diff --git a/po/summary/changes.zh-cn.po b/po/summary/changes.zh-cn.po new file mode 100644 index 00000000..5ffc1950 --- /dev/null +++ b/po/summary/changes.zh-cn.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/changes/index.md:1 +msgid "Changes" +msgstr "" diff --git a/po/summary/changes/migrating-from-sbt-1x.ja.po b/po/summary/changes/migrating-from-sbt-1x.ja.po new file mode 100644 index 00000000..3072caa4 --- /dev/null +++ b/po/summary/changes/migrating-from-sbt-1x.ja.po @@ -0,0 +1,240 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/changes/migrating-from-sbt-1.x.md:1 +msgid "Migrating from sbt 1.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:4 +msgid "Changing `build.sbt` DSL to Scala 3.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:7 +msgid "" +"As a reminder, users can build either Scala 2.x or Scala 3.x programs using " +"either sbt 1.x or sbt 2.x. However, the Scala that underlies the `build.sbt` " +"DSL is determined by the sbt version. In sbt 2.0, we are migrating to Scala " +"3.x." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:9 +msgid "" +"This means that if you implement custom tasks or sbt plugins for sbt 2.x, it " +"must be done using Scala 3.x. See [Scala 3.x incompatibility table](https://" +"docs.scala-lang.org/scala3/guides/migration/incompatibility-table.html) and " +"[Scala 2 with -Xsource:3](https://docs.scala-lang.org/scala3/guides/" +"migration/tooling-scala2-xsource3.html)." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:12 +msgid "// This works on Scala 2.12.20 under -Xsource:3" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:16 +msgid "Bare settings changes" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:20 +msgid "\"0.1.0\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:21 +#: src/reference/changes/migrating-from-sbt-1.x.md:62 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:24 +msgid "" +"_Bare settings_, like the example above, are settings written directly in " +"`build.sbt` without `settings(...)`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:31 +msgid "\"root\" // every subprojects will be named root!" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:35 +msgid "Migrating ThisBuild" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:37 +msgid "" +"In sbt 2.x, bare settings settings should no longer be scoped to " +"`ThisBuild`. One benefit of the new _common settings_ over `ThisBuild` is " +"that it would act in a more predictable delegation. These settings are " +"inserted between plugins settings and those defined in `settings(...)`, " +"meaning they can be used to define settings like `Compile / scalacOptions`, " +"which was not possible with `ThisBuild`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:39 +msgid "Migrating to slash syntax" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:42 +msgid "" +"sbt 1.x supported both the sbt 0.13 style syntax and the slash syntax. sbt 2." +"x removes the support for the sbt 0.13 syntax, so use the slash syntax for " +"both sbt shell and in `build.sbt`:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:48 +msgid "" +"For example, `test:compile` will no longer work on the shell. Use `Test/" +"compile` instead. See [syntactic Scalafix rule for unified slash syntax]" +"(https://eed3si9n.com/syntactic-scalafix-rule-for-unified-slash-syntax/) for " +"semi-automated migration of `build.sbt` files." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:50 +msgid "Cross building sbt plugins" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:53 +msgid "" +"In sbt 2.x, if you cross build an sbt plugin with Scala 3.x and 2.12.x, it " +"will automatically cross build against sbt 1.x and sbt 2.x:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:56 +msgid "// using sbt 2.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:57 +#: src/reference/changes/migrating-from-sbt-1.x.md:77 +msgid "\"plugin\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:60 +#: src/reference/changes/migrating-from-sbt-1.x.md:80 +msgid "\"sbt-vimquit\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:62 +#: src/reference/changes/migrating-from-sbt-1.x.md:73 +msgid "\"2.12.20\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:65 +msgid "" +"If you use `projectMatrix`, make sure to move the plugin to a subdirectory " +"like `plugin/`. Otherwise, the synthetic root project will also pick up the " +"`src/`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:67 +msgid "Cross building sbt plugin with sbt 1.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:69 +msgid "Use sbt 1.10.2 or later, if you want to cross build using sbt 1.x." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:72 +msgid "// using sbt 1.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:74 +msgid "\"3.3.4\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:83 +msgid "\"2.12\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:83 +msgid "\"1.5.8\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:84 +msgid "\"2.0.0-M2\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:90 +msgid "Changes to `%%`" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:93 +msgid "" +"In sbt 2.x, `ModuleID`'s `%%` operator has become platform-aware. For JVM " +"subprojects, `%%` works as before, encoding Scala suffix (for example `_3`) " +"on Maven repositories." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:95 +msgid "Migrating `%%%` operator" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:97 +msgid "" +"When Scala.JS or Scala Native becomes available on sbt 2.x, `%%` will encode " +"both the Scala version (such as `_3`) and the platform suffix (`_sjs1` etc). " +"As a result, `%%%` can be replaced with `%%`:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:100 +msgid "\"org.scala-js\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:100 +msgid "\"scalajs-dom\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:100 +msgid "\"2.8.0\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:103 +msgid "Use `.platform(Platform.jvm)` in case where JVM libraries are needed." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:106 +msgid "The PluginCompat technique" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:109 +msgid "" +"To use the same `*.scala` source but target both sbt 1.x and 2.x, we can " +"create a shim, for example an object named `PluginCompat` in both `src/main/" +"scala-2.12/` and `src/main/scala-3/`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:111 +msgid "Migrating Classpath type" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:113 +msgid "" +"sbt 2.x changed the `Classpath` type to be an alias of the " +"`Seq[Attributed[xsbti.HashedVirtualFileRef]]` type. The following is a shim " +"created to work with classpaths from both sbt 1.x and 2.x." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:116 +msgid "// src/main/scala-3/PluginCompat.scala" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:139 +msgid "and here's for sbt 1.x:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:142 +msgid "// src/main/scala-2.12/PluginCompat.scala" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:161 +msgid "" +"Now we can import `PluginCompat.*` and use `toNioPaths(...)` etc to absorb " +"the differences between sbt 1.x and 2.x. The above demonstrates how we can " +"absorb the classpath type change, and convert it into a vector of NIO Paths." +msgstr "" diff --git a/po/summary/changes/migrating-from-sbt-1x.zh-cn.po b/po/summary/changes/migrating-from-sbt-1x.zh-cn.po new file mode 100644 index 00000000..6958bd1c --- /dev/null +++ b/po/summary/changes/migrating-from-sbt-1x.zh-cn.po @@ -0,0 +1,240 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/changes/migrating-from-sbt-1.x.md:1 +msgid "Migrating from sbt 1.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:4 +msgid "Changing `build.sbt` DSL to Scala 3.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:7 +msgid "" +"As a reminder, users can build either Scala 2.x or Scala 3.x programs using " +"either sbt 1.x or sbt 2.x. However, the Scala that underlies the `build.sbt` " +"DSL is determined by the sbt version. In sbt 2.0, we are migrating to Scala " +"3.x." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:9 +msgid "" +"This means that if you implement custom tasks or sbt plugins for sbt 2.x, it " +"must be done using Scala 3.x. See [Scala 3.x incompatibility table](https://" +"docs.scala-lang.org/scala3/guides/migration/incompatibility-table.html) and " +"[Scala 2 with -Xsource:3](https://docs.scala-lang.org/scala3/guides/" +"migration/tooling-scala2-xsource3.html)." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:12 +msgid "// This works on Scala 2.12.20 under -Xsource:3" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:16 +msgid "Bare settings changes" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:20 +msgid "\"0.1.0\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:21 +#: src/reference/changes/migrating-from-sbt-1.x.md:62 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:24 +msgid "" +"_Bare settings_, like the example above, are settings written directly in " +"`build.sbt` without `settings(...)`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:31 +msgid "\"root\" // every subprojects will be named root!" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:35 +msgid "Migrating ThisBuild" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:37 +msgid "" +"In sbt 2.x, bare settings settings should no longer be scoped to " +"`ThisBuild`. One benefit of the new _common settings_ over `ThisBuild` is " +"that it would act in a more predictable delegation. These settings are " +"inserted between plugins settings and those defined in `settings(...)`, " +"meaning they can be used to define settings like `Compile / scalacOptions`, " +"which was not possible with `ThisBuild`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:39 +msgid "Migrating to slash syntax" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:42 +msgid "" +"sbt 1.x supported both the sbt 0.13 style syntax and the slash syntax. sbt 2." +"x removes the support for the sbt 0.13 syntax, so use the slash syntax for " +"both sbt shell and in `build.sbt`:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:48 +msgid "" +"For example, `test:compile` will no longer work on the shell. Use `Test/" +"compile` instead. See [syntactic Scalafix rule for unified slash syntax]" +"(https://eed3si9n.com/syntactic-scalafix-rule-for-unified-slash-syntax/) for " +"semi-automated migration of `build.sbt` files." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:50 +msgid "Cross building sbt plugins" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:53 +msgid "" +"In sbt 2.x, if you cross build an sbt plugin with Scala 3.x and 2.12.x, it " +"will automatically cross build against sbt 1.x and sbt 2.x:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:56 +msgid "// using sbt 2.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:57 +#: src/reference/changes/migrating-from-sbt-1.x.md:77 +msgid "\"plugin\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:60 +#: src/reference/changes/migrating-from-sbt-1.x.md:80 +msgid "\"sbt-vimquit\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:62 +#: src/reference/changes/migrating-from-sbt-1.x.md:73 +msgid "\"2.12.20\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:65 +msgid "" +"If you use `projectMatrix`, make sure to move the plugin to a subdirectory " +"like `plugin/`. Otherwise, the synthetic root project will also pick up the " +"`src/`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:67 +msgid "Cross building sbt plugin with sbt 1.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:69 +msgid "Use sbt 1.10.2 or later, if you want to cross build using sbt 1.x." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:72 +msgid "// using sbt 1.x" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:74 +msgid "\"3.3.4\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:83 +msgid "\"2.12\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:83 +msgid "\"1.5.8\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:84 +msgid "\"2.0.0-M2\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:90 +msgid "Changes to `%%`" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:93 +msgid "" +"In sbt 2.x, `ModuleID`'s `%%` operator has become platform-aware. For JVM " +"subprojects, `%%` works as before, encoding Scala suffix (for example `_3`) " +"on Maven repositories." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:95 +msgid "Migrating `%%%` operator" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:97 +msgid "" +"When Scala.JS or Scala Native becomes available on sbt 2.x, `%%` will encode " +"both the Scala version (such as `_3`) and the platform suffix (`_sjs1` etc). " +"As a result, `%%%` can be replaced with `%%`:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:100 +msgid "\"org.scala-js\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:100 +msgid "\"scalajs-dom\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:100 +msgid "\"2.8.0\"" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:103 +msgid "Use `.platform(Platform.jvm)` in case where JVM libraries are needed." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:106 +msgid "The PluginCompat technique" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:109 +msgid "" +"To use the same `*.scala` source but target both sbt 1.x and 2.x, we can " +"create a shim, for example an object named `PluginCompat` in both `src/main/" +"scala-2.12/` and `src/main/scala-3/`." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:111 +msgid "Migrating Classpath type" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:113 +msgid "" +"sbt 2.x changed the `Classpath` type to be an alias of the " +"`Seq[Attributed[xsbti.HashedVirtualFileRef]]` type. The following is a shim " +"created to work with classpaths from both sbt 1.x and 2.x." +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:116 +msgid "// src/main/scala-3/PluginCompat.scala" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:139 +msgid "and here's for sbt 1.x:" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:142 +msgid "// src/main/scala-2.12/PluginCompat.scala" +msgstr "" + +#: src/reference/changes/migrating-from-sbt-1.x.md:161 +msgid "" +"Now we can import `PluginCompat.*` and use `toNioPaths(...)` etc to absorb " +"the differences between sbt 1.x and 2.x. The above demonstrates how we can " +"absorb the classpath type change, and convert it into a vector of NIO Paths." +msgstr "" diff --git a/po/summary/changes/sbt-20-changes.ja.po b/po/summary/changes/sbt-20-changes.ja.po new file mode 100644 index 00000000..c2506e65 --- /dev/null +++ b/po/summary/changes/sbt-20-changes.ja.po @@ -0,0 +1,207 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/changes/sbt-2.0-change-summary.md:4 +msgid "sbt 2.0 changes (draft)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:13 +msgid "Changes with compatibility implications" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:16 +msgid "See also [Migrating from sbt 1.x](./migrating-from-sbt-1.x.md)." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:18 +msgid "" +"sbt 2.x uses Scala 3.x for build definitions and plugins (Both sbt 1.x and 2." +"x are capable of building Scala 2.x and 3.x) by [@eed3si9n](https://github." +"com/eed3si9n), [@adpi2](https://github.com/adpi2), and others." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:19 +msgid "" +"Bare settings are added to all subprojects, as opposed to just the root " +"subproject, and thus replacing the role that `ThisBuild` has played." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:20 +msgid "" +"`test` task is changed to be incremental test that can cache test results. " +"Use `testFull` for full test by [@eed3si9n](https://github.com/eed3si9n) in " +"[\\#7686](https://github.com/sbt/sbt/pull/7686)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:21 +msgid "" +"sbt 2.x plugins are published with `_sbt2_3` suffix by [@eed3si9n](https://" +"github.com/eed3si9n) in [\\#7671](https://github.com/sbt/sbt/pull/7671)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:22 +msgid "" +"sbt 2.x adds `platform` setting so `ModuleID`'s `%%` operator can cross " +"build on JVM as well as JS and Native, as opposed to `%%%` operator that was " +"created in a plugin to workaround this issue, by [@eed3si9n](https://github." +"com/eed3si9n) in [\\#6746](https://github.com/sbt/sbt/pull/6746)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:23 +msgid "" +"Dropped `useCoursier` setting so Coursier cannot be opted out, by [@eed3si9n]" +"(https://github.com/eed3si9n) in [\\#7712](https://github.com/sbt/sbt/" +"pull/7712)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:24 +msgid "" +"`Key.Classpath` is changed to be an alias of the `Seq[Attributed[xsbti." +"HashedVirtualFileRef]]` type, instead of `Seq[Attributed[File]]`. Similarly, " +"some task keys that used to return `File` have changed to return " +"`HashedVirtualFileRef` instead. See [Caching Files](../concepts/caching." +"md#caching-files)." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:26 +msgid "Dropped dreprecations" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:28 +msgid "" +"sbt 0.13 style shell syntax by [@eed3si9n](https://github.com/eed3si9n) in " +"[\\#7700](https://github.com/sbt/sbt/pull/7700)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:30 +msgid "Features" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:33 +msgid "" +"Project matrix, which was available via plugin in sbt 1.x, is in-sourced." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:34 +msgid "" +"sbt 2.x extends the unified slash syntax to support query of subprojects. " +"Details below." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:35 +msgid "Local/remote cache system. Details below" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:37 +msgid "Common settings" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:39 +msgid "" +"In sbt 2.x, the bare settings in `build.sbt` are interpreted to be common " +"settings, and are injected to all subprojects. This means we can now set " +"`scalaVersion` without using `ThisBuild` scoping:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:42 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:45 +msgid "This also fixes the so-called dynamic dispatch problem:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:48 +msgid "\"\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:49 +#: src/reference/changes/sbt-2.0-change-summary.md:93 +#: src/reference/changes/sbt-2.0-change-summary.md:107 +msgid "\"!\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:52 +msgid "" +"In sbt 1.x `hi` task will capture the name of the root project, but in sbt 2." +"x it will return the `name` of each subproject with `!`:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:66 +msgid "" +"Contributed by [@eed3si9n](https://github.com/eed3si9n) in [\\#6746](https://" +"github.com/sbt/sbt/pull/6746)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:68 +msgid "sbt query" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:70 +msgid "To filter down the subprojects, sbt 2.x introduces sbt query." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:77 +msgid "The above runs all subprojects that begins with `foo`." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:83 +msgid "" +"The above runs all subprojects whose `scalaBinaryVersion` is `3`. " +"Contributed by [@eed3si9n](https://github.com/eed3si9n) in [\\#7699](https://" +"github.com/sbt/sbt/pull/7699)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:85 +msgid "Local/remote cache system" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:87 +msgid "" +"sbt 2.x implements cached task, which can automatically cache the task " +"results to local disk and Bazel-compatible remote cache." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:90 +#: src/reference/changes/sbt-2.0-change-summary.md:100 +msgid "\"doc for task1\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:97 +msgid "" +"This tracks the inputs into the `task1` and creates a machine-wide disk " +"cache, which can also be configured to also use a remote cache. Since it's " +"common for sbt tasks to also produce files on the side, we also provide a " +"mechanism to cache file contents:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:111 +msgid "" +"Contributed by [@eed3si9n](https://github.com/eed3si9n) in [\\#7464](https://" +"github.com/sbt/sbt/pull/7464) / [\\#7525](https://github.com/sbt/sbt/" +"pull/7525)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:113 +msgid "Previously on sbt" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:116 +msgid "See also:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:118 +msgid "" +"[sbt 1.0 changes](https://www.scala-sbt.org/1.x/docs/sbt-1.0-Release-Notes." +"html)" +msgstr "" diff --git a/po/summary/changes/sbt-20-changes.zh-cn.po b/po/summary/changes/sbt-20-changes.zh-cn.po new file mode 100644 index 00000000..4acee664 --- /dev/null +++ b/po/summary/changes/sbt-20-changes.zh-cn.po @@ -0,0 +1,207 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/changes/sbt-2.0-change-summary.md:4 +msgid "sbt 2.0 changes (draft)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:13 +msgid "Changes with compatibility implications" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:16 +msgid "See also [Migrating from sbt 1.x](./migrating-from-sbt-1.x.md)." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:18 +msgid "" +"sbt 2.x uses Scala 3.x for build definitions and plugins (Both sbt 1.x and 2." +"x are capable of building Scala 2.x and 3.x) by [@eed3si9n](https://github." +"com/eed3si9n), [@adpi2](https://github.com/adpi2), and others." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:19 +msgid "" +"Bare settings are added to all subprojects, as opposed to just the root " +"subproject, and thus replacing the role that `ThisBuild` has played." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:20 +msgid "" +"`test` task is changed to be incremental test that can cache test results. " +"Use `testFull` for full test by [@eed3si9n](https://github.com/eed3si9n) in " +"[\\#7686](https://github.com/sbt/sbt/pull/7686)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:21 +msgid "" +"sbt 2.x plugins are published with `_sbt2_3` suffix by [@eed3si9n](https://" +"github.com/eed3si9n) in [\\#7671](https://github.com/sbt/sbt/pull/7671)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:22 +msgid "" +"sbt 2.x adds `platform` setting so `ModuleID`'s `%%` operator can cross " +"build on JVM as well as JS and Native, as opposed to `%%%` operator that was " +"created in a plugin to workaround this issue, by [@eed3si9n](https://github." +"com/eed3si9n) in [\\#6746](https://github.com/sbt/sbt/pull/6746)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:23 +msgid "" +"Dropped `useCoursier` setting so Coursier cannot be opted out, by [@eed3si9n]" +"(https://github.com/eed3si9n) in [\\#7712](https://github.com/sbt/sbt/" +"pull/7712)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:24 +msgid "" +"`Key.Classpath` is changed to be an alias of the `Seq[Attributed[xsbti." +"HashedVirtualFileRef]]` type, instead of `Seq[Attributed[File]]`. Similarly, " +"some task keys that used to return `File` have changed to return " +"`HashedVirtualFileRef` instead. See [Caching Files](../concepts/caching." +"md#caching-files)." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:26 +msgid "Dropped dreprecations" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:28 +msgid "" +"sbt 0.13 style shell syntax by [@eed3si9n](https://github.com/eed3si9n) in " +"[\\#7700](https://github.com/sbt/sbt/pull/7700)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:30 +msgid "Features" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:33 +msgid "" +"Project matrix, which was available via plugin in sbt 1.x, is in-sourced." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:34 +msgid "" +"sbt 2.x extends the unified slash syntax to support query of subprojects. " +"Details below." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:35 +msgid "Local/remote cache system. Details below" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:37 +msgid "Common settings" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:39 +msgid "" +"In sbt 2.x, the bare settings in `build.sbt` are interpreted to be common " +"settings, and are injected to all subprojects. This means we can now set " +"`scalaVersion` without using `ThisBuild` scoping:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:42 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:45 +msgid "This also fixes the so-called dynamic dispatch problem:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:48 +msgid "\"\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:49 +#: src/reference/changes/sbt-2.0-change-summary.md:93 +#: src/reference/changes/sbt-2.0-change-summary.md:107 +msgid "\"!\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:52 +msgid "" +"In sbt 1.x `hi` task will capture the name of the root project, but in sbt 2." +"x it will return the `name` of each subproject with `!`:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:66 +msgid "" +"Contributed by [@eed3si9n](https://github.com/eed3si9n) in [\\#6746](https://" +"github.com/sbt/sbt/pull/6746)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:68 +msgid "sbt query" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:70 +msgid "To filter down the subprojects, sbt 2.x introduces sbt query." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:77 +msgid "The above runs all subprojects that begins with `foo`." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:83 +msgid "" +"The above runs all subprojects whose `scalaBinaryVersion` is `3`. " +"Contributed by [@eed3si9n](https://github.com/eed3si9n) in [\\#7699](https://" +"github.com/sbt/sbt/pull/7699)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:85 +msgid "Local/remote cache system" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:87 +msgid "" +"sbt 2.x implements cached task, which can automatically cache the task " +"results to local disk and Bazel-compatible remote cache." +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:90 +#: src/reference/changes/sbt-2.0-change-summary.md:100 +msgid "\"doc for task1\"" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:97 +msgid "" +"This tracks the inputs into the `task1` and creates a machine-wide disk " +"cache, which can also be configured to also use a remote cache. Since it's " +"common for sbt tasks to also produce files on the side, we also provide a " +"mechanism to cache file contents:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:111 +msgid "" +"Contributed by [@eed3si9n](https://github.com/eed3si9n) in [\\#7464](https://" +"github.com/sbt/sbt/pull/7464) / [\\#7525](https://github.com/sbt/sbt/" +"pull/7525)" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:113 +msgid "Previously on sbt" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:116 +msgid "See also:" +msgstr "" + +#: src/reference/changes/sbt-2.0-change-summary.md:118 +msgid "" +"[sbt 1.0 changes](https://www.scala-sbt.org/1.x/docs/sbt-1.0-Release-Notes." +"html)" +msgstr "" diff --git a/po/summary/concepts.ja.po b/po/summary/concepts.ja.po new file mode 100644 index 00000000..14cb05c8 --- /dev/null +++ b/po/summary/concepts.ja.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/index.md:1 +msgid "Concepts" +msgstr "" diff --git a/po/summary/concepts.zh-cn.po b/po/summary/concepts.zh-cn.po new file mode 100644 index 00000000..55541d39 --- /dev/null +++ b/po/summary/concepts.zh-cn.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/index.md:1 +msgid "Concepts" +msgstr "" diff --git a/po/summary/concepts/caching.ja.po b/po/summary/concepts/caching.ja.po new file mode 100644 index 00000000..e8af6a71 --- /dev/null +++ b/po/summary/concepts/caching.ja.po @@ -0,0 +1,225 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/caching.md:1 +msgid "Caching" +msgstr "" + +#: src/reference/concepts/caching.md:4 +msgid "" +"sbt 2.0 introduces hybrid local/remote cache system, which can cache the " +"task results to local disk and Bazel-compatible remote cache. Throughout sbt " +"releases it has implemented various caches, like `update` cache, incremental " +"compilation, but sbt 2.x's cache is a significant step change for a few " +"reasons:" +msgstr "" + +#: src/reference/concepts/caching.md:6 +msgid "" +"**Automatic**. sbt 2.x cache automates the caching by embedding itself into " +"the task macro unlike sbt 1.x wherein the plugin author called the cache " +"functions manually in the task implementation." +msgstr "" + +#: src/reference/concepts/caching.md:7 +msgid "" +"**Machine-wide**. sbt 2.x disk cache is shared among all builds on a machine." +msgstr "" + +#: src/reference/concepts/caching.md:8 +msgid "" +"**Remote-ready**. In sbt 2.x, the cache storage is configured separately " +"such that all cacheable tasks are automatically remote-cache-ready." +msgstr "" + +#: src/reference/concepts/caching.md:10 +msgid "Basics of caching" +msgstr "" + +#: src/reference/concepts/caching.md:13 +msgid "" +"The basic idea is treat as if the build process is a pure function that " +"takes input `(A1, A2, A3, ...)` and return some outputs `(R1, List(O1, O2, " +"O3, ...))`. For example, we can take a list of source files, Scala version, " +"and produce a `*.jar` file at the end. If the assumption holds, then for the " +"same inputs, we can memorize the ouput JAR for everyone. We are interested " +"in this technique because using the memorized output JAR would be faster " +"than performing the actual task like Scala compilation etc." +msgstr "" + +#: src/reference/concepts/caching.md:15 +msgid "Hermetic build" +msgstr "" + +#: src/reference/concepts/caching.md:17 +msgid "" +"As a mental model of the _build as a pure function_, build engineers " +"sometimes use the term _hermetic build_, which is a build that takes place " +"in a shipping container in a dessert with no clocks or the Internet. If we " +"can produce a JAR file from that state, then the JAR file should be safe to " +"be shared by any machine. Why did I mention the clock? It's because a JAR " +"file could capture the timestamp, and thus produce slightly different JARs " +"each time. To avoid this, hermetic build tools overwrite the timestamp to a " +"fixed date 2010-01-01 regardless of when the build took place." +msgstr "" + +#: src/reference/concepts/caching.md:19 +msgid "" +"A build that ends up capturing ephemeral inputs, are said to _break the " +"hermeticity_ or _non-hermetic_. Another common way the hermeticity is broken " +"is capturing absolute paths as either input or output. Sometimes the path " +"gets embedded into the JAR via a macro, you might not know until you inspect " +"the bytecode." +msgstr "" + +#: src/reference/concepts/caching.md:21 +msgid "Automatic caching" +msgstr "" + +#: src/reference/concepts/caching.md:24 +msgid "Here's a demonstration of the automatic caching:" +msgstr "" + +#: src/reference/concepts/caching.md:29 +msgid "\"something\"" +msgstr "" + +#: src/reference/concepts/caching.md:32 +msgid "\"!\"" +msgstr "" + +#: src/reference/concepts/caching.md:36 +msgid "" +"The task will be automatically cached based on the two settings `name` and " +"`version`. The first time we run the task it will be executed onsite, but " +"the second time onward, it will use the disk cache:" +msgstr "" + +#: src/reference/concepts/caching.md:47 +msgid "Caching is serialization-hard" +msgstr "" + +#: src/reference/concepts/caching.md:49 +msgid "" +"To participate in the automatic caching, the input keys (e.g. `name` and " +"`version`) must provide a given for `sjsonnew.HashWriter` typeclass and " +"return type must provide a given for `sjsonnew.JsonFormat`. [Contraband]" +"(https://www.scala-sbt.org/contraband/) can be used to generate sjson-new " +"codecs." +msgstr "" + +#: src/reference/concepts/caching.md:51 +msgid "Caching files" +msgstr "" + +#: src/reference/concepts/caching.md:54 +msgid "" +"Caching files (e.g. `java.io.File`) requires its own consideration, not " +"because it's technically difficult, but mostly because of the ambiguity and " +"assumptions when files are involved. When we say a \"file\" it could " +"actually mean:" +msgstr "" + +#: src/reference/concepts/caching.md:56 +msgid "Relative path from a well-known location" +msgstr "" + +#: src/reference/concepts/caching.md:57 +msgid "Materialized actual file" +msgstr "" + +#: src/reference/concepts/caching.md:58 +msgid "A unique proof of a file, or a content hash" +msgstr "" + +#: src/reference/concepts/caching.md:60 +msgid "" +"Technically speaking, a `File` just means the file path, so we can " +"deserialize just the filename such as `target/a/b.jar`. This will fail the " +"downstream tasks if they assumed that `target/a/b.jar` would exist in the " +"file system. For clarity, and also for avoiding to capture absolute paths, " +"sbt 2.x provides three separate types for the three cases." +msgstr "" + +#: src/reference/concepts/caching.md:62 +msgid "" +"`xsbti.VirtualFileRef` is used to mean just the relative path, which is " +"equivalent to passing a string" +msgstr "" + +#: src/reference/concepts/caching.md:63 +msgid "" +"`xsbti.VirtualFile` represents a materialized file with contents, which " +"could be a virtual file or a file in your disk" +msgstr "" + +#: src/reference/concepts/caching.md:65 +msgid "" +"However, for the purpose of hermetic build, neither is great to represent a " +"list of files. Having just the filename alone doesn't guarantee that the " +"file will be the same, and carrying the entire content of the files is too " +"inefficient in a JSON etc." +msgstr "" + +#: src/reference/concepts/caching.md:67 +msgid "" +"This is where the mysterious third option, a unique proof of file comes in " +"handy. In addition to the relative path, `HashedVirtualFileRef` tracks the " +"SHA-256 content hash and the file size. This can easily be serialized to " +"JSON yet we can reference the exact file." +msgstr "" + +#: src/reference/concepts/caching.md:69 +msgid "The effect of file creation" +msgstr "" + +#: src/reference/concepts/caching.md:71 +msgid "" +"There are many tasks that generate file that do not use `VirtualFile` as the " +"return type. For example, `compile` returns `Analysis` instead, and `*." +"class` file generation happens as a _side effect_ in sbt 1.x." +msgstr "" + +#: src/reference/concepts/caching.md:73 +msgid "" +"To participate in caching, we need to declare these effects as something we " +"care about." +msgstr "" + +#: src/reference/concepts/caching.md:85 +msgid "Remote caching" +msgstr "" + +#: src/reference/concepts/caching.md:88 +msgid "" +"You can optionally extend the build to use remote cache in addition to the " +"local disk cache. Remote caching could improve build performance by allowing " +"multiple machines to share build artifacts and outputs." +msgstr "" + +#: src/reference/concepts/caching.md:90 +msgid "" +"Imagine you have a dozen people in your project or a company. Each morning, " +"you will `git pull` the changes the dozen people made, and you need to build " +"their code. If you have a successful project, the code size will only get " +"bigger over time, and the % of the time you spend building someone else's in " +"your day increases. This becomes the limiting factor of your team size and " +"code size. Remote caching reverses this tide by CI systems hydrate the cache " +"and you can download the artifacts and task outputs." +msgstr "" + +#: src/reference/concepts/caching.md:92 +msgid "" +"sbt 2.x implements Bazel-compatible gRPC interface, which works with number " +"of backend both open source and commercial." +msgstr "" diff --git a/po/summary/concepts/caching.zh-cn.po b/po/summary/concepts/caching.zh-cn.po new file mode 100644 index 00000000..1e4a1633 --- /dev/null +++ b/po/summary/concepts/caching.zh-cn.po @@ -0,0 +1,225 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/caching.md:1 +msgid "Caching" +msgstr "" + +#: src/reference/concepts/caching.md:4 +msgid "" +"sbt 2.0 introduces hybrid local/remote cache system, which can cache the " +"task results to local disk and Bazel-compatible remote cache. Throughout sbt " +"releases it has implemented various caches, like `update` cache, incremental " +"compilation, but sbt 2.x's cache is a significant step change for a few " +"reasons:" +msgstr "" + +#: src/reference/concepts/caching.md:6 +msgid "" +"**Automatic**. sbt 2.x cache automates the caching by embedding itself into " +"the task macro unlike sbt 1.x wherein the plugin author called the cache " +"functions manually in the task implementation." +msgstr "" + +#: src/reference/concepts/caching.md:7 +msgid "" +"**Machine-wide**. sbt 2.x disk cache is shared among all builds on a machine." +msgstr "" + +#: src/reference/concepts/caching.md:8 +msgid "" +"**Remote-ready**. In sbt 2.x, the cache storage is configured separately " +"such that all cacheable tasks are automatically remote-cache-ready." +msgstr "" + +#: src/reference/concepts/caching.md:10 +msgid "Basics of caching" +msgstr "" + +#: src/reference/concepts/caching.md:13 +msgid "" +"The basic idea is treat as if the build process is a pure function that " +"takes input `(A1, A2, A3, ...)` and return some outputs `(R1, List(O1, O2, " +"O3, ...))`. For example, we can take a list of source files, Scala version, " +"and produce a `*.jar` file at the end. If the assumption holds, then for the " +"same inputs, we can memorize the ouput JAR for everyone. We are interested " +"in this technique because using the memorized output JAR would be faster " +"than performing the actual task like Scala compilation etc." +msgstr "" + +#: src/reference/concepts/caching.md:15 +msgid "Hermetic build" +msgstr "" + +#: src/reference/concepts/caching.md:17 +msgid "" +"As a mental model of the _build as a pure function_, build engineers " +"sometimes use the term _hermetic build_, which is a build that takes place " +"in a shipping container in a dessert with no clocks or the Internet. If we " +"can produce a JAR file from that state, then the JAR file should be safe to " +"be shared by any machine. Why did I mention the clock? It's because a JAR " +"file could capture the timestamp, and thus produce slightly different JARs " +"each time. To avoid this, hermetic build tools overwrite the timestamp to a " +"fixed date 2010-01-01 regardless of when the build took place." +msgstr "" + +#: src/reference/concepts/caching.md:19 +msgid "" +"A build that ends up capturing ephemeral inputs, are said to _break the " +"hermeticity_ or _non-hermetic_. Another common way the hermeticity is broken " +"is capturing absolute paths as either input or output. Sometimes the path " +"gets embedded into the JAR via a macro, you might not know until you inspect " +"the bytecode." +msgstr "" + +#: src/reference/concepts/caching.md:21 +msgid "Automatic caching" +msgstr "" + +#: src/reference/concepts/caching.md:24 +msgid "Here's a demonstration of the automatic caching:" +msgstr "" + +#: src/reference/concepts/caching.md:29 +msgid "\"something\"" +msgstr "" + +#: src/reference/concepts/caching.md:32 +msgid "\"!\"" +msgstr "" + +#: src/reference/concepts/caching.md:36 +msgid "" +"The task will be automatically cached based on the two settings `name` and " +"`version`. The first time we run the task it will be executed onsite, but " +"the second time onward, it will use the disk cache:" +msgstr "" + +#: src/reference/concepts/caching.md:47 +msgid "Caching is serialization-hard" +msgstr "" + +#: src/reference/concepts/caching.md:49 +msgid "" +"To participate in the automatic caching, the input keys (e.g. `name` and " +"`version`) must provide a given for `sjsonnew.HashWriter` typeclass and " +"return type must provide a given for `sjsonnew.JsonFormat`. [Contraband]" +"(https://www.scala-sbt.org/contraband/) can be used to generate sjson-new " +"codecs." +msgstr "" + +#: src/reference/concepts/caching.md:51 +msgid "Caching files" +msgstr "" + +#: src/reference/concepts/caching.md:54 +msgid "" +"Caching files (e.g. `java.io.File`) requires its own consideration, not " +"because it's technically difficult, but mostly because of the ambiguity and " +"assumptions when files are involved. When we say a \"file\" it could " +"actually mean:" +msgstr "" + +#: src/reference/concepts/caching.md:56 +msgid "Relative path from a well-known location" +msgstr "" + +#: src/reference/concepts/caching.md:57 +msgid "Materialized actual file" +msgstr "" + +#: src/reference/concepts/caching.md:58 +msgid "A unique proof of a file, or a content hash" +msgstr "" + +#: src/reference/concepts/caching.md:60 +msgid "" +"Technically speaking, a `File` just means the file path, so we can " +"deserialize just the filename such as `target/a/b.jar`. This will fail the " +"downstream tasks if they assumed that `target/a/b.jar` would exist in the " +"file system. For clarity, and also for avoiding to capture absolute paths, " +"sbt 2.x provides three separate types for the three cases." +msgstr "" + +#: src/reference/concepts/caching.md:62 +msgid "" +"`xsbti.VirtualFileRef` is used to mean just the relative path, which is " +"equivalent to passing a string" +msgstr "" + +#: src/reference/concepts/caching.md:63 +msgid "" +"`xsbti.VirtualFile` represents a materialized file with contents, which " +"could be a virtual file or a file in your disk" +msgstr "" + +#: src/reference/concepts/caching.md:65 +msgid "" +"However, for the purpose of hermetic build, neither is great to represent a " +"list of files. Having just the filename alone doesn't guarantee that the " +"file will be the same, and carrying the entire content of the files is too " +"inefficient in a JSON etc." +msgstr "" + +#: src/reference/concepts/caching.md:67 +msgid "" +"This is where the mysterious third option, a unique proof of file comes in " +"handy. In addition to the relative path, `HashedVirtualFileRef` tracks the " +"SHA-256 content hash and the file size. This can easily be serialized to " +"JSON yet we can reference the exact file." +msgstr "" + +#: src/reference/concepts/caching.md:69 +msgid "The effect of file creation" +msgstr "" + +#: src/reference/concepts/caching.md:71 +msgid "" +"There are many tasks that generate file that do not use `VirtualFile` as the " +"return type. For example, `compile` returns `Analysis` instead, and `*." +"class` file generation happens as a _side effect_ in sbt 1.x." +msgstr "" + +#: src/reference/concepts/caching.md:73 +msgid "" +"To participate in caching, we need to declare these effects as something we " +"care about." +msgstr "" + +#: src/reference/concepts/caching.md:85 +msgid "Remote caching" +msgstr "" + +#: src/reference/concepts/caching.md:88 +msgid "" +"You can optionally extend the build to use remote cache in addition to the " +"local disk cache. Remote caching could improve build performance by allowing " +"multiple machines to share build artifacts and outputs." +msgstr "" + +#: src/reference/concepts/caching.md:90 +msgid "" +"Imagine you have a dozen people in your project or a company. Each morning, " +"you will `git pull` the changes the dozen people made, and you need to build " +"their code. If you have a successful project, the code size will only get " +"bigger over time, and the % of the time you spend building someone else's in " +"your day increases. This becomes the limiting factor of your team size and " +"code size. Remote caching reverses this tide by CI systems hydrate the cache " +"and you can download the artifacts and task outputs." +msgstr "" + +#: src/reference/concepts/caching.md:92 +msgid "" +"sbt 2.x implements Bazel-compatible gRPC interface, which works with number " +"of backend both open source and commercial." +msgstr "" diff --git a/po/summary/concepts/command.ja.po b/po/summary/concepts/command.ja.po new file mode 100644 index 00000000..547b5b31 --- /dev/null +++ b/po/summary/concepts/command.ja.po @@ -0,0 +1,115 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/command.md:1 +msgid "Command" +msgstr "" + +#: src/reference/concepts/command.md:4 +msgid "" +"A _command_ is a system-level building block of sbt, often used to capture " +"user interaction or IDE interaction." +msgstr "" + +#: src/reference/concepts/command.md:6 +msgid "" +msgstr "" + +#: src/reference/concepts/command.md:8 +msgid "" +"We can think of each command as a `State => State` function. In sbt, the " +"state represents the following:" +msgstr "" + +#: src/reference/concepts/command.md:10 +msgid "Build structure (`build.sbt` etc)" +msgstr "" + +#: src/reference/concepts/command.md:11 +msgid "Your disk (source code, JAR outputs, etc)" +msgstr "" + +#: src/reference/concepts/command.md:13 +msgid "" +"Thus, a command would typically modify either the build structure or the " +"disk. For example, the `set` command can apply a setting to modify the build " +"strcuture:" +msgstr "" + +#: src/reference/concepts/command.md:16 +msgid "\"foo\"" +msgstr "" + +#: src/reference/concepts/command.md:19 +msgid "The `act` command can lift a task such as `compile` into a command:" +msgstr "" + +#: src/reference/concepts/command.md:25 +msgid "" +"The compilation would read from the disk and write outputs, or display error " +"messages on the screen." +msgstr "" + +#: src/reference/concepts/command.md:27 +msgid "Commands are sequentially processed" +msgstr "" + +#: src/reference/concepts/command.md:30 +msgid "" +"Because there is only one state, a characteristic of commands is that they " +"are executed one at a time." +msgstr "" + +#: src/reference/concepts/command.md:32 +msgid "![command](../files/command2.svg)" +msgstr "" + +#: src/reference/concepts/command.md:34 +msgid "" +"There are some execptions to this rule, but generally commands run " +"sequentially. One mental image that might be useful is that a command is " +"similar to a cashier taking an order in a cafe, and it will be processed in " +"the sequence it was received." +msgstr "" + +#: src/reference/concepts/command.md:36 +msgid "Tasks run in parallel" +msgstr "" + +#: src/reference/concepts/command.md:39 +msgid "" +"As mentioned above, the `act` command translates tasks into the command " +"level. While doing so, the `act` command will broadcast the task across the " +"aggregated subprojects and run independent tasks in parallel." +msgstr "" + +#: src/reference/concepts/command.md:41 +msgid "" +"Similarly, the `reload` command that runs during the startup of a session " +"will initialize the settings in parallel." +msgstr "" + +#: src/reference/concepts/command.md:43 +msgid "![act](../files/act.svg)" +msgstr "" + +#: src/reference/concepts/command.md:45 +msgid "The role of sbt server" +msgstr "" + +#: src/reference/concepts/command.md:48 +msgid "" +"sbt server is a service that accepts commands from either the command line " +"or a network API called Build Server Protocol. This mechanism allows both " +"the build user and IDEs to share the same sbt session." +msgstr "" diff --git a/po/summary/concepts/command.zh-cn.po b/po/summary/concepts/command.zh-cn.po new file mode 100644 index 00000000..18423230 --- /dev/null +++ b/po/summary/concepts/command.zh-cn.po @@ -0,0 +1,115 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/command.md:1 +msgid "Command" +msgstr "" + +#: src/reference/concepts/command.md:4 +msgid "" +"A _command_ is a system-level building block of sbt, often used to capture " +"user interaction or IDE interaction." +msgstr "" + +#: src/reference/concepts/command.md:6 +msgid "" +msgstr "" + +#: src/reference/concepts/command.md:8 +msgid "" +"We can think of each command as a `State => State` function. In sbt, the " +"state represents the following:" +msgstr "" + +#: src/reference/concepts/command.md:10 +msgid "Build structure (`build.sbt` etc)" +msgstr "" + +#: src/reference/concepts/command.md:11 +msgid "Your disk (source code, JAR outputs, etc)" +msgstr "" + +#: src/reference/concepts/command.md:13 +msgid "" +"Thus, a command would typically modify either the build structure or the " +"disk. For example, the `set` command can apply a setting to modify the build " +"strcuture:" +msgstr "" + +#: src/reference/concepts/command.md:16 +msgid "\"foo\"" +msgstr "" + +#: src/reference/concepts/command.md:19 +msgid "The `act` command can lift a task such as `compile` into a command:" +msgstr "" + +#: src/reference/concepts/command.md:25 +msgid "" +"The compilation would read from the disk and write outputs, or display error " +"messages on the screen." +msgstr "" + +#: src/reference/concepts/command.md:27 +msgid "Commands are sequentially processed" +msgstr "" + +#: src/reference/concepts/command.md:30 +msgid "" +"Because there is only one state, a characteristic of commands is that they " +"are executed one at a time." +msgstr "" + +#: src/reference/concepts/command.md:32 +msgid "![command](../files/command2.svg)" +msgstr "" + +#: src/reference/concepts/command.md:34 +msgid "" +"There are some execptions to this rule, but generally commands run " +"sequentially. One mental image that might be useful is that a command is " +"similar to a cashier taking an order in a cafe, and it will be processed in " +"the sequence it was received." +msgstr "" + +#: src/reference/concepts/command.md:36 +msgid "Tasks run in parallel" +msgstr "" + +#: src/reference/concepts/command.md:39 +msgid "" +"As mentioned above, the `act` command translates tasks into the command " +"level. While doing so, the `act` command will broadcast the task across the " +"aggregated subprojects and run independent tasks in parallel." +msgstr "" + +#: src/reference/concepts/command.md:41 +msgid "" +"Similarly, the `reload` command that runs during the startup of a session " +"will initialize the settings in parallel." +msgstr "" + +#: src/reference/concepts/command.md:43 +msgid "![act](../files/act.svg)" +msgstr "" + +#: src/reference/concepts/command.md:45 +msgid "The role of sbt server" +msgstr "" + +#: src/reference/concepts/command.md:48 +msgid "" +"sbt server is a service that accepts commands from either the command line " +"or a network API called Build Server Protocol. This mechanism allows both " +"the build user and IDEs to share the same sbt session." +msgstr "" diff --git a/po/summary/concepts/cross-building.ja.po b/po/summary/concepts/cross-building.ja.po new file mode 100644 index 00000000..4e8163f2 --- /dev/null +++ b/po/summary/concepts/cross-building.ja.po @@ -0,0 +1,140 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/cross-building.md:1 +msgid "Cross building" +msgstr "" + +#: src/reference/concepts/cross-building.md:4 +msgid "" +"_Cross building_ refers to the idea of building multiple targets from the " +"same set of source file. This includes Scala cross building, targeting " +"multiple versions of Scala releases; platform cross building, targeting JVM, " +"Scala.JS, and Scala Native; and custom virtual axes like Spark versions." +msgstr "" + +#: src/reference/concepts/cross-building.md:6 +msgid "Using cross-built libraries" +msgstr "" + +#: src/reference/concepts/cross-building.md:9 +msgid "" +"To use a library built against multiple versions of Scala, double the first " +"`%` in a ModuleID to be `%%`. This tells sbt that it should append the Scala " +"ABI (application binary interface) suffix to the dependency's name. For " +"example:" +msgstr "" + +#: src/reference/concepts/cross-building.md:12 +#: src/reference/concepts/cross-building.md:18 +msgid "\"org.typelevel\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:12 +msgid "\"cats-effect\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:12 +#: src/reference/concepts/cross-building.md:18 +msgid "\"3.5.4\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:15 +msgid "" +"When the current Scala version is Scala 3.x, the above is equivalent to the " +"following:" +msgstr "" + +#: src/reference/concepts/cross-building.md:18 +msgid "\"cats-effect_3\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:21 +#: src/reference/concepts/cross-building.md:53 +msgid "" +"See [cross building setup](../reference/cross-building-setup.html) for more " +"details on the setup." +msgstr "" + +#: src/reference/concepts/cross-building.md:23 +msgid "Historical context" +msgstr "" + +#: src/reference/concepts/cross-building.md:26 +msgid "" +"In the earlier years of Scala (pre-Scala 2.9), the Scala library did not " +"maintain binary compatibility even at the patch level, so each time a new " +"Scala version was released, the libraries had to be re-released against the " +"new version of Scala. This meant that a library user needed to pick a " +"specific version that was compatible with the Scala version they were using." +msgstr "" + +#: src/reference/concepts/cross-building.md:28 +msgid "" +"Even after Scala 2.9.x, the Scala library did not maintain the binary " +"compatibility at minor version level, so the libraries compiled against " +"Scala 2.10.x was not compatible with 2.11.x." +msgstr "" + +#: src/reference/concepts/cross-building.md:30 +msgid "" +"To workaround this problem, sbt developed cross building mechanism such that:" +msgstr "" + +#: src/reference/concepts/cross-building.md:32 +msgid "" +"Same set of source files can be compiled against multiple versions of Scala" +msgstr "" + +#: src/reference/concepts/cross-building.md:33 +msgid "" +"Define a convention to append ABI version (e.g. `_2.12`) to the Maven " +"artifact" +msgstr "" + +#: src/reference/concepts/cross-building.md:34 +msgid "" +"Later this mechanism was extended to support Scala.JS and other platforms" +msgstr "" + +#: src/reference/concepts/cross-building.md:36 +msgid "Project matrix" +msgstr "" + +#: src/reference/concepts/cross-building.md:39 +msgid "" +"sbt 2.x introduces project matrix, which enables cross building to happen in " +"parallel." +msgstr "" + +#: src/reference/concepts/cross-building.md:42 +msgid "\"com.example\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:43 +#: src/reference/concepts/cross-building.md:50 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:44 +msgid "\"0.1.0-SNAPSHOT\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:46 +#: src/reference/concepts/cross-building.md:48 +msgid "\"core\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:50 +msgid "\"2.13.15\"" +msgstr "" diff --git a/po/summary/concepts/cross-building.zh-cn.po b/po/summary/concepts/cross-building.zh-cn.po new file mode 100644 index 00000000..f7727a39 --- /dev/null +++ b/po/summary/concepts/cross-building.zh-cn.po @@ -0,0 +1,140 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/concepts/cross-building.md:1 +msgid "Cross building" +msgstr "" + +#: src/reference/concepts/cross-building.md:4 +msgid "" +"_Cross building_ refers to the idea of building multiple targets from the " +"same set of source file. This includes Scala cross building, targeting " +"multiple versions of Scala releases; platform cross building, targeting JVM, " +"Scala.JS, and Scala Native; and custom virtual axes like Spark versions." +msgstr "" + +#: src/reference/concepts/cross-building.md:6 +msgid "Using cross-built libraries" +msgstr "" + +#: src/reference/concepts/cross-building.md:9 +msgid "" +"To use a library built against multiple versions of Scala, double the first " +"`%` in a ModuleID to be `%%`. This tells sbt that it should append the Scala " +"ABI (application binary interface) suffix to the dependency's name. For " +"example:" +msgstr "" + +#: src/reference/concepts/cross-building.md:12 +#: src/reference/concepts/cross-building.md:18 +msgid "\"org.typelevel\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:12 +msgid "\"cats-effect\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:12 +#: src/reference/concepts/cross-building.md:18 +msgid "\"3.5.4\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:15 +msgid "" +"When the current Scala version is Scala 3.x, the above is equivalent to the " +"following:" +msgstr "" + +#: src/reference/concepts/cross-building.md:18 +msgid "\"cats-effect_3\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:21 +#: src/reference/concepts/cross-building.md:53 +msgid "" +"See [cross building setup](../reference/cross-building-setup.html) for more " +"details on the setup." +msgstr "" + +#: src/reference/concepts/cross-building.md:23 +msgid "Historical context" +msgstr "" + +#: src/reference/concepts/cross-building.md:26 +msgid "" +"In the earlier years of Scala (pre-Scala 2.9), the Scala library did not " +"maintain binary compatibility even at the patch level, so each time a new " +"Scala version was released, the libraries had to be re-released against the " +"new version of Scala. This meant that a library user needed to pick a " +"specific version that was compatible with the Scala version they were using." +msgstr "" + +#: src/reference/concepts/cross-building.md:28 +msgid "" +"Even after Scala 2.9.x, the Scala library did not maintain the binary " +"compatibility at minor version level, so the libraries compiled against " +"Scala 2.10.x was not compatible with 2.11.x." +msgstr "" + +#: src/reference/concepts/cross-building.md:30 +msgid "" +"To workaround this problem, sbt developed cross building mechanism such that:" +msgstr "" + +#: src/reference/concepts/cross-building.md:32 +msgid "" +"Same set of source files can be compiled against multiple versions of Scala" +msgstr "" + +#: src/reference/concepts/cross-building.md:33 +msgid "" +"Define a convention to append ABI version (e.g. `_2.12`) to the Maven " +"artifact" +msgstr "" + +#: src/reference/concepts/cross-building.md:34 +msgid "" +"Later this mechanism was extended to support Scala.JS and other platforms" +msgstr "" + +#: src/reference/concepts/cross-building.md:36 +msgid "Project matrix" +msgstr "" + +#: src/reference/concepts/cross-building.md:39 +msgid "" +"sbt 2.x introduces project matrix, which enables cross building to happen in " +"parallel." +msgstr "" + +#: src/reference/concepts/cross-building.md:42 +msgid "\"com.example\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:43 +#: src/reference/concepts/cross-building.md:50 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:44 +msgid "\"0.1.0-SNAPSHOT\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:46 +#: src/reference/concepts/cross-building.md:48 +msgid "\"core\"" +msgstr "" + +#: src/reference/concepts/cross-building.md:50 +msgid "\"2.13.15\"" +msgstr "" diff --git a/po/summary/getting-started.ja.po b/po/summary/getting-started.ja.po new file mode 100644 index 00000000..446e6331 --- /dev/null +++ b/po/summary/getting-started.ja.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/index.md:5 +msgid "Getting Started with sbt" +msgstr "" + +#: src/reference/guide/index.md:8 +msgid "" +"sbt uses a small number of concepts to support flexible and powerful build " +"definitions. There are not that many concepts, but sbt is not exactly like " +"other build systems and there are details you _will_ stumble on if you " +"haven't read the documentation." +msgstr "" + +#: src/reference/guide/index.md:13 +msgid "" +"The Getting Started Guide covers the concepts you need to know to create and " +"maintain an sbt build definition." +msgstr "" + +#: src/reference/guide/index.md:16 +msgid "It is _highly recommended_ to read the Getting Started Guide!" +msgstr "" diff --git a/po/summary/getting-started.zh-cn.po b/po/summary/getting-started.zh-cn.po new file mode 100644 index 00000000..c813f43c --- /dev/null +++ b/po/summary/getting-started.zh-cn.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/index.md:5 +msgid "Getting Started with sbt" +msgstr "" + +#: src/reference/guide/index.md:8 +msgid "" +"sbt uses a small number of concepts to support flexible and powerful build " +"definitions. There are not that many concepts, but sbt is not exactly like " +"other build systems and there are details you _will_ stumble on if you " +"haven't read the documentation." +msgstr "" + +#: src/reference/guide/index.md:13 +msgid "" +"The Getting Started Guide covers the concepts you need to know to create and " +"maintain an sbt build definition." +msgstr "" + +#: src/reference/guide/index.md:16 +msgid "It is _highly recommended_ to read the Getting Started Guide!" +msgstr "" diff --git a/po/summary/getting-started/basic-tasks.ja.po b/po/summary/getting-started/basic-tasks.ja.po new file mode 100644 index 00000000..54208414 --- /dev/null +++ b/po/summary/getting-started/basic-tasks.ja.po @@ -0,0 +1,130 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/basic-tasks.md:3 +msgid "Basic tasks" +msgstr "" + +#: src/reference/guide/basic-tasks.md:6 +msgid "" +"This page describes how to use sbt once you have set up your project. This " +"page assumes you've read [sbt components](./sbt-components.md)." +msgstr "" + +#: src/reference/guide/basic-tasks.md:9 +msgid "" +"If you pull a repository that uses sbt, it's fairly easy to get started. " +"First, get the package from GitHub, or some other repository." +msgstr "" + +#: src/reference/guide/basic-tasks.md:17 +msgid "sbt shell with sbtn" +msgstr "" + +#: src/reference/guide/basic-tasks.md:19 +msgid "" +"As mentioned in [sbt components](./sbt-components.md), start an sbt shell:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:25 src/reference/guide/basic-tasks.md:107 +#: src/reference/guide/basic-tasks.md:151 +msgid "This should display something like the following:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:43 +msgid "projects command" +msgstr "" + +#: src/reference/guide/basic-tasks.md:46 +msgid "" +"Let's explore the build by listing out the subprojects with `projects` " +"command:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:59 +msgid "" +"This shows that this build has 6 subprojects, including the current " +"subproject called `root`." +msgstr "" + +#: src/reference/guide/basic-tasks.md:61 +msgid "tasks command" +msgstr "" + +#: src/reference/guide/basic-tasks.md:64 +msgid "" +"Similarly, we can list the tasks availble to this build using `tasks` " +"command:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:99 +msgid "compile" +msgstr "" + +#: src/reference/guide/basic-tasks.md:101 +msgid "" +"The `compile` tasks compiles the sources, after resolving and downloading " +"the library dependendies." +msgstr "" + +#: src/reference/guide/basic-tasks.md:115 +msgid "run" +msgstr "" + +#: src/reference/guide/basic-tasks.md:117 +msgid "" +"The `run` task runs the main class for the subproject. In the sbt shell, " +"type `math/run`:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:124 +msgid "" +"`math/run` means `run` task, scoped to `math` subproject. This should " +"display something like the following:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:141 +msgid "Enter `1` at the prompt." +msgstr "" + +#: src/reference/guide/basic-tasks.md:143 +msgid "testQuick" +msgstr "" + +#: src/reference/guide/basic-tasks.md:145 +msgid "" +"The `testQuick` task tests either the tests that failed before, were not " +"run, or whose transitive dependencies changed." +msgstr "" + +#: src/reference/guide/basic-tasks.md:170 +msgid "Watch (tilde) command" +msgstr "" + +#: src/reference/guide/basic-tasks.md:173 +msgid "" +"To speed up your edit-compile-test cycle, you can ask sbt to automatically " +"recompile or run tests whenever you save a source file." +msgstr "" + +#: src/reference/guide/basic-tasks.md:176 +msgid "" +"Make a command run when one or more source files change by prefixing the " +"command with `~`. For example, in sbt shell try:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:183 +msgid "" +"Press enter to stop watching for changes. You can use the `~` prefix with " +"either sbt shell or batch mode." +msgstr "" diff --git a/po/summary/getting-started/basic-tasks.zh-cn.po b/po/summary/getting-started/basic-tasks.zh-cn.po new file mode 100644 index 00000000..d158365b --- /dev/null +++ b/po/summary/getting-started/basic-tasks.zh-cn.po @@ -0,0 +1,130 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/basic-tasks.md:3 +msgid "Basic tasks" +msgstr "" + +#: src/reference/guide/basic-tasks.md:6 +msgid "" +"This page describes how to use sbt once you have set up your project. This " +"page assumes you've read [sbt components](./sbt-components.md)." +msgstr "" + +#: src/reference/guide/basic-tasks.md:9 +msgid "" +"If you pull a repository that uses sbt, it's fairly easy to get started. " +"First, get the package from GitHub, or some other repository." +msgstr "" + +#: src/reference/guide/basic-tasks.md:17 +msgid "sbt shell with sbtn" +msgstr "" + +#: src/reference/guide/basic-tasks.md:19 +msgid "" +"As mentioned in [sbt components](./sbt-components.md), start an sbt shell:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:25 src/reference/guide/basic-tasks.md:107 +#: src/reference/guide/basic-tasks.md:151 +msgid "This should display something like the following:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:43 +msgid "projects command" +msgstr "" + +#: src/reference/guide/basic-tasks.md:46 +msgid "" +"Let's explore the build by listing out the subprojects with `projects` " +"command:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:59 +msgid "" +"This shows that this build has 6 subprojects, including the current " +"subproject called `root`." +msgstr "" + +#: src/reference/guide/basic-tasks.md:61 +msgid "tasks command" +msgstr "" + +#: src/reference/guide/basic-tasks.md:64 +msgid "" +"Similarly, we can list the tasks availble to this build using `tasks` " +"command:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:99 +msgid "compile" +msgstr "" + +#: src/reference/guide/basic-tasks.md:101 +msgid "" +"The `compile` tasks compiles the sources, after resolving and downloading " +"the library dependendies." +msgstr "" + +#: src/reference/guide/basic-tasks.md:115 +msgid "run" +msgstr "" + +#: src/reference/guide/basic-tasks.md:117 +msgid "" +"The `run` task runs the main class for the subproject. In the sbt shell, " +"type `math/run`:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:124 +msgid "" +"`math/run` means `run` task, scoped to `math` subproject. This should " +"display something like the following:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:141 +msgid "Enter `1` at the prompt." +msgstr "" + +#: src/reference/guide/basic-tasks.md:143 +msgid "testQuick" +msgstr "" + +#: src/reference/guide/basic-tasks.md:145 +msgid "" +"The `testQuick` task tests either the tests that failed before, were not " +"run, or whose transitive dependencies changed." +msgstr "" + +#: src/reference/guide/basic-tasks.md:170 +msgid "Watch (tilde) command" +msgstr "" + +#: src/reference/guide/basic-tasks.md:173 +msgid "" +"To speed up your edit-compile-test cycle, you can ask sbt to automatically " +"recompile or run tests whenever you save a source file." +msgstr "" + +#: src/reference/guide/basic-tasks.md:176 +msgid "" +"Make a command run when one or more source files change by prefixing the " +"command with `~`. For example, in sbt shell try:" +msgstr "" + +#: src/reference/guide/basic-tasks.md:183 +msgid "" +"Press enter to stop watching for changes. You can use the `~` prefix with " +"either sbt shell or batch mode." +msgstr "" diff --git a/po/summary/getting-started/build-definition-basics.ja.po b/po/summary/getting-started/build-definition-basics.ja.po new file mode 100644 index 00000000..697ed6e1 --- /dev/null +++ b/po/summary/getting-started/build-definition-basics.ja.po @@ -0,0 +1,201 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/build-definition-basics.md:1 +msgid "Build definition basics" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:4 +msgid "This page discusses the `build.sbt` build definition." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:6 +msgid "What is a build definition?" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:8 +msgid "" +"A _build definition_ is defined in `build.sbt`, and it consists of a set of " +"projects (of type [`Project`](../api/sbt/Project.html)). Because the term " +"_project_ can be ambiguous, we often call it a _subproject_ in this guide." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:13 +msgid "" +"For instance, in `build.sbt` you define the subproject located in the " +"current directory like this:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:17 +#: src/reference/guide/build-definition-basics.md:26 +#: src/reference/guide/build-definition-basics.md:88 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:18 +#: src/reference/guide/build-definition-basics.md:27 +msgid "\"Hello\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:21 +msgid "or more explicitly:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:24 +msgid "\".\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:31 +msgid "" +"Each subproject is configured by key-value pairs. For example, one key is " +"`name` and it maps to a string value, the name of your subproject. The key-" +"value pairs are listed under the `.settings(...)` method." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:36 +msgid "build.sbt DSL" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:39 +msgid "" +"`build.sbt` defines subprojects using a DSL called build.sbt DSL, which is " +"based on Scala. Initially you can use build.sbt DSL, like a YAML file, " +"declaring just `scalaVersion` and `libraryDependencies`, but it can supports " +"more features to keep the build definition organized as the build grows " +"larger." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:43 +msgid "Typed setting expression" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:45 +msgid "Let's take a closer look at the `build.sbt` DSL:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:48 +msgid "\"com.example\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:53 +msgid "" +"Each entry is called a _setting expression_. Some among them are also called " +"task expressions. We will see more on the difference later in this page." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:57 +msgid "A setting expression consists of three parts:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:59 +msgid "Left-hand side is a _key_." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:60 +msgid "_Operator_, which in this case is `:=`" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:61 +msgid "Right-hand side is called the _body_, or the _setting/task body_." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:63 +msgid "" +"On the left-hand side, `name`, `version`, and `scalaVersion` are _keys_. A " +"key is an instance of [`SettingKey[A]`](../../api/sbt/SettingKey.html), " +"[`TaskKey[A]`](../../api/sbt/TaskKey.html), or [`InputKey[A]`](../../api/sbt/" +"InputKey.html) where `A` is the expected value type." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:70 +msgid "" +"Because key `name` is typed to `SettingKey[String]`, the `:=` operator on " +"`name` is also typed specifically to `String`. If you use the wrong value " +"type, the build definition will not compile:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:75 +msgid "// will not compile" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:78 +msgid "`val`s and `lazy val`s" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:80 +msgid "" +"To avoid repeating the same information, like the version number for a " +"library, `build.sbt` may be interspersed with `val`s, `lazy val`s, and " +"`def`s." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:84 +#: src/reference/guide/build-definition-basics.md:102 +#: src/reference/guide/build-definition-basics.md:111 +msgid "\"0.2.0\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:85 +#: src/reference/guide/build-definition-basics.md:86 +#: src/reference/guide/build-definition-basics.md:100 +#: src/reference/guide/build-definition-basics.md:101 +#: src/reference/guide/build-definition-basics.md:109 +#: src/reference/guide/build-definition-basics.md:110 +msgid "\"org.scala-lang\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:85 +#: src/reference/guide/build-definition-basics.md:100 +#: src/reference/guide/build-definition-basics.md:109 +msgid "\"toolkit\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:86 +#: src/reference/guide/build-definition-basics.md:101 +#: src/reference/guide/build-definition-basics.md:110 +msgid "\"toolkit-test\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:93 +msgid "" +"In the above, `val` defines a variable, which are initialized from the top " +"to bottom. This means that `toolkitV` must be defined before it is " +"referenced." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:96 +msgid "Here's a bad example:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:99 +msgid "// bad example" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:100 +#: src/reference/guide/build-definition-basics.md:101 +msgid "// uninitialized reference!" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:105 +msgid "" +"sbt will fail to load with `java.lang.ExceptionInInitializerError` cased by " +"a `NullPointerException` if your build.sbt contains an uninitialized forward " +"reference. One way to let the compiler fix this is to define the variables " +"as `lazy`:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:114 +msgid "" +"Some frown upon gratuitous `lazy val`s, but Scala 3 lazy vals are efficient, " +"and we think it makes the build definition more robust for copy-pasting." +msgstr "" diff --git a/po/summary/getting-started/build-definition-basics.zh-cn.po b/po/summary/getting-started/build-definition-basics.zh-cn.po new file mode 100644 index 00000000..7ec44097 --- /dev/null +++ b/po/summary/getting-started/build-definition-basics.zh-cn.po @@ -0,0 +1,201 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/build-definition-basics.md:1 +msgid "Build definition basics" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:4 +msgid "This page discusses the `build.sbt` build definition." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:6 +msgid "What is a build definition?" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:8 +msgid "" +"A _build definition_ is defined in `build.sbt`, and it consists of a set of " +"projects (of type [`Project`](../api/sbt/Project.html)). Because the term " +"_project_ can be ambiguous, we often call it a _subproject_ in this guide." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:13 +msgid "" +"For instance, in `build.sbt` you define the subproject located in the " +"current directory like this:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:17 +#: src/reference/guide/build-definition-basics.md:26 +#: src/reference/guide/build-definition-basics.md:88 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:18 +#: src/reference/guide/build-definition-basics.md:27 +msgid "\"Hello\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:21 +msgid "or more explicitly:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:24 +msgid "\".\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:31 +msgid "" +"Each subproject is configured by key-value pairs. For example, one key is " +"`name` and it maps to a string value, the name of your subproject. The key-" +"value pairs are listed under the `.settings(...)` method." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:36 +msgid "build.sbt DSL" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:39 +msgid "" +"`build.sbt` defines subprojects using a DSL called build.sbt DSL, which is " +"based on Scala. Initially you can use build.sbt DSL, like a YAML file, " +"declaring just `scalaVersion` and `libraryDependencies`, but it can supports " +"more features to keep the build definition organized as the build grows " +"larger." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:43 +msgid "Typed setting expression" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:45 +msgid "Let's take a closer look at the `build.sbt` DSL:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:48 +msgid "\"com.example\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:53 +msgid "" +"Each entry is called a _setting expression_. Some among them are also called " +"task expressions. We will see more on the difference later in this page." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:57 +msgid "A setting expression consists of three parts:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:59 +msgid "Left-hand side is a _key_." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:60 +msgid "_Operator_, which in this case is `:=`" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:61 +msgid "Right-hand side is called the _body_, or the _setting/task body_." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:63 +msgid "" +"On the left-hand side, `name`, `version`, and `scalaVersion` are _keys_. A " +"key is an instance of [`SettingKey[A]`](../../api/sbt/SettingKey.html), " +"[`TaskKey[A]`](../../api/sbt/TaskKey.html), or [`InputKey[A]`](../../api/sbt/" +"InputKey.html) where `A` is the expected value type." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:70 +msgid "" +"Because key `name` is typed to `SettingKey[String]`, the `:=` operator on " +"`name` is also typed specifically to `String`. If you use the wrong value " +"type, the build definition will not compile:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:75 +msgid "// will not compile" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:78 +msgid "`val`s and `lazy val`s" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:80 +msgid "" +"To avoid repeating the same information, like the version number for a " +"library, `build.sbt` may be interspersed with `val`s, `lazy val`s, and " +"`def`s." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:84 +#: src/reference/guide/build-definition-basics.md:102 +#: src/reference/guide/build-definition-basics.md:111 +msgid "\"0.2.0\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:85 +#: src/reference/guide/build-definition-basics.md:86 +#: src/reference/guide/build-definition-basics.md:100 +#: src/reference/guide/build-definition-basics.md:101 +#: src/reference/guide/build-definition-basics.md:109 +#: src/reference/guide/build-definition-basics.md:110 +msgid "\"org.scala-lang\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:85 +#: src/reference/guide/build-definition-basics.md:100 +#: src/reference/guide/build-definition-basics.md:109 +msgid "\"toolkit\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:86 +#: src/reference/guide/build-definition-basics.md:101 +#: src/reference/guide/build-definition-basics.md:110 +msgid "\"toolkit-test\"" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:93 +msgid "" +"In the above, `val` defines a variable, which are initialized from the top " +"to bottom. This means that `toolkitV` must be defined before it is " +"referenced." +msgstr "" + +#: src/reference/guide/build-definition-basics.md:96 +msgid "Here's a bad example:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:99 +msgid "// bad example" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:100 +#: src/reference/guide/build-definition-basics.md:101 +msgid "// uninitialized reference!" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:105 +msgid "" +"sbt will fail to load with `java.lang.ExceptionInInitializerError` cased by " +"a `NullPointerException` if your build.sbt contains an uninitialized forward " +"reference. One way to let the compiler fix this is to define the variables " +"as `lazy`:" +msgstr "" + +#: src/reference/guide/build-definition-basics.md:114 +msgid "" +"Some frown upon gratuitous `lazy val`s, but Scala 3 lazy vals are efficient, " +"and we think it makes the build definition more robust for copy-pasting." +msgstr "" diff --git a/po/summary/getting-started/build-layout.ja.po b/po/summary/getting-started/build-layout.ja.po new file mode 100644 index 00000000..0fe8a789 --- /dev/null +++ b/po/summary/getting-started/build-layout.ja.po @@ -0,0 +1,116 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/build-layout.md:6 +msgid "Build layout" +msgstr "" + +#: src/reference/guide/build-layout.md:9 +msgid "" +"sbt uses conventions for file placement to make it easy to dive into a new " +"sbt build:" +msgstr "" + +#: src/reference/guide/build-layout.md:40 +msgid "The local root directory `.` is the starting point of your build." +msgstr "" + +#: src/reference/guide/build-layout.md:41 +msgid "" +"In sbt's terminology, the _base directory_ is the directory containing the " +"subproject. In the above, `.`, `subproject-core`, and `subproject-util` are " +"base directories." +msgstr "" + +#: src/reference/guide/build-layout.md:42 +msgid "" +"The build definition is described in `build.sbt` (actually any files named " +"`*.sbt`) in the local root directory." +msgstr "" + +#: src/reference/guide/build-layout.md:43 +msgid "The sbt version is tracked in `project/build.properties`." +msgstr "" + +#: src/reference/guide/build-layout.md:44 +msgid "" +"Generated files (compiled classes, packaged jars, managed files, caches, and " +"documentation) will be written to the `target` directory by default." +msgstr "" + +#: src/reference/guide/build-layout.md:47 +msgid "Build support files" +msgstr "" + +#: src/reference/guide/build-layout.md:49 +msgid "" +"In addition to `build.sbt`, `project` directory can contain `.scala` files " +"that define helper objects and one-off plugins. See [organizing the build]" +"(Organizing-Build.html) for more." +msgstr "" + +#: src/reference/guide/build-layout.md:63 +msgid "" +"You may see `.sbt` files inside `project/` but they are not equivalent to `." +"sbt` files in the project's base directory. Explaining this will come [later]" +"(Organizing-Build.html), since you'll need some background information first." +msgstr "" + +#: src/reference/guide/build-layout.md:67 +msgid "Source code" +msgstr "" + +#: src/reference/guide/build-layout.md:69 +msgid "" +"sbt uses the same directory structure as [Maven](https://maven.apache.org/) " +"for source files by default (all paths are relative to the base directory):" +msgstr "" + +#: src/reference/guide/build-layout.md:89 +msgid "" +"Other directories in `src/` will be ignored. Additionally, all hidden " +"directories will be ignored." +msgstr "" + +#: src/reference/guide/build-layout.md:92 +msgid "" +"Source code can be placed in the project's base directory as `hello/app." +"scala`, which may be OK for small projects, though for normal projects " +"people tend to keep the projects in the `src/main/` directory to keep things " +"neat. The fact that you can place `*.scala` source code in the base " +"directory might seem like an odd trick, but this fact becomes relevant " +"[later](Organizing-Build.html)." +msgstr "" + +#: src/reference/guide/build-layout.md:99 +msgid "Configuring version control" +msgstr "" + +#: src/reference/guide/build-layout.md:101 +msgid "" +"Your `.gitignore` (or equivalent for other version control systems) should " +"contain:" +msgstr "" + +#: src/reference/guide/build-layout.md:108 +msgid "" +"Note that this deliberately has a trailing `/` (to match only directories) " +"and it deliberately has no leading `/` (to match `project/target/` in " +"addition to plain `target/`)." +msgstr "" + +#: src/reference/guide/build-layout.md:112 +msgid "" +"sbt automates building, testing, and deployment of your subprojects from " +"information in the build definition." +msgstr "" diff --git a/po/summary/getting-started/build-layout.zh-cn.po b/po/summary/getting-started/build-layout.zh-cn.po new file mode 100644 index 00000000..675b4d9e --- /dev/null +++ b/po/summary/getting-started/build-layout.zh-cn.po @@ -0,0 +1,116 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/build-layout.md:6 +msgid "Build layout" +msgstr "" + +#: src/reference/guide/build-layout.md:9 +msgid "" +"sbt uses conventions for file placement to make it easy to dive into a new " +"sbt build:" +msgstr "" + +#: src/reference/guide/build-layout.md:40 +msgid "The local root directory `.` is the starting point of your build." +msgstr "" + +#: src/reference/guide/build-layout.md:41 +msgid "" +"In sbt's terminology, the _base directory_ is the directory containing the " +"subproject. In the above, `.`, `subproject-core`, and `subproject-util` are " +"base directories." +msgstr "" + +#: src/reference/guide/build-layout.md:42 +msgid "" +"The build definition is described in `build.sbt` (actually any files named " +"`*.sbt`) in the local root directory." +msgstr "" + +#: src/reference/guide/build-layout.md:43 +msgid "The sbt version is tracked in `project/build.properties`." +msgstr "" + +#: src/reference/guide/build-layout.md:44 +msgid "" +"Generated files (compiled classes, packaged jars, managed files, caches, and " +"documentation) will be written to the `target` directory by default." +msgstr "" + +#: src/reference/guide/build-layout.md:47 +msgid "Build support files" +msgstr "" + +#: src/reference/guide/build-layout.md:49 +msgid "" +"In addition to `build.sbt`, `project` directory can contain `.scala` files " +"that define helper objects and one-off plugins. See [organizing the build]" +"(Organizing-Build.html) for more." +msgstr "" + +#: src/reference/guide/build-layout.md:63 +msgid "" +"You may see `.sbt` files inside `project/` but they are not equivalent to `." +"sbt` files in the project's base directory. Explaining this will come [later]" +"(Organizing-Build.html), since you'll need some background information first." +msgstr "" + +#: src/reference/guide/build-layout.md:67 +msgid "Source code" +msgstr "" + +#: src/reference/guide/build-layout.md:69 +msgid "" +"sbt uses the same directory structure as [Maven](https://maven.apache.org/) " +"for source files by default (all paths are relative to the base directory):" +msgstr "" + +#: src/reference/guide/build-layout.md:89 +msgid "" +"Other directories in `src/` will be ignored. Additionally, all hidden " +"directories will be ignored." +msgstr "" + +#: src/reference/guide/build-layout.md:92 +msgid "" +"Source code can be placed in the project's base directory as `hello/app." +"scala`, which may be OK for small projects, though for normal projects " +"people tend to keep the projects in the `src/main/` directory to keep things " +"neat. The fact that you can place `*.scala` source code in the base " +"directory might seem like an odd trick, but this fact becomes relevant " +"[later](Organizing-Build.html)." +msgstr "" + +#: src/reference/guide/build-layout.md:99 +msgid "Configuring version control" +msgstr "" + +#: src/reference/guide/build-layout.md:101 +msgid "" +"Your `.gitignore` (or equivalent for other version control systems) should " +"contain:" +msgstr "" + +#: src/reference/guide/build-layout.md:108 +msgid "" +"Note that this deliberately has a trailing `/` (to match only directories) " +"and it deliberately has no leading `/` (to match `project/target/` in " +"addition to plain `target/`)." +msgstr "" + +#: src/reference/guide/build-layout.md:112 +msgid "" +"sbt automates building, testing, and deployment of your subprojects from " +"information in the build definition." +msgstr "" diff --git a/po/summary/getting-started/creating-a-new-build.ja.po b/po/summary/getting-started/creating-a-new-build.ja.po new file mode 100644 index 00000000..7d82b603 --- /dev/null +++ b/po/summary/getting-started/creating-a-new-build.ja.po @@ -0,0 +1,115 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/sbt-new.md:1 +msgid "Creating a new build" +msgstr "" + +#: src/reference/guide/sbt-new.md:4 +msgid "To start a new build with `sbt`, use `sbt new`." +msgstr "" + +#: src/reference/guide/sbt-new.md:29 +msgid "If you select \"a\", you will be prompted by more questions:" +msgstr "" + +#: src/reference/guide/sbt-new.md:37 +msgid "Hit return key to select the default values." +msgstr "" + +#: src/reference/guide/sbt-new.md:39 +msgid "" +"```\n" +"[info] Updated file /private/tmp/bar/project/build.properties: set sbt." +"version to 1.9.8\n" +"[info] welcome to sbt 1.9.8 (Azul Systems, Inc. Java 1.8.0_352)\n" +"....\n" +"[info] set current project to bar (in build file:/private/tmp/foo/)\n" +"[info] sbt server started at local:///Users/eed3si9n/.sbt/1.0/server/" +"d0ac1409c0117a949d47/sock\n" +"[info] started sbt server\n" +"sbt:bar> exit\n" +"[info] shutting down sbt server\n" +"```" +msgstr "" + +#: src/reference/guide/sbt-new.md:50 +msgid "Here are the files that are created by this template:" +msgstr "" + +#: src/reference/guide/sbt-new.md:69 +msgid "Let's take a look at the `build.sbt` file:" +msgstr "" + +#: src/reference/guide/sbt-new.md:72 +msgid "\"0.2.0\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:73 src/reference/guide/sbt-new.md:74 +msgid "\"org.scala-lang\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:73 +msgid "\"toolkit\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:74 +msgid "\"toolkit-test\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:76 +msgid "\"3.3.0\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:81 +msgid "" +"This is called a **build definition**, and it contains the information sbt " +"needs to compile your project. This is written in `.sbt` format, a subset of " +"Scala language." +msgstr "" + +#: src/reference/guide/sbt-new.md:83 +msgid "Here's what's in `src/main/scala/example/Main.scala`:" +msgstr "" + +#: src/reference/guide/sbt-new.md:89 +msgid "s\"Hello ${" +msgstr "" + +#: src/reference/guide/sbt-new.md:89 +msgid "}\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:92 +msgid "" +"This is a Hello world template. We can run it from the sbt shell by starting " +"`sbt --client` and typing `run ` inside the shell:" +msgstr "" + +#: src/reference/guide/sbt-new.md:107 +msgid "Giter8 templates" +msgstr "" + +#: src/reference/guide/sbt-new.md:109 +msgid "" +"In addition to a few `.local` templates, `sbt new` integrates with [Giter8]" +"(https://www.foundweekends.org/giter8/), and open templating system that " +"uses GitHub to host templates. For example, `scala/scala3.g8` is maintained " +"by the Scala team to create a new Scala 3 build:" +msgstr "" + +#: src/reference/guide/sbt-new.md:117 +msgid "" +"[Giter8 wiki](https://github.com/foundweekends/giter8/wiki/giter8-templates) " +"lists over 100 templates that can jump start your new build." +msgstr "" diff --git a/po/summary/getting-started/creating-a-new-build.zh-cn.po b/po/summary/getting-started/creating-a-new-build.zh-cn.po new file mode 100644 index 00000000..1cc3fbb6 --- /dev/null +++ b/po/summary/getting-started/creating-a-new-build.zh-cn.po @@ -0,0 +1,115 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/sbt-new.md:1 +msgid "Creating a new build" +msgstr "" + +#: src/reference/guide/sbt-new.md:4 +msgid "To start a new build with `sbt`, use `sbt new`." +msgstr "" + +#: src/reference/guide/sbt-new.md:29 +msgid "If you select \"a\", you will be prompted by more questions:" +msgstr "" + +#: src/reference/guide/sbt-new.md:37 +msgid "Hit return key to select the default values." +msgstr "" + +#: src/reference/guide/sbt-new.md:39 +msgid "" +"```\n" +"[info] Updated file /private/tmp/bar/project/build.properties: set sbt." +"version to 1.9.8\n" +"[info] welcome to sbt 1.9.8 (Azul Systems, Inc. Java 1.8.0_352)\n" +"....\n" +"[info] set current project to bar (in build file:/private/tmp/foo/)\n" +"[info] sbt server started at local:///Users/eed3si9n/.sbt/1.0/server/" +"d0ac1409c0117a949d47/sock\n" +"[info] started sbt server\n" +"sbt:bar> exit\n" +"[info] shutting down sbt server\n" +"```" +msgstr "" + +#: src/reference/guide/sbt-new.md:50 +msgid "Here are the files that are created by this template:" +msgstr "" + +#: src/reference/guide/sbt-new.md:69 +msgid "Let's take a look at the `build.sbt` file:" +msgstr "" + +#: src/reference/guide/sbt-new.md:72 +msgid "\"0.2.0\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:73 src/reference/guide/sbt-new.md:74 +msgid "\"org.scala-lang\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:73 +msgid "\"toolkit\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:74 +msgid "\"toolkit-test\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:76 +msgid "\"3.3.0\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:81 +msgid "" +"This is called a **build definition**, and it contains the information sbt " +"needs to compile your project. This is written in `.sbt` format, a subset of " +"Scala language." +msgstr "" + +#: src/reference/guide/sbt-new.md:83 +msgid "Here's what's in `src/main/scala/example/Main.scala`:" +msgstr "" + +#: src/reference/guide/sbt-new.md:89 +msgid "s\"Hello ${" +msgstr "" + +#: src/reference/guide/sbt-new.md:89 +msgid "}\"" +msgstr "" + +#: src/reference/guide/sbt-new.md:92 +msgid "" +"This is a Hello world template. We can run it from the sbt shell by starting " +"`sbt --client` and typing `run ` inside the shell:" +msgstr "" + +#: src/reference/guide/sbt-new.md:107 +msgid "Giter8 templates" +msgstr "" + +#: src/reference/guide/sbt-new.md:109 +msgid "" +"In addition to a few `.local` templates, `sbt new` integrates with [Giter8]" +"(https://www.foundweekends.org/giter8/), and open templating system that " +"uses GitHub to host templates. For example, `scala/scala3.g8` is maintained " +"by the Scala team to create a new Scala 3 build:" +msgstr "" + +#: src/reference/guide/sbt-new.md:117 +msgid "" +"[Giter8 wiki](https://github.com/foundweekends/giter8/wiki/giter8-templates) " +"lists over 100 templates that can jump start your new build." +msgstr "" diff --git a/po/summary/getting-started/library-dependency-basics.ja.po b/po/summary/getting-started/library-dependency-basics.ja.po new file mode 100644 index 00000000..6b2ef948 --- /dev/null +++ b/po/summary/getting-started/library-dependency-basics.ja.po @@ -0,0 +1,157 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/library-dependency-basics.md:1 +msgid "Library dependency basics" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:4 +msgid "" +"This page explains the basics of library dependency management using sbt." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:6 +msgid "" +"sbt uses [Coursier](https://get-coursier.io/) to implement managed " +"dependencies, so if you're familiar with package managers like Coursier, " +"npm, PIP, etc you won't have much trouble." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:10 +msgid "The `libraryDependencies` key" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:13 +msgid "" +"Declaring a dependency looks like this, where `groupId`, `artifactId`, and " +"`revision` are strings:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:20 +msgid "" +"or like this, where `configuration` can be a string or a `Configuration` " +"value (such as `Test`):" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:26 +msgid "When you run:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:32 +msgid "" +"sbt will automatically resolve the dependencies and download the JAR files." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:34 +msgid "Getting the right Scala version with `%%`" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:36 +msgid "" +"If you use `organization %% moduleName % version` rather than `organization " +"% moduleName % version` (the difference is the double `%%` after the " +"`organization`), sbt will add your project's binary Scala version to the " +"artifact name. This is just a shortcut. You could write this without the `%" +"%`:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:42 +#: src/reference/guide/library-dependency-basics.md:49 +#: src/reference/guide/library-dependency-basics.md:74 +#: src/reference/guide/library-dependency-basics.md:75 +msgid "\"org.scala-lang\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:42 +msgid "\"toolkit_3\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:42 +#: src/reference/guide/library-dependency-basics.md:49 +#: src/reference/guide/library-dependency-basics.md:71 +msgid "\"0.2.0\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:45 +msgid "" +"Assuming the `scalaVersion` for your build is 3.x, the following is " +"identical (note the double `%%` after `\"toolkit\"`):" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:49 +#: src/reference/guide/library-dependency-basics.md:74 +msgid "\"toolkit\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:52 +msgid "" +"The idea is that many dependencies are compiled for multiple Scala versions, " +"and you'd like to get the one that matches your project to ensure binary " +"compatibility." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:56 +msgid "Tracking dependencies in one place" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:59 +msgid "" +"`.scala` files under `project` becomes part of the build definition, which " +"we can use to track dependencies in one place by creating a file named " +"`project/Dependencies.scala`." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:65 +msgid "// place this file at project/Dependencies.scala" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:70 +msgid "// versions" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:73 +msgid "// libraries" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:75 +msgid "\"toolkit-test\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:79 +msgid "" +"The `Dependencies` object will be available in `build.sbt`. To make it " +"easier to use the `val`s defined in it, import `Dependencies.*` in your " +"build.sbt file." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:85 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:86 +msgid "\"something\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:91 +msgid "Viewing library dependencies" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:94 +msgid "" +"Type in `Compile/dependencyTree` in the sbt shell to show the library " +"dependency tree, including the transitive dependencies:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:100 +msgid "This should display something like the following:" +msgstr "" diff --git a/po/summary/getting-started/library-dependency-basics.zh-cn.po b/po/summary/getting-started/library-dependency-basics.zh-cn.po new file mode 100644 index 00000000..0e1bb7eb --- /dev/null +++ b/po/summary/getting-started/library-dependency-basics.zh-cn.po @@ -0,0 +1,157 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/library-dependency-basics.md:1 +msgid "Library dependency basics" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:4 +msgid "" +"This page explains the basics of library dependency management using sbt." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:6 +msgid "" +"sbt uses [Coursier](https://get-coursier.io/) to implement managed " +"dependencies, so if you're familiar with package managers like Coursier, " +"npm, PIP, etc you won't have much trouble." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:10 +msgid "The `libraryDependencies` key" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:13 +msgid "" +"Declaring a dependency looks like this, where `groupId`, `artifactId`, and " +"`revision` are strings:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:20 +msgid "" +"or like this, where `configuration` can be a string or a `Configuration` " +"value (such as `Test`):" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:26 +msgid "When you run:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:32 +msgid "" +"sbt will automatically resolve the dependencies and download the JAR files." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:34 +msgid "Getting the right Scala version with `%%`" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:36 +msgid "" +"If you use `organization %% moduleName % version` rather than `organization " +"% moduleName % version` (the difference is the double `%%` after the " +"`organization`), sbt will add your project's binary Scala version to the " +"artifact name. This is just a shortcut. You could write this without the `%" +"%`:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:42 +#: src/reference/guide/library-dependency-basics.md:49 +#: src/reference/guide/library-dependency-basics.md:74 +#: src/reference/guide/library-dependency-basics.md:75 +msgid "\"org.scala-lang\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:42 +msgid "\"toolkit_3\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:42 +#: src/reference/guide/library-dependency-basics.md:49 +#: src/reference/guide/library-dependency-basics.md:71 +msgid "\"0.2.0\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:45 +msgid "" +"Assuming the `scalaVersion` for your build is 3.x, the following is " +"identical (note the double `%%` after `\"toolkit\"`):" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:49 +#: src/reference/guide/library-dependency-basics.md:74 +msgid "\"toolkit\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:52 +msgid "" +"The idea is that many dependencies are compiled for multiple Scala versions, " +"and you'd like to get the one that matches your project to ensure binary " +"compatibility." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:56 +msgid "Tracking dependencies in one place" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:59 +msgid "" +"`.scala` files under `project` becomes part of the build definition, which " +"we can use to track dependencies in one place by creating a file named " +"`project/Dependencies.scala`." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:65 +msgid "// place this file at project/Dependencies.scala" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:70 +msgid "// versions" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:73 +msgid "// libraries" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:75 +msgid "\"toolkit-test\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:79 +msgid "" +"The `Dependencies` object will be available in `build.sbt`. To make it " +"easier to use the `val`s defined in it, import `Dependencies.*` in your " +"build.sbt file." +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:85 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:86 +msgid "\"something\"" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:91 +msgid "Viewing library dependencies" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:94 +msgid "" +"Type in `Compile/dependencyTree` in the sbt shell to show the library " +"dependency tree, including the transitive dependencies:" +msgstr "" + +#: src/reference/guide/library-dependency-basics.md:100 +msgid "This should display something like the following:" +msgstr "" diff --git a/po/summary/getting-started/multi-project-basics.ja.po b/po/summary/getting-started/multi-project-basics.ja.po new file mode 100644 index 00000000..499fe254 --- /dev/null +++ b/po/summary/getting-started/multi-project-basics.ja.po @@ -0,0 +1,55 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/multi-project-basics.md:7 +msgid "Multi project basics" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:10 +msgid "" +"While a simple program can start out as a single-project build, it's more " +"common for a build to split into smaller, multiple subprojects." +msgstr "" + +#: src/reference/guide/multi-project-basics.md:13 +msgid "" +"Each subproject in a build has its own source directories, generates its own " +"JAR file when you run `packageBin`, and in general works like any other " +"project." +msgstr "" + +#: src/reference/guide/multi-project-basics.md:17 +msgid "" +"A project is defined by declaring a lazy val of type [Project](../../api/sbt/" +"Project.html). For example, :" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:21 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:23 +#: src/reference/guide/multi-project-basics.md:25 +msgid "\"core\"" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:28 +#: src/reference/guide/multi-project-basics.md:31 +msgid "\"util\"" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:35 +msgid "" +"The name of the val is used as the subproject's ID, which is used to refer " +"to the subproject at the sbt shell." +msgstr "" diff --git a/po/summary/getting-started/multi-project-basics.zh-cn.po b/po/summary/getting-started/multi-project-basics.zh-cn.po new file mode 100644 index 00000000..3696caa1 --- /dev/null +++ b/po/summary/getting-started/multi-project-basics.zh-cn.po @@ -0,0 +1,55 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/multi-project-basics.md:7 +msgid "Multi project basics" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:10 +msgid "" +"While a simple program can start out as a single-project build, it's more " +"common for a build to split into smaller, multiple subprojects." +msgstr "" + +#: src/reference/guide/multi-project-basics.md:13 +msgid "" +"Each subproject in a build has its own source directories, generates its own " +"JAR file when you run `packageBin`, and in general works like any other " +"project." +msgstr "" + +#: src/reference/guide/multi-project-basics.md:17 +msgid "" +"A project is defined by declaring a lazy val of type [Project](../../api/sbt/" +"Project.html). For example, :" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:21 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:23 +#: src/reference/guide/multi-project-basics.md:25 +msgid "\"core\"" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:28 +#: src/reference/guide/multi-project-basics.md:31 +msgid "\"util\"" +msgstr "" + +#: src/reference/guide/multi-project-basics.md:35 +msgid "" +"The name of the val is used as the subproject's ID, which is used to refer " +"to the subproject at the sbt shell." +msgstr "" diff --git a/po/summary/getting-started/sbt-components.ja.po b/po/summary/getting-started/sbt-components.ja.po new file mode 100644 index 00000000..1e0a1df2 --- /dev/null +++ b/po/summary/getting-started/sbt-components.ja.po @@ -0,0 +1,177 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/sbt-components.md:1 +msgid "sbt components" +msgstr "" + +#: src/reference/guide/sbt-components.md:4 +msgid "sbt runner" +msgstr "" + +#: src/reference/guide/sbt-components.md:7 +msgid "" +"An sbt build is executed using `sbt` runner, also called \"sbt-the-shell-" +"script\" to distinguish from other components. It's important to note is " +"that sbt runner is designed to run **any version** of sbt." +msgstr "" + +#: src/reference/guide/sbt-components.md:9 +msgid "Specifying sbt version with project/build.properties" +msgstr "" + +#: src/reference/guide/sbt-components.md:11 +msgid "" +"sbt runner executes a subcomponent called sbt launcher, which reads `project/" +"build.properties` to determine the sbt version for the build, and downloads " +"the artifacts if they haven't been cached:" +msgstr "" + +#: src/reference/guide/sbt-components.md:17 +msgid "This means that:" +msgstr "" + +#: src/reference/guide/sbt-components.md:19 +msgid "" +"Anyone who checkouts your build would get the same sbt version, regardless " +"of _sbt runner_ they may have installed on their machines." +msgstr "" + +#: src/reference/guide/sbt-components.md:20 +msgid "" +"The change of sbt version can be tracked in a version control system, like " +"git." +msgstr "" + +#: src/reference/guide/sbt-components.md:22 +msgid "sbtn (`sbt --client`)" +msgstr "" + +#: src/reference/guide/sbt-components.md:24 +msgid "" +"sbtn (native thin client) is a subcomponent of sbt runner, called when you " +"pass `--client` flag to sbt runner, and is used to send commands to sbt " +"server. It is called sbtn because it is compiled to native code using " +"GraalVM native-image. The protocol between sbtn and sbt server is stable " +"enough that it should work between **most recent versions** of sbt." +msgstr "" + +#: src/reference/guide/sbt-components.md:26 +msgid "sbt server" +msgstr "" + +#: src/reference/guide/sbt-components.md:29 +msgid "" +"sbt server is the actual build tool whose version is specified using " +"`project/build.properties`. sbt server acts as a cashier to take commands " +"from sbtn and editors." +msgstr "" + +#: src/reference/guide/sbt-components.md:31 +msgid "Coursier" +msgstr "" + +#: src/reference/guide/sbt-components.md:33 +msgid "" +"sbt server runs [Couriser](https://get-coursier.io/) as a subcomponent to " +"resolve Scala library, Scala compiler, and any other library dependencies " +"your build needs." +msgstr "" + +#: src/reference/guide/sbt-components.md:35 +msgid "Zinc" +msgstr "" + +#: src/reference/guide/sbt-components.md:37 +msgid "" +"Zinc is the incremental compiler for Scala, developed and maintained by sbt " +"project. An often overlooked aspect of Zinc is that Zinc provides a stable " +"API to invoke **any modern versions** of Scala compiler. Combined with the " +"fact that Coursier can resolve any Scala version, with sbt we can invoke any " +"modern versions of Scala just by writing a single line `build.sbt`:" +msgstr "" + +#: src/reference/guide/sbt-components.md:41 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/sbt-components.md:44 +msgid "BSP server" +msgstr "" + +#: src/reference/guide/sbt-components.md:46 +msgid "" +"sbt server supports [Build Server Protocol (BSP)](https://build-server-" +"protocol.github.io/) to list build targets, build them, etc. This allows " +"IDEs like IntelliJ and Metals to communicate with a running sbt server " +"programmatically." +msgstr "" + +#: src/reference/guide/sbt-components.md:49 +msgid "Connecting to sbt server" +msgstr "" + +#: src/reference/guide/sbt-components.md:52 +msgid "Let's look at three ways of connecting to sbt server." +msgstr "" + +#: src/reference/guide/sbt-components.md:54 +msgid "sbt shell using sbtn" +msgstr "" + +#: src/reference/guide/sbt-components.md:56 +msgid "Run `sbt --client` in the working directory of your build:" +msgstr "" + +#: src/reference/guide/sbt-components.md:62 +msgid "This should display something like the following:" +msgstr "" + +#: src/reference/guide/sbt-components.md:78 +msgid "" +"Running sbt with no command line arguments starts sbt shell. sbt shell has a " +"command prompt (with tab completion and history!)." +msgstr "" + +#: src/reference/guide/sbt-components.md:80 +msgid "For example, you could type `compile` at the sbt shell:" +msgstr "" + +#: src/reference/guide/sbt-components.md:86 +msgid "To `compile` again, press up arrow and then enter." +msgstr "" + +#: src/reference/guide/sbt-components.md:88 +msgid "" +"To leave sbt shell, type `exit` or use `Ctrl-D` (Unix) or `Ctrl-Z` (Windows)." +msgstr "" + +#: src/reference/guide/sbt-components.md:90 +msgid "Batch mode using sbtn" +msgstr "" + +#: src/reference/guide/sbt-components.md:92 +msgid "You can also run sbt in batch mode:" +msgstr "" + +#: src/reference/guide/sbt-components.md:104 +msgid "Shutting down sbt server" +msgstr "" + +#: src/reference/guide/sbt-components.md:106 +msgid "Run the following to shutdown all sbt servers on your machine:" +msgstr "" + +#: src/reference/guide/sbt-components.md:112 +msgid "Or the following to shutdown just the current one:" +msgstr "" diff --git a/po/summary/getting-started/sbt-components.zh-cn.po b/po/summary/getting-started/sbt-components.zh-cn.po new file mode 100644 index 00000000..0e0956f4 --- /dev/null +++ b/po/summary/getting-started/sbt-components.zh-cn.po @@ -0,0 +1,177 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/sbt-components.md:1 +msgid "sbt components" +msgstr "" + +#: src/reference/guide/sbt-components.md:4 +msgid "sbt runner" +msgstr "" + +#: src/reference/guide/sbt-components.md:7 +msgid "" +"An sbt build is executed using `sbt` runner, also called \"sbt-the-shell-" +"script\" to distinguish from other components. It's important to note is " +"that sbt runner is designed to run **any version** of sbt." +msgstr "" + +#: src/reference/guide/sbt-components.md:9 +msgid "Specifying sbt version with project/build.properties" +msgstr "" + +#: src/reference/guide/sbt-components.md:11 +msgid "" +"sbt runner executes a subcomponent called sbt launcher, which reads `project/" +"build.properties` to determine the sbt version for the build, and downloads " +"the artifacts if they haven't been cached:" +msgstr "" + +#: src/reference/guide/sbt-components.md:17 +msgid "This means that:" +msgstr "" + +#: src/reference/guide/sbt-components.md:19 +msgid "" +"Anyone who checkouts your build would get the same sbt version, regardless " +"of _sbt runner_ they may have installed on their machines." +msgstr "" + +#: src/reference/guide/sbt-components.md:20 +msgid "" +"The change of sbt version can be tracked in a version control system, like " +"git." +msgstr "" + +#: src/reference/guide/sbt-components.md:22 +msgid "sbtn (`sbt --client`)" +msgstr "" + +#: src/reference/guide/sbt-components.md:24 +msgid "" +"sbtn (native thin client) is a subcomponent of sbt runner, called when you " +"pass `--client` flag to sbt runner, and is used to send commands to sbt " +"server. It is called sbtn because it is compiled to native code using " +"GraalVM native-image. The protocol between sbtn and sbt server is stable " +"enough that it should work between **most recent versions** of sbt." +msgstr "" + +#: src/reference/guide/sbt-components.md:26 +msgid "sbt server" +msgstr "" + +#: src/reference/guide/sbt-components.md:29 +msgid "" +"sbt server is the actual build tool whose version is specified using " +"`project/build.properties`. sbt server acts as a cashier to take commands " +"from sbtn and editors." +msgstr "" + +#: src/reference/guide/sbt-components.md:31 +msgid "Coursier" +msgstr "" + +#: src/reference/guide/sbt-components.md:33 +msgid "" +"sbt server runs [Couriser](https://get-coursier.io/) as a subcomponent to " +"resolve Scala library, Scala compiler, and any other library dependencies " +"your build needs." +msgstr "" + +#: src/reference/guide/sbt-components.md:35 +msgid "Zinc" +msgstr "" + +#: src/reference/guide/sbt-components.md:37 +msgid "" +"Zinc is the incremental compiler for Scala, developed and maintained by sbt " +"project. An often overlooked aspect of Zinc is that Zinc provides a stable " +"API to invoke **any modern versions** of Scala compiler. Combined with the " +"fact that Coursier can resolve any Scala version, with sbt we can invoke any " +"modern versions of Scala just by writing a single line `build.sbt`:" +msgstr "" + +#: src/reference/guide/sbt-components.md:41 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/guide/sbt-components.md:44 +msgid "BSP server" +msgstr "" + +#: src/reference/guide/sbt-components.md:46 +msgid "" +"sbt server supports [Build Server Protocol (BSP)](https://build-server-" +"protocol.github.io/) to list build targets, build them, etc. This allows " +"IDEs like IntelliJ and Metals to communicate with a running sbt server " +"programmatically." +msgstr "" + +#: src/reference/guide/sbt-components.md:49 +msgid "Connecting to sbt server" +msgstr "" + +#: src/reference/guide/sbt-components.md:52 +msgid "Let's look at three ways of connecting to sbt server." +msgstr "" + +#: src/reference/guide/sbt-components.md:54 +msgid "sbt shell using sbtn" +msgstr "" + +#: src/reference/guide/sbt-components.md:56 +msgid "Run `sbt --client` in the working directory of your build:" +msgstr "" + +#: src/reference/guide/sbt-components.md:62 +msgid "This should display something like the following:" +msgstr "" + +#: src/reference/guide/sbt-components.md:78 +msgid "" +"Running sbt with no command line arguments starts sbt shell. sbt shell has a " +"command prompt (with tab completion and history!)." +msgstr "" + +#: src/reference/guide/sbt-components.md:80 +msgid "For example, you could type `compile` at the sbt shell:" +msgstr "" + +#: src/reference/guide/sbt-components.md:86 +msgid "To `compile` again, press up arrow and then enter." +msgstr "" + +#: src/reference/guide/sbt-components.md:88 +msgid "" +"To leave sbt shell, type `exit` or use `Ctrl-D` (Unix) or `Ctrl-Z` (Windows)." +msgstr "" + +#: src/reference/guide/sbt-components.md:90 +msgid "Batch mode using sbtn" +msgstr "" + +#: src/reference/guide/sbt-components.md:92 +msgid "You can also run sbt in batch mode:" +msgstr "" + +#: src/reference/guide/sbt-components.md:104 +msgid "Shutting down sbt server" +msgstr "" + +#: src/reference/guide/sbt-components.md:106 +msgid "Run the following to shutdown all sbt servers on your machine:" +msgstr "" + +#: src/reference/guide/sbt-components.md:112 +msgid "Or the following to shutdown just the current one:" +msgstr "" diff --git a/po/summary/getting-started/sbt-with-ides.ja.po b/po/summary/getting-started/sbt-with-ides.ja.po new file mode 100644 index 00000000..86c4140c --- /dev/null +++ b/po/summary/getting-started/sbt-with-ides.ja.po @@ -0,0 +1,64 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/IDE.md:7 +msgid "sbt with IDEs" +msgstr "" + +#: src/reference/guide/IDE.md:10 +msgid "" +"While it's possible to code Scala with just an editor and sbt, most " +"programmers today use an Integrated Development Environment, or IDE for " +"short. Two of the popular IDEs in Scala are [Metals](https://scalameta.org/" +"metals/) and [IntelliJ IDEA](https://www.jetbrains.com/idea/), and they both " +"integrate with sbt builds." +msgstr "" + +#: src/reference/guide/IDE.md:14 +msgid "A few of the advantages of using the IDEs are:" +msgstr "" + +#: src/reference/guide/IDE.md:16 +msgid "Jump to definition" +msgstr "" + +#: src/reference/guide/IDE.md:17 +msgid "Code completion based on static types" +msgstr "" + +#: src/reference/guide/IDE.md:18 +msgid "Listing compilation errors, and jumping to the error positions" +msgstr "" + +#: src/reference/guide/IDE.md:19 +msgid "Interactive debugging" +msgstr "" + +#: src/reference/guide/IDE.md:21 +msgid "" +"Here are a few recipes on how to configure the IDEs to integrate with sbt:" +msgstr "" + +#: src/reference/guide/IDE.md:23 +msgid "" +"[Use sbt as Metals build server](../recipes/use-sbt-as-metals-build-server." +"md)" +msgstr "" + +#: src/reference/guide/IDE.md:24 +msgid "[Import to IntelliJ IDEA](../recipes/import-to-intellij.md)" +msgstr "" + +#: src/reference/guide/IDE.md:25 +msgid "[Use Neovim](../recipes/use-neovim.md)" +msgstr "" diff --git a/po/summary/getting-started/sbt-with-ides.zh-cn.po b/po/summary/getting-started/sbt-with-ides.zh-cn.po new file mode 100644 index 00000000..1fb7066a --- /dev/null +++ b/po/summary/getting-started/sbt-with-ides.zh-cn.po @@ -0,0 +1,64 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/IDE.md:7 +msgid "sbt with IDEs" +msgstr "" + +#: src/reference/guide/IDE.md:10 +msgid "" +"While it's possible to code Scala with just an editor and sbt, most " +"programmers today use an Integrated Development Environment, or IDE for " +"short. Two of the popular IDEs in Scala are [Metals](https://scalameta.org/" +"metals/) and [IntelliJ IDEA](https://www.jetbrains.com/idea/), and they both " +"integrate with sbt builds." +msgstr "" + +#: src/reference/guide/IDE.md:14 +msgid "A few of the advantages of using the IDEs are:" +msgstr "" + +#: src/reference/guide/IDE.md:16 +msgid "Jump to definition" +msgstr "" + +#: src/reference/guide/IDE.md:17 +msgid "Code completion based on static types" +msgstr "" + +#: src/reference/guide/IDE.md:18 +msgid "Listing compilation errors, and jumping to the error positions" +msgstr "" + +#: src/reference/guide/IDE.md:19 +msgid "Interactive debugging" +msgstr "" + +#: src/reference/guide/IDE.md:21 +msgid "" +"Here are a few recipes on how to configure the IDEs to integrate with sbt:" +msgstr "" + +#: src/reference/guide/IDE.md:23 +msgid "" +"[Use sbt as Metals build server](../recipes/use-sbt-as-metals-build-server." +"md)" +msgstr "" + +#: src/reference/guide/IDE.md:24 +msgid "[Import to IntelliJ IDEA](../recipes/import-to-intellij.md)" +msgstr "" + +#: src/reference/guide/IDE.md:25 +msgid "[Use Neovim](../recipes/use-neovim.md)" +msgstr "" diff --git a/po/summary/getting-started/why-sbt-exists.ja.po b/po/summary/getting-started/why-sbt-exists.ja.po new file mode 100644 index 00000000..2c8f2f9c --- /dev/null +++ b/po/summary/getting-started/why-sbt-exists.ja.po @@ -0,0 +1,146 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/why-sbt-exists.md:1 +msgid "Why sbt exists" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:4 +msgid "Preliminaries" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:7 +msgid "" +"In Scala, a library or a program is compiled using the Scala compiler, " +"`scalac`, as documented in the [Scala 3 Book](https://docs.scala-lang.org/" +"scala3/book/taste-hello-world.html):" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:10 +msgid "\"Hello, World!\"" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:19 +msgid "" +"This process gets tedious and slow if we were to invoke `scalac` directly " +"since we'd have to pass all the Scala source file names." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:21 +msgid "" +"Furthermore, most non-trivial programs will likely have library " +"dependencies, and will therefore also depend transitively on their " +"dependencies. This is doubly complicated for Scala ecosystem because we have " +"Scala 2.12, 2.13 ecosystem, Scala 3.x ecosystem, JVM, JS, and Native " +"platforms." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:24 +msgid "" +"Rather than working with JAR files and `scalac`, we can avoid manual toil by " +"introducing a higher-level subproject abstraction and by using a build tool." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:26 +msgid "sbt" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:29 +msgid "" +"_sbt_ is a simple build tool created for Scala and Java. It lets us declare " +"subprojects and their various dependencies and custom tasks to ensure that " +"we'll always get a fast, repeatable build." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:32 +msgid "To accomplish this goal, sbt does several things:" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:34 +msgid "The version of sbt itself is tracked in `project/build.properties`." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:35 +msgid "" +"Defines a domain-specific language (DSL) called **build.sbt DSL** that can " +"declare the Scala version and other subproject information in `build.sbt`." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:36 +msgid "Uses Coursier to fetch subprojects dependencies and their dependencies." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:37 +msgid "Invokes Zinc to incrementally compile Scala and Java sources." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:38 +msgid "Automatically runs tasks in parallel whenever possible." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:39 +msgid "" +"Defines conventions on how packages are published to Maven repositories to " +"interoperate with the wider JVM ecosystem." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:41 +msgid "" +"To a large extent, sbt standardizes the commands needed to build a given " +"program or library." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:43 +msgid "Why build.sbt DSL?" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:46 +msgid "" +"build.sbt DSL makes sbt a unique build tool, as opposed to other tools that " +"use configuration file formats like YAML, TOML, and XML. Originally " +"developed beween 2010 and 2013, `build.sbt` can start almost like a YAML " +"file, declaring just `scalaVersion` and `libraryDependencies`, but it can " +"supports more features to keep the build definition organized as the build " +"grows larger:" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:51 +msgid "" +"To avoid repeating the same information, like the version number for a " +"library, `build.sbt` can declare variables using `val`." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:52 +msgid "" +"Uses Scala language constructs like `if` to define settings and tasks, when " +"needed." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:53 +msgid "" +"Statically typed settings and tasks, to catch typos and type errors before " +"the build starts. The type also helps passing data from one task from " +"another." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:54 +msgid "" +"Provides **structured concurrency** via `Initialized[Task[A]]`. The DSL uses " +"_direct style_ `.value` syntax to concisely define task graphs." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:55 +msgid "" +"Enpowers the community to extend sbt with plugins that provide custom tasks " +"or language extensions like Scala.JS." +msgstr "" diff --git a/po/summary/getting-started/why-sbt-exists.zh-cn.po b/po/summary/getting-started/why-sbt-exists.zh-cn.po new file mode 100644 index 00000000..3a469739 --- /dev/null +++ b/po/summary/getting-started/why-sbt-exists.zh-cn.po @@ -0,0 +1,146 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/guide/why-sbt-exists.md:1 +msgid "Why sbt exists" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:4 +msgid "Preliminaries" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:7 +msgid "" +"In Scala, a library or a program is compiled using the Scala compiler, " +"`scalac`, as documented in the [Scala 3 Book](https://docs.scala-lang.org/" +"scala3/book/taste-hello-world.html):" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:10 +msgid "\"Hello, World!\"" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:19 +msgid "" +"This process gets tedious and slow if we were to invoke `scalac` directly " +"since we'd have to pass all the Scala source file names." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:21 +msgid "" +"Furthermore, most non-trivial programs will likely have library " +"dependencies, and will therefore also depend transitively on their " +"dependencies. This is doubly complicated for Scala ecosystem because we have " +"Scala 2.12, 2.13 ecosystem, Scala 3.x ecosystem, JVM, JS, and Native " +"platforms." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:24 +msgid "" +"Rather than working with JAR files and `scalac`, we can avoid manual toil by " +"introducing a higher-level subproject abstraction and by using a build tool." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:26 +msgid "sbt" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:29 +msgid "" +"_sbt_ is a simple build tool created for Scala and Java. It lets us declare " +"subprojects and their various dependencies and custom tasks to ensure that " +"we'll always get a fast, repeatable build." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:32 +msgid "To accomplish this goal, sbt does several things:" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:34 +msgid "The version of sbt itself is tracked in `project/build.properties`." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:35 +msgid "" +"Defines a domain-specific language (DSL) called **build.sbt DSL** that can " +"declare the Scala version and other subproject information in `build.sbt`." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:36 +msgid "Uses Coursier to fetch subprojects dependencies and their dependencies." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:37 +msgid "Invokes Zinc to incrementally compile Scala and Java sources." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:38 +msgid "Automatically runs tasks in parallel whenever possible." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:39 +msgid "" +"Defines conventions on how packages are published to Maven repositories to " +"interoperate with the wider JVM ecosystem." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:41 +msgid "" +"To a large extent, sbt standardizes the commands needed to build a given " +"program or library." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:43 +msgid "Why build.sbt DSL?" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:46 +msgid "" +"build.sbt DSL makes sbt a unique build tool, as opposed to other tools that " +"use configuration file formats like YAML, TOML, and XML. Originally " +"developed beween 2010 and 2013, `build.sbt` can start almost like a YAML " +"file, declaring just `scalaVersion` and `libraryDependencies`, but it can " +"supports more features to keep the build definition organized as the build " +"grows larger:" +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:51 +msgid "" +"To avoid repeating the same information, like the version number for a " +"library, `build.sbt` can declare variables using `val`." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:52 +msgid "" +"Uses Scala language constructs like `if` to define settings and tasks, when " +"needed." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:53 +msgid "" +"Statically typed settings and tasks, to catch typos and type errors before " +"the build starts. The type also helps passing data from one task from " +"another." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:54 +msgid "" +"Provides **structured concurrency** via `Initialized[Task[A]]`. The DSL uses " +"_direct style_ `.value` syntax to concisely define task graphs." +msgstr "" + +#: src/reference/guide/why-sbt-exists.md:55 +msgid "" +"Enpowers the community to extend sbt with plugins that provide custom tasks " +"or language extensions like Scala.JS." +msgstr "" diff --git a/po/summary/introduction.ja.po b/po/summary/introduction.ja.po new file mode 100644 index 00000000..c16cf2da --- /dev/null +++ b/po/summary/introduction.ja.po @@ -0,0 +1,53 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:23:28-04:00\n" +"PO-Revision-Date: 2024-10-30 03:36-0400\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.5\n" + +#: src/reference/index.md:1 +msgid "The Book of sbt (Draft)" +msgstr "sbt 記 (草稿)" + +#: src/reference/index.md:4 +msgid "" +"This is a draft documentation of sbt 2.x that is yet to be released. While " +"the general concept translates to sbt 1.x, details of both 2.x and this doc " +"are subject to change." +msgstr "" +"これは未だリリースされていない sbt 2.x のドキュメンテーションの草稿だ。一般" +"的な概念は sbt 1.x とも一貫しているが、2.x 系および本稿の詳細は今後変更され" +"る可能性がある。" + +#: src/reference/index.md:8 +msgid "![sbt logo](files/sbt-logo.svg)" +msgstr "" + +#: src/reference/index.md:10 +msgid "" +"sbt is a simple build tool for Scala and Java. sbt downloads your library " +"dependencies via Coursier, incrementally compiles and tests your projects, " +"integrates with IDEs like IntelliJ and VS Code, makes JAR packages, and " +"publishes them to [Maven Central](https://central.sonatype.com/), JVM " +"community's package registry." +msgstr "" +"sbt は Scala と Java のためのシンプルなビルド・ツールだ。sbt は、Coursier を" +"用いたライブラリ依存性のダウンロード、プロジェクトの差分コンパイルや差分テス" +"ト、IntelliJ や VS Code などの IDE との統合、JAR パッケージの作成、および " +"JVM コミュニティーがパッケージ登録を行う [Maven Central](https://central." +"sonatype.com/) への公開などを行う。" + +#: src/reference/index.md:18 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/index.md:21 +msgid "You just need one line of `build.sbt` to get started with Scala." +msgstr "Scala を始めるには、一行の `build.sbt` を書くだけでいい。" diff --git a/po/summary/introduction.zh-cn.po b/po/summary/introduction.zh-cn.po new file mode 100644 index 00000000..a2fbea43 --- /dev/null +++ b/po/summary/introduction.zh-cn.po @@ -0,0 +1,53 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30 04:53-0400\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.5\n" + +#: src/reference/index.md:1 +msgid "The Book of sbt (Draft)" +msgstr "sbt 记 (草稿)" + +#: src/reference/index.md:4 +msgid "" +"This is a draft documentation of sbt 2.x that is yet to be released. While " +"the general concept translates to sbt 1.x, details of both 2.x and this doc " +"are subject to change." +msgstr "" +"这是关于 sbt 2.x 的草稿文档,目前尚未发布。虽然总体概念可以应用到 sbt 1.x," +"但 2.x 及本文档的详细内容可能会有所变动。" + +#: src/reference/index.md:8 +msgid "![sbt logo](files/sbt-logo.svg)" +msgstr "" + +#: src/reference/index.md:10 +msgid "" +"sbt is a simple build tool for Scala and Java. sbt downloads your library " +"dependencies via Coursier, incrementally compiles and tests your projects, " +"integrates with IDEs like IntelliJ and VS Code, makes JAR packages, and " +"publishes them to [Maven Central](https://central.sonatype.com/), JVM " +"community's package registry." +msgstr "" +"sbt 是一个用于 Scala 和 Java 的简单构建工具。\n" +"sbt 通过 Coursier 下载你的库依赖,\n" +"增量编译和测试项目,\n" +"并与 IntelliJ 和 VS Code 等 IDE 集成,\n" +"打包 JAR 文件并发布到 [Maven Central](https://central.sonatype.com/),\n" +"这是 JVM 社区的包注册表。" + +#: src/reference/index.md:18 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/index.md:21 +msgid "You just need one line of `build.sbt` to get started with Scala." +msgstr "你只需要在 `build.sbt` 中添加一行代码即可开始使用 Scala。" diff --git a/po/summary/recipes.ja.po b/po/summary/recipes.ja.po new file mode 100644 index 00000000..3abb5436 --- /dev/null +++ b/po/summary/recipes.ja.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/index.md:1 +msgid "Recipes" +msgstr "" diff --git a/po/summary/recipes.zh-cn.po b/po/summary/recipes.zh-cn.po new file mode 100644 index 00000000..e7245f7d --- /dev/null +++ b/po/summary/recipes.zh-cn.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/index.md:1 +msgid "Recipes" +msgstr "" diff --git a/po/summary/recipes/import-to-intellij-idea.ja.po b/po/summary/recipes/import-to-intellij-idea.ja.po new file mode 100644 index 00000000..0e2eea73 --- /dev/null +++ b/po/summary/recipes/import-to-intellij-idea.ja.po @@ -0,0 +1,204 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/import-to-intellij.md:1 +msgid "Import to IntelliJ IDEA" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:14 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:17 +msgid "I want to import sbt build to IntelliJ IDEA." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:19 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:22 +msgid "" +"[IntelliJ IDEA](https://www.jetbrains.com/idea/) is an IDE created by " +"JetBrains, and the Community Edition is open source under Apache v2 license. " +"IntelliJ integrates with many build tools, including sbt, to import the " +"project." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:24 +msgid "To import a build to IntelliJ IDEA:" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:26 +msgid "" +"Install Scala plugin on the Plugins tab:
![IntelliJ](../files/intellij1." +"png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:28 +msgid "" +"From Projects, open a directory containing a `build.sbt` file.
!" +"[IntelliJ](../files/intellij2.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:30 +msgid "" +"Once the import process is complete, open a Scala file to see that code " +"completion works." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:32 +msgid "" +"IntelliJ Scala plugin uses its own lightweight compilation engine to detect " +"errors, which is fast but sometimes incorrect. Per [compiler-based " +"highlighting](https://blog.jetbrains.com/scala/2021/07/27/intellij-scala-" +"plugin-2021-2/#Compiler-based_highlighting), IntelliJ can be configured to " +"use the Scala compiler for error highlighting." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:34 +msgid "Interactive debugging with IntelliJ IDEA" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:36 +msgid "" +"IntelliJ supports interactive debugging by setting break points in the code:" +"
![IntelliJ](../files/intellij4.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:38 +msgid "" +"Interactive debugging can be started by right-clicking on an unit test, and " +"selecting \"Debug '\\'.\" Alternatively, you can click the " +"green \"run\" icon on the left part of the editor near the unit test. When " +"the test hits a break point, you can inspect the values of the variables:" +"
![IntelliJ](../files/intellij5.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:42 +msgid "" +"See [Debug Code](https://www.jetbrains.com/help/idea/debugging-code.html) " +"page on IntelliJ documentation for more details on how to navigate an " +"interactive debugging session." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:44 +msgid "Alternative" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:47 +msgid "Using sbt as IntelliJ IDEA build server (advanced)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:49 +msgid "" +"Importing the build to IntelliJ means that you're effectively using IntelliJ " +"as the build tool and the compiler while you code (see also [compiler-based " +"highlighting](https://blog.jetbrains.com/scala/2021/07/27/intellij-scala-" +"plugin-2021-2/#Compiler-based_highlighting)). While many users are happy " +"with the experience, depending on the code base some of the compilation " +"errors may be false, it may not work well with plugins that generate " +"sources, and generally you might want to code with the identical build " +"semantics as sbt. Thankfully, modern IntelliJ supports alternative _build " +"servers_ including sbt via the [Build Server Protocol](https://build-server-" +"protocol.github.io/) (BSP)." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:53 +msgid "" +"The benefit of using BSP with IntelliJ is that you're using sbt to do the " +"actual build work, so if you are the kind of programmer who had sbt session " +"up on the side, this avoids double compilation." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:88 +msgid "To use sbt as build server on IntelliJ:" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:90 +msgid "Install Scala plugin on the Plugins tab." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:91 +msgid "" +"To use the BSP approach, do not use Open button on the Project tab:
!" +"[IntelliJ](../files/intellij7.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:93 +msgid "" +"From menubar, click New > \"Project From Existing Sources\", or Find Action " +"(`Cmd-Shift-P` on macOS) and type \"Existing\" to find \"Import Project From " +"Existing Sources\":
![IntelliJ](../files/intellij8.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:96 +msgid "" +"Open a `build.sbt` file. Select **BSP** when prompted:
![IntelliJ](../" +"files/intellij9.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:98 +msgid "" +"Select **sbt (recommended)** as the tool to import the BSP workspace:
!" +"[IntelliJ](../files/intellij10.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:100 +msgid "" +"Once the import process is complete, open a Scala file to see that code " +"completion works:
![IntelliJ](../files/intellij11.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:103 +msgid "Use the following setting to opt-out some of the subprojects from BSP." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:109 +msgid "" +"Open Preferences, search BSP and check \"build automatically on file save\", " +"and uncheck \"export sbt projects to Bloop before import\":
![IntelliJ]" +"(../files/intellij12.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:112 +msgid "" +"When you make changes to the code and save them (`Cmd-S` on macOS), IntelliJ " +"will invoke sbt to do the actual building work." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:115 +msgid "" +"See also Igal Tabachnik's [Using BSP effectively in IntelliJ and Scala]" +"(https://hmemcpy.com/2021/09/bsp-and-intellij/) for more details." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:117 +msgid "Logging into sbt session" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:119 +msgid "We can also log into the existing sbt session using the thin client." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:121 +msgid "" +"From Terminal section, type in `sbt --client` ![IntelliJ](../files/intellij6." +"png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:124 +msgid "" +"This lets you log into the sbt session IntelliJ has started. In there you " +"can call `testOnly` and other tasks with the code already compiled." +msgstr "" diff --git a/po/summary/recipes/import-to-intellij-idea.zh-cn.po b/po/summary/recipes/import-to-intellij-idea.zh-cn.po new file mode 100644 index 00000000..b310f9ea --- /dev/null +++ b/po/summary/recipes/import-to-intellij-idea.zh-cn.po @@ -0,0 +1,204 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/import-to-intellij.md:1 +msgid "Import to IntelliJ IDEA" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:14 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:17 +msgid "I want to import sbt build to IntelliJ IDEA." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:19 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:22 +msgid "" +"[IntelliJ IDEA](https://www.jetbrains.com/idea/) is an IDE created by " +"JetBrains, and the Community Edition is open source under Apache v2 license. " +"IntelliJ integrates with many build tools, including sbt, to import the " +"project." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:24 +msgid "To import a build to IntelliJ IDEA:" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:26 +msgid "" +"Install Scala plugin on the Plugins tab:
![IntelliJ](../files/intellij1." +"png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:28 +msgid "" +"From Projects, open a directory containing a `build.sbt` file.
!" +"[IntelliJ](../files/intellij2.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:30 +msgid "" +"Once the import process is complete, open a Scala file to see that code " +"completion works." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:32 +msgid "" +"IntelliJ Scala plugin uses its own lightweight compilation engine to detect " +"errors, which is fast but sometimes incorrect. Per [compiler-based " +"highlighting](https://blog.jetbrains.com/scala/2021/07/27/intellij-scala-" +"plugin-2021-2/#Compiler-based_highlighting), IntelliJ can be configured to " +"use the Scala compiler for error highlighting." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:34 +msgid "Interactive debugging with IntelliJ IDEA" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:36 +msgid "" +"IntelliJ supports interactive debugging by setting break points in the code:" +"
![IntelliJ](../files/intellij4.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:38 +msgid "" +"Interactive debugging can be started by right-clicking on an unit test, and " +"selecting \"Debug '\\'.\" Alternatively, you can click the " +"green \"run\" icon on the left part of the editor near the unit test. When " +"the test hits a break point, you can inspect the values of the variables:" +"
![IntelliJ](../files/intellij5.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:42 +msgid "" +"See [Debug Code](https://www.jetbrains.com/help/idea/debugging-code.html) " +"page on IntelliJ documentation for more details on how to navigate an " +"interactive debugging session." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:44 +msgid "Alternative" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:47 +msgid "Using sbt as IntelliJ IDEA build server (advanced)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:49 +msgid "" +"Importing the build to IntelliJ means that you're effectively using IntelliJ " +"as the build tool and the compiler while you code (see also [compiler-based " +"highlighting](https://blog.jetbrains.com/scala/2021/07/27/intellij-scala-" +"plugin-2021-2/#Compiler-based_highlighting)). While many users are happy " +"with the experience, depending on the code base some of the compilation " +"errors may be false, it may not work well with plugins that generate " +"sources, and generally you might want to code with the identical build " +"semantics as sbt. Thankfully, modern IntelliJ supports alternative _build " +"servers_ including sbt via the [Build Server Protocol](https://build-server-" +"protocol.github.io/) (BSP)." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:53 +msgid "" +"The benefit of using BSP with IntelliJ is that you're using sbt to do the " +"actual build work, so if you are the kind of programmer who had sbt session " +"up on the side, this avoids double compilation." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:88 +msgid "To use sbt as build server on IntelliJ:" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:90 +msgid "Install Scala plugin on the Plugins tab." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:91 +msgid "" +"To use the BSP approach, do not use Open button on the Project tab:
!" +"[IntelliJ](../files/intellij7.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:93 +msgid "" +"From menubar, click New > \"Project From Existing Sources\", or Find Action " +"(`Cmd-Shift-P` on macOS) and type \"Existing\" to find \"Import Project From " +"Existing Sources\":
![IntelliJ](../files/intellij8.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:96 +msgid "" +"Open a `build.sbt` file. Select **BSP** when prompted:
![IntelliJ](../" +"files/intellij9.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:98 +msgid "" +"Select **sbt (recommended)** as the tool to import the BSP workspace:
!" +"[IntelliJ](../files/intellij10.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:100 +msgid "" +"Once the import process is complete, open a Scala file to see that code " +"completion works:
![IntelliJ](../files/intellij11.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:103 +msgid "Use the following setting to opt-out some of the subprojects from BSP." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:109 +msgid "" +"Open Preferences, search BSP and check \"build automatically on file save\", " +"and uncheck \"export sbt projects to Bloop before import\":
![IntelliJ]" +"(../files/intellij12.png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:112 +msgid "" +"When you make changes to the code and save them (`Cmd-S` on macOS), IntelliJ " +"will invoke sbt to do the actual building work." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:115 +msgid "" +"See also Igal Tabachnik's [Using BSP effectively in IntelliJ and Scala]" +"(https://hmemcpy.com/2021/09/bsp-and-intellij/) for more details." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:117 +msgid "Logging into sbt session" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:119 +msgid "We can also log into the existing sbt session using the thin client." +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:121 +msgid "" +"From Terminal section, type in `sbt --client` ![IntelliJ](../files/intellij6." +"png)" +msgstr "" + +#: src/reference/recipes/import-to-intellij.md:124 +msgid "" +"This lets you log into the sbt session IntelliJ has started. In there you " +"can call `testOnly` and other tasks with the code already compiled." +msgstr "" diff --git a/po/summary/recipes/use-neovim.ja.po b/po/summary/recipes/use-neovim.ja.po new file mode 100644 index 00000000..5c26c1be --- /dev/null +++ b/po/summary/recipes/use-neovim.ja.po @@ -0,0 +1,184 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/use-neovim.md:1 +msgid "Use Neovim" +msgstr "" + +#: src/reference/recipes/use-neovim.md:13 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/use-neovim.md:16 +msgid "I want to use Metals on Neovim with sbt as the build server." +msgstr "" + +#: src/reference/recipes/use-neovim.md:18 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/use-neovim.md:21 +msgid "" +"Chris Kipp, who is a maintainer of Metals, created [nvim-metals](https://" +"github.com/scalameta/nvim-metals) plugin that provides comprehensive Metals " +"support on Neovim. To install nvim-metals, create `lsp.lua` under " +"`$XDG_CONFIG_HOME/nvim/lua/` based on Chris's [lsp.lua](https://github.com/" +"scalameta/nvim-metals/discussions/39#discussion-82302) and adjust to your " +"preference. For example, comment out its plugins section and load the listed " +"plugins using the plugin manager of your choice such as vim-plug." +msgstr "" + +#: src/reference/recipes/use-neovim.md:23 +msgid "In `init.vim`, the file can be loaded as:" +msgstr "" + +#: src/reference/recipes/use-neovim.md:27 +msgid "'lsp'" +msgstr "" + +#: src/reference/recipes/use-neovim.md:31 +msgid "" +"Per `lsp.lua`, `g:metals_status` should be displayed on the status line, " +"which can be done using lualine.nvim etc." +msgstr "" + +#: src/reference/recipes/use-neovim.md:33 +msgid "Next, open a Scala file in an sbt build using Neovim." +msgstr "" + +#: src/reference/recipes/use-neovim.md:34 +msgid "Run `:MetalsInstall` when prompted." +msgstr "" + +#: src/reference/recipes/use-neovim.md:35 +msgid "Run `:MetalsStartServer`." +msgstr "" + +#: src/reference/recipes/use-neovim.md:36 +msgid "" +"If the status line is set up, you should see something like \"Connecting to " +"sbt\" or \"Indexing.\"
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:38 +msgid "" +"Code completion works when you're in Insert mode, and you can tab through " +"the candidates:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:41 +msgid "" +"A build is triggered upon saving changes, and compilation errors are " +"displayed inline:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:44 +msgid "Go to definition" +msgstr "" + +#: src/reference/recipes/use-neovim.md:46 +msgid "" +"You can jump to definition of the symbol under cursor by using `gD` (exact " +"keybinding can be customized):
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:48 +msgid "Use `Ctrl-O` to return to the old buffer." +msgstr "" + +#: src/reference/recipes/use-neovim.md:50 +msgid "Hover" +msgstr "" + +#: src/reference/recipes/use-neovim.md:52 +msgid "" +"To display the type information of the symbol under cursor, like hovering, " +"use `K` in Normal mode:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:55 +msgid "Listing diagnostics" +msgstr "" + +#: src/reference/recipes/use-neovim.md:57 +msgid "" +"To list all compilation errors and warnings, use `aa`:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:59 +msgid "" +"Since this is in the standard quickfix list, you can use the command such as " +"`:cnext` and `:cprev` to nagivate through the errors and warnings." +msgstr "" + +#: src/reference/recipes/use-neovim.md:60 +msgid "To list just the errors, use `ae`." +msgstr "" + +#: src/reference/recipes/use-neovim.md:62 +msgid "Interactive debugging with Neovim" +msgstr "" + +#: src/reference/recipes/use-neovim.md:64 +msgid "" +"Thanks to nvim-dap, Neovim supports interactive debugging. Set break points " +"in the code using `dt`:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:66 +msgid "" +"Nagivate to a unit test, confirm that it's built by hovering (`K`), and then " +"\"debug continue\" (`dc`) to start a debugger. Choose \"1: " +"RunOrTest\" when prompted." +msgstr "" + +#: src/reference/recipes/use-neovim.md:69 +msgid "" +"When the test hits a break point, you can inspect the values of the " +"variables by debug hovering (`dK`):
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:71 +msgid "\"debug continue\" (`dc`) again to end the session." +msgstr "" + +#: src/reference/recipes/use-neovim.md:73 +msgid "" +"See [nvim-metals](https://github.com/scalameta/nvim-metals) regarding " +"further details." +msgstr "" + +#: src/reference/recipes/use-neovim.md:75 +msgid "Logging into sbt session" +msgstr "" + +#: src/reference/recipes/use-neovim.md:77 +msgid "We can also log into the existing sbt session using the thin client." +msgstr "" + +#: src/reference/recipes/use-neovim.md:79 +msgid "In a new vim window type `:terminal` to start the built-in terminal." +msgstr "" + +#: src/reference/recipes/use-neovim.md:80 +msgid "" +"Type in `sbt --client`
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:83 +msgid "Even though it's inside Neovim, tab completion etc works fine inside." +msgstr "" diff --git a/po/summary/recipes/use-neovim.zh-cn.po b/po/summary/recipes/use-neovim.zh-cn.po new file mode 100644 index 00000000..8224bb32 --- /dev/null +++ b/po/summary/recipes/use-neovim.zh-cn.po @@ -0,0 +1,184 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/use-neovim.md:1 +msgid "Use Neovim" +msgstr "" + +#: src/reference/recipes/use-neovim.md:13 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/use-neovim.md:16 +msgid "I want to use Metals on Neovim with sbt as the build server." +msgstr "" + +#: src/reference/recipes/use-neovim.md:18 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/use-neovim.md:21 +msgid "" +"Chris Kipp, who is a maintainer of Metals, created [nvim-metals](https://" +"github.com/scalameta/nvim-metals) plugin that provides comprehensive Metals " +"support on Neovim. To install nvim-metals, create `lsp.lua` under " +"`$XDG_CONFIG_HOME/nvim/lua/` based on Chris's [lsp.lua](https://github.com/" +"scalameta/nvim-metals/discussions/39#discussion-82302) and adjust to your " +"preference. For example, comment out its plugins section and load the listed " +"plugins using the plugin manager of your choice such as vim-plug." +msgstr "" + +#: src/reference/recipes/use-neovim.md:23 +msgid "In `init.vim`, the file can be loaded as:" +msgstr "" + +#: src/reference/recipes/use-neovim.md:27 +msgid "'lsp'" +msgstr "" + +#: src/reference/recipes/use-neovim.md:31 +msgid "" +"Per `lsp.lua`, `g:metals_status` should be displayed on the status line, " +"which can be done using lualine.nvim etc." +msgstr "" + +#: src/reference/recipes/use-neovim.md:33 +msgid "Next, open a Scala file in an sbt build using Neovim." +msgstr "" + +#: src/reference/recipes/use-neovim.md:34 +msgid "Run `:MetalsInstall` when prompted." +msgstr "" + +#: src/reference/recipes/use-neovim.md:35 +msgid "Run `:MetalsStartServer`." +msgstr "" + +#: src/reference/recipes/use-neovim.md:36 +msgid "" +"If the status line is set up, you should see something like \"Connecting to " +"sbt\" or \"Indexing.\"
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:38 +msgid "" +"Code completion works when you're in Insert mode, and you can tab through " +"the candidates:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:41 +msgid "" +"A build is triggered upon saving changes, and compilation errors are " +"displayed inline:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:44 +msgid "Go to definition" +msgstr "" + +#: src/reference/recipes/use-neovim.md:46 +msgid "" +"You can jump to definition of the symbol under cursor by using `gD` (exact " +"keybinding can be customized):
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:48 +msgid "Use `Ctrl-O` to return to the old buffer." +msgstr "" + +#: src/reference/recipes/use-neovim.md:50 +msgid "Hover" +msgstr "" + +#: src/reference/recipes/use-neovim.md:52 +msgid "" +"To display the type information of the symbol under cursor, like hovering, " +"use `K` in Normal mode:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:55 +msgid "Listing diagnostics" +msgstr "" + +#: src/reference/recipes/use-neovim.md:57 +msgid "" +"To list all compilation errors and warnings, use `aa`:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:59 +msgid "" +"Since this is in the standard quickfix list, you can use the command such as " +"`:cnext` and `:cprev` to nagivate through the errors and warnings." +msgstr "" + +#: src/reference/recipes/use-neovim.md:60 +msgid "To list just the errors, use `ae`." +msgstr "" + +#: src/reference/recipes/use-neovim.md:62 +msgid "Interactive debugging with Neovim" +msgstr "" + +#: src/reference/recipes/use-neovim.md:64 +msgid "" +"Thanks to nvim-dap, Neovim supports interactive debugging. Set break points " +"in the code using `dt`:
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:66 +msgid "" +"Nagivate to a unit test, confirm that it's built by hovering (`K`), and then " +"\"debug continue\" (`dc`) to start a debugger. Choose \"1: " +"RunOrTest\" when prompted." +msgstr "" + +#: src/reference/recipes/use-neovim.md:69 +msgid "" +"When the test hits a break point, you can inspect the values of the " +"variables by debug hovering (`dK`):
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:71 +msgid "\"debug continue\" (`dc`) again to end the session." +msgstr "" + +#: src/reference/recipes/use-neovim.md:73 +msgid "" +"See [nvim-metals](https://github.com/scalameta/nvim-metals) regarding " +"further details." +msgstr "" + +#: src/reference/recipes/use-neovim.md:75 +msgid "Logging into sbt session" +msgstr "" + +#: src/reference/recipes/use-neovim.md:77 +msgid "We can also log into the existing sbt session using the thin client." +msgstr "" + +#: src/reference/recipes/use-neovim.md:79 +msgid "In a new vim window type `:terminal` to start the built-in terminal." +msgstr "" + +#: src/reference/recipes/use-neovim.md:80 +msgid "" +"Type in `sbt --client`
" +msgstr "" + +#: src/reference/recipes/use-neovim.md:83 +msgid "Even though it's inside Neovim, tab completion etc works fine inside." +msgstr "" diff --git a/po/summary/recipes/use-sbt-as-metals-build-server.ja.po b/po/summary/recipes/use-sbt-as-metals-build-server.ja.po new file mode 100644 index 00000000..ea519bf4 --- /dev/null +++ b/po/summary/recipes/use-sbt-as-metals-build-server.ja.po @@ -0,0 +1,111 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:1 +msgid "Use sbt as Metals build server" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:13 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:16 +msgid "" +"I want to use [Metals](https://scalameta.org/metals/) on VS Code with sbt as " +"the build server." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:18 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:21 +msgid "To use Metals on VS Code:" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:23 +msgid "Install Metals from Extensions tab:
![Metals](../files/metals0.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:25 +msgid "Open a directory containing a `build.sbt` file." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:26 +msgid "" +"From the menubar, run View > Command Palette... (`Cmd-Shift-P` on macOS) " +"\"Metals: Switch build server\", and select \"sbt\"
![Metals](../files/" +"metals2.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:28 +msgid "" +"Once the import process is complete, open a Scala file to see that code " +"completion works:
![Metals](../files/metals3.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:31 +msgid "Use the following setting to opt-out some of the subprojects from BSP." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:37 +msgid "" +"When you make changes to the code and save them (`Cmd-S` on macOS), Metals " +"will invoke sbt to do the actual building work." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:40 +msgid "Interactive debugging on VS Code" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:42 +msgid "" +"Metals supports interactive debugging by setting break points in the code:" +"
![Metals](../files/metals4.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:44 +msgid "" +"Interactive debugging can be started by right-clicking on an unit test, and " +"selecting \"Debug Test.\" When the test hits a break point, you can inspect " +"the values of the variables:
![Metals](../files/metals5.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:48 +msgid "" +"See [Debugging](https://code.visualstudio.com/docs/editor/debugging) page on " +"VS Code documentation for more details on how to navigate an interactive " +"debugging session." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:50 +msgid "Logging into sbt session" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:52 +msgid "" +"While Metals uses sbt as the build server, we can also log into the same sbt " +"session using a thin client." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:54 +msgid "" +"From Terminal section, type in `sbt --client`
![Metals](../files/metals6." +"png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:57 +msgid "" +"This lets you log into the sbt session Metals has started. In there you can " +"call `testOnly` and other tasks with the code already compiled." +msgstr "" diff --git a/po/summary/recipes/use-sbt-as-metals-build-server.zh-cn.po b/po/summary/recipes/use-sbt-as-metals-build-server.zh-cn.po new file mode 100644 index 00000000..7779432e --- /dev/null +++ b/po/summary/recipes/use-sbt-as-metals-build-server.zh-cn.po @@ -0,0 +1,111 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:1 +msgid "Use sbt as Metals build server" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:13 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:16 +msgid "" +"I want to use [Metals](https://scalameta.org/metals/) on VS Code with sbt as " +"the build server." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:18 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:21 +msgid "To use Metals on VS Code:" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:23 +msgid "Install Metals from Extensions tab:
![Metals](../files/metals0.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:25 +msgid "Open a directory containing a `build.sbt` file." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:26 +msgid "" +"From the menubar, run View > Command Palette... (`Cmd-Shift-P` on macOS) " +"\"Metals: Switch build server\", and select \"sbt\"
![Metals](../files/" +"metals2.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:28 +msgid "" +"Once the import process is complete, open a Scala file to see that code " +"completion works:
![Metals](../files/metals3.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:31 +msgid "Use the following setting to opt-out some of the subprojects from BSP." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:37 +msgid "" +"When you make changes to the code and save them (`Cmd-S` on macOS), Metals " +"will invoke sbt to do the actual building work." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:40 +msgid "Interactive debugging on VS Code" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:42 +msgid "" +"Metals supports interactive debugging by setting break points in the code:" +"
![Metals](../files/metals4.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:44 +msgid "" +"Interactive debugging can be started by right-clicking on an unit test, and " +"selecting \"Debug Test.\" When the test hits a break point, you can inspect " +"the values of the variables:
![Metals](../files/metals5.png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:48 +msgid "" +"See [Debugging](https://code.visualstudio.com/docs/editor/debugging) page on " +"VS Code documentation for more details on how to navigate an interactive " +"debugging session." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:50 +msgid "Logging into sbt session" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:52 +msgid "" +"While Metals uses sbt as the build server, we can also log into the same sbt " +"session using a thin client." +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:54 +msgid "" +"From Terminal section, type in `sbt --client`
![Metals](../files/metals6." +"png)" +msgstr "" + +#: src/reference/recipes/use-sbt-as-metals-build-server.md:57 +msgid "" +"This lets you log into the sbt session Metals has started. In there you can " +"call `testOnly` and other tasks with the code already compiled." +msgstr "" diff --git a/po/summary/recipes/write-hello-world.ja.po b/po/summary/recipes/write-hello-world.ja.po new file mode 100644 index 00000000..475de7fd --- /dev/null +++ b/po/summary/recipes/write-hello-world.ja.po @@ -0,0 +1,80 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/hello-world.md:1 +msgid "How to write hello world" +msgstr "" + +#: src/reference/recipes/hello-world.md:4 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/hello-world.md:7 +msgid "I want to write a hello world program in Scala, and run it." +msgstr "" + +#: src/reference/recipes/hello-world.md:9 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/hello-world.md:12 +msgid "Create a fresh directory, like `hello_scala/`" +msgstr "" + +#: src/reference/recipes/hello-world.md:13 +msgid "" +"Create a directory named `project/` under `hello_scala/`, and create " +"`project/build.properties` with" +msgstr "" + +#: src/reference/recipes/hello-world.md:17 +msgid "Under `hello_scala/`, create `build.sbt`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:19 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/recipes/hello-world.md:21 +msgid "Under `hello_scala/`, create `Hello.scala`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:24 +msgid "s\"Hello ${" +msgstr "" + +#: src/reference/recipes/hello-world.md:24 +msgid "}\"" +msgstr "" + +#: src/reference/recipes/hello-world.md:26 +msgid "Navigate to `hello_scala/` from the terminal, and run `sbt`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:30 +msgid "When the prompt appears, type `run`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:34 +msgid "Type `exit` to exit the sbt shell:" +msgstr "" + +#: src/reference/recipes/hello-world.md:39 +msgid "Alternatives" +msgstr "" + +#: src/reference/recipes/hello-world.md:42 +msgid "" +"When you're in a hurry, you can run `sbt init` in a fresh directory, and " +"select the first template." +msgstr "" diff --git a/po/summary/recipes/write-hello-world.zh-cn.po b/po/summary/recipes/write-hello-world.zh-cn.po new file mode 100644 index 00000000..1cead3c5 --- /dev/null +++ b/po/summary/recipes/write-hello-world.zh-cn.po @@ -0,0 +1,80 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/recipes/hello-world.md:1 +msgid "How to write hello world" +msgstr "" + +#: src/reference/recipes/hello-world.md:4 +msgid "Objective" +msgstr "" + +#: src/reference/recipes/hello-world.md:7 +msgid "I want to write a hello world program in Scala, and run it." +msgstr "" + +#: src/reference/recipes/hello-world.md:9 +msgid "Steps" +msgstr "" + +#: src/reference/recipes/hello-world.md:12 +msgid "Create a fresh directory, like `hello_scala/`" +msgstr "" + +#: src/reference/recipes/hello-world.md:13 +msgid "" +"Create a directory named `project/` under `hello_scala/`, and create " +"`project/build.properties` with" +msgstr "" + +#: src/reference/recipes/hello-world.md:17 +msgid "Under `hello_scala/`, create `build.sbt`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:19 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/recipes/hello-world.md:21 +msgid "Under `hello_scala/`, create `Hello.scala`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:24 +msgid "s\"Hello ${" +msgstr "" + +#: src/reference/recipes/hello-world.md:24 +msgid "}\"" +msgstr "" + +#: src/reference/recipes/hello-world.md:26 +msgid "Navigate to `hello_scala/` from the terminal, and run `sbt`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:30 +msgid "When the prompt appears, type `run`:" +msgstr "" + +#: src/reference/recipes/hello-world.md:34 +msgid "Type `exit` to exit the sbt shell:" +msgstr "" + +#: src/reference/recipes/hello-world.md:39 +msgid "Alternatives" +msgstr "" + +#: src/reference/recipes/hello-world.md:42 +msgid "" +"When you're in a hurry, you can run `sbt init` in a fresh directory, and " +"select the first template." +msgstr "" diff --git a/po/summary/reference.ja.po b/po/summary/reference.ja.po new file mode 100644 index 00000000..0d5a44a0 --- /dev/null +++ b/po/summary/reference.ja.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/index.md:1 +msgid "Reference" +msgstr "" diff --git a/po/summary/reference.zh-cn.po b/po/summary/reference.zh-cn.po new file mode 100644 index 00000000..052e4a46 --- /dev/null +++ b/po/summary/reference.zh-cn.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/index.md:1 +msgid "Reference" +msgstr "" diff --git a/po/summary/reference/cross-building-setup.ja.po b/po/summary/reference/cross-building-setup.ja.po new file mode 100644 index 00000000..c65e3584 --- /dev/null +++ b/po/summary/reference/cross-building-setup.ja.po @@ -0,0 +1,232 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/cross-building-setup.md:1 +msgid "Cross building setup" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:4 +msgid "" +"This page covers cross building setup. See [Cross building](../concepts/" +"cross-building.html) for general explanation." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:6 +msgid "Using cross-built libraries" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:9 +msgid "" +"To use a library built against multiple versions of Scala, double the first " +"`%` in a ModuleID to be `%%`. This tells sbt that it should append the " +"current version of Scala being used to build the library to the dependency’s " +"name. For example:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:12 +#: src/reference/reference/cross-building-setup.md:18 +msgid "\"org.typelevel\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:12 +msgid "\"cats-effect\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:12 +#: src/reference/reference/cross-building-setup.md:18 +msgid "\"3.5.4\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:15 +msgid "" +"A nearly equivalent, manual alternative for a fixed version of Scala is:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:18 +msgid "\"cats-effect_3\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:21 +msgid "Scala 3 specific cross-versions" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:23 +msgid "" +"If you are developing an application in Scala 3, you can use Scala 2.13 " +"libraries:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:26 +#: src/reference/reference/cross-building-setup.md:34 +#: src/reference/reference/cross-building-setup.md:46 +#: src/reference/reference/cross-building-setup.md:47 +#: src/reference/reference/cross-building-setup.md:53 +#: src/reference/reference/cross-building-setup.md:54 +#: src/reference/reference/cross-building-setup.md:60 +#: src/reference/reference/cross-building-setup.md:66 +#: src/reference/reference/cross-building-setup.md:72 +#: src/reference/reference/cross-building-setup.md:78 +msgid "\"a\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:26 +#: src/reference/reference/cross-building-setup.md:34 +#: src/reference/reference/cross-building-setup.md:46 +#: src/reference/reference/cross-building-setup.md:47 +#: src/reference/reference/cross-building-setup.md:53 +#: src/reference/reference/cross-building-setup.md:54 +#: src/reference/reference/cross-building-setup.md:60 +#: src/reference/reference/cross-building-setup.md:66 +#: src/reference/reference/cross-building-setup.md:72 +msgid "\"b\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:26 +#: src/reference/reference/cross-building-setup.md:34 +#: src/reference/reference/cross-building-setup.md:46 +#: src/reference/reference/cross-building-setup.md:47 +#: src/reference/reference/cross-building-setup.md:53 +#: src/reference/reference/cross-building-setup.md:54 +#: src/reference/reference/cross-building-setup.md:60 +#: src/reference/reference/cross-building-setup.md:66 +#: src/reference/reference/cross-building-setup.md:72 +#: src/reference/reference/cross-building-setup.md:78 +msgid "\"1.0\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:29 +msgid "" +"This is equivalent to using `%%` except it resolves the `_2.13` variant of " +"the library when `scalaVersion` is 3.x.y." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:31 +msgid "" +"Conversely we have `CrossVersion.for2_13Use3` to use the `_3` variant of the " +"library when `scalaVersion` is 2.13.x:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:41 +msgid "More about using cross-built libraries" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:43 +msgid "" +"You can have fine-grained control over the behavior for different Scala " +"versions by using the `cross` method on `ModuleID` These are equivalent:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:50 +msgid "These are equivalent:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:57 +msgid "" +"This overrides the defaults to always use the full Scala version instead of " +"the binary Scala version:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:63 +msgid "" +"`CrossVersion.patch` sits between `CrossVersion.binary` and `CrossVersion." +"full` in that it strips off any trailing `-bin-...` suffix which is used to " +"distinguish variant but binary compatible Scala toolchain builds." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:69 +msgid "`CrossVersion.constant` fixes a constant value:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:72 +msgid "\"2.9.1\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:75 +msgid "It is equivalent to:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:78 +msgid "\"b_2.9.1\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:81 +msgid "Project matrix" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:84 +msgid "" +"sbt 2.x introduces project matrix, which enables cross building to happen in " +"parallel." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:87 +msgid "\"com.example\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:88 +#: src/reference/reference/cross-building-setup.md:95 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:89 +msgid "\"0.1.0-SNAPSHOT\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:91 +#: src/reference/reference/cross-building-setup.md:93 +msgid "\"core\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:95 +msgid "\"2.13.15\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:98 +msgid "Publishing convention" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:101 +msgid "" +"We use the Scala ABI (application binary interface) version as suffix to " +"denote which version of Scala was used to compile a library. For example, " +"the artifact name `cats-effect_2.13` means Scala 2.13.x was used. `cats-" +"effect_3` means Scala 3.x was used. This fairly simple approach allows " +"interoperability with users of Maven, Ant and other build tools. For pre-" +"prelease versions of Scala, such as 2.13.0-RC1, full version will be " +"considered the ABI version." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:103 +msgid "" +"`crossVersion` setting can be used to override the publishing convention:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:105 +msgid "`CrossVersion.disabled` (no suffix)" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:106 +msgid "`CrossVersion.binary` (`_`)" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:107 +msgid "`CrossVersion.full` (`_`)" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:109 +msgid "" +"The default is either `CrossVersion.binary` or `CrossVersion.disabled` " +"depending on the value of `crossPaths`. Because (unlike Scala library) Scala " +"compiler is not forward compatible among the patch releases, compiler " +"plugins should use `CrossVersion.full`." +msgstr "" diff --git a/po/summary/reference/cross-building-setup.zh-cn.po b/po/summary/reference/cross-building-setup.zh-cn.po new file mode 100644 index 00000000..c9f57444 --- /dev/null +++ b/po/summary/reference/cross-building-setup.zh-cn.po @@ -0,0 +1,232 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/cross-building-setup.md:1 +msgid "Cross building setup" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:4 +msgid "" +"This page covers cross building setup. See [Cross building](../concepts/" +"cross-building.html) for general explanation." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:6 +msgid "Using cross-built libraries" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:9 +msgid "" +"To use a library built against multiple versions of Scala, double the first " +"`%` in a ModuleID to be `%%`. This tells sbt that it should append the " +"current version of Scala being used to build the library to the dependency’s " +"name. For example:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:12 +#: src/reference/reference/cross-building-setup.md:18 +msgid "\"org.typelevel\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:12 +msgid "\"cats-effect\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:12 +#: src/reference/reference/cross-building-setup.md:18 +msgid "\"3.5.4\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:15 +msgid "" +"A nearly equivalent, manual alternative for a fixed version of Scala is:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:18 +msgid "\"cats-effect_3\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:21 +msgid "Scala 3 specific cross-versions" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:23 +msgid "" +"If you are developing an application in Scala 3, you can use Scala 2.13 " +"libraries:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:26 +#: src/reference/reference/cross-building-setup.md:34 +#: src/reference/reference/cross-building-setup.md:46 +#: src/reference/reference/cross-building-setup.md:47 +#: src/reference/reference/cross-building-setup.md:53 +#: src/reference/reference/cross-building-setup.md:54 +#: src/reference/reference/cross-building-setup.md:60 +#: src/reference/reference/cross-building-setup.md:66 +#: src/reference/reference/cross-building-setup.md:72 +#: src/reference/reference/cross-building-setup.md:78 +msgid "\"a\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:26 +#: src/reference/reference/cross-building-setup.md:34 +#: src/reference/reference/cross-building-setup.md:46 +#: src/reference/reference/cross-building-setup.md:47 +#: src/reference/reference/cross-building-setup.md:53 +#: src/reference/reference/cross-building-setup.md:54 +#: src/reference/reference/cross-building-setup.md:60 +#: src/reference/reference/cross-building-setup.md:66 +#: src/reference/reference/cross-building-setup.md:72 +msgid "\"b\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:26 +#: src/reference/reference/cross-building-setup.md:34 +#: src/reference/reference/cross-building-setup.md:46 +#: src/reference/reference/cross-building-setup.md:47 +#: src/reference/reference/cross-building-setup.md:53 +#: src/reference/reference/cross-building-setup.md:54 +#: src/reference/reference/cross-building-setup.md:60 +#: src/reference/reference/cross-building-setup.md:66 +#: src/reference/reference/cross-building-setup.md:72 +#: src/reference/reference/cross-building-setup.md:78 +msgid "\"1.0\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:29 +msgid "" +"This is equivalent to using `%%` except it resolves the `_2.13` variant of " +"the library when `scalaVersion` is 3.x.y." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:31 +msgid "" +"Conversely we have `CrossVersion.for2_13Use3` to use the `_3` variant of the " +"library when `scalaVersion` is 2.13.x:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:41 +msgid "More about using cross-built libraries" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:43 +msgid "" +"You can have fine-grained control over the behavior for different Scala " +"versions by using the `cross` method on `ModuleID` These are equivalent:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:50 +msgid "These are equivalent:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:57 +msgid "" +"This overrides the defaults to always use the full Scala version instead of " +"the binary Scala version:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:63 +msgid "" +"`CrossVersion.patch` sits between `CrossVersion.binary` and `CrossVersion." +"full` in that it strips off any trailing `-bin-...` suffix which is used to " +"distinguish variant but binary compatible Scala toolchain builds." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:69 +msgid "`CrossVersion.constant` fixes a constant value:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:72 +msgid "\"2.9.1\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:75 +msgid "It is equivalent to:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:78 +msgid "\"b_2.9.1\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:81 +msgid "Project matrix" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:84 +msgid "" +"sbt 2.x introduces project matrix, which enables cross building to happen in " +"parallel." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:87 +msgid "\"com.example\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:88 +#: src/reference/reference/cross-building-setup.md:95 +msgid "\"3.3.3\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:89 +msgid "\"0.1.0-SNAPSHOT\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:91 +#: src/reference/reference/cross-building-setup.md:93 +msgid "\"core\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:95 +msgid "\"2.13.15\"" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:98 +msgid "Publishing convention" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:101 +msgid "" +"We use the Scala ABI (application binary interface) version as suffix to " +"denote which version of Scala was used to compile a library. For example, " +"the artifact name `cats-effect_2.13` means Scala 2.13.x was used. `cats-" +"effect_3` means Scala 3.x was used. This fairly simple approach allows " +"interoperability with users of Maven, Ant and other build tools. For pre-" +"prelease versions of Scala, such as 2.13.0-RC1, full version will be " +"considered the ABI version." +msgstr "" + +#: src/reference/reference/cross-building-setup.md:103 +msgid "" +"`crossVersion` setting can be used to override the publishing convention:" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:105 +msgid "`CrossVersion.disabled` (no suffix)" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:106 +msgid "`CrossVersion.binary` (`_`)" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:107 +msgid "`CrossVersion.full` (`_`)" +msgstr "" + +#: src/reference/reference/cross-building-setup.md:109 +msgid "" +"The default is either `CrossVersion.binary` or `CrossVersion.disabled` " +"depending on the value of `crossPaths`. Because (unlike Scala library) Scala " +"compiler is not forward compatible among the patch releases, compiler " +"plugins should use `CrossVersion.full`." +msgstr "" diff --git a/po/summary/reference/remote-cache-setup.ja.po b/po/summary/reference/remote-cache-setup.ja.po new file mode 100644 index 00000000..3f01117d --- /dev/null +++ b/po/summary/reference/remote-cache-setup.ja.po @@ -0,0 +1,231 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/remote-cache-setup.md:1 +msgid "Remote cache setup" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:4 +msgid "" +"This page covers remote caching setup. See [Caching](../concepts/caching." +"html) for general explanation of the caching system." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:6 +msgid "gRPC remote cache" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:9 +msgid "" +"While there might be multiple remote cache store implemention in the future, " +"sbt 2.0 ships with a gRPC client that is compatible with the Bazel remote " +"cache backends. To configure sbt 2.x, add the following to `project/plugins." +"sbt`" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:15 +msgid "" +"There are many Bazel remote cache backends, both open source and commercial " +"solutions. While this page documents is not an exhaustive list of all Bazel " +"remote cache implementations, hopefully it shows how sbt 2.x can be set up " +"for wide array of them." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:17 +msgid "Authentication" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:19 +msgid "" +"There are a few flavors of [gRPC authentication](https://grpc.io/docs/guides/" +"auth/), and Bazel remote cache backends use various kind of them:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:21 +msgid "Unauthenticated. Useful for testing." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:22 +msgid "Default TLS/SSL." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:23 +msgid "TLS/SSL with custom server certificate." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:24 +msgid "TTL/SSL with custom server and client certificate, mTLS." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:25 +msgid "Default TLS/SSL with API token header." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:27 +msgid "bazel-remote without authentication" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:29 +msgid "" +"You can grab the code from [buchgr/bazel-remote](https://github.com/buchgr/" +"bazel-remote) and run it on a laptop using Bazel:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:37 +msgid "To configure sbt 2.x, add the following to `project/plugins.sbt`" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:43 +msgid "and append the following to `build.sbt`:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:46 +msgid "\"grpc://localhost:2024\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:49 +msgid "bazel-remote with mTLS" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:51 +msgid "" +"In a real environment, mTLS can ensure that the transport is encrypted and " +"mutually authenticated. bazel-remote can be started with something like the " +"follows:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:62 +msgid "sbt 2.x setting would look like this in this scenario:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:65 +msgid "\"grpcs://localhost:2024\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:66 +msgid "\"/tmp/sslcert/ca.crt\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:67 +msgid "\"/tmp/sslcert/client.crt\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:68 +msgid "\"/tmp/sslcert/client.pem\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:71 +msgid "Note the `grpcs://`, as opposed to `grpc://`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:73 +msgid "EngFlow" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:75 +msgid "" +"[EngFlow GmbH](https://www.engflow.com/) is a build solution company founded " +"in 2020 by core members of Bazel team, providing build analytics and remote " +"execution backend for Bazel, which includes remote cache." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:77 +msgid "" +"After signing up for trial on , the page instructs " +"you to start a trial cluster using a docker. If you followed the " +"instruction, this should start a remote cache service on port 8080. The sbt " +"2.x configuration would look like this for the trial cluster:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:80 +msgid "\"grpc://localhost:8080\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:83 +msgid "BuildBuddy" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:85 +msgid "" +"[BuildBuddy](https://www.buildbuddy.io/) is a build solution company founded " +"by ex-Google engineers, providing build analytics and remote execution " +"backend for Bazel. It's also available open source as [buildbuddy-io/" +"buildbuddy](https://github.com/buildbuddy-io/buildbuddy)." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:87 +msgid "" +"After signing up, BuildBuddy Personal plan lets you use BuildBuddy across " +"the Internet." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:89 +msgid "" +"From , go to Settings, and change the " +"Organization URL to `.buildbuddy.io`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:90 +msgid "" +"Next, go to Quickstart and take note of the URLs and `--remote_headers`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:91 +msgid "" +"Create a file called `$HOME/.sbt/buildbuddy_credential.txt` and put in the " +"API key:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:97 +#: src/reference/reference/remote-cache-setup.md:115 +msgid "The sbt 2.x configuration would look like this:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:100 +msgid "\"grpcs://something.buildbuddy.io\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:101 +msgid "\"buildbuddy_credential.txt\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:104 +msgid "NativeLink" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:106 +msgid "" +"[NativeLink](https://docs.nativelink.dev/) is an open-source Bazel remote " +"execution backend implementated in Rust with emphasis on performance. As of " +"June 2024, there's NativeLink Cloud in beta." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:108 +msgid "" +"From , go to Quickstart and take note of the " +"URLs and `--remote_header`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:109 +msgid "" +"Create a file called `$HOME/.sbt/nativelink_credential.txt` and put in the " +"API key:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:118 +msgid "\"grpcs://something.build-faster.nativelink.net\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:119 +msgid "\"nativelink_credential.txt\"" +msgstr "" diff --git a/po/summary/reference/remote-cache-setup.zh-cn.po b/po/summary/reference/remote-cache-setup.zh-cn.po new file mode 100644 index 00000000..4c1ca186 --- /dev/null +++ b/po/summary/reference/remote-cache-setup.zh-cn.po @@ -0,0 +1,231 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/remote-cache-setup.md:1 +msgid "Remote cache setup" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:4 +msgid "" +"This page covers remote caching setup. See [Caching](../concepts/caching." +"html) for general explanation of the caching system." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:6 +msgid "gRPC remote cache" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:9 +msgid "" +"While there might be multiple remote cache store implemention in the future, " +"sbt 2.0 ships with a gRPC client that is compatible with the Bazel remote " +"cache backends. To configure sbt 2.x, add the following to `project/plugins." +"sbt`" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:15 +msgid "" +"There are many Bazel remote cache backends, both open source and commercial " +"solutions. While this page documents is not an exhaustive list of all Bazel " +"remote cache implementations, hopefully it shows how sbt 2.x can be set up " +"for wide array of them." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:17 +msgid "Authentication" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:19 +msgid "" +"There are a few flavors of [gRPC authentication](https://grpc.io/docs/guides/" +"auth/), and Bazel remote cache backends use various kind of them:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:21 +msgid "Unauthenticated. Useful for testing." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:22 +msgid "Default TLS/SSL." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:23 +msgid "TLS/SSL with custom server certificate." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:24 +msgid "TTL/SSL with custom server and client certificate, mTLS." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:25 +msgid "Default TLS/SSL with API token header." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:27 +msgid "bazel-remote without authentication" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:29 +msgid "" +"You can grab the code from [buchgr/bazel-remote](https://github.com/buchgr/" +"bazel-remote) and run it on a laptop using Bazel:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:37 +msgid "To configure sbt 2.x, add the following to `project/plugins.sbt`" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:43 +msgid "and append the following to `build.sbt`:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:46 +msgid "\"grpc://localhost:2024\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:49 +msgid "bazel-remote with mTLS" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:51 +msgid "" +"In a real environment, mTLS can ensure that the transport is encrypted and " +"mutually authenticated. bazel-remote can be started with something like the " +"follows:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:62 +msgid "sbt 2.x setting would look like this in this scenario:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:65 +msgid "\"grpcs://localhost:2024\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:66 +msgid "\"/tmp/sslcert/ca.crt\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:67 +msgid "\"/tmp/sslcert/client.crt\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:68 +msgid "\"/tmp/sslcert/client.pem\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:71 +msgid "Note the `grpcs://`, as opposed to `grpc://`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:73 +msgid "EngFlow" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:75 +msgid "" +"[EngFlow GmbH](https://www.engflow.com/) is a build solution company founded " +"in 2020 by core members of Bazel team, providing build analytics and remote " +"execution backend for Bazel, which includes remote cache." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:77 +msgid "" +"After signing up for trial on , the page instructs " +"you to start a trial cluster using a docker. If you followed the " +"instruction, this should start a remote cache service on port 8080. The sbt " +"2.x configuration would look like this for the trial cluster:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:80 +msgid "\"grpc://localhost:8080\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:83 +msgid "BuildBuddy" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:85 +msgid "" +"[BuildBuddy](https://www.buildbuddy.io/) is a build solution company founded " +"by ex-Google engineers, providing build analytics and remote execution " +"backend for Bazel. It's also available open source as [buildbuddy-io/" +"buildbuddy](https://github.com/buildbuddy-io/buildbuddy)." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:87 +msgid "" +"After signing up, BuildBuddy Personal plan lets you use BuildBuddy across " +"the Internet." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:89 +msgid "" +"From , go to Settings, and change the " +"Organization URL to `.buildbuddy.io`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:90 +msgid "" +"Next, go to Quickstart and take note of the URLs and `--remote_headers`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:91 +msgid "" +"Create a file called `$HOME/.sbt/buildbuddy_credential.txt` and put in the " +"API key:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:97 +#: src/reference/reference/remote-cache-setup.md:115 +msgid "The sbt 2.x configuration would look like this:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:100 +msgid "\"grpcs://something.buildbuddy.io\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:101 +msgid "\"buildbuddy_credential.txt\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:104 +msgid "NativeLink" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:106 +msgid "" +"[NativeLink](https://docs.nativelink.dev/) is an open-source Bazel remote " +"execution backend implementated in Rust with emphasis on performance. As of " +"June 2024, there's NativeLink Cloud in beta." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:108 +msgid "" +"From , go to Quickstart and take note of the " +"URLs and `--remote_header`." +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:109 +msgid "" +"Create a file called `$HOME/.sbt/nativelink_credential.txt` and put in the " +"API key:" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:118 +msgid "\"grpcs://something.build-faster.nativelink.net\"" +msgstr "" + +#: src/reference/reference/remote-cache-setup.md:119 +msgid "\"nativelink_credential.txt\"" +msgstr "" diff --git a/po/summary/reference/sbt-update.ja.po b/po/summary/reference/sbt-update.ja.po new file mode 100644 index 00000000..08e61447 --- /dev/null +++ b/po/summary/reference/sbt-update.ja.po @@ -0,0 +1,494 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/sbt-update.md:14 +msgid "sbt update" +msgstr "" + +#: src/reference/reference/sbt-update.md:17 +msgid "" +"See [library depdency basics](../guide/library-dependency-basics.md) in the " +"Getting Started guide to learn about the basics." +msgstr "" + +#: src/reference/reference/sbt-update.md:19 +msgid "Synopsis" +msgstr "" + +#: src/reference/reference/sbt-update.md:22 +msgid "`sbt --client update`" +msgstr "" + +#: src/reference/reference/sbt-update.md:24 +msgid "Description" +msgstr "" + +#: src/reference/reference/sbt-update.md:27 +msgid "" +"sbt uses [Coursier](https://get-coursier.io/) to implement library " +"management, also known as a package manager in other ecosystems. The general " +"idea of library management is that you can specify external libraries you " +"would like to use in your subprojects, and the library management system " +"would:" +msgstr "" + +#: src/reference/reference/sbt-update.md:31 +msgid "Check if such versions exists in the listed repositories" +msgstr "" + +#: src/reference/reference/sbt-update.md:32 +msgid "" +"Look for the transitive dependencies (i.e. the libraries used by the " +"libraries)" +msgstr "" + +#: src/reference/reference/sbt-update.md:33 +msgid "Attempt to resolve version conflicts, if any" +msgstr "" + +#: src/reference/reference/sbt-update.md:34 +msgid "Download the artifacts, such as JAR files, from the repositories" +msgstr "" + +#: src/reference/reference/sbt-update.md:36 +msgid "Dependencies" +msgstr "" + +#: src/reference/reference/sbt-update.md:38 +msgid "Declaring a dependency looks like:" +msgstr "" + +#: src/reference/reference/sbt-update.md:44 +msgid "or" +msgstr "" + +#: src/reference/reference/sbt-update.md:55 +msgid "Also, several dependencies can be declared together:" +msgstr "" + +#: src/reference/reference/sbt-update.md:64 +msgid "" +"If you are using a dependency that was built with sbt, double the first `%` " +"to be `%%`:" +msgstr "" + +#: src/reference/reference/sbt-update.md:71 +msgid "" +"This will use the right JAR for the dependency built with the version of " +"Scala that you are currently using. If you get an error while resolving this " +"kind of dependency, that dependency probably wasn't published for the " +"version of Scala you are using. See [Cross building](../concepts/cross-" +"building.md) for details." +msgstr "" + +#: src/reference/reference/sbt-update.md:84 +msgid "`versionScheme` and eviction errors" +msgstr "" + +#: src/reference/reference/sbt-update.md:86 +msgid "" +"sbt allows library authors to declare the version semantics using the " +"`versionScheme` setting:" +msgstr "" + +#: src/reference/reference/sbt-update.md:89 +msgid "// Semantic Versioning applied to 0.x, as well as 1.x, 2.x, etc" +msgstr "" + +#: src/reference/reference/sbt-update.md:93 +msgid "" +"When Coursier finds multiple versions of a library, for example Cats Effect " +"2.x and Cats Effect 3.0.0-M4, it often resolves the conflict by removing the " +"older version from the graph. This process is colloquially called eviction, " +"like \"Cats Effect 2.2.0 was evicted.\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:97 +msgid "" +"This would work if the new tenant is binary compatible with Cats Effect " +"2.2.0. In this case, the library authors have declared that they are _not_ " +"binary compatible, so the eviction was actually unsafe. An unsafe eviction " +"would cause runtime issues such as `ClassNotFoundException`. Instead " +"Coursier should've failed to resolve." +msgstr "" + +#: src/reference/reference/sbt-update.md:104 +msgid "\"use\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:106 +msgid "\"org.http4s\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:106 +msgid "\"http4s-blaze-server\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:106 +msgid "\"0.21.11\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:107 +msgid "\"org.typelevel\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:107 +msgid "\"cats-effect\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:107 +msgid "\"3.0.0-M4\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:112 +msgid "" +"sbt performs this secondary compatibility check after Coursier returns a " +"candidate:" +msgstr "" + +#: src/reference/reference/sbt-update.md:129 +msgid "This mechanism is called the _eviction error_." +msgstr "" + +#: src/reference/reference/sbt-update.md:131 +msgid "Opting out of the the eviction error" +msgstr "" + +#: src/reference/reference/sbt-update.md:133 +msgid "" +"If the library authors have declared the compatibility breakage, but if you " +"want to ignore the strict check (often for `scala-xml`), you can write this " +"in `project/plugins.sbt` and `build.sbt`:" +msgstr "" + +#: src/reference/reference/sbt-update.md:137 +msgid "\"org.scala-lang.modules\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:137 +msgid "\"scala-xml\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:140 +msgid "To ignore all eviction errors:" +msgstr "" + +#: src/reference/reference/sbt-update.md:146 +msgid "Resolvers" +msgstr "" + +#: src/reference/reference/sbt-update.md:148 +msgid "" +"sbt uses the standard Maven Central repository by default. Declare " +"additional repositories with the form:" +msgstr "" + +#: src/reference/reference/sbt-update.md:154 +msgid "For example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:158 +msgid "\"org.apache.derby\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:158 +msgid "\"derby\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:158 +msgid "\"10.4.1.3\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:159 +msgid "\"org.specs\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:159 +msgid "\"specs\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:159 +msgid "\"1.6.1\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:162 +#: src/reference/reference/sbt-update.md:189 +msgid "\"Sonatype OSS Snapshots\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:162 +#: src/reference/reference/sbt-update.md:189 +msgid "\"https://oss.sonatype.org/content/repositories/snapshots\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:165 +msgid "" +"sbt can search your local Maven repository if you add it as a repository:" +msgstr "" + +#: src/reference/reference/sbt-update.md:176 +msgid "Override default resolvers" +msgstr "" + +#: src/reference/reference/sbt-update.md:178 +msgid "" +"`resolvers` configures additional, inline user resolvers. By default, `sbt` " +"combines these resolvers with default repositories (Maven Central and the " +"local Ivy repository) to form `externalResolvers`. To have more control over " +"repositories, set `externalResolvers` directly. To only specify repositories " +"in addition to the usual defaults, configure `resolvers`." +msgstr "" + +#: src/reference/reference/sbt-update.md:185 +msgid "" +"For example, to use the Sonatype OSS Snapshots repository in addition to the " +"default repositories," +msgstr "" + +#: src/reference/reference/sbt-update.md:192 +msgid "To use the local repository, but not the Maven Central repository:" +msgstr "" + +#: src/reference/reference/sbt-update.md:198 +msgid "Override all resolvers for all builds" +msgstr "" + +#: src/reference/reference/sbt-update.md:200 +msgid "" +"The repositories used to retrieve sbt, Scala, plugins, and application " +"dependencies can be configured globally and declared to override the " +"resolvers configured in a build or plugin definition. There are two parts:" +msgstr "" + +#: src/reference/reference/sbt-update.md:205 +msgid "Define the repositories used by the launcher." +msgstr "" + +#: src/reference/reference/sbt-update.md:206 +msgid "" +"Specify that these repositories should override those in build definitions." +msgstr "" + +#: src/reference/reference/sbt-update.md:209 +msgid "" +"The repositories used by the launcher can be overridden by defining `~/.sbt/" +"repositories`, which must contain a `[repositories]` section with the same " +"format as the `Launcher` configuration file. For example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:213 +msgid "" +"```\n" +"[repositories]\n" +"local\n" +"my-maven-repo: https://example.org/repo\n" +"my-ivy-repo: https://example.org/ivy-repo/, [organization]/[module]/" +"[revision]/[type]s/[artifact](-[classifier]).[ext]\n" +"```" +msgstr "" + +#: src/reference/reference/sbt-update.md:220 +msgid "" +"A different location for the repositories file may be specified by the `sbt." +"repository.config` system property in the sbt startup script. The final step " +"is to set `sbt.override.build.repos` to true to use these repositories for " +"dependency resolution and retrieval." +msgstr "" + +#: src/reference/reference/sbt-update.md:225 +msgid "Exclude Transitive Dependencies" +msgstr "" + +#: src/reference/reference/sbt-update.md:227 +msgid "" +"In certain cases a transitive dependency should be excluded from all " +"dependencies. This can be achieved by setting up `ExclusionRules` in " +"`excludeDependencies`." +msgstr "" + +#: src/reference/reference/sbt-update.md:233 +msgid "// commons-logging is replaced by jcl-over-slf4j" +msgstr "" + +#: src/reference/reference/sbt-update.md:234 +msgid "\"commons-logging\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:238 +msgid "" +"To exclude certain transitive dependencies of a dependency, use the " +"`excludeAll` or `exclude` methods. The `exclude` method should be used when " +"a pom will be published for the project. It requires the organization and " +"module name to exclude. For example," +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"log4j\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"1.2.15\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"javax.jms\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"jms\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:265 +msgid "Explicit URL" +msgstr "" + +#: src/reference/reference/sbt-update.md:267 +msgid "" +"If your project requires a dependency that is not present in a repository, a " +"direct URL to its jar can be specified as follows:" +msgstr "" + +#: src/reference/reference/sbt-update.md:271 +msgid "\"slinky\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:271 +msgid "\"2.1\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:271 +msgid "\"https://slinky2.googlecode.com/svn/artifacts/2.1/slinky.jar\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:274 +msgid "" +"The URL is only used as a fallback if the dependency cannot be found through " +"the configured repositories. Also, the explicit URL is not included in " +"published metadata (that is, the pom or ivy.xml)." +msgstr "" + +#: src/reference/reference/sbt-update.md:278 +msgid "Disable Transitivity" +msgstr "" + +#: src/reference/reference/sbt-update.md:280 +msgid "" +"By default, these declarations fetch all project dependencies, transitively. " +"In some instances, you may find that the dependencies listed for a project " +"aren't necessary for it to build. Projects using the Felix OSGI framework, " +"for instance, only explicitly require its main jar to compile and run. Avoid " +"fetching artifact dependencies with either `intransitive()` or " +"`notTransitive()`, as in this example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:288 +#: src/reference/reference/sbt-update.md:330 +msgid "\"org.apache.felix\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:288 +#: src/reference/reference/sbt-update.md:330 +msgid "\"org.apache.felix.framework\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:288 +#: src/reference/reference/sbt-update.md:330 +msgid "\"1.8.0\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:291 +msgid "Classifiers" +msgstr "" + +#: src/reference/reference/sbt-update.md:293 +msgid "" +"You can specify the classifier for a dependency using the `classifier` " +"method. For example, to get the jdk15 version of TestNG:" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"org.testng\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"testng\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"5.7\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"jdk15\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:300 +msgid "For multiple classifiers, use multiple `classifier` calls:" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"org.lwjgl.lwjgl\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"lwjgl-platform\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"natives-windows\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"natives-linux\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"natives-osx\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:307 +msgid "" +"To obtain particular classifiers for all dependencies transitively, run the " +"`updateClassifiers` task. By default, this resolves all artifacts with the " +"`sources` or `javadoc` classifier. Select the classifiers to obtain by " +"configuring the `transitiveClassifiers` setting. For example, to only " +"retrieve sources:" +msgstr "" + +#: src/reference/reference/sbt-update.md:314 +msgid "\"sources\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:317 +msgid "Download Sources" +msgstr "" + +#: src/reference/reference/sbt-update.md:319 +msgid "" +"Downloading source and API documentation jars is usually handled by an IDE " +"plugin. These plugins use the `updateClassifiers` and `updateSbtClassifiers` " +"tasks, which produce an `Update-Report` referencing these jars." +msgstr "" + +#: src/reference/reference/sbt-update.md:324 +msgid "" +"To have sbt download the dependency's sources without using an IDE plugin, " +"add `withSources()` to the dependency definition. For API jars, add " +"`withJavadoc()`. For example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:333 +msgid "" +"Note that this is not transitive. Use the `update*Classifiers` tasks for " +"that." +msgstr "" diff --git a/po/summary/reference/sbt-update.zh-cn.po b/po/summary/reference/sbt-update.zh-cn.po new file mode 100644 index 00000000..0a1f18a6 --- /dev/null +++ b/po/summary/reference/sbt-update.zh-cn.po @@ -0,0 +1,494 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/sbt-update.md:14 +msgid "sbt update" +msgstr "" + +#: src/reference/reference/sbt-update.md:17 +msgid "" +"See [library depdency basics](../guide/library-dependency-basics.md) in the " +"Getting Started guide to learn about the basics." +msgstr "" + +#: src/reference/reference/sbt-update.md:19 +msgid "Synopsis" +msgstr "" + +#: src/reference/reference/sbt-update.md:22 +msgid "`sbt --client update`" +msgstr "" + +#: src/reference/reference/sbt-update.md:24 +msgid "Description" +msgstr "" + +#: src/reference/reference/sbt-update.md:27 +msgid "" +"sbt uses [Coursier](https://get-coursier.io/) to implement library " +"management, also known as a package manager in other ecosystems. The general " +"idea of library management is that you can specify external libraries you " +"would like to use in your subprojects, and the library management system " +"would:" +msgstr "" + +#: src/reference/reference/sbt-update.md:31 +msgid "Check if such versions exists in the listed repositories" +msgstr "" + +#: src/reference/reference/sbt-update.md:32 +msgid "" +"Look for the transitive dependencies (i.e. the libraries used by the " +"libraries)" +msgstr "" + +#: src/reference/reference/sbt-update.md:33 +msgid "Attempt to resolve version conflicts, if any" +msgstr "" + +#: src/reference/reference/sbt-update.md:34 +msgid "Download the artifacts, such as JAR files, from the repositories" +msgstr "" + +#: src/reference/reference/sbt-update.md:36 +msgid "Dependencies" +msgstr "" + +#: src/reference/reference/sbt-update.md:38 +msgid "Declaring a dependency looks like:" +msgstr "" + +#: src/reference/reference/sbt-update.md:44 +msgid "or" +msgstr "" + +#: src/reference/reference/sbt-update.md:55 +msgid "Also, several dependencies can be declared together:" +msgstr "" + +#: src/reference/reference/sbt-update.md:64 +msgid "" +"If you are using a dependency that was built with sbt, double the first `%` " +"to be `%%`:" +msgstr "" + +#: src/reference/reference/sbt-update.md:71 +msgid "" +"This will use the right JAR for the dependency built with the version of " +"Scala that you are currently using. If you get an error while resolving this " +"kind of dependency, that dependency probably wasn't published for the " +"version of Scala you are using. See [Cross building](../concepts/cross-" +"building.md) for details." +msgstr "" + +#: src/reference/reference/sbt-update.md:84 +msgid "`versionScheme` and eviction errors" +msgstr "" + +#: src/reference/reference/sbt-update.md:86 +msgid "" +"sbt allows library authors to declare the version semantics using the " +"`versionScheme` setting:" +msgstr "" + +#: src/reference/reference/sbt-update.md:89 +msgid "// Semantic Versioning applied to 0.x, as well as 1.x, 2.x, etc" +msgstr "" + +#: src/reference/reference/sbt-update.md:93 +msgid "" +"When Coursier finds multiple versions of a library, for example Cats Effect " +"2.x and Cats Effect 3.0.0-M4, it often resolves the conflict by removing the " +"older version from the graph. This process is colloquially called eviction, " +"like \"Cats Effect 2.2.0 was evicted.\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:97 +msgid "" +"This would work if the new tenant is binary compatible with Cats Effect " +"2.2.0. In this case, the library authors have declared that they are _not_ " +"binary compatible, so the eviction was actually unsafe. An unsafe eviction " +"would cause runtime issues such as `ClassNotFoundException`. Instead " +"Coursier should've failed to resolve." +msgstr "" + +#: src/reference/reference/sbt-update.md:104 +msgid "\"use\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:106 +msgid "\"org.http4s\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:106 +msgid "\"http4s-blaze-server\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:106 +msgid "\"0.21.11\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:107 +msgid "\"org.typelevel\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:107 +msgid "\"cats-effect\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:107 +msgid "\"3.0.0-M4\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:112 +msgid "" +"sbt performs this secondary compatibility check after Coursier returns a " +"candidate:" +msgstr "" + +#: src/reference/reference/sbt-update.md:129 +msgid "This mechanism is called the _eviction error_." +msgstr "" + +#: src/reference/reference/sbt-update.md:131 +msgid "Opting out of the the eviction error" +msgstr "" + +#: src/reference/reference/sbt-update.md:133 +msgid "" +"If the library authors have declared the compatibility breakage, but if you " +"want to ignore the strict check (often for `scala-xml`), you can write this " +"in `project/plugins.sbt` and `build.sbt`:" +msgstr "" + +#: src/reference/reference/sbt-update.md:137 +msgid "\"org.scala-lang.modules\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:137 +msgid "\"scala-xml\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:140 +msgid "To ignore all eviction errors:" +msgstr "" + +#: src/reference/reference/sbt-update.md:146 +msgid "Resolvers" +msgstr "" + +#: src/reference/reference/sbt-update.md:148 +msgid "" +"sbt uses the standard Maven Central repository by default. Declare " +"additional repositories with the form:" +msgstr "" + +#: src/reference/reference/sbt-update.md:154 +msgid "For example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:158 +msgid "\"org.apache.derby\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:158 +msgid "\"derby\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:158 +msgid "\"10.4.1.3\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:159 +msgid "\"org.specs\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:159 +msgid "\"specs\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:159 +msgid "\"1.6.1\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:162 +#: src/reference/reference/sbt-update.md:189 +msgid "\"Sonatype OSS Snapshots\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:162 +#: src/reference/reference/sbt-update.md:189 +msgid "\"https://oss.sonatype.org/content/repositories/snapshots\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:165 +msgid "" +"sbt can search your local Maven repository if you add it as a repository:" +msgstr "" + +#: src/reference/reference/sbt-update.md:176 +msgid "Override default resolvers" +msgstr "" + +#: src/reference/reference/sbt-update.md:178 +msgid "" +"`resolvers` configures additional, inline user resolvers. By default, `sbt` " +"combines these resolvers with default repositories (Maven Central and the " +"local Ivy repository) to form `externalResolvers`. To have more control over " +"repositories, set `externalResolvers` directly. To only specify repositories " +"in addition to the usual defaults, configure `resolvers`." +msgstr "" + +#: src/reference/reference/sbt-update.md:185 +msgid "" +"For example, to use the Sonatype OSS Snapshots repository in addition to the " +"default repositories," +msgstr "" + +#: src/reference/reference/sbt-update.md:192 +msgid "To use the local repository, but not the Maven Central repository:" +msgstr "" + +#: src/reference/reference/sbt-update.md:198 +msgid "Override all resolvers for all builds" +msgstr "" + +#: src/reference/reference/sbt-update.md:200 +msgid "" +"The repositories used to retrieve sbt, Scala, plugins, and application " +"dependencies can be configured globally and declared to override the " +"resolvers configured in a build or plugin definition. There are two parts:" +msgstr "" + +#: src/reference/reference/sbt-update.md:205 +msgid "Define the repositories used by the launcher." +msgstr "" + +#: src/reference/reference/sbt-update.md:206 +msgid "" +"Specify that these repositories should override those in build definitions." +msgstr "" + +#: src/reference/reference/sbt-update.md:209 +msgid "" +"The repositories used by the launcher can be overridden by defining `~/.sbt/" +"repositories`, which must contain a `[repositories]` section with the same " +"format as the `Launcher` configuration file. For example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:213 +msgid "" +"```\n" +"[repositories]\n" +"local\n" +"my-maven-repo: https://example.org/repo\n" +"my-ivy-repo: https://example.org/ivy-repo/, [organization]/[module]/" +"[revision]/[type]s/[artifact](-[classifier]).[ext]\n" +"```" +msgstr "" + +#: src/reference/reference/sbt-update.md:220 +msgid "" +"A different location for the repositories file may be specified by the `sbt." +"repository.config` system property in the sbt startup script. The final step " +"is to set `sbt.override.build.repos` to true to use these repositories for " +"dependency resolution and retrieval." +msgstr "" + +#: src/reference/reference/sbt-update.md:225 +msgid "Exclude Transitive Dependencies" +msgstr "" + +#: src/reference/reference/sbt-update.md:227 +msgid "" +"In certain cases a transitive dependency should be excluded from all " +"dependencies. This can be achieved by setting up `ExclusionRules` in " +"`excludeDependencies`." +msgstr "" + +#: src/reference/reference/sbt-update.md:233 +msgid "// commons-logging is replaced by jcl-over-slf4j" +msgstr "" + +#: src/reference/reference/sbt-update.md:234 +msgid "\"commons-logging\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:238 +msgid "" +"To exclude certain transitive dependencies of a dependency, use the " +"`excludeAll` or `exclude` methods. The `exclude` method should be used when " +"a pom will be published for the project. It requires the organization and " +"module name to exclude. For example," +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"log4j\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"1.2.15\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"javax.jms\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:245 +msgid "\"jms\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:265 +msgid "Explicit URL" +msgstr "" + +#: src/reference/reference/sbt-update.md:267 +msgid "" +"If your project requires a dependency that is not present in a repository, a " +"direct URL to its jar can be specified as follows:" +msgstr "" + +#: src/reference/reference/sbt-update.md:271 +msgid "\"slinky\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:271 +msgid "\"2.1\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:271 +msgid "\"https://slinky2.googlecode.com/svn/artifacts/2.1/slinky.jar\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:274 +msgid "" +"The URL is only used as a fallback if the dependency cannot be found through " +"the configured repositories. Also, the explicit URL is not included in " +"published metadata (that is, the pom or ivy.xml)." +msgstr "" + +#: src/reference/reference/sbt-update.md:278 +msgid "Disable Transitivity" +msgstr "" + +#: src/reference/reference/sbt-update.md:280 +msgid "" +"By default, these declarations fetch all project dependencies, transitively. " +"In some instances, you may find that the dependencies listed for a project " +"aren't necessary for it to build. Projects using the Felix OSGI framework, " +"for instance, only explicitly require its main jar to compile and run. Avoid " +"fetching artifact dependencies with either `intransitive()` or " +"`notTransitive()`, as in this example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:288 +#: src/reference/reference/sbt-update.md:330 +msgid "\"org.apache.felix\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:288 +#: src/reference/reference/sbt-update.md:330 +msgid "\"org.apache.felix.framework\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:288 +#: src/reference/reference/sbt-update.md:330 +msgid "\"1.8.0\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:291 +msgid "Classifiers" +msgstr "" + +#: src/reference/reference/sbt-update.md:293 +msgid "" +"You can specify the classifier for a dependency using the `classifier` " +"method. For example, to get the jdk15 version of TestNG:" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"org.testng\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"testng\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"5.7\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:297 +msgid "\"jdk15\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:300 +msgid "For multiple classifiers, use multiple `classifier` calls:" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"org.lwjgl.lwjgl\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"lwjgl-platform\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"natives-windows\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"natives-linux\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:304 +msgid "\"natives-osx\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:307 +msgid "" +"To obtain particular classifiers for all dependencies transitively, run the " +"`updateClassifiers` task. By default, this resolves all artifacts with the " +"`sources` or `javadoc` classifier. Select the classifiers to obtain by " +"configuring the `transitiveClassifiers` setting. For example, to only " +"retrieve sources:" +msgstr "" + +#: src/reference/reference/sbt-update.md:314 +msgid "\"sources\"" +msgstr "" + +#: src/reference/reference/sbt-update.md:317 +msgid "Download Sources" +msgstr "" + +#: src/reference/reference/sbt-update.md:319 +msgid "" +"Downloading source and API documentation jars is usually handled by an IDE " +"plugin. These plugins use the `updateClassifiers` and `updateSbtClassifiers` " +"tasks, which produce an `Update-Report` referencing these jars." +msgstr "" + +#: src/reference/reference/sbt-update.md:324 +msgid "" +"To have sbt download the dependency's sources without using an IDE plugin, " +"add `withSources()` to the dependency definition. For API jars, add " +"`withJavadoc()`. For example:" +msgstr "" + +#: src/reference/reference/sbt-update.md:333 +msgid "" +"Note that this is not transitive. Use the `update*Classifiers` tasks for " +"that." +msgstr "" diff --git a/po/summary/reference/sbt.ja.po b/po/summary/reference/sbt.ja.po new file mode 100644 index 00000000..579695f2 --- /dev/null +++ b/po/summary/reference/sbt.ja.po @@ -0,0 +1,557 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:08:34-04:00\n" +"PO-Revision-Date: 2024-10-30T01:14:09-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/sbt.md:14 +msgid "sbt" +msgstr "" + +#: src/reference/reference/sbt.md:17 +msgid "" +"See [Basic Tasks](../guide/basic-tasks.md) in the Getting Started Guide for " +"an intro to the basics." +msgstr "" + +#: src/reference/reference/sbt.md:19 +msgid "Synopsis" +msgstr "" + +#: src/reference/reference/sbt.md:22 +msgid "`sbt`
`sbt --client` _command_ _args_" +msgstr "" + +#: src/reference/reference/sbt.md:25 +msgid "Description" +msgstr "" + +#: src/reference/reference/sbt.md:27 +msgid "" +"sbt is a simple build tool created originally for Scala and Java. It lets us " +"declare subprojects and their various dependencies and custom tasks to " +"ensure that we'll always get a fast, repeatable build." +msgstr "" + +#: src/reference/reference/sbt.md:29 +msgid "sbt runner and sbt server" +msgstr "" + +#: src/reference/reference/sbt.md:31 +msgid "" +"sbt runner is a system shell script named `sbt`, or `sbt.bat` on Windows. " +"That is capable of running _any version of sbt_. This is sometimes called " +"\"sbt-the-shell-script\"." +msgstr "" + +#: src/reference/reference/sbt.md:32 +msgid "" +"When executed with `--client`, sbt runner executes sbtn, a client program " +"compiled a native code using GraalVM native image." +msgstr "" + +#: src/reference/reference/sbt.md:33 +msgid "" +"sbt runner also executes sbt launcher, a launcher that is capable of running " +"_any verions of sbt_." +msgstr "" + +#: src/reference/reference/sbt.md:34 +msgid "" +"When you install sbt from a installer, what you're installing is the sbt " +"runner." +msgstr "" + +#: src/reference/reference/sbt.md:35 +msgid "sbt server is the actual build tool." +msgstr "" + +#: src/reference/reference/sbt.md:36 +msgid "" +"The sbt version is determined by `project/build.properties` in each working " +"directory." +msgstr "" + +#: src/reference/reference/sbt.md:37 +msgid "" +"sbt server accepts commands from sbtn, network API, or via its own sbt shell." +msgstr "" + +#: src/reference/reference/sbt.md:43 +msgid "" +"This mechanism allows builds to be configured to a specific version of sbt, " +"and everyone working on the project would use the same build semantics, " +"regardless of the sbt runner installed on their machine." +msgstr "" + +#: src/reference/reference/sbt.md:45 +msgid "" +"This also means that some features are implemented at sbt runner or sbtn " +"level, while other features are implemented at sbt server level." +msgstr "" + +#: src/reference/reference/sbt.md:47 +msgid "sbt commands" +msgstr "" + +#: src/reference/reference/sbt.md:67 +msgid "Project-level tasks" +msgstr "" + +#: src/reference/reference/sbt.md:69 +msgid "`clean` Deletes all generated files (the `target` directory)." +msgstr "" + +#: src/reference/reference/sbt.md:70 +msgid "" +"`publishLocal` Publishes artifacts (such as JARs) to the local Ivy " +"repository as described in Publishing." +msgstr "" + +#: src/reference/reference/sbt.md:72 +msgid "" +"`publish` Publishes artifacts (such as JARs) to the repository defined by " +"the publishTo setting, described in Publishing." +msgstr "" + +#: src/reference/reference/sbt.md:80 +msgid "Configuration-level tasks" +msgstr "" + +#: src/reference/reference/sbt.md:82 +msgid "" +"Configuration-level tasks are tasks associated with a configuration. For " +"example, `compile`, which is equivalent to `Compile/compile`, compiles the " +"main source code (the `Compile` configuration). `Test/compile` compiles the " +"test source code (the `Test` configuration). Most tasks for the `Compile` " +"configuration have an equivalent in the `Test` configuration that can be run " +"using a `Test/` prefix." +msgstr "" + +#: src/reference/reference/sbt.md:89 +msgid "" +"`compile` Compiles the main sources (in the `src/main/scala` directory). " +"`Test/compile` compiles test sources (in the src/test/scala/ directory)." +msgstr "" + +#: src/reference/reference/sbt.md:92 +msgid "" +"`console` Starts the Scala interpreter with a classpath including the " +"compiled sources, all JARs in the lib directory, and managed libraries. To " +"return to sbt, type :quit, Ctrl+D (Unix), or Ctrl+Z (Windows). Similarly, " +"Test/console starts the interpreter with the test classes and classpath." +msgstr "" + +#: src/reference/reference/sbt.md:97 +msgid "" +"`doc` Generates API documentation for Scala source files in `src/main/scala` " +"using scaladoc. `Test/doc` generates API documentation for source files in " +"`src/test/scala`." +msgstr "" + +#: src/reference/reference/sbt.md:100 +msgid "" +"`package` Creates a JAR file containing the files in `src/main/resources` " +"and the classes compiled from `src/main/scala`. `Test/package` creates a JAR " +"containing the files in `src/test/resources` and the class compiled from " +"`src/test/scala`." +msgstr "" + +#: src/reference/reference/sbt.md:104 +msgid "" +"`packageDoc` Creates a JAR file containing API documentation generated from " +"Scala source files in src/main/scala. Test/packageDoc creates a JAR " +"containing API documentation for test sources files in src/test/scala." +msgstr "" + +#: src/reference/reference/sbt.md:108 +msgid "" +"`packageSrc`: Creates a JAR file containing all main source files and " +"resources. The packaged paths are relative to src/main/scala and src/main/" +"resources. Similarly, Test/packageSrc operates on test source files and " +"resources." +msgstr "" + +#: src/reference/reference/sbt.md:112 +msgid "" +"`run *` Runs the main class for the project in the same virtual " +"machine as sbt. The main class is passed the arguments provided." +msgstr "" + +#: src/reference/reference/sbt.md:118 +msgid "" +"`runMain *` Runs the specified main class for the " +"project in the same virtual machine as sbt. The main class is passed the " +"arguments provided." +msgstr "" + +#: src/reference/reference/sbt.md:126 +msgid "`testFull` Runs all tests detected during test compilation." +msgstr "" + +#: src/reference/reference/sbt.md:128 +msgid "" +"`testOnly *` Runs the tests provided as arguments. `*` (will be) " +"interpreted as a wildcard in the test name." +msgstr "" + +#: src/reference/reference/sbt.md:131 +msgid "" +"`test *` Runs the tests specified as arguments (or all tests if no " +"arguments are given) that:" +msgstr "" + +#: src/reference/reference/sbt.md:133 +msgid "have not been run yet OR" +msgstr "" + +#: src/reference/reference/sbt.md:134 +msgid "failed the last time they were run OR" +msgstr "" + +#: src/reference/reference/sbt.md:135 +msgid "" +"had any transitive dependencies recompiled since the last successful run `*` " +"(will be) interpreted as a wildcard in the test name." +msgstr "" + +#: src/reference/reference/sbt.md:152 +msgid "General commands" +msgstr "" + +#: src/reference/reference/sbt.md:154 +msgid "" +"`exit` or `quit` End the current interactive session or build. Additionally, " +"Ctrl+D (Unix) or Ctrl+Z (Windows) will exit the interactive prompt." +msgstr "" + +#: src/reference/reference/sbt.md:157 +msgid "" +"`help ` Displays detailed help for the specified command. If the " +"command does not exist, help lists detailed help for commands whose name or " +"description match the argument, which is interpreted as a regular " +"expression. If no command is provided, displays brief descriptions of the " +"main commands. Related commands are tasks and settings." +msgstr "" + +#: src/reference/reference/sbt.md:163 +msgid "" +"`projects [add|remove ]` List all available projects if no arguments " +"provided or adds/removes the build at the provided URI." +msgstr "" + +#: src/reference/reference/sbt.md:167 +msgid "" +"`project ` Change the current project to the project with ID " +"``. Further operations will be done in the context of the given " +"project." +msgstr "" + +#: src/reference/reference/sbt.md:172 +msgid "" +"`~ ` Executes the project specified action or method whenever " +"source files change." +msgstr "" + +#: src/reference/reference/sbt.md:175 +msgid "" +"`< filename` Executes the commands in the given file. Each command should be " +"on its own line. Empty lines and lines beginning with '#' are ignored" +msgstr "" + +#: src/reference/reference/sbt.md:178 +msgid "" +"`A ; B` Execute A and if it succeeds, run B. Note that the leading semicolon " +"is required." +msgstr "" + +#: src/reference/reference/sbt.md:180 +msgid "" +"`eval ` Evaluates the given Scala expression and returns " +"the result and inferred type. This can be used to set system properties, as " +"a calculator, to fork processes, etc ... For example:" +msgstr "" + +#: src/reference/reference/sbt.md:184 +msgid "" +"```\n" +"> eval System.setProperty(\"demo\", \"true\")\n" +"> eval 1+1\n" +"> eval \"ls -l\" !\n" +"```" +msgstr "" + +#: src/reference/reference/sbt.md:201 +msgid "Commands for managing the build definition" +msgstr "" + +#: src/reference/reference/sbt.md:203 +msgid "" +"`reload [plugins|return]` If no argument is specified, reloads the build, " +"recompiling any build or plugin definitions as necessary. reload plugins " +"changes the current project to the build definition project (in `project/`). " +"This can be useful to directly manipulate the build definition. For example, " +"running clean on the build definition project will force snapshots to be " +"updated and the build definition to be recompiled. reload return changes " +"back to the main project." +msgstr "" + +#: src/reference/reference/sbt.md:210 +msgid "" +"`set ` Evaluates and applies the given setting " +"definition. The setting applies until sbt is restarted, the build is " +"reloaded, or the setting is overridden by another set command or removed by " +"the session command." +msgstr "" + +#: src/reference/reference/sbt.md:216 +msgid "" +"`session ` Manages session settings defined by the `set` command. " +"It can persist settings configured at the prompt." +msgstr "" + +#: src/reference/reference/sbt.md:219 +msgid "" +"`inspect ` Displays information about settings, such as the " +"value, description, defining scope, dependencies, delegation chain, and " +"related settings." +msgstr "" + +#: src/reference/reference/sbt.md:224 +msgid "sbt runner and launcher" +msgstr "" + +#: src/reference/reference/sbt.md:227 +msgid "" +"When launching the `sbt` runner from the system shell, various system " +"properties or JVM extra options can be specified to influence its behaviour." +msgstr "" + +#: src/reference/reference/sbt.md:230 +msgid "sbt JVM options and system properties" +msgstr "" + +#: src/reference/reference/sbt.md:232 +msgid "" +"If the `JAVA_OPTS` and/or `SBT_OPTS` environment variables are defined when " +"`sbt` starts, their content is passed as command line arguments to the JVM " +"running sbt server." +msgstr "" + +#: src/reference/reference/sbt.md:236 +msgid "" +"If a file named `.jvmopts` exists in the current directory, its content is " +"appended to `JAVA_OPTS` at sbt startup. Similarly, if `.sbtopts` and/or `/" +"etc/sbt/sbtopts` exist, their content is appended to `SBT_OPTS`. The default " +"value of `JAVA_OPTS` is `-Dfile.encoding=UTF8`." +msgstr "" + +#: src/reference/reference/sbt.md:241 +msgid "" +"You can also specify JVM system properties and command line options directly " +"as `sbt` arguments: any `-Dkey=val` argument will be passed as-is to the " +"JVM, and any `-J-Xfoo` will be passed as `-Xfoo`." +msgstr "" + +#: src/reference/reference/sbt.md:245 +msgid "See also `sbt --help` for more details." +msgstr "" + +#: src/reference/reference/sbt.md:248 +msgid "sbt JVM heap, permgen, and stack sizes" +msgstr "" + +#: src/reference/reference/sbt.md:250 +msgid "" +"If you find yourself running out of permgen space or your workstation is low " +"on memory, adjust the JVM configuration as you would for any java " +"application." +msgstr "" + +#: src/reference/reference/sbt.md:254 +msgid "For example a common set of memory-related options is:" +msgstr "" + +#: src/reference/reference/sbt.md:257 +msgid "\"-Xmx2048M -Xss2M\"" +msgstr "" + +#: src/reference/reference/sbt.md:261 +msgid "Or if you prefer to specify them just for this session:" +msgstr "" + +#: src/reference/reference/sbt.md:267 +msgid "Boot directory" +msgstr "" + +#: src/reference/reference/sbt.md:269 +msgid "" +"`sbt` runner is just a bootstrap, the actual sbt server, Scala compiler and " +"standard library are by default downloaded to the shared directory `\\" +"$HOME/.sbt/boot/`." +msgstr "" + +#: src/reference/reference/sbt.md:273 +msgid "" +"To change the location of this directory, set the `sbt.boot.directory` " +"system property. A relative path will be resolved against the current " +"working directory, which can be useful if you want to avoid sharing the boot " +"directory between projects. For example, the following uses the pre-0.11 " +"style of putting the boot directory in `project/boot/`:" +msgstr "" + +#: src/reference/reference/sbt.md:284 +msgid "Terminal encoding" +msgstr "" + +#: src/reference/reference/sbt.md:286 +msgid "" +"The character encoding used by your terminal may differ from Java's default " +"encoding for your platform. In this case, you will need to specify the `file." +"encoding=` system property, which might look like:" +msgstr "" + +#: src/reference/reference/sbt.md:291 +msgid "\"-Dfile.encoding=Cp1252\"" +msgstr "" + +#: src/reference/reference/sbt.md:295 +msgid "HTTP/HTTPS/FTP Proxy" +msgstr "" + +#: src/reference/reference/sbt.md:297 +msgid "" +"On Unix, sbt will pick up any HTTP, HTTPS, or FTP proxy settings from the " +"standard `http_proxy`, `https_proxy`, and `ftp_proxy` environment variables. " +"If you are behind a proxy requiring authentication, you need to pass some " +"supplementary flags at sbt startup. See [JVM networking system properties]" +"(https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/net/doc-" +"files/net-properties.html) for more details." +msgstr "" + +#: src/reference/reference/sbt.md:303 +msgid "For example:" +msgstr "" + +#: src/reference/reference/sbt.md:309 +msgid "" +"On Windows, your script should set properties for proxy host, port, and if " +"applicable, username and password. For example, for HTTP:" +msgstr "" + +#: src/reference/reference/sbt.md:316 +msgid "" +"Replace `http` with `https` or `ftp` in the above command line to configure " +"HTTPS or FTP." +msgstr "" + +#: src/reference/reference/sbt.md:319 +msgid "Other system properties" +msgstr "" + +#: src/reference/reference/sbt.md:321 +msgid "The following system properties can also be passed to `sbt` runner:" +msgstr "" + +#: src/reference/reference/sbt.md:323 +msgid "`-Dsbt.banner=true`" +msgstr "" + +#: src/reference/reference/sbt.md:325 +msgid "Show a welcome banner advertising new features." +msgstr "" + +#: src/reference/reference/sbt.md:327 +msgid "`-Dsbt.ci=true`" +msgstr "" + +#: src/reference/reference/sbt.md:329 +msgid "" +"Default `false` (unless then env var `BUILD_NUMBER` is set). For continuous " +"integration environments. Suppress supershell and color." +msgstr "" + +#: src/reference/reference/sbt.md:331 +msgid "`-Dsbt.client=true`" +msgstr "" + +#: src/reference/reference/sbt.md:333 +msgid "Run the sbt client." +msgstr "" + +#: src/reference/reference/sbt.md:335 +msgid "`-Dsbt.color=auto`" +msgstr "" + +#: src/reference/reference/sbt.md:337 +msgid "To turn on color, use `always` or `true`." +msgstr "" + +#: src/reference/reference/sbt.md:338 +msgid "To turn off color, use `never` or `false`." +msgstr "" + +#: src/reference/reference/sbt.md:339 +msgid "" +"To use color if the output is a terminal (not a pipe) that supports color, " +"use `auto`." +msgstr "" + +#: src/reference/reference/sbt.md:341 +msgid "`-Dsbt.coursier.home=$HOME/.cache/coursier/v1`" +msgstr "" + +#: src/reference/reference/sbt.md:343 +msgid "" +"Location of the Coursier artifact cache, where the default is defined by " +"[Coursier cache resolution logic](https://get-coursier.io/docs/cache." +"html#default-location). You can verify the value with the command " +"`csrCacheDirectory`." +msgstr "" + +#: src/reference/reference/sbt.md:345 +msgid "`-Dsbt.genbuildprops=true`" +msgstr "" + +#: src/reference/reference/sbt.md:347 +msgid "" +"Generate `build.properties` if missing. If unset, this defers to `sbt.skip." +"version.write`." +msgstr "" + +#: src/reference/reference/sbt.md:349 +msgid "`-Dsbt.global.base=$HOME/.sbt/`" +msgstr "" + +#: src/reference/reference/sbt.md:351 +msgid "The directory containing global settings and plugins." +msgstr "" + +#: src/reference/reference/sbt.md:353 +msgid "`-Dsbt.override.build.repos=true`" +msgstr "" + +#: src/reference/reference/sbt.md:355 +msgid "" +"If true, repositories configured in a build definition are ignored and the " +"repositories configured for the launcher are used instead." +msgstr "" + +#: src/reference/reference/sbt.md:359 +msgid "`-Dsbt.repository.config=$HOME/.sbt/repositories`" +msgstr "" + +#: src/reference/reference/sbt.md:361 +msgid "" +"A file containing the repositories to use for the launcher. The format is " +"the same as a `[repositories]` section for a sbt launcher configuration " +"file. This setting is typically used in conjunction with setting `sbt." +"override.build.repos` to `true`." +msgstr "" diff --git a/po/summary/reference/sbt.zh-cn.po b/po/summary/reference/sbt.zh-cn.po new file mode 100644 index 00000000..6869d204 --- /dev/null +++ b/po/summary/reference/sbt.zh-cn.po @@ -0,0 +1,557 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/reference/sbt.md:14 +msgid "sbt" +msgstr "" + +#: src/reference/reference/sbt.md:17 +msgid "" +"See [Basic Tasks](../guide/basic-tasks.md) in the Getting Started Guide for " +"an intro to the basics." +msgstr "" + +#: src/reference/reference/sbt.md:19 +msgid "Synopsis" +msgstr "" + +#: src/reference/reference/sbt.md:22 +msgid "`sbt`
`sbt --client` _command_ _args_" +msgstr "" + +#: src/reference/reference/sbt.md:25 +msgid "Description" +msgstr "" + +#: src/reference/reference/sbt.md:27 +msgid "" +"sbt is a simple build tool created originally for Scala and Java. It lets us " +"declare subprojects and their various dependencies and custom tasks to " +"ensure that we'll always get a fast, repeatable build." +msgstr "" + +#: src/reference/reference/sbt.md:29 +msgid "sbt runner and sbt server" +msgstr "" + +#: src/reference/reference/sbt.md:31 +msgid "" +"sbt runner is a system shell script named `sbt`, or `sbt.bat` on Windows. " +"That is capable of running _any version of sbt_. This is sometimes called " +"\"sbt-the-shell-script\"." +msgstr "" + +#: src/reference/reference/sbt.md:32 +msgid "" +"When executed with `--client`, sbt runner executes sbtn, a client program " +"compiled a native code using GraalVM native image." +msgstr "" + +#: src/reference/reference/sbt.md:33 +msgid "" +"sbt runner also executes sbt launcher, a launcher that is capable of running " +"_any verions of sbt_." +msgstr "" + +#: src/reference/reference/sbt.md:34 +msgid "" +"When you install sbt from a installer, what you're installing is the sbt " +"runner." +msgstr "" + +#: src/reference/reference/sbt.md:35 +msgid "sbt server is the actual build tool." +msgstr "" + +#: src/reference/reference/sbt.md:36 +msgid "" +"The sbt version is determined by `project/build.properties` in each working " +"directory." +msgstr "" + +#: src/reference/reference/sbt.md:37 +msgid "" +"sbt server accepts commands from sbtn, network API, or via its own sbt shell." +msgstr "" + +#: src/reference/reference/sbt.md:43 +msgid "" +"This mechanism allows builds to be configured to a specific version of sbt, " +"and everyone working on the project would use the same build semantics, " +"regardless of the sbt runner installed on their machine." +msgstr "" + +#: src/reference/reference/sbt.md:45 +msgid "" +"This also means that some features are implemented at sbt runner or sbtn " +"level, while other features are implemented at sbt server level." +msgstr "" + +#: src/reference/reference/sbt.md:47 +msgid "sbt commands" +msgstr "" + +#: src/reference/reference/sbt.md:67 +msgid "Project-level tasks" +msgstr "" + +#: src/reference/reference/sbt.md:69 +msgid "`clean` Deletes all generated files (the `target` directory)." +msgstr "" + +#: src/reference/reference/sbt.md:70 +msgid "" +"`publishLocal` Publishes artifacts (such as JARs) to the local Ivy " +"repository as described in Publishing." +msgstr "" + +#: src/reference/reference/sbt.md:72 +msgid "" +"`publish` Publishes artifacts (such as JARs) to the repository defined by " +"the publishTo setting, described in Publishing." +msgstr "" + +#: src/reference/reference/sbt.md:80 +msgid "Configuration-level tasks" +msgstr "" + +#: src/reference/reference/sbt.md:82 +msgid "" +"Configuration-level tasks are tasks associated with a configuration. For " +"example, `compile`, which is equivalent to `Compile/compile`, compiles the " +"main source code (the `Compile` configuration). `Test/compile` compiles the " +"test source code (the `Test` configuration). Most tasks for the `Compile` " +"configuration have an equivalent in the `Test` configuration that can be run " +"using a `Test/` prefix." +msgstr "" + +#: src/reference/reference/sbt.md:89 +msgid "" +"`compile` Compiles the main sources (in the `src/main/scala` directory). " +"`Test/compile` compiles test sources (in the src/test/scala/ directory)." +msgstr "" + +#: src/reference/reference/sbt.md:92 +msgid "" +"`console` Starts the Scala interpreter with a classpath including the " +"compiled sources, all JARs in the lib directory, and managed libraries. To " +"return to sbt, type :quit, Ctrl+D (Unix), or Ctrl+Z (Windows). Similarly, " +"Test/console starts the interpreter with the test classes and classpath." +msgstr "" + +#: src/reference/reference/sbt.md:97 +msgid "" +"`doc` Generates API documentation for Scala source files in `src/main/scala` " +"using scaladoc. `Test/doc` generates API documentation for source files in " +"`src/test/scala`." +msgstr "" + +#: src/reference/reference/sbt.md:100 +msgid "" +"`package` Creates a JAR file containing the files in `src/main/resources` " +"and the classes compiled from `src/main/scala`. `Test/package` creates a JAR " +"containing the files in `src/test/resources` and the class compiled from " +"`src/test/scala`." +msgstr "" + +#: src/reference/reference/sbt.md:104 +msgid "" +"`packageDoc` Creates a JAR file containing API documentation generated from " +"Scala source files in src/main/scala. Test/packageDoc creates a JAR " +"containing API documentation for test sources files in src/test/scala." +msgstr "" + +#: src/reference/reference/sbt.md:108 +msgid "" +"`packageSrc`: Creates a JAR file containing all main source files and " +"resources. The packaged paths are relative to src/main/scala and src/main/" +"resources. Similarly, Test/packageSrc operates on test source files and " +"resources." +msgstr "" + +#: src/reference/reference/sbt.md:112 +msgid "" +"`run *` Runs the main class for the project in the same virtual " +"machine as sbt. The main class is passed the arguments provided." +msgstr "" + +#: src/reference/reference/sbt.md:118 +msgid "" +"`runMain *` Runs the specified main class for the " +"project in the same virtual machine as sbt. The main class is passed the " +"arguments provided." +msgstr "" + +#: src/reference/reference/sbt.md:126 +msgid "`testFull` Runs all tests detected during test compilation." +msgstr "" + +#: src/reference/reference/sbt.md:128 +msgid "" +"`testOnly *` Runs the tests provided as arguments. `*` (will be) " +"interpreted as a wildcard in the test name." +msgstr "" + +#: src/reference/reference/sbt.md:131 +msgid "" +"`test *` Runs the tests specified as arguments (or all tests if no " +"arguments are given) that:" +msgstr "" + +#: src/reference/reference/sbt.md:133 +msgid "have not been run yet OR" +msgstr "" + +#: src/reference/reference/sbt.md:134 +msgid "failed the last time they were run OR" +msgstr "" + +#: src/reference/reference/sbt.md:135 +msgid "" +"had any transitive dependencies recompiled since the last successful run `*` " +"(will be) interpreted as a wildcard in the test name." +msgstr "" + +#: src/reference/reference/sbt.md:152 +msgid "General commands" +msgstr "" + +#: src/reference/reference/sbt.md:154 +msgid "" +"`exit` or `quit` End the current interactive session or build. Additionally, " +"Ctrl+D (Unix) or Ctrl+Z (Windows) will exit the interactive prompt." +msgstr "" + +#: src/reference/reference/sbt.md:157 +msgid "" +"`help ` Displays detailed help for the specified command. If the " +"command does not exist, help lists detailed help for commands whose name or " +"description match the argument, which is interpreted as a regular " +"expression. If no command is provided, displays brief descriptions of the " +"main commands. Related commands are tasks and settings." +msgstr "" + +#: src/reference/reference/sbt.md:163 +msgid "" +"`projects [add|remove ]` List all available projects if no arguments " +"provided or adds/removes the build at the provided URI." +msgstr "" + +#: src/reference/reference/sbt.md:167 +msgid "" +"`project ` Change the current project to the project with ID " +"``. Further operations will be done in the context of the given " +"project." +msgstr "" + +#: src/reference/reference/sbt.md:172 +msgid "" +"`~ ` Executes the project specified action or method whenever " +"source files change." +msgstr "" + +#: src/reference/reference/sbt.md:175 +msgid "" +"`< filename` Executes the commands in the given file. Each command should be " +"on its own line. Empty lines and lines beginning with '#' are ignored" +msgstr "" + +#: src/reference/reference/sbt.md:178 +msgid "" +"`A ; B` Execute A and if it succeeds, run B. Note that the leading semicolon " +"is required." +msgstr "" + +#: src/reference/reference/sbt.md:180 +msgid "" +"`eval ` Evaluates the given Scala expression and returns " +"the result and inferred type. This can be used to set system properties, as " +"a calculator, to fork processes, etc ... For example:" +msgstr "" + +#: src/reference/reference/sbt.md:184 +msgid "" +"```\n" +"> eval System.setProperty(\"demo\", \"true\")\n" +"> eval 1+1\n" +"> eval \"ls -l\" !\n" +"```" +msgstr "" + +#: src/reference/reference/sbt.md:201 +msgid "Commands for managing the build definition" +msgstr "" + +#: src/reference/reference/sbt.md:203 +msgid "" +"`reload [plugins|return]` If no argument is specified, reloads the build, " +"recompiling any build or plugin definitions as necessary. reload plugins " +"changes the current project to the build definition project (in `project/`). " +"This can be useful to directly manipulate the build definition. For example, " +"running clean on the build definition project will force snapshots to be " +"updated and the build definition to be recompiled. reload return changes " +"back to the main project." +msgstr "" + +#: src/reference/reference/sbt.md:210 +msgid "" +"`set ` Evaluates and applies the given setting " +"definition. The setting applies until sbt is restarted, the build is " +"reloaded, or the setting is overridden by another set command or removed by " +"the session command." +msgstr "" + +#: src/reference/reference/sbt.md:216 +msgid "" +"`session ` Manages session settings defined by the `set` command. " +"It can persist settings configured at the prompt." +msgstr "" + +#: src/reference/reference/sbt.md:219 +msgid "" +"`inspect ` Displays information about settings, such as the " +"value, description, defining scope, dependencies, delegation chain, and " +"related settings." +msgstr "" + +#: src/reference/reference/sbt.md:224 +msgid "sbt runner and launcher" +msgstr "" + +#: src/reference/reference/sbt.md:227 +msgid "" +"When launching the `sbt` runner from the system shell, various system " +"properties or JVM extra options can be specified to influence its behaviour." +msgstr "" + +#: src/reference/reference/sbt.md:230 +msgid "sbt JVM options and system properties" +msgstr "" + +#: src/reference/reference/sbt.md:232 +msgid "" +"If the `JAVA_OPTS` and/or `SBT_OPTS` environment variables are defined when " +"`sbt` starts, their content is passed as command line arguments to the JVM " +"running sbt server." +msgstr "" + +#: src/reference/reference/sbt.md:236 +msgid "" +"If a file named `.jvmopts` exists in the current directory, its content is " +"appended to `JAVA_OPTS` at sbt startup. Similarly, if `.sbtopts` and/or `/" +"etc/sbt/sbtopts` exist, their content is appended to `SBT_OPTS`. The default " +"value of `JAVA_OPTS` is `-Dfile.encoding=UTF8`." +msgstr "" + +#: src/reference/reference/sbt.md:241 +msgid "" +"You can also specify JVM system properties and command line options directly " +"as `sbt` arguments: any `-Dkey=val` argument will be passed as-is to the " +"JVM, and any `-J-Xfoo` will be passed as `-Xfoo`." +msgstr "" + +#: src/reference/reference/sbt.md:245 +msgid "See also `sbt --help` for more details." +msgstr "" + +#: src/reference/reference/sbt.md:248 +msgid "sbt JVM heap, permgen, and stack sizes" +msgstr "" + +#: src/reference/reference/sbt.md:250 +msgid "" +"If you find yourself running out of permgen space or your workstation is low " +"on memory, adjust the JVM configuration as you would for any java " +"application." +msgstr "" + +#: src/reference/reference/sbt.md:254 +msgid "For example a common set of memory-related options is:" +msgstr "" + +#: src/reference/reference/sbt.md:257 +msgid "\"-Xmx2048M -Xss2M\"" +msgstr "" + +#: src/reference/reference/sbt.md:261 +msgid "Or if you prefer to specify them just for this session:" +msgstr "" + +#: src/reference/reference/sbt.md:267 +msgid "Boot directory" +msgstr "" + +#: src/reference/reference/sbt.md:269 +msgid "" +"`sbt` runner is just a bootstrap, the actual sbt server, Scala compiler and " +"standard library are by default downloaded to the shared directory `\\" +"$HOME/.sbt/boot/`." +msgstr "" + +#: src/reference/reference/sbt.md:273 +msgid "" +"To change the location of this directory, set the `sbt.boot.directory` " +"system property. A relative path will be resolved against the current " +"working directory, which can be useful if you want to avoid sharing the boot " +"directory between projects. For example, the following uses the pre-0.11 " +"style of putting the boot directory in `project/boot/`:" +msgstr "" + +#: src/reference/reference/sbt.md:284 +msgid "Terminal encoding" +msgstr "" + +#: src/reference/reference/sbt.md:286 +msgid "" +"The character encoding used by your terminal may differ from Java's default " +"encoding for your platform. In this case, you will need to specify the `file." +"encoding=` system property, which might look like:" +msgstr "" + +#: src/reference/reference/sbt.md:291 +msgid "\"-Dfile.encoding=Cp1252\"" +msgstr "" + +#: src/reference/reference/sbt.md:295 +msgid "HTTP/HTTPS/FTP Proxy" +msgstr "" + +#: src/reference/reference/sbt.md:297 +msgid "" +"On Unix, sbt will pick up any HTTP, HTTPS, or FTP proxy settings from the " +"standard `http_proxy`, `https_proxy`, and `ftp_proxy` environment variables. " +"If you are behind a proxy requiring authentication, you need to pass some " +"supplementary flags at sbt startup. See [JVM networking system properties]" +"(https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/net/doc-" +"files/net-properties.html) for more details." +msgstr "" + +#: src/reference/reference/sbt.md:303 +msgid "For example:" +msgstr "" + +#: src/reference/reference/sbt.md:309 +msgid "" +"On Windows, your script should set properties for proxy host, port, and if " +"applicable, username and password. For example, for HTTP:" +msgstr "" + +#: src/reference/reference/sbt.md:316 +msgid "" +"Replace `http` with `https` or `ftp` in the above command line to configure " +"HTTPS or FTP." +msgstr "" + +#: src/reference/reference/sbt.md:319 +msgid "Other system properties" +msgstr "" + +#: src/reference/reference/sbt.md:321 +msgid "The following system properties can also be passed to `sbt` runner:" +msgstr "" + +#: src/reference/reference/sbt.md:323 +msgid "`-Dsbt.banner=true`" +msgstr "" + +#: src/reference/reference/sbt.md:325 +msgid "Show a welcome banner advertising new features." +msgstr "" + +#: src/reference/reference/sbt.md:327 +msgid "`-Dsbt.ci=true`" +msgstr "" + +#: src/reference/reference/sbt.md:329 +msgid "" +"Default `false` (unless then env var `BUILD_NUMBER` is set). For continuous " +"integration environments. Suppress supershell and color." +msgstr "" + +#: src/reference/reference/sbt.md:331 +msgid "`-Dsbt.client=true`" +msgstr "" + +#: src/reference/reference/sbt.md:333 +msgid "Run the sbt client." +msgstr "" + +#: src/reference/reference/sbt.md:335 +msgid "`-Dsbt.color=auto`" +msgstr "" + +#: src/reference/reference/sbt.md:337 +msgid "To turn on color, use `always` or `true`." +msgstr "" + +#: src/reference/reference/sbt.md:338 +msgid "To turn off color, use `never` or `false`." +msgstr "" + +#: src/reference/reference/sbt.md:339 +msgid "" +"To use color if the output is a terminal (not a pipe) that supports color, " +"use `auto`." +msgstr "" + +#: src/reference/reference/sbt.md:341 +msgid "`-Dsbt.coursier.home=$HOME/.cache/coursier/v1`" +msgstr "" + +#: src/reference/reference/sbt.md:343 +msgid "" +"Location of the Coursier artifact cache, where the default is defined by " +"[Coursier cache resolution logic](https://get-coursier.io/docs/cache." +"html#default-location). You can verify the value with the command " +"`csrCacheDirectory`." +msgstr "" + +#: src/reference/reference/sbt.md:345 +msgid "`-Dsbt.genbuildprops=true`" +msgstr "" + +#: src/reference/reference/sbt.md:347 +msgid "" +"Generate `build.properties` if missing. If unset, this defers to `sbt.skip." +"version.write`." +msgstr "" + +#: src/reference/reference/sbt.md:349 +msgid "`-Dsbt.global.base=$HOME/.sbt/`" +msgstr "" + +#: src/reference/reference/sbt.md:351 +msgid "The directory containing global settings and plugins." +msgstr "" + +#: src/reference/reference/sbt.md:353 +msgid "`-Dsbt.override.build.repos=true`" +msgstr "" + +#: src/reference/reference/sbt.md:355 +msgid "" +"If true, repositories configured in a build definition are ignored and the " +"repositories configured for the launcher are used instead." +msgstr "" + +#: src/reference/reference/sbt.md:359 +msgid "`-Dsbt.repository.config=$HOME/.sbt/repositories`" +msgstr "" + +#: src/reference/reference/sbt.md:361 +msgid "" +"A file containing the repositories to use for the launcher. The format is " +"the same as a `[repositories]` section for a sbt launcher configuration " +"file. This setting is typically used in conjunction with setting `sbt." +"override.build.repos` to `true`." +msgstr "" diff --git a/po/summary/summary.ja.po b/po/summary/summary.ja.po new file mode 100644 index 00000000..32761f93 --- /dev/null +++ b/po/summary/summary.ja.po @@ -0,0 +1,149 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T01:14:09-04:00\n" +"PO-Revision-Date: 2024-10-30 02:58-0400\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.5\n" + +#: src/reference/SUMMARY.md:1 +msgid "Summary" +msgstr "" + +#: src/reference/SUMMARY.md:3 +msgid "Introduction" +msgstr "sbt 記" + +#: src/reference/SUMMARY.md:5 +msgid "Quick Start" +msgstr "" + +#: src/reference/SUMMARY.md:6 +msgid "Installing sbt runner" +msgstr "" + +#: src/reference/SUMMARY.md:7 +msgid "sbt by example" +msgstr "" + +#: src/reference/SUMMARY.md:8 +msgid "Getting Started" +msgstr "" + +#: src/reference/SUMMARY.md:9 +msgid "Why sbt exists" +msgstr "" + +#: src/reference/SUMMARY.md:10 +msgid "Creating a new build" +msgstr "" + +#: src/reference/SUMMARY.md:11 +msgid "sbt components" +msgstr "" + +#: src/reference/SUMMARY.md:12 +msgid "Basic tasks" +msgstr "" + +#: src/reference/SUMMARY.md:13 +msgid "Build definition basics" +msgstr "" + +#: src/reference/SUMMARY.md:14 +msgid "Library dependency basics" +msgstr "" + +#: src/reference/SUMMARY.md:15 +msgid "Multi project basics" +msgstr "" + +#: src/reference/SUMMARY.md:16 +msgid "Build layout" +msgstr "" + +#: src/reference/SUMMARY.md:17 +msgid "sbt with IDEs" +msgstr "" + +#: src/reference/SUMMARY.md:18 +msgid "Changes" +msgstr "" + +#: src/reference/SUMMARY.md:19 +msgid "sbt 2.0 changes" +msgstr "" + +#: src/reference/SUMMARY.md:20 +msgid "Migrating from sbt 1.x" +msgstr "" + +#: src/reference/SUMMARY.md:21 +msgid "Concepts" +msgstr "" + +#: src/reference/SUMMARY.md:22 +msgid "Command" +msgstr "" + +#: src/reference/SUMMARY.md:23 +msgid "Cross building" +msgstr "" + +#: src/reference/SUMMARY.md:24 +msgid "Caching" +msgstr "" + +#: src/reference/SUMMARY.md:25 +msgid "Reference" +msgstr "" + +#: src/reference/SUMMARY.md:26 +msgid "sbt" +msgstr "" + +#: src/reference/SUMMARY.md:27 +msgid "sbt update" +msgstr "" + +#: src/reference/SUMMARY.md:28 +msgid "Cross building setup" +msgstr "" + +#: src/reference/SUMMARY.md:29 +msgid "Remote cache setup" +msgstr "" + +#: src/reference/SUMMARY.md:30 +msgid "Recipes" +msgstr "" + +#: src/reference/SUMMARY.md:31 +msgid "Write hello world" +msgstr "" + +#: src/reference/SUMMARY.md:32 +msgid "Use sbt as Metals build server" +msgstr "" + +#: src/reference/SUMMARY.md:33 +msgid "Import to IntelliJ IDEA" +msgstr "" + +#: src/reference/SUMMARY.md:34 +msgid "Use Neovim" +msgstr "" + +#: src/reference/SUMMARY.md:35 +msgid "Appendix: Glossary" +msgstr "" + +#: src/reference/SUMMARY.md:36 +msgid "Appendix: Setup notes" +msgstr "" diff --git a/po/summary/summary.zh-cn.po b/po/summary/summary.zh-cn.po new file mode 100644 index 00000000..fd5a8fdc --- /dev/null +++ b/po/summary/summary.zh-cn.po @@ -0,0 +1,148 @@ +msgid "" +msgstr "" +"Project-Id-Version: The Book of sbt\n" +"POT-Creation-Date: 2024-10-30T03:50:36-04:00\n" +"PO-Revision-Date: 2024-10-30T03:50:36-04:00\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh-cn\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/reference/SUMMARY.md:1 +msgid "Summary" +msgstr "" + +#: src/reference/SUMMARY.md:3 +msgid "Introduction" +msgstr "" + +#: src/reference/SUMMARY.md:5 +msgid "Quick Start" +msgstr "" + +#: src/reference/SUMMARY.md:6 +msgid "Installing sbt runner" +msgstr "" + +#: src/reference/SUMMARY.md:7 +msgid "sbt by example" +msgstr "" + +#: src/reference/SUMMARY.md:8 +msgid "Getting Started" +msgstr "" + +#: src/reference/SUMMARY.md:9 +msgid "Why sbt exists" +msgstr "" + +#: src/reference/SUMMARY.md:10 +msgid "Creating a new build" +msgstr "" + +#: src/reference/SUMMARY.md:11 +msgid "sbt components" +msgstr "" + +#: src/reference/SUMMARY.md:12 +msgid "Basic tasks" +msgstr "" + +#: src/reference/SUMMARY.md:13 +msgid "Build definition basics" +msgstr "" + +#: src/reference/SUMMARY.md:14 +msgid "Library dependency basics" +msgstr "" + +#: src/reference/SUMMARY.md:15 +msgid "Multi project basics" +msgstr "" + +#: src/reference/SUMMARY.md:16 +msgid "Build layout" +msgstr "" + +#: src/reference/SUMMARY.md:17 +msgid "sbt with IDEs" +msgstr "" + +#: src/reference/SUMMARY.md:18 +msgid "Changes" +msgstr "" + +#: src/reference/SUMMARY.md:19 +msgid "sbt 2.0 changes" +msgstr "" + +#: src/reference/SUMMARY.md:20 +msgid "Migrating from sbt 1.x" +msgstr "" + +#: src/reference/SUMMARY.md:21 +msgid "Concepts" +msgstr "" + +#: src/reference/SUMMARY.md:22 +msgid "Command" +msgstr "" + +#: src/reference/SUMMARY.md:23 +msgid "Cross building" +msgstr "" + +#: src/reference/SUMMARY.md:24 +msgid "Caching" +msgstr "" + +#: src/reference/SUMMARY.md:25 +msgid "Reference" +msgstr "" + +#: src/reference/SUMMARY.md:26 +msgid "sbt" +msgstr "" + +#: src/reference/SUMMARY.md:27 +msgid "sbt update" +msgstr "" + +#: src/reference/SUMMARY.md:28 +msgid "Cross building setup" +msgstr "" + +#: src/reference/SUMMARY.md:29 +msgid "Remote cache setup" +msgstr "" + +#: src/reference/SUMMARY.md:30 +msgid "Recipes" +msgstr "" + +#: src/reference/SUMMARY.md:31 +msgid "Write hello world" +msgstr "" + +#: src/reference/SUMMARY.md:32 +msgid "Use sbt as Metals build server" +msgstr "" + +#: src/reference/SUMMARY.md:33 +msgid "Import to IntelliJ IDEA" +msgstr "" + +#: src/reference/SUMMARY.md:34 +msgid "Use Neovim" +msgstr "" + +#: src/reference/SUMMARY.md:35 +msgid "Appendix: Glossary" +msgstr "" + +#: src/reference/SUMMARY.md:36 +msgid "Appendix: Setup notes" +msgstr "" diff --git a/project/MdBookSitePlugin.scala b/project/MdBookSitePlugin.scala index 2ea0d1ac..d76f5f76 100644 --- a/project/MdBookSitePlugin.scala +++ b/project/MdBookSitePlugin.scala @@ -26,7 +26,10 @@ object MdBookSitePlugin extends AutoPlugin { config / mdbookBuild := { import scala.sys.process.* val dir = mdbookDirectory.value - Process(List("mdbook", "build"), cwd = dir).! + IO.createDirectory(dir / "book") + Process(List("mdbook", "build", "-d", "book/en"), cwd = dir).! + Process(List("script/build.sh", "ja"), cwd = dir).! + Process(List("script/build.sh", "zh-cn"), cwd = dir).! val out = dir / "book" out }, diff --git a/script/build.sh b/script/build.sh new file mode 100755 index 00000000..99eaf269 --- /dev/null +++ b/script/build.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +locale="" + +show_help() { + echo "Usage: $0 " +} + +if [[ $# -eq 0 ]]; then + show_help + exit 1 +fi + +while [[ $# -gt 0 ]]; do + case "$1" in + *) + locale="$1" + shift + ;; + esac +done + +script/concat.sh "$locale" +MDBOOK_BOOK__LANGUAGE="$locale" mdbook build -d "book/$locale" diff --git a/script/concat.sh b/script/concat.sh new file mode 100755 index 00000000..fbe8121a --- /dev/null +++ b/script/concat.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +locale="" + +show_help() { + echo "Usage: $0 " +} + +if [[ $# -eq 0 ]]; then + show_help + exit 1 +fi + +while [[ $# -gt 0 ]]; do + case "$1" in + *) + locale="$1" + shift + ;; + esac +done + +output_file="po/$locale.po" +head -n 13 po/summary/summary.$locale.po > "$output_file" + +for file in po/**/*.$locale.po; do + # Append each file's content to the output file, starting from line 13 + tail -n +13 "$file" >> "$output_file" + echo -e "\n" >> "$output_file" +done diff --git a/script/genpo.sh b/script/genpo.sh new file mode 100755 index 00000000..0a9819b9 --- /dev/null +++ b/script/genpo.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +locale="" + +show_help() { + echo "Usage: $0 " +} + +if [[ $# -eq 0 ]]; then + show_help + exit 1 +fi + +while [[ $# -gt 0 ]]; do + case "$1" in + *) + locale="$1" + shift + ;; + esac +done + +MDBOOK_OUTPUT='{"xgettext": { "depth": 3 }}' mdbook build -d po + +find po -type f -name "*.pot" | while read -r potfile; do + pofile="${potfile%.pot}.$locale.po" + msginit --locale=$locale --input="$potfile" --no-translator --output="$pofile" +done diff --git a/script/serve.sh b/script/serve.sh new file mode 100755 index 00000000..3184fe5f --- /dev/null +++ b/script/serve.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +locale="" + +show_help() { + echo "Usage: $0 " +} + +if [[ $# -eq 0 ]]; then + show_help + exit 1 +fi + +while [[ $# -gt 0 ]]; do + case "$1" in + *) + locale="$1" + shift + ;; + esac +done + +script/concat.sh "$locale" +MDBOOK_BOOK__LANGUAGE="$locale" mdbook serve -d "book/$locale" diff --git a/script/sync.sh b/script/sync.sh new file mode 100755 index 00000000..32b07716 --- /dev/null +++ b/script/sync.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +locale="" + +show_help() { + echo "Usage: $0 " +} + +if [[ $# -eq 0 ]]; then + show_help + exit 1 +fi + +while [[ $# -gt 0 ]]; do + case "$1" in + *) + locale="$1" + shift + ;; + esac +done + +MDBOOK_OUTPUT='{"xgettext": { "depth": 3 }}' mdbook build -d po + +find po -type f -name "*.pot" | while read -r potfile; do + pofile="${potfile%.pot}.$locale.po" + msgmerge --update "$pofile" "$potfile" +done diff --git a/src/reference/README.md b/src/reference/README.md index 71514ec2..28acf528 100644 --- a/src/reference/README.md +++ b/src/reference/README.md @@ -1,11 +1,9 @@ The Book of sbt (Draft) ======================= -```admonish warning This is a draft documentation of sbt 2.x that is yet to be released. While the general concept translates to sbt 1.x, details of both 2.x and this doc are subject to change. -``` ![sbt logo](files/sbt-logo.svg) diff --git a/src/reference/SUMMARY.md b/src/reference/SUMMARY.md index 72e2803b..d28cf73f 100644 --- a/src/reference/SUMMARY.md +++ b/src/reference/SUMMARY.md @@ -15,19 +15,19 @@ - [Multi project basics](guide/multi-project-basics.md) - [Build layout](guide/build-layout.md) - [sbt with IDEs](guide/IDE.md) -- [Changes]() +- [Changes](changes/index.md) - [sbt 2.0 changes](changes/sbt-2.0-change-summary.md) - [Migrating from sbt 1.x](changes/migrating-from-sbt-1.x.md) -- [Concepts]() +- [Concepts](concepts/index.md) - [Command](concepts/command.md) - [Cross building](concepts/cross-building.md) - [Caching](concepts/caching.md) -- [Reference]() +- [Reference](reference/index.md) - [sbt](reference/sbt.md) - [sbt update](reference/sbt-update.md) - [Cross building setup](reference/cross-building-setup.md) - [Remote cache setup](reference/remote-cache-setup.md) -- [Recipes]() +- [Recipes](recipes/index.md) - [Write hello world](recipes/hello-world.md) - [Use sbt as Metals build server](recipes/use-sbt-as-metals-build-server.md) - [Import to IntelliJ IDEA](recipes/import-to-intellij.md) diff --git a/src/reference/changes/index.md b/src/reference/changes/index.md new file mode 100644 index 00000000..b671f0bb --- /dev/null +++ b/src/reference/changes/index.md @@ -0,0 +1 @@ +# Changes diff --git a/src/reference/concepts/index.md b/src/reference/concepts/index.md new file mode 100644 index 00000000..74d42e13 --- /dev/null +++ b/src/reference/concepts/index.md @@ -0,0 +1 @@ +# Concepts diff --git a/src/reference/custom-202107.css b/src/reference/custom-202107.css deleted file mode 100644 index 6dbd2b48..00000000 --- a/src/reference/custom-202107.css +++ /dev/null @@ -1,231 +0,0 @@ -p { - width: inherit; -} - -div.toccolumn { - overflow-y: inherit; - border-right: solid 1px lightgray; - font-size: 0.85em; -} - -div.header { - font-size: 18px; - height: 75px; - border-top: 5px solid #1a84ad; - -webkit-box-shadow: 0px 4px 2px 0px rgba(0,0,0,0.3); - -moz-box-shadow: 0px 4px 2px 0px rgba(0,0,0,0.3); - box-shadow: 0px 4px 2px 0px rgba(0,0,0,0.3); - font-family: 'Source Sans Pro', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; -} - -div.logo { - display: inline-block; - margin-left: 2em; -} - -div.logo img { - height: 56px; -} - -.versions select { - margin-left: 2em; - font-weight: bold; - margin-top: 2em; - vertical-align: top; - font-size: 14px; -} - -div.header div.row { -} - -div.header .nav { - height: 75px; - position: relative; - float: right; - border-right: 1px solid #ebebeb; - border-bottom: 0px solid transparent; -} - -div.docsearch { - height:75px; - display:block; - float: left; - - display: flex; - justify-content: center; - align-items: center; -} - -div.docsearch input.ds-input { - max-width:200px; - float:left; -} - -div.header .nav>a { - display: inline-block; - font-weight: 400; - font-style: normal; - font-size: 1.0em; - text-transform: uppercase; - text-decoration: none; - display: block; - float: left; - height: 75px; - line-height: 80px; - padding: 0 1.1em; - color: #2E6D82; - border: none; - border-bottom: 0px solid transparent; - border-left: 1px solid #ebebeb; - font-weight: bold; - letter-spacing: -.03em; - font-size: 14px; - transition: all 200ms ease-in-out; -} -div.header .nav>a:hover { - background: #f5f5f5; - text-decoration: none; - box-shadow: inset 0 4px 0 #2E6D82, inset 0 0 3px #ebebeb; - transition: all 200ms ease-in-out; -} - -.header .nav img.social { - height: 20px; - vertical-align: text-top; -} - - -div.footer { - height: auto; -} - -.fw-wrapper { - width: 100%; - margin: 0; - padding: 0; - background: #ffffff; -} -.fw-wrapper.teal-blue { - background: #2E6D82; -} - -.fw-wrapper.navy-ltr { - background: #406174; -} - -.svg-icon { - width: 30px; - height: 30px; -} - - -body .support-strip .row{ - background: #406174; -} - -.support-item { - display: inline-block; - margin: 5px 60px 5px 0; -} -.support-icon { - display: inline-block; - margin-right: 10px; - -} - -.support-detail { - display: inline-block; - min-height: 50px; - vertical-align: top; - text-align: left; -} -.support-detail h2 { - color: #ffffff !important; - font-size: 18px; - text-transform: uppercase; - margin: 6px 0 0 0; - padding: 0; - width: auto; - background-color: transparent; - font-weight: 700; - line-height: 1.1em; - -} -.support-detail a { - color: #c2d2dc; - margin: 0; - padding: 0; - margin-right: 6px; - font-size: 16px; - text-decoration: none; -} -body .support-detail a:hover { - color: #ffffff; - text-decoration: underline; -} -/* footer */ -footer { - z-index: 10; - padding-top: 36px; - padding-bottom: 30px; - width: 100%; - overflow: hidden; - font-family: 'Source Sans Pro', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; - color: #ffffff; - background: #1a84ad; - font-size: 12px; -} -body footer > .container { - background: #1a84ad !important; -} -footer .row { - background: #1a84ad; /* Lightbend azure */ -} -footer a { - display: inline-block; - font-size: 16px; - font-weight: 400; - color: #ffffff; - margin-right: 10px; - text-decoration: none; -} -footer a:hover { - text-decoration: underline; -} - -footer a:link,footer a:visited,footer a:hover,footer a:active { - color: #ffffff; -} -footer .ts { - vertical-align: top; - width: 33.33333333%; - float: left; - font-size: 12px; - height: 23px; - line-height: 19px; - -} -footer .ts img { - height: 20px; - margin-left: 10px; - -} -footer .sbt { - vertical-align: middle; - text-transform: uppercase; - width: 66.66666667%; - float: left; -} -footer .sbt a { - font-size: 14px; - font-weight: 700; - vertical-align: middle; - height: 20px; - line-height: 20px; -} -footer .sbt a:hover { - color: #ffffff; -} -footer .sbt img { - height: 20px; -} diff --git a/src/reference/custom-202402.css b/src/reference/custom-202402.css deleted file mode 100644 index 8cc48ccb..00000000 --- a/src/reference/custom-202402.css +++ /dev/null @@ -1,42 +0,0 @@ -html { - font-family: "Lora"; -} - -:root { - font-size: 90%; -} - -pre { - border: solid 1px lightgray; - line-height: 1.8rem; - font-weight: 500; -} - -code { - font-family: 'Inconsolata', monospace !important; -} - -p code { - font-weight: 600; -} - -li code { - font-weight: 600; -} - -h1 { - font-family: 'Linux Biolinum'; -} - -h1.menu-title { - font-family: "Lora"; - font-size: 1.5rem; -} - -h2 { - font-family: 'Linux Biolinum'; -} - -h3 { - font-family: 'Linux Biolinum'; -} diff --git a/src/reference/custom-202410.css b/src/reference/custom-202410.css new file mode 100644 index 00000000..80c4210b --- /dev/null +++ b/src/reference/custom-202410.css @@ -0,0 +1,107 @@ +html { + font-family: "Lora", 'serif'; +} + +[lang=ja] html { + font-family: "Lora", "Noto Serif", 'serif'; +} + +[lang=ja] p { + font-family: "Lora", "Noto Serif", 'serif'; +} + +[lang=ja] a { + font-family: "Lora", "Noto Serif", 'serif'; +} + +[lang=zh-cn] html { + font-family: "Lora", "Noto Serif", 'serif'; +} + +[lang=zh-cn] p { + font-family: "Lora", "Noto Serif", 'serif'; +} + +[lang=zh-cn] a { + font-family: "Lora", "Noto Serif", 'serif'; +} + +:root { + font-size: 80%; +} + +pre { + border: solid 1px lightgray; + line-height: 1.8rem; + font-weight: 500; +} + +code { + font-family: 'Inconsolata', monospace !important; +} + +p code { + font-weight: 600; +} + +li code { + font-weight: 600; +} + +h1 { + font-family: 'Linux Biolinum', 'serif'; +} + +[lang=ja] h1 { + font-family: 'Linux Biolinum', "Noto Serif", 'serif'; +} + +[lang=zh-cn] h1 { + font-family: 'Linux Biolinum', "Noto Serif", 'serif'; +} + +h1.menu-title { + font-family: "Lora", + 'serif'; + font-size: 1.5rem; +} + +[lang=ja] h1.menu-title { + font-family: "Lora", + "Noto Serif", 'serif'; + font-size: 1.5rem; +} + +[lang=zh-cn] h1.menu-title { + font-family: "Lora", + "Noto Serif", 'serif'; + font-size: 1.5rem; +} + +h2 { + font-family: 'Linux Biolinum', 'serif'; +} + +[lang=ja] h2 { + font-family: 'Linux Biolinum', + "Noto Serif", 'serif'; +} + +[lang=zh-cn] h2 { + font-family: 'Linux Biolinum', + "Noto Serif", 'serif'; +} + +h3 { + font-family: 'Linux Biolinum', 'serif'; +} + +[lang=ja] h3 { + font-family: 'Linux Biolinum', + "Noto Serif", 'serif'; +} + +[lang=zh-cn] h3 { + font-family: 'Linux Biolinum', + "Noto Serif", 'serif'; +} diff --git a/src/reference/recipes/index.md b/src/reference/recipes/index.md new file mode 100644 index 00000000..ae5e3548 --- /dev/null +++ b/src/reference/recipes/index.md @@ -0,0 +1 @@ +# Recipes diff --git a/src/reference/reference/index.md b/src/reference/reference/index.md new file mode 100644 index 00000000..cf5aa074 --- /dev/null +++ b/src/reference/reference/index.md @@ -0,0 +1 @@ +# Reference diff --git a/theme/fonts/NotoSerifCJK-wght-400-900.ttf.ttc b/theme/fonts/NotoSerifCJK-wght-400-900.ttf.ttc new file mode 100755 index 00000000..c88a1a05 Binary files /dev/null and b/theme/fonts/NotoSerifCJK-wght-400-900.ttf.ttc differ diff --git a/theme/fonts/fonts.css b/theme/fonts/fonts.css index 94960f78..2c37398f 100644 --- a/theme/fonts/fonts.css +++ b/theme/fonts/fonts.css @@ -32,6 +32,11 @@ src: url(Inconsolata[wdth,wght].ttf); } +@font-face { + font-family: "Noto Serif"; + src: url(NotoSerifCJK-wght-400-900.ttf.ttc); +} + /* Open Sans is licensed under the Apache License, Version 2.0. See http://www.apache.org/licenses/LICENSE-2.0 */ /* Source Code Pro is under the Open Font License. See https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL */